(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["app-service"],[ /* 0 */ /*!****************************************!*\ !*** D:/work-gunshi/xytSk-App/main.js ***! \****************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n__webpack_require__(/*! uni-pages */ 6);\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 28));\nvar _uviewUi = _interopRequireDefault(__webpack_require__(/*! @/uni_modules/uview-ui */ 1589));\nvar _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 1711));\nvar _requestMiniprogram = __webpack_require__(/*! @escook/request-miniprogram */ 1714);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n_vue.default.use(_uviewUi.default);\n_vue.default.config.productionTip = false;\nuni.$http = _requestMiniprogram.$http;\n// $http.baseUrl = 'http://local.gunshiiot.com:18083'\n_requestMiniprogram.$http.baseUrl = 'http://local.gunshiiot.com:18083';\n// 请求拦截器\n_requestMiniprogram.$http.beforeRequest = function (options) {\n // uni.showLoading({\n // title: '数据加载中'\n // })\n // if (\n // \toptions.url.indexOf('/gunshiApp/xfflood/doLogin') == -1\n // \t&& options.url.indexOf('/gunshiApp/xfflood/getLoginInfo') == -1\n // \t&& options.url.indexOf('/gunshiApp/xfflood/my/info/getByUserId') == -1\n // \t&& options.url.indexOf('/gunshiApp/xfflood/bzProjectManipulationRecord/file/get/') == -1\n // ) {\n // \t// uni.showLoading({\n // \t// title: '数据加载中'\n // \t// })\n // }\n\n if (options.url.indexOf('/doLogin') == -1) {\n options.header = {\n 'Authorization': 'Bearer ' + uni.getStorageSync('Gs-Token')\n };\n }\n};\n// 响应拦截器\n_requestMiniprogram.$http.afterRequest = function (options) {\n // uni.hideLoading()\n};\nuni.$showMsg = function () {\n var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '数据请求失败了';\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1500;\n return uni.showToast({\n title: title,\n duration: duration,\n icon: 'none'\n });\n};\n_vue.default.config.productionTip = false;\n_App.default.mpType = 'app';\nvar app = new _vue.default(_objectSpread({}, _App.default));\napp.$mount();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vbWFpbi5qcyJdLCJuYW1lcyI6WyJWdWUiLCJ1c2UiLCJ1VmlldyIsImNvbmZpZyIsInByb2R1Y3Rpb25UaXAiLCJ1bmkiLCIkaHR0cCIsImJhc2VVcmwiLCJiZWZvcmVSZXF1ZXN0Iiwib3B0aW9ucyIsInVybCIsImluZGV4T2YiLCJoZWFkZXIiLCJnZXRTdG9yYWdlU3luYyIsImFmdGVyUmVxdWVzdCIsIiRzaG93TXNnIiwidGl0bGUiLCJkdXJhdGlvbiIsInNob3dUb2FzdCIsImljb24iLCJBcHAiLCJtcFR5cGUiLCJhcHAiLCIkbW91bnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRW9DO0FBQUE7QUFKcENBLFlBQUcsQ0FBQ0MsR0FBRyxDQUFDQyxnQkFBSyxDQUFDO0FBTWRGLFlBQUcsQ0FBQ0csTUFBTSxDQUFDQyxhQUFhLEdBQUcsS0FBSztBQUNoQ0MsR0FBRyxDQUFDQyxLQUFLLEdBQUdBLHlCQUFLO0FBQ2pCO0FBQ0FBLHlCQUFLLENBQUNDLE9BQU8sR0FBRyxrQ0FBa0M7QUFDbEQ7QUFDQUQseUJBQUssQ0FBQ0UsYUFBYSxHQUFHLFVBQVNDLE9BQU8sRUFBRTtFQUN2QztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7RUFHQSxJQUFJQSxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO0lBQzFDRixPQUFPLENBQUNHLE1BQU0sR0FBRztNQUNoQixlQUFlLEVBQUUsU0FBUyxHQUFHUCxHQUFHLENBQUNRLGNBQWMsQ0FBQyxVQUFVO0lBQzNELENBQUM7RUFDRjtBQUNELENBQUM7QUFDRDtBQUNBUCx5QkFBSyxDQUFDUSxZQUFZLEdBQUcsVUFBU0wsT0FBTyxFQUFFO0VBQ3RDO0FBQUEsQ0FDQTtBQUNESixHQUFHLENBQUNVLFFBQVEsR0FBRyxZQUE2QztFQUFBLElBQXBDQyxLQUFLLHVFQUFHLFNBQVM7RUFBQSxJQUFFQyxRQUFRLHVFQUFHLElBQUk7RUFDekQsT0FBT1osR0FBRyxDQUFDYSxTQUFTLENBQUM7SUFDcEJGLEtBQUssRUFBTEEsS0FBSztJQUNMQyxRQUFRLEVBQVJBLFFBQVE7SUFDUkUsSUFBSSxFQUFFO0VBQ1AsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQUNEbkIsWUFBRyxDQUFDRyxNQUFNLENBQUNDLGFBQWEsR0FBRyxLQUFLO0FBQ2hDZ0IsWUFBRyxDQUFDQyxNQUFNLEdBQUcsS0FBSztBQUVsQixJQUFNQyxHQUFHLEdBQUcsSUFBSXRCLFlBQUcsbUJBQ2ZvQixZQUFHLEVBQ0w7QUFDRkUsR0FBRyxDQUFDQyxNQUFNLEVBQUUiLCJmaWxlIjoiMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndW5pLXBhZ2VzJztcclxuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXHJcbmltcG9ydCB1VmlldyBmcm9tICdAL3VuaV9tb2R1bGVzL3V2aWV3LXVpJ1xyXG5WdWUudXNlKHVWaWV3KVxyXG5pbXBvcnQgQXBwIGZyb20gJy4vQXBwJ1xyXG5pbXBvcnQge1xyXG5cdCRodHRwXHJcbn0gZnJvbSAnQGVzY29vay9yZXF1ZXN0LW1pbmlwcm9ncmFtJ1xyXG5cclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxudW5pLiRodHRwID0gJGh0dHBcclxuLy8gJGh0dHAuYmFzZVVybCA9ICdodHRwOi8vbG9jYWwuZ3Vuc2hpaW90LmNvbToxODA4MydcclxuJGh0dHAuYmFzZVVybCA9ICdodHRwOi8vbG9jYWwuZ3Vuc2hpaW90LmNvbToxODA4MydcclxuLy8g6K+35rGC5oum5oiq5ZmoXHJcbiRodHRwLmJlZm9yZVJlcXVlc3QgPSBmdW5jdGlvbihvcHRpb25zKSB7XHJcblx0Ly8gdW5pLnNob3dMb2FkaW5nKHtcclxuXHQvLyAgIHRpdGxlOiAn5pWw5o2u5Yqg6L295LitJ1xyXG5cdC8vIH0pXHJcblx0Ly8gaWYgKFxyXG5cdC8vIFx0b3B0aW9ucy51cmwuaW5kZXhPZignL2d1bnNoaUFwcC94ZmZsb29kL2RvTG9naW4nKSA9PSAtMVxyXG5cdC8vIFx0JiYgb3B0aW9ucy51cmwuaW5kZXhPZignL2d1bnNoaUFwcC94ZmZsb29kL2dldExvZ2luSW5mbycpID09IC0xXHJcblx0Ly8gXHQmJiBvcHRpb25zLnVybC5pbmRleE9mKCcvZ3Vuc2hpQXBwL3hmZmxvb2QvbXkvaW5mby9nZXRCeVVzZXJJZCcpID09IC0xXHJcblx0Ly8gXHQmJiBvcHRpb25zLnVybC5pbmRleE9mKCcvZ3Vuc2hpQXBwL3hmZmxvb2QvYnpQcm9qZWN0TWFuaXB1bGF0aW9uUmVjb3JkL2ZpbGUvZ2V0LycpID09IC0xXHJcblx0Ly8gKSB7XHJcblx0Ly8gXHQvLyB1bmkuc2hvd0xvYWRpbmcoe1xyXG5cdC8vIFx0Ly8gICB0aXRsZTogJ+aVsOaNruWKoOi9veS4rSdcclxuXHQvLyBcdC8vIH0pXHJcblx0Ly8gfVxyXG5cclxuXHJcblx0aWYgKG9wdGlvbnMudXJsLmluZGV4T2YoJy9kb0xvZ2luJykgPT0gLTEpIHtcclxuXHRcdG9wdGlvbnMuaGVhZGVyID0ge1xyXG5cdFx0XHQnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHVuaS5nZXRTdG9yYWdlU3luYygnR3MtVG9rZW4nKVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4vLyDlk43lupTmi6bmiKrlmahcclxuJGh0dHAuYWZ0ZXJSZXF1ZXN0ID0gZnVuY3Rpb24ob3B0aW9ucykge1xyXG5cdC8vIHVuaS5oaWRlTG9hZGluZygpXHJcbn1cclxudW5pLiRzaG93TXNnID0gZnVuY3Rpb24odGl0bGUgPSAn5pWw5o2u6K+35rGC5aSx6LSl5LqGJywgZHVyYXRpb24gPSAxNTAwKSB7XHJcblx0cmV0dXJuIHVuaS5zaG93VG9hc3Qoe1xyXG5cdFx0dGl0bGUsXHJcblx0XHRkdXJhdGlvbixcclxuXHRcdGljb246ICdub25lJ1xyXG5cdH0pXHJcbn1cclxuVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2VcclxuQXBwLm1wVHlwZSA9ICdhcHAnXHJcblxyXG5jb25zdCBhcHAgPSBuZXcgVnVlKHtcclxuXHQuLi5BcHBcclxufSlcclxuYXBwLiRtb3VudCgpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n"); /***/ }), /* 1 */ /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 2 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3); function _defineProperty(obj, key, value) { key = toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 3 */ /*!**************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ 5); function toPropertyKey(t) { var i = toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 4 */ /*!*******************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! \*******************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _typeof(o) { "@babel/helpers - typeof"; return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); } module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 5 */ /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; function toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 6 */ /*!*******************************************!*\ !*** D:/work-gunshi/xytSk-App/pages.json ***! \*******************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { if (typeof Promise !== 'undefined' && !Promise.prototype.finally) { Promise.prototype.finally = function (callback) { var promise = this.constructor; return this.then(function (value) { return promise.resolve(callback()).then(function () { return value; }); }, function (reason) { return promise.resolve(callback()).then(function () { throw reason; }); }); }; } if (typeof uni !== 'undefined' && uni && uni.requireGlobal) { var global = uni.requireGlobal(); ArrayBuffer = global.ArrayBuffer; Int8Array = global.Int8Array; Uint8Array = global.Uint8Array; Uint8ClampedArray = global.Uint8ClampedArray; Int16Array = global.Int16Array; Uint16Array = global.Uint16Array; Int32Array = global.Int32Array; Uint32Array = global.Uint32Array; Float32Array = global.Float32Array; Float64Array = global.Float64Array; BigInt64Array = global.BigInt64Array; BigUint64Array = global.BigUint64Array; } if (uni.restoreGlobal) { uni.restoreGlobal(weex, plus, setTimeout, clearTimeout, setInterval, clearInterval); } __definePage('pages/login/login', function () { return Vue.extend(__webpack_require__(/*! pages/login/login.vue?mpType=page */ 7).default); }); __definePage('pages/xcrw/index', function () { return Vue.extend(__webpack_require__(/*! pages/xcrw/index.vue?mpType=page */ 88).default); }); __definePage('pages/xcrw/detail/index', function () { return Vue.extend(__webpack_require__(/*! pages/xcrw/detail/index.vue?mpType=page */ 313).default); }); __definePage('pages/stlljk/index', function () { return Vue.extend(__webpack_require__(/*! pages/stlljk/index.vue?mpType=page */ 334).default); }); __definePage('pages/spjk/index', function () { return Vue.extend(__webpack_require__(/*! pages/spjk/index.vue?mpType=page */ 901).default); }); __definePage('pages/spjk/spbf/index', function () { return Vue.extend(__webpack_require__(/*! pages/spjk/spbf/index.vue?mpType=page */ 908).default); }); __definePage('pages/aqjc/index', function () { return Vue.extend(__webpack_require__(/*! pages/aqjc/index.vue?mpType=page */ 916).default); }); __definePage('pages/rain/rain', function () { return Vue.extend(__webpack_require__(/*! pages/rain/rain.vue?mpType=page */ 928).default); }); __definePage('pages/homeIndex/index', function () { return Vue.extend(__webpack_require__(/*! pages/homeIndex/index.vue?mpType=page */ 966).default); }); __definePage('pages/xxsb/index', function () { return Vue.extend(__webpack_require__(/*! pages/xxsb/index.vue?mpType=page */ 991).default); }); __definePage('pages/xxsb/from', function () { return Vue.extend(__webpack_require__(/*! pages/xxsb/from.vue?mpType=page */ 996).default); }); __definePage('pages/xxsb/fromSeverity', function () { return Vue.extend(__webpack_require__(/*! pages/xxsb/fromSeverity.vue?mpType=page */ 1063).default); }); __definePage('pages/xxsb/dsfrom', function () { return Vue.extend(__webpack_require__(/*! pages/xxsb/dsfrom.vue?mpType=page */ 1068).default); }); __definePage('pages/xxsb/map', function () { return Vue.extend(__webpack_require__(/*! pages/xxsb/map.vue?mpType=page */ 1078).default); }); __definePage('pages/gqzq/index', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/index.vue?mpType=page */ 1083).default); }); __definePage('pages/gqzq/gqxx', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/gqxx.vue?mpType=page */ 1088).default); }); __definePage('pages/gqzq/zqxx', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/zqxx.vue?mpType=page */ 1098).default); }); __definePage('pages/gqzq/detail/index', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/detail/index.vue?mpType=page */ 1103).default); }); __definePage('pages/mypage/mypage', function () { return Vue.extend(__webpack_require__(/*! pages/mypage/mypage.vue?mpType=page */ 1108).default); }); __definePage('pages/personInfo/personInfo', function () { return Vue.extend(__webpack_require__(/*! pages/personInfo/personInfo.vue?mpType=page */ 1113).default); }); __definePage('pages/modifyPassword/modifyPassword', function () { return Vue.extend(__webpack_require__(/*! pages/modifyPassword/modifyPassword.vue?mpType=page */ 1133).default); }); __definePage('pages/forewarning/forewarning', function () { return Vue.extend(__webpack_require__(/*! pages/forewarning/forewarning.vue?mpType=page */ 1138).default); }); __definePage('pages/forewarning/sh', function () { return Vue.extend(__webpack_require__(/*! pages/forewarning/sh.vue?mpType=page */ 1186).default); }); __definePage('pages/forewarning/shInformation/shInformation', function () { return Vue.extend(__webpack_require__(/*! pages/forewarning/shInformation/shInformation.vue?mpType=page */ 1191).default); }); __definePage('pages/addressBook/addressBook', function () { return Vue.extend(__webpack_require__(/*! pages/addressBook/addressBook.vue?mpType=page */ 1196).default); }); __definePage('pages/water/water', function () { return Vue.extend(__webpack_require__(/*! pages/water/water.vue?mpType=page */ 1201).default); }); __definePage('pages/rainDetail/rainDetail', function () { return Vue.extend(__webpack_require__(/*! pages/rainDetail/rainDetail.vue?mpType=page */ 1226).default); }); __definePage('pages/hdDetail/hdDetail', function () { return Vue.extend(__webpack_require__(/*! pages/hdDetail/hdDetail.vue?mpType=page */ 1267).default); }); __definePage('pages/skDetail/skDetail', function () { return Vue.extend(__webpack_require__(/*! pages/skDetail/skDetail.vue?mpType=page */ 1308).default); }); __definePage('pages/addressBook/follow', function () { return Vue.extend(__webpack_require__(/*! pages/addressBook/follow.vue?mpType=page */ 1391).default); }); __definePage('pages/addressBook/myDept', function () { return Vue.extend(__webpack_require__(/*! pages/addressBook/myDept.vue?mpType=page */ 1396).default); }); __definePage('pages/orderFeedback/orderFeedback', function () { return Vue.extend(__webpack_require__(/*! pages/orderFeedback/orderFeedback.vue?mpType=page */ 1401).default); }); __definePage('pages/orderFeedback/orderInformation', function () { return Vue.extend(__webpack_require__(/*! pages/orderFeedback/orderInformation.vue?mpType=page */ 1412).default); }); __definePage('pages/gqzq/gqxx/gqxx', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/gqxx/gqxx.vue?mpType=page */ 1439).default); }); __definePage('pages/gqzq/gqxx/qk', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/gqxx/qk.vue?mpType=page */ 1454).default); }); __definePage('pages/gqzq/gqxx/xq', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/gqxx/xq.vue?mpType=page */ 1459).default); }); __definePage('pages/gqzq/gqxx/qkForm', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/gqxx/qkForm.vue?mpType=page */ 1464).default); }); __definePage('pages/gqzq/gqxx/xqForm', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/gqxx/xqForm.vue?mpType=page */ 1469).default); }); __definePage('pages/gqzq/zqxx/zqxx', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/zqxx/zqxx.vue?mpType=page */ 1474).default); }); __definePage('pages/gqzq/zqxx/table', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/zqxx/table.vue?mpType=page */ 1484).default); }); __definePage('pages/gqzq/zqxx/form', function () { return Vue.extend(__webpack_require__(/*! pages/gqzq/zqxx/form.vue?mpType=page */ 1489).default); }); __definePage('pages/wxyh/index', function () { return Vue.extend(__webpack_require__(/*! pages/wxyh/index.vue?mpType=page */ 1494).default); }); __definePage('pages/wtcl/index', function () { return Vue.extend(__webpack_require__(/*! pages/wtcl/index.vue?mpType=page */ 1509).default); }); __definePage('pages/wtcl/detail/index', function () { return Vue.extend(__webpack_require__(/*! pages/wtcl/detail/index.vue?mpType=page */ 1532).default); }); __definePage('pages/yj/index', function () { return Vue.extend(__webpack_require__(/*! pages/yj/index.vue?mpType=page */ 1537).default); }); __definePage('pages/yj/detail/qxyj', function () { return Vue.extend(__webpack_require__(/*! pages/yj/detail/qxyj.vue?mpType=page */ 1542).default); }); __definePage('pages/yj/detail/wyyj', function () { return Vue.extend(__webpack_require__(/*! pages/yj/detail/wyyj.vue?mpType=page */ 1547).default); }); __definePage('pages/yj/detail/aiyj', function () { return Vue.extend(__webpack_require__(/*! pages/yj/detail/aiyj.vue?mpType=page */ 1552).default); }); __definePage('pages/messageList/index', function () { return Vue.extend(__webpack_require__(/*! pages/messageList/index.vue?mpType=page */ 1557).default); }); __definePage('pages/messageList/detail/index', function () { return Vue.extend(__webpack_require__(/*! pages/messageList/detail/index.vue?mpType=page */ 1562).default); }); __definePage('pages/skInfo/detail/index', function () { return Vue.extend(__webpack_require__(/*! pages/skInfo/detail/index.vue?mpType=page */ 1567).default); }); __definePage('subpkg/rainDetail/rainDetail', function () { return Vue.extend(__webpack_require__(/*! subpkg/rainDetail/rainDetail.vue?mpType=page */ 1584).default); }); /***/ }), /* 7 */ /*!******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/login/login.vue?mpType=page ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./login.vue?vue&type=template&id=5b26a3ac&mpType=page */ 8);\n/* harmony import */ var _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./login.vue?vue&type=script&lang=js&mpType=page */ 47);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/login/login.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkg7QUFDN0g7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ21LO0FBQ25LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSwyRkFBTTtBQUNSLEVBQUUsb0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsK0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vbG9naW4udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTViMjZhM2FjJm1wVHlwZT1wYWdlXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9sb2dpbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuZXhwb3J0ICogZnJvbSBcIi4vbG9naW4udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvbG9naW4vbG9naW4udnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n"); /***/ }), /* 8 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/login/login.vue?vue&type=template&id=5b26a3ac&mpType=page ***! \************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./login.vue?vue&type=template&id=5b26a3ac&mpType=page */ 9); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_5b26a3ac_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 9 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/login/login.vue?vue&type=template&id=5b26a3ac&mpType=page ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uniForms: __webpack_require__(/*! @/uni_modules/uni-forms/components/uni-forms/uni-forms.vue */ 10) .default, uniFormsItem: __webpack_require__(/*! @/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue */ 30) .default, uniEasyinput: __webpack_require__(/*! @/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue */ 35) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } }, [ _c("div", { staticClass: _vm._$s(1, "sc", "img"), attrs: { _i: 1 } }, [ _c("image", { attrs: { src: _vm._$s(2, "a-src", __webpack_require__(/*! ../../static/images/u8.png */ 46)), _i: 2, }, }), ]), _c( "uni-forms", { staticClass: _vm._$s(3, "sc", "form"), attrs: { modelValue: _vm.formData, _i: 3 }, }, [ _c( "uni-forms-item", { attrs: { _i: 4 } }, [ _c("uni-easyinput", { attrs: { type: "text", placeholder: "请输入用户名", _i: 5 }, model: { value: _vm._$s(5, "v-model", _vm.formData.username), callback: function ($$v) { _vm.$set(_vm.formData, "username", $$v) }, expression: "formData.username", }, }), ], 1 ), _c( "uni-forms-item", { attrs: { _i: 6 } }, [ _c("uni-easyinput", { attrs: { type: "password", placeholder: "请输入密码", _i: 7 }, model: { value: _vm._$s(7, "v-model", _vm.formData.password), callback: function ($$v) { _vm.$set(_vm.formData, "password", $$v) }, expression: "formData.password", }, }), ], 1 ), _c("uni-forms-item", { attrs: { _i: 8 } }, [ _c("checkbox", { attrs: { checked: _vm._$s(9, "a-checked", _vm.formData.checked), _i: 9, }, on: { click: function ($event) { return _vm.handleChange(_vm.formData) }, }, }), _c("text"), ]), _c("button", { staticClass: _vm._$s(11, "sc", "button"), attrs: { _i: 11 }, on: { click: function ($event) { return _vm.login(_vm.formData) }, }, }), ], 1 ), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 10 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms/uni-forms.vue ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-forms.vue?vue&type=template&id=7ae0e404& */ 11);\n/* harmony import */ var _uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-forms.vue?vue&type=script&lang=js& */ 13);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_forms_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 _uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-forms/components/uni-forms/uni-forms.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1mb3Jtcy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2FlMGU0MDQmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktZm9ybXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktZm9ybXMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1mb3Jtcy9jb21wb25lbnRzL3VuaS1mb3Jtcy91bmktZm9ybXMudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///10\n"); /***/ }), /* 11 */ /*!************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms/uni-forms.vue?vue&type=template&id=7ae0e404& ***! \************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-forms.vue?vue&type=template&id=7ae0e404& */ 12); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_template_id_7ae0e404___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 12 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms/uni-forms.vue?vue&type=template&id=7ae0e404& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-forms"), attrs: { _i: 0 } }, [_c("form", [_vm._t("default", null, { _i: 2 })], 2)] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 13 */ /*!******************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms/uni-forms.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-forms.vue?vue&type=script&lang=js& */ 14);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZqQixDQUFnQiwrakJBQUcsRUFBQyIsImZpbGUiOiIxMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1mb3Jtcy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1mb3Jtcy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///13\n"); /***/ }), /* 14 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms/uni-forms.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _validate = _interopRequireDefault(__webpack_require__(/*! ./validate.js */ 19));\nvar _utils = __webpack_require__(/*! ./utils.js */ 27);\nvar _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 28));\n//\n//\n//\n//\n//\n//\n//\n//\n\n// 后续会慢慢废弃这个方法\n\n_vue.default.prototype.binddata = function (name, value, formName) {\n if (formName) {\n this.$refs[formName].setValue(name, value);\n } else {\n var formVm;\n for (var i in this.$refs) {\n var vm = this.$refs[i];\n if (vm && vm.$options && vm.$options.name === 'uniForms') {\n formVm = vm;\n break;\n }\n }\n if (!formVm) return __f__(\"error\", '当前 uni-froms 组件缺少 ref 属性', \" at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:38\");\n formVm.setValue(name, value);\n }\n};\n\n/**\n * Forms 表单\n * @description 由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据\n * @tutorial https://ext.dcloud.net.cn/plugin?id=2773\n * @property {Object} rules\t表单校验规则\n * @property {String} validateTrigger = [bind|submit|blur]\t校验触发器方式 默认 submit\n * @value bind\t\t发生变化时触发\n * @value submit\t提交时触发\n * @value blur\t 失去焦点时触发\n * @property {String} labelPosition = [top|left]\tlabel 位置 默认 left\n * @value top\t\t顶部显示 label\n * @value left\t左侧显示 label\n * @property {String} labelWidth\tlabel 宽度,默认 65px\n * @property {String} labelAlign = [left|center|right]\tlabel 居中方式 默认 left\n * @value left\t\tlabel 左侧显示\n * @value center\tlabel 居中\n * @value right\t\tlabel 右侧对齐\n * @property {String} errShowType = [undertext|toast|modal]\t校验错误信息提示方式\n * @value undertext\t错误信息在底部显示\n * @value toast\t\t\t错误信息toast显示\n * @value modal\t\t\t错误信息modal显示\n * @event {Function} submit\t提交时触发\n * @event {Function} validate\t校验结果发生变化触发\n */\nvar _default2 = {\n name: 'uniForms',\n emits: ['validate', 'submit'],\n options: {\n virtualHost: true\n },\n props: {\n // 即将弃用\n value: {\n type: Object,\n default: function _default() {\n return null;\n }\n },\n // vue3 替换 value 属性\n modelValue: {\n type: Object,\n default: function _default() {\n return null;\n }\n },\n // 1.4.0 开始将不支持 v-model ,且废弃 value 和 modelValue\n model: {\n type: Object,\n default: function _default() {\n return null;\n }\n },\n // 表单校验规则\n rules: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n //校验错误信息提示方式 默认 undertext 取值 [undertext|toast|modal]\n errShowType: {\n type: String,\n default: 'undertext'\n },\n // 校验触发器方式 默认 bind 取值 [bind|submit]\n validateTrigger: {\n type: String,\n default: 'submit'\n },\n // label 位置,默认 left 取值 top/left\n labelPosition: {\n type: String,\n default: 'left'\n },\n // label 宽度\n labelWidth: {\n type: [String, Number],\n default: ''\n },\n // label 居中方式,默认 left 取值 left/center/right\n labelAlign: {\n type: String,\n default: 'left'\n },\n border: {\n type: Boolean,\n default: false\n }\n },\n provide: function provide() {\n return {\n uniForm: this\n };\n },\n data: function data() {\n return {\n // 表单本地值的记录,不应该与传如的值进行关联\n formData: {},\n formRules: {}\n };\n },\n computed: {\n // 计算数据源变化的\n localData: function localData() {\n var localVal = this.model || this.modelValue || this.value;\n if (localVal) {\n return (0, _utils.deepCopy)(localVal);\n }\n return {};\n }\n },\n watch: {\n // 监听数据变化 ,暂时不使用,需要单独赋值\n // localData: {},\n // 监听规则变化\n rules: {\n handler: function handler(val, oldVal) {\n this.setRules(val);\n },\n deep: true,\n immediate: true\n }\n },\n created: function created() {\n // 子组件实例数组\n this.childrens = [];\n // TODO 兼容旧版 uni-data-picker ,新版本中无效,只是避免报错\n this.inputChildrens = [];\n this.setRules(this.rules);\n },\n methods: {\n /**\n * 外部调用方法\n * 设置规则 ,主要用于小程序自定义检验规则\n * @param {Array} rules 规则源数据\n */\n setRules: function setRules(rules) {\n // TODO 有可能子组件合并规则的时机比这个要早,所以需要合并对象 ,而不是直接赋值,可能会被覆盖\n this.formRules = Object.assign({}, this.formRules, rules);\n // 初始化校验函数\n this.validator = new _validate.default(rules);\n },\n /**\n * 外部调用方法\n * 设置数据,用于设置表单数据,公开给用户使用 , 不支持在动态表单中使用\n * @param {Object} key\n * @param {Object} value\n */\n setValue: function setValue(key, value) {\n var example = this.childrens.find(function (child) {\n return child.name === key;\n });\n if (!example) return null;\n this.formData[key] = (0, _utils.getValue)(key, value, this.formRules[key] && this.formRules[key].rules || []);\n return example.onFieldChange(this.formData[key]);\n },\n /**\n * 外部调用方法\n * 手动提交校验表单\n * 对整个表单进行校验的方法,参数为一个回调函数。\n * @param {Array} keepitem 保留不参与校验的字段\n * @param {type} callback 方法回调\n */\n validate: function validate(keepitem, callback) {\n return this.checkAll(this.formData, keepitem, callback);\n },\n /**\n * 外部调用方法\n * 部分表单校验\n * @param {Array|String} props 需要校验的字段\n * @param {Function} 回调函数\n */\n validateField: function validateField() {\n var _this = this;\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n props = [].concat(props);\n var invalidFields = {};\n this.childrens.forEach(function (item) {\n var name = (0, _utils.realName)(item.name);\n if (props.indexOf(name) !== -1) {\n invalidFields = Object.assign({}, invalidFields, (0, _defineProperty2.default)({}, name, _this.formData[name]));\n }\n });\n return this.checkAll(invalidFields, [], callback);\n },\n /**\n * 外部调用方法\n * 移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果\n * @param {Array|String} props 需要移除校验的字段 ,不填为所有\n */\n clearValidate: function clearValidate() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n props = [].concat(props);\n this.childrens.forEach(function (item) {\n if (props.length === 0) {\n item.errMsg = '';\n } else {\n var name = (0, _utils.realName)(item.name);\n if (props.indexOf(name) !== -1) {\n item.errMsg = '';\n }\n }\n });\n },\n /**\n * 外部调用方法 ,即将废弃\n * 手动提交校验表单\n * 对整个表单进行校验的方法,参数为一个回调函数。\n * @param {Array} keepitem 保留不参与校验的字段\n * @param {type} callback 方法回调\n */\n submit: function submit(keepitem, callback, type) {\n var _this2 = this;\n var _loop = function _loop(i) {\n var itemData = _this2.childrens.find(function (v) {\n return v.name === i;\n });\n if (itemData) {\n if (_this2.formData[i] === undefined) {\n _this2.formData[i] = _this2._getValue(i, _this2.dataValue[i]);\n }\n }\n };\n for (var i in this.dataValue) {\n _loop(i);\n }\n if (!type) {\n __f__(\"warn\", 'submit 方法即将废弃,请使用validate方法代替!', \" at uni_modules/uni-forms/components/uni-forms/uni-forms.vue:289\");\n }\n return this.checkAll(this.formData, keepitem, callback, 'submit');\n },\n // 校验所有\n checkAll: function checkAll(invalidFields, keepitem, callback, type) {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var childrens, _loop2, i, promise, results, tempFormData, _i, child, name, result, resetFormData;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (_this3.validator) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n childrens = []; // 处理参与校验的item实例\n _loop2 = function _loop2(i) {\n var item = _this3.childrens.find(function (v) {\n return (0, _utils.realName)(v.name) === i;\n });\n if (item) {\n childrens.push(item);\n }\n };\n for (i in invalidFields) {\n _loop2(i);\n }\n\n // 如果validate第一个参数是funciont ,那就走回调\n if (!callback && typeof keepitem === 'function') {\n callback = keepitem;\n }\n // 如果不存在回调,那么使用 Promise 方式返回\n if (!callback && typeof callback !== 'function' && Promise) {\n promise = new Promise(function (resolve, reject) {\n callback = function callback(valid, invalidFields) {\n !valid ? resolve(invalidFields) : reject(valid);\n };\n });\n }\n results = []; // 避免引用错乱 ,建议拷贝对象处理\n tempFormData = JSON.parse(JSON.stringify(invalidFields)); // 所有子组件参与校验,使用 for 可以使用 awiat\n _context.t0 = _regenerator.default.keys(childrens);\n case 10:\n if ((_context.t1 = _context.t0()).done) {\n _context.next = 23;\n break;\n }\n _i = _context.t1.value;\n child = childrens[_i];\n name = (0, _utils.realName)(child.name);\n _context.next = 16;\n return child.onFieldChange(tempFormData[name]);\n case 16:\n result = _context.sent;\n if (!result) {\n _context.next = 21;\n break;\n }\n results.push(result);\n // toast ,modal 只需要执行第一次就可以\n if (!(_this3.errShowType === 'toast' || _this3.errShowType === 'modal')) {\n _context.next = 21;\n break;\n }\n return _context.abrupt(\"break\", 23);\n case 21:\n _context.next = 10;\n break;\n case 23:\n if (Array.isArray(results)) {\n if (results.length === 0) results = null;\n }\n if (Array.isArray(keepitem)) {\n keepitem.forEach(function (v) {\n var vName = (0, _utils.realName)(v);\n var value = (0, _utils.getDataValue)(v, _this3.localData);\n if (value !== undefined) {\n tempFormData[vName] = value;\n }\n });\n }\n\n // TODO submit 即将废弃\n if (type === 'submit') {\n _this3.$emit('submit', {\n detail: {\n value: tempFormData,\n errors: results\n }\n });\n } else {\n _this3.$emit('validate', results);\n }\n\n // const resetFormData = rawData(tempFormData, this.localData, this.name)\n resetFormData = {};\n resetFormData = (0, _utils.rawData)(tempFormData, _this3.name);\n callback && typeof callback === 'function' && callback(results, resetFormData);\n if (!(promise && callback)) {\n _context.next = 33;\n break;\n }\n return _context.abrupt(\"return\", promise);\n case 33:\n return _context.abrupt(\"return\", null);\n case 34:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n /**\n * 返回validate事件\n * @param {Object} result\n */\n validateCheck: function validateCheck(result) {\n this.$emit('validate', result);\n },\n _getValue: _utils.getValue,\n _isRequiredField: _utils.isRequiredField,\n _setDataValue: _utils.setDataValue,\n _getDataValue: _utils.getDataValue,\n _realName: _utils.realName,\n _isRealName: _utils.isRealName,\n _isEqual: _utils.isEqual\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWZvcm1zL2NvbXBvbmVudHMvdW5pLWZvcm1zL3VuaS1mb3Jtcy52dWUiXSwibmFtZXMiOlsiVnVlIiwiZm9ybVZtIiwibmFtZSIsImVtaXRzIiwib3B0aW9ucyIsInZpcnR1YWxIb3N0IiwicHJvcHMiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0IiwibW9kZWxWYWx1ZSIsIm1vZGVsIiwicnVsZXMiLCJlcnJTaG93VHlwZSIsInZhbGlkYXRlVHJpZ2dlciIsImxhYmVsUG9zaXRpb24iLCJsYWJlbFdpZHRoIiwibGFiZWxBbGlnbiIsImJvcmRlciIsInByb3ZpZGUiLCJ1bmlGb3JtIiwiZGF0YSIsImZvcm1EYXRhIiwiZm9ybVJ1bGVzIiwiY29tcHV0ZWQiLCJsb2NhbERhdGEiLCJ3YXRjaCIsImhhbmRsZXIiLCJkZWVwIiwiaW1tZWRpYXRlIiwiY3JlYXRlZCIsIm1ldGhvZHMiLCJzZXRSdWxlcyIsInNldFZhbHVlIiwidmFsaWRhdGUiLCJ2YWxpZGF0ZUZpZWxkIiwiaW52YWxpZEZpZWxkcyIsImNsZWFyVmFsaWRhdGUiLCJpdGVtIiwic3VibWl0IiwiaSIsImNoZWNrQWxsIiwiY2hpbGRyZW5zIiwiY2FsbGJhY2siLCJwcm9taXNlIiwicmVzdWx0cyIsInRlbXBGb3JtRGF0YSIsImNoaWxkIiwicmVzdWx0Iiwia2VlcGl0ZW0iLCJkZXRhaWwiLCJlcnJvcnMiLCJyZXNldEZvcm1EYXRhIiwidmFsaWRhdGVDaGVjayIsIl9nZXRWYWx1ZSIsIl9pc1JlcXVpcmVkRmllbGQiLCJfc2V0RGF0YVZhbHVlIiwiX2dldERhdGFWYWx1ZSIsIl9yZWFsTmFtZSIsIl9pc1JlYWxOYW1lIiwiX2lzRXF1YWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQTtBQUNBO0FBY0E7Ozs7Ozs7Ozs7QUFEQTs7QUFFQUE7RUFDQTtJQUNBO0VBQ0E7SUFDQTtJQUNBO01BQ0E7TUFDQTtRQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FBO0VBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2QkEsZ0JBd0JBO0VBQ0FDO0VBQ0FDO0VBQ0FDO0lBQ0FDO0VBQ0E7RUFDQUM7SUFDQTtJQUNBQztNQUNBQztNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0FGO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUU7TUFDQUg7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBRztNQUNBSjtNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FJO01BQ0FMO01BQ0FDO0lBQ0E7SUFDQTtJQUNBSztNQUNBTjtNQUNBQztJQUNBO0lBQ0E7SUFDQU07TUFDQVA7TUFDQUM7SUFDQTtJQUNBO0lBQ0FPO01BQ0FSO01BQ0FDO0lBQ0E7SUFDQTtJQUNBUTtNQUNBVDtNQUNBQztJQUNBO0lBQ0FTO01BQ0FWO01BQ0FDO0lBQ0E7RUFDQTtFQUNBVTtJQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0E7SUFDQTtJQUNBZDtNQUNBZTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBdUJBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7UUFBQTtNQUFBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFBQTtNQUFBO01BQUE7TUFDQTdCO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQThCLG1GQUNBbEMsNEJBQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQW1DO01BQUE7TUFDQS9CO01BQ0E7UUFDQTtVQUNBZ0M7UUFDQTtVQUNBO1VBQ0E7WUFDQUE7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQUE7TUFBQSwyQkFDQUM7UUFDQTtVQUFBO1FBQUE7UUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQUE7TUFOQTtRQUFBO01BT0E7TUFFQTtRQUNBO01BQ0E7TUFFQTtJQUNBO0lBRUE7SUFDQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQSxJQUVBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUFBO2NBQUE7Z0JBQ0FDLGdCQUNBO2dCQUFBLHlCQUNBRjtrQkFDQTtvQkFBQTtrQkFBQTtrQkFDQTtvQkFDQUU7a0JBQ0E7Z0JBQUE7Z0JBSkE7a0JBQUE7Z0JBS0E7O2dCQUVBO2dCQUNBO2tCQUNBQztnQkFDQTtnQkFHQTtnQkFDQTtrQkFDQUM7b0JBQ0FEO3NCQUNBO29CQUNBO2tCQUNBO2dCQUNBO2dCQUVBRSxjQUNBO2dCQUNBQywwREFDQTtnQkFBQSx3Q0FDQUo7Y0FBQTtnQkFBQTtrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQUY7Z0JBQ0FPO2dCQUNBN0M7Z0JBQUE7Z0JBQUEsT0FDQTZDO2NBQUE7Z0JBQUFDO2dCQUFBLEtBQ0FBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUNBSDtnQkFDQTtnQkFBQSxNQUNBO2tCQUFBO2tCQUFBO2dCQUFBO2dCQUFBO2NBQUE7Z0JBQUE7Z0JBQUE7Y0FBQTtnQkFLQTtrQkFDQTtnQkFDQTtnQkFDQTtrQkFDQUk7b0JBQ0E7b0JBQ0E7b0JBQ0E7c0JBQ0FIO29CQUNBO2tCQUNBO2dCQUNBOztnQkFFQTtnQkFDQTtrQkFDQTtvQkFDQUk7c0JBQ0EzQztzQkFDQTRDO29CQUNBO2tCQUNBO2dCQUNBO2tCQUNBO2dCQUNBOztnQkFFQTtnQkFDQUM7Z0JBQ0FBO2dCQUNBVDtnQkFBQSxNQUVBQztrQkFBQTtrQkFBQTtnQkFBQTtnQkFBQSxpQ0FDQUE7Y0FBQTtnQkFBQSxpQ0FFQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUdBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDQVM7TUFDQTtJQUNBO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0VBQ0E7QUFDQTtBQUFBLDRCIiwiZmlsZSI6IjE0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwidW5pLWZvcm1zXCI+XHJcblx0XHQ8Zm9ybT5cclxuXHRcdFx0PHNsb3Q+PC9zbG90PlxyXG5cdFx0PC9mb3JtPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IFZhbGlkYXRvciBmcm9tICcuL3ZhbGlkYXRlLmpzJztcclxuXHRpbXBvcnQge1xyXG5cdFx0ZGVlcENvcHksXHJcblx0XHRnZXRWYWx1ZSxcclxuXHRcdGlzUmVxdWlyZWRGaWVsZCxcclxuXHRcdHNldERhdGFWYWx1ZSxcclxuXHRcdGdldERhdGFWYWx1ZSxcclxuXHRcdHJlYWxOYW1lLFxyXG5cdFx0aXNSZWFsTmFtZSxcclxuXHRcdHJhd0RhdGEsXHJcblx0XHRpc0VxdWFsXHJcblx0fSBmcm9tICcuL3V0aWxzLmpzJ1xyXG5cclxuXHQvLyAjaWZuZGVmIFZVRTNcclxuXHQvLyDlkI7nu63kvJrmhaLmhaLlup/lvIPov5nkuKrmlrnms5VcclxuXHRpbXBvcnQgVnVlIGZyb20gJ3Z1ZSc7XHJcblx0VnVlLnByb3RvdHlwZS5iaW5kZGF0YSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBmb3JtTmFtZSkge1xyXG5cdFx0aWYgKGZvcm1OYW1lKSB7XHJcblx0XHRcdHRoaXMuJHJlZnNbZm9ybU5hbWVdLnNldFZhbHVlKG5hbWUsIHZhbHVlKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGxldCBmb3JtVm07XHJcblx0XHRcdGZvciAobGV0IGkgaW4gdGhpcy4kcmVmcykge1xyXG5cdFx0XHRcdGNvbnN0IHZtID0gdGhpcy4kcmVmc1tpXTtcclxuXHRcdFx0XHRpZiAodm0gJiYgdm0uJG9wdGlvbnMgJiYgdm0uJG9wdGlvbnMubmFtZSA9PT0gJ3VuaUZvcm1zJykge1xyXG5cdFx0XHRcdFx0Zm9ybVZtID0gdm07XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKCFmb3JtVm0pIHJldHVybiBjb25zb2xlLmVycm9yKCflvZPliY0gdW5pLWZyb21zIOe7hOS7tue8uuWwkSByZWYg5bGe5oCnJyk7XHJcblx0XHRcdGZvcm1WbS5zZXRWYWx1ZShuYW1lLCB2YWx1ZSk7XHJcblx0XHR9XHJcblx0fTtcclxuXHQvLyAjZW5kaWZcclxuXHQvKipcclxuXHQgKiBGb3JtcyDooajljZVcclxuXHQgKiBAZGVzY3JpcHRpb24g55Sx6L6T5YWl5qGG44CB6YCJ5oup5Zmo44CB5Y2V6YCJ5qGG44CB5aSa6YCJ5qGG562J5o6n5Lu257uE5oiQ77yM55So5Lul5pS26ZuG44CB5qCh6aqM44CB5o+Q5Lqk5pWw5o2uXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI3NzNcclxuXHQgKiBAcHJvcGVydHkge09iamVjdH0gcnVsZXNcdOihqOWNleagoemqjOinhOWImVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB2YWxpZGF0ZVRyaWdnZXIgPSBbYmluZHxzdWJtaXR8Ymx1cl1cdOagoemqjOinpuWPkeWZqOaWueW8jyDpu5jorqQgc3VibWl0XHJcblx0ICogQHZhbHVlIGJpbmRcdFx05Y+R55Sf5Y+Y5YyW5pe26Kem5Y+RXHJcblx0ICogQHZhbHVlIHN1Ym1pdFx05o+Q5Lqk5pe26Kem5Y+RXHJcblx0ICogQHZhbHVlIGJsdXJcdCAg5aSx5Y6754Sm54K55pe26Kem5Y+RXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IGxhYmVsUG9zaXRpb24gPSBbdG9wfGxlZnRdXHRsYWJlbCDkvY3nva4g6buY6K6kIGxlZnRcclxuXHQgKiBAdmFsdWUgdG9wXHRcdOmhtumDqOaYvuekuiBsYWJlbFxyXG5cdCAqIEB2YWx1ZSBsZWZ0XHTlt6bkvqfmmL7npLogbGFiZWxcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gbGFiZWxXaWR0aFx0bGFiZWwg5a695bqm77yM6buY6K6kIDY1cHhcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gbGFiZWxBbGlnbiA9IFtsZWZ0fGNlbnRlcnxyaWdodF1cdGxhYmVsIOWxheS4reaWueW8jyAg6buY6K6kIGxlZnRcclxuXHQgKiBAdmFsdWUgbGVmdFx0XHRsYWJlbCDlt6bkvqfmmL7npLpcclxuXHQgKiBAdmFsdWUgY2VudGVyXHRsYWJlbCDlsYXkuK1cclxuXHQgKiBAdmFsdWUgcmlnaHRcdFx0bGFiZWwg5Y+z5L6n5a+56b2QXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IGVyclNob3dUeXBlID0gW3VuZGVydGV4dHx0b2FzdHxtb2RhbF1cdOagoemqjOmUmeivr+S/oeaBr+aPkOekuuaWueW8j1xyXG5cdCAqIEB2YWx1ZSB1bmRlcnRleHRcdOmUmeivr+S/oeaBr+WcqOW6lemDqOaYvuekulxyXG5cdCAqIEB2YWx1ZSB0b2FzdFx0XHRcdOmUmeivr+S/oeaBr3RvYXN05pi+56S6XHJcblx0ICogQHZhbHVlIG1vZGFsXHRcdFx06ZSZ6K+v5L+h5oGvbW9kYWzmmL7npLpcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBzdWJtaXRcdOaPkOS6pOaXtuinpuWPkVxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IHZhbGlkYXRlXHTmoKHpqoznu5Pmnpzlj5HnlJ/lj5jljJbop6blj5FcclxuXHQgKi9cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiAndW5pRm9ybXMnLFxyXG5cdFx0ZW1pdHM6IFsndmFsaWRhdGUnLCAnc3VibWl0J10sXHJcblx0XHRvcHRpb25zOiB7XHJcblx0XHRcdHZpcnR1YWxIb3N0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0Ly8g5Y2z5bCG5byD55SoXHJcblx0XHRcdHZhbHVlOiB7XHJcblx0XHRcdFx0dHlwZTogT2JqZWN0LFxyXG5cdFx0XHRcdGRlZmF1bHQgKCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyB2dWUzIOabv+aNoiB2YWx1ZSDlsZ7mgKdcclxuXHRcdFx0bW9kZWxWYWx1ZToge1xyXG5cdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRkZWZhdWx0ICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gMS40LjAg5byA5aeL5bCG5LiN5pSv5oyBIHYtbW9kZWwg77yM5LiU5bqf5byDIHZhbHVlIOWSjCBtb2RlbFZhbHVlXHJcblx0XHRcdG1vZGVsOiB7XHJcblx0XHRcdFx0dHlwZTogT2JqZWN0LFxyXG5cdFx0XHRcdGRlZmF1bHQgKCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDooajljZXmoKHpqozop4TliJlcclxuXHRcdFx0cnVsZXM6IHtcclxuXHRcdFx0XHR0eXBlOiBPYmplY3QsXHJcblx0XHRcdFx0ZGVmYXVsdCAoKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4ge307XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvL+agoemqjOmUmeivr+S/oeaBr+aPkOekuuaWueW8jyDpu5jorqQgdW5kZXJ0ZXh0IOWPluWAvCBbdW5kZXJ0ZXh0fHRvYXN0fG1vZGFsXVxyXG5cdFx0XHRlcnJTaG93VHlwZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAndW5kZXJ0ZXh0J1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmoKHpqozop6blj5HlmajmlrnlvI8g6buY6K6kIGJpbmQg5Y+W5YC8IFtiaW5kfHN1Ym1pdF1cclxuXHRcdFx0dmFsaWRhdGVUcmlnZ2VyOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdzdWJtaXQnXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIGxhYmVsIOS9jee9ru+8jOm7mOiupCBsZWZ0IOWPluWAvCAgdG9wL2xlZnRcclxuXHRcdFx0bGFiZWxQb3NpdGlvbjoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnbGVmdCdcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gbGFiZWwg5a695bqmXHJcblx0XHRcdGxhYmVsV2lkdGg6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIGxhYmVsIOWxheS4reaWueW8j++8jOm7mOiupCBsZWZ0IOWPluWAvCBsZWZ0L2NlbnRlci9yaWdodFxyXG5cdFx0XHRsYWJlbEFsaWduOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICdsZWZ0J1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRib3JkZXI6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRwcm92aWRlKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHVuaUZvcm06IHRoaXNcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Ly8g6KGo5Y2V5pys5Zyw5YC855qE6K6w5b2V77yM5LiN5bqU6K+l5LiO5Lyg5aaC55qE5YC86L+b6KGM5YWz6IGUXHJcblx0XHRcdFx0Zm9ybURhdGE6IHt9LFxyXG5cdFx0XHRcdGZvcm1SdWxlczoge31cclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHQvLyDorqHnrpfmlbDmja7mupDlj5jljJbnmoRcclxuXHRcdFx0bG9jYWxEYXRhKCkge1xyXG5cdFx0XHRcdGNvbnN0IGxvY2FsVmFsID0gdGhpcy5tb2RlbCB8fCB0aGlzLm1vZGVsVmFsdWUgfHwgdGhpcy52YWx1ZVxyXG5cdFx0XHRcdGlmIChsb2NhbFZhbCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGRlZXBDb3B5KGxvY2FsVmFsKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4ge31cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdC8vIOebkeWQrOaVsOaNruWPmOWMliAs5pqC5pe25LiN5L2/55So77yM6ZyA6KaB5Y2V54us6LWL5YC8XHJcblx0XHRcdC8vIGxvY2FsRGF0YToge30sXHJcblx0XHRcdC8vIOebkeWQrOinhOWImeWPmOWMllxyXG5cdFx0XHRydWxlczoge1xyXG5cdFx0XHRcdGhhbmRsZXI6IGZ1bmN0aW9uKHZhbCwgb2xkVmFsKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNldFJ1bGVzKHZhbClcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGRlZXA6IHRydWUsXHJcblx0XHRcdFx0aW1tZWRpYXRlOiB0cnVlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cdFx0XHQvLyAjaWZkZWYgVlVFM1xyXG5cdFx0XHRsZXQgZ2V0YmluZGRhdGEgPSBnZXRBcHAoKS4kdm0uJC5hcHBDb250ZXh0LmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLmJpbmRkYXRhXHJcblx0XHRcdGlmICghZ2V0YmluZGRhdGEpIHtcclxuXHRcdFx0XHRnZXRBcHAoKS4kdm0uJC5hcHBDb250ZXh0LmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLmJpbmRkYXRhID0gZnVuY3Rpb24obmFtZSwgdmFsdWUsIGZvcm1OYW1lKSB7XHJcblx0XHRcdFx0XHRpZiAoZm9ybU5hbWUpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy4kcmVmc1tmb3JtTmFtZV0uc2V0VmFsdWUobmFtZSwgdmFsdWUpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0bGV0IGZvcm1WbTtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSBpbiB0aGlzLiRyZWZzKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3Qgdm0gPSB0aGlzLiRyZWZzW2ldO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh2bSAmJiB2bS4kb3B0aW9ucyAmJiB2bS4kb3B0aW9ucy5uYW1lID09PSAndW5pRm9ybXMnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmb3JtVm0gPSB2bTtcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAoIWZvcm1WbSkgcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ+W9k+WJjSB1bmktZnJvbXMg57uE5Lu257y65bCRIHJlZiDlsZ7mgKcnKTtcclxuXHRcdFx0XHRcdFx0Zm9ybVZtLnNldFZhbHVlKG5hbWUsIHZhbHVlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblxyXG5cdFx0XHQvLyDlrZDnu4Tku7blrp7kvovmlbDnu4RcclxuXHRcdFx0dGhpcy5jaGlsZHJlbnMgPSBbXVxyXG5cdFx0XHQvLyBUT0RPIOWFvOWuueaXp+eJiCB1bmktZGF0YS1waWNrZXIgLOaWsOeJiOacrOS4reaXoOaViO+8jOWPquaYr+mBv+WFjeaKpemUmVxyXG5cdFx0XHR0aGlzLmlucHV0Q2hpbGRyZW5zID0gW11cclxuXHRcdFx0dGhpcy5zZXRSdWxlcyh0aGlzLnJ1bGVzKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOWklumDqOiwg+eUqOaWueazlVxyXG5cdFx0XHQgKiDorr7nva7op4TliJkg77yM5Li76KaB55So5LqO5bCP56iL5bqP6Ieq5a6a5LmJ5qOA6aqM6KeE5YiZXHJcblx0XHRcdCAqIEBwYXJhbSB7QXJyYXl9IHJ1bGVzIOinhOWImea6kOaVsOaNrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0c2V0UnVsZXMocnVsZXMpIHtcclxuXHRcdFx0XHQvLyBUT0RPIOacieWPr+iDveWtkOe7hOS7tuWQiOW5tuinhOWImeeahOaXtuacuuavlOi/meS4quimgeaXqe+8jOaJgOS7pemcgOimgeWQiOW5tuWvueixoSDvvIzogIzkuI3mmK/nm7TmjqXotYvlgLzvvIzlj6/og73kvJrooqvopobnm5ZcclxuXHRcdFx0XHR0aGlzLmZvcm1SdWxlcyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZm9ybVJ1bGVzLCBydWxlcylcclxuXHRcdFx0XHQvLyDliJ3lp4vljJbmoKHpqozlh73mlbBcclxuXHRcdFx0XHR0aGlzLnZhbGlkYXRvciA9IG5ldyBWYWxpZGF0b3IocnVsZXMpO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOWklumDqOiwg+eUqOaWueazlVxyXG5cdFx0XHQgKiDorr7nva7mlbDmja7vvIznlKjkuo7orr7nva7ooajljZXmlbDmja7vvIzlhazlvIDnu5nnlKjmiLfkvb/nlKgg77yMIOS4jeaUr+aMgeWcqOWKqOaAgeihqOWNleS4reS9v+eUqFxyXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0ga2V5XHJcblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZVxyXG5cdFx0XHQgKi9cclxuXHRcdFx0c2V0VmFsdWUoa2V5LCB2YWx1ZSkge1xyXG5cdFx0XHRcdGxldCBleGFtcGxlID0gdGhpcy5jaGlsZHJlbnMuZmluZChjaGlsZCA9PiBjaGlsZC5uYW1lID09PSBrZXkpO1xyXG5cdFx0XHRcdGlmICghZXhhbXBsZSkgcmV0dXJuIG51bGw7XHJcblx0XHRcdFx0dGhpcy5mb3JtRGF0YVtrZXldID0gZ2V0VmFsdWUoa2V5LCB2YWx1ZSwgKHRoaXMuZm9ybVJ1bGVzW2tleV0gJiYgdGhpcy5mb3JtUnVsZXNba2V5XS5ydWxlcykgfHwgW10pXHJcblx0XHRcdFx0cmV0dXJuIGV4YW1wbGUub25GaWVsZENoYW5nZSh0aGlzLmZvcm1EYXRhW2tleV0pO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOWklumDqOiwg+eUqOaWueazlVxyXG5cdFx0XHQgKiDmiYvliqjmj5DkuqTmoKHpqozooajljZVcclxuXHRcdFx0ICog5a+55pW05Liq6KGo5Y2V6L+b6KGM5qCh6aqM55qE5pa55rOV77yM5Y+C5pWw5Li65LiA5Liq5Zue6LCD5Ye95pWw44CCXHJcblx0XHRcdCAqIEBwYXJhbSB7QXJyYXl9IGtlZXBpdGVtIOS/neeVmeS4jeWPguS4juagoemqjOeahOWtl+autVxyXG5cdFx0XHQgKiBAcGFyYW0ge3R5cGV9IGNhbGxiYWNrIOaWueazleWbnuiwg1xyXG5cdFx0XHQgKi9cclxuXHRcdFx0dmFsaWRhdGUoa2VlcGl0ZW0sIGNhbGxiYWNrKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuY2hlY2tBbGwodGhpcy5mb3JtRGF0YSwga2VlcGl0ZW0sIGNhbGxiYWNrKTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDlpJbpg6josIPnlKjmlrnms5VcclxuXHRcdFx0ICog6YOo5YiG6KGo5Y2V5qCh6aqMXHJcblx0XHRcdCAqIEBwYXJhbSB7QXJyYXl8U3RyaW5nfSBwcm9wcyDpnIDopoHmoKHpqoznmoTlrZfmrrVcclxuXHRcdFx0ICogQHBhcmFtIHtGdW5jdGlvbn0g5Zue6LCD5Ye95pWwXHJcblx0XHRcdCAqL1xyXG5cdFx0XHR2YWxpZGF0ZUZpZWxkKHByb3BzID0gW10sIGNhbGxiYWNrKSB7XHJcblx0XHRcdFx0cHJvcHMgPSBbXS5jb25jYXQocHJvcHMpO1xyXG5cdFx0XHRcdGxldCBpbnZhbGlkRmllbGRzID0ge307XHJcblx0XHRcdFx0dGhpcy5jaGlsZHJlbnMuZm9yRWFjaChpdGVtID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IG5hbWUgPSByZWFsTmFtZShpdGVtLm5hbWUpXHJcblx0XHRcdFx0XHRpZiAocHJvcHMuaW5kZXhPZihuYW1lKSAhPT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0aW52YWxpZEZpZWxkcyA9IE9iamVjdC5hc3NpZ24oe30sIGludmFsaWRGaWVsZHMsIHtcclxuXHRcdFx0XHRcdFx0XHRbbmFtZV06IHRoaXMuZm9ybURhdGFbbmFtZV1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuY2hlY2tBbGwoaW52YWxpZEZpZWxkcywgW10sIGNhbGxiYWNrKTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDlpJbpg6josIPnlKjmlrnms5VcclxuXHRcdFx0ICog56e76Zmk6KGo5Y2V6aG555qE5qCh6aqM57uT5p6c44CC5Lyg5YWl5b6F56e76Zmk55qE6KGo5Y2V6aG555qEIHByb3Ag5bGe5oCn5oiW6ICFIHByb3Ag57uE5oiQ55qE5pWw57uE77yM5aaC5LiN5Lyg5YiZ56e76Zmk5pW05Liq6KGo5Y2V55qE5qCh6aqM57uT5p6cXHJcblx0XHRcdCAqIEBwYXJhbSB7QXJyYXl8U3RyaW5nfSBwcm9wcyDpnIDopoHnp7vpmaTmoKHpqoznmoTlrZfmrrUg77yM5LiN5aGr5Li65omA5pyJXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRjbGVhclZhbGlkYXRlKHByb3BzID0gW10pIHtcclxuXHRcdFx0XHRwcm9wcyA9IFtdLmNvbmNhdChwcm9wcyk7XHJcblx0XHRcdFx0dGhpcy5jaGlsZHJlbnMuZm9yRWFjaChpdGVtID0+IHtcclxuXHRcdFx0XHRcdGlmIChwcm9wcy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHRcdFx0aXRlbS5lcnJNc2cgPSAnJztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5hbWUgPSByZWFsTmFtZShpdGVtLm5hbWUpXHJcblx0XHRcdFx0XHRcdGlmIChwcm9wcy5pbmRleE9mKG5hbWUpICE9PSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uZXJyTXNnID0gJyc7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDlpJbpg6josIPnlKjmlrnms5Ug77yM5Y2z5bCG5bqf5byDXHJcblx0XHRcdCAqIOaJi+WKqOaPkOS6pOagoemqjOihqOWNlVxyXG5cdFx0XHQgKiDlr7nmlbTkuKrooajljZXov5vooYzmoKHpqoznmoTmlrnms5XvvIzlj4LmlbDkuLrkuIDkuKrlm57osIPlh73mlbDjgIJcclxuXHRcdFx0ICogQHBhcmFtIHtBcnJheX0ga2VlcGl0ZW0g5L+d55WZ5LiN5Y+C5LiO5qCh6aqM55qE5a2X5q61XHJcblx0XHRcdCAqIEBwYXJhbSB7dHlwZX0gY2FsbGJhY2sg5pa55rOV5Zue6LCDXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRzdWJtaXQoa2VlcGl0ZW0sIGNhbGxiYWNrLCB0eXBlKSB7XHJcblx0XHRcdFx0Zm9yIChsZXQgaSBpbiB0aGlzLmRhdGFWYWx1ZSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgaXRlbURhdGEgPSB0aGlzLmNoaWxkcmVucy5maW5kKHYgPT4gdi5uYW1lID09PSBpKTtcclxuXHRcdFx0XHRcdGlmIChpdGVtRGF0YSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5mb3JtRGF0YVtpXSA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtRGF0YVtpXSA9IHRoaXMuX2dldFZhbHVlKGksIHRoaXMuZGF0YVZhbHVlW2ldKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKCF0eXBlKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ3N1Ym1pdCDmlrnms5XljbPlsIblup/lvIPvvIzor7fkvb/nlKh2YWxpZGF0ZeaWueazleS7o+abv++8gScpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuY2hlY2tBbGwodGhpcy5mb3JtRGF0YSwga2VlcGl0ZW0sIGNhbGxiYWNrLCAnc3VibWl0Jyk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvLyDmoKHpqozmiYDmnIlcclxuXHRcdFx0YXN5bmMgY2hlY2tBbGwoaW52YWxpZEZpZWxkcywga2VlcGl0ZW0sIGNhbGxiYWNrLCB0eXBlKSB7XHJcblx0XHRcdFx0Ly8g5LiN5a2Y5Zyo5qCh6aqM6KeE5YiZIO+8jOWImeWBnOatouagoemqjOa1geeoi1xyXG5cdFx0XHRcdGlmICghdGhpcy52YWxpZGF0b3IpIHJldHVyblxyXG5cdFx0XHRcdGxldCBjaGlsZHJlbnMgPSBbXVxyXG5cdFx0XHRcdC8vIOWkhOeQhuWPguS4juagoemqjOeahGl0ZW3lrp7kvotcclxuXHRcdFx0XHRmb3IgKGxldCBpIGluIGludmFsaWRGaWVsZHMpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGl0ZW0gPSB0aGlzLmNoaWxkcmVucy5maW5kKHYgPT4gcmVhbE5hbWUodi5uYW1lKSA9PT0gaSlcclxuXHRcdFx0XHRcdGlmIChpdGVtKSB7XHJcblx0XHRcdFx0XHRcdGNoaWxkcmVucy5wdXNoKGl0ZW0pXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyDlpoLmnpx2YWxpZGF0ZeesrOS4gOS4quWPguaVsOaYr2Z1bmNpb250ICzpgqPlsLHotbDlm57osINcclxuXHRcdFx0XHRpZiAoIWNhbGxiYWNrICYmIHR5cGVvZiBrZWVwaXRlbSA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdFx0Y2FsbGJhY2sgPSBrZWVwaXRlbTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGxldCBwcm9taXNlO1xyXG5cdFx0XHRcdC8vIOWmguaenOS4jeWtmOWcqOWbnuiwg++8jOmCo+S5iOS9v+eUqCBQcm9taXNlIOaWueW8j+i/lOWbnlxyXG5cdFx0XHRcdGlmICghY2FsbGJhY2sgJiYgdHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nICYmIFByb21pc2UpIHtcclxuXHRcdFx0XHRcdHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0XHRcdGNhbGxiYWNrID0gZnVuY3Rpb24odmFsaWQsIGludmFsaWRGaWVsZHMpIHtcclxuXHRcdFx0XHRcdFx0XHQhdmFsaWQgPyByZXNvbHZlKGludmFsaWRGaWVsZHMpIDogcmVqZWN0KHZhbGlkKTtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0bGV0IHJlc3VsdHMgPSBbXTtcclxuXHRcdFx0XHQvLyDpgb/lhY3lvJXnlKjplJnkubEg77yM5bu66K6u5ou36LSd5a+56LGh5aSE55CGXHJcblx0XHRcdFx0bGV0IHRlbXBGb3JtRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaW52YWxpZEZpZWxkcykpXHJcblx0XHRcdFx0Ly8g5omA5pyJ5a2Q57uE5Lu25Y+C5LiO5qCh6aqMLOS9v+eUqCBmb3Ig5Y+v5Lul5L2/55SoICBhd2lhdFxyXG5cdFx0XHRcdGZvciAobGV0IGkgaW4gY2hpbGRyZW5zKSB7XHJcblx0XHRcdFx0XHRjb25zdCBjaGlsZCA9IGNoaWxkcmVuc1tpXVxyXG5cdFx0XHRcdFx0bGV0IG5hbWUgPSByZWFsTmFtZShjaGlsZC5uYW1lKTtcclxuXHRcdFx0XHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNoaWxkLm9uRmllbGRDaGFuZ2UodGVtcEZvcm1EYXRhW25hbWVdKTtcclxuXHRcdFx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKHJlc3VsdCk7XHJcblx0XHRcdFx0XHRcdC8vIHRvYXN0ICxtb2RhbCDlj6rpnIDopoHmiafooYznrKzkuIDmrKHlsLHlj6/ku6VcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuZXJyU2hvd1R5cGUgPT09ICd0b2FzdCcgfHwgdGhpcy5lcnJTaG93VHlwZSA9PT0gJ21vZGFsJykgYnJlYWs7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkocmVzdWx0cykpIHtcclxuXHRcdFx0XHRcdGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMCkgcmVzdWx0cyA9IG51bGw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGtlZXBpdGVtKSkge1xyXG5cdFx0XHRcdFx0a2VlcGl0ZW0uZm9yRWFjaCh2ID0+IHtcclxuXHRcdFx0XHRcdFx0bGV0IHZOYW1lID0gcmVhbE5hbWUodik7XHJcblx0XHRcdFx0XHRcdGxldCB2YWx1ZSA9IGdldERhdGFWYWx1ZSh2LCB0aGlzLmxvY2FsRGF0YSlcclxuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdFx0XHR0ZW1wRm9ybURhdGFbdk5hbWVdID0gdmFsdWVcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBUT0RPIHN1Ym1pdCDljbPlsIblup/lvINcclxuXHRcdFx0XHRpZiAodHlwZSA9PT0gJ3N1Ym1pdCcpIHtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ3N1Ym1pdCcsIHtcclxuXHRcdFx0XHRcdFx0ZGV0YWlsOiB7XHJcblx0XHRcdFx0XHRcdFx0dmFsdWU6IHRlbXBGb3JtRGF0YSxcclxuXHRcdFx0XHRcdFx0XHRlcnJvcnM6IHJlc3VsdHNcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuJGVtaXQoJ3ZhbGlkYXRlJywgcmVzdWx0cyk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBjb25zdCByZXNldEZvcm1EYXRhID0gcmF3RGF0YSh0ZW1wRm9ybURhdGEsIHRoaXMubG9jYWxEYXRhLCB0aGlzLm5hbWUpXHJcblx0XHRcdFx0bGV0IHJlc2V0Rm9ybURhdGEgPSB7fVxyXG5cdFx0XHRcdHJlc2V0Rm9ybURhdGEgPSByYXdEYXRhKHRlbXBGb3JtRGF0YSwgdGhpcy5uYW1lKVxyXG5cdFx0XHRcdGNhbGxiYWNrICYmIHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyAmJiBjYWxsYmFjayhyZXN1bHRzLCByZXNldEZvcm1EYXRhKTtcclxuXHJcblx0XHRcdFx0aWYgKHByb21pc2UgJiYgY2FsbGJhY2spIHtcclxuXHRcdFx0XHRcdHJldHVybiBwcm9taXNlO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOi/lOWbnnZhbGlkYXRl5LqL5Lu2XHJcblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSByZXN1bHRcclxuXHRcdFx0ICovXHJcblx0XHRcdHZhbGlkYXRlQ2hlY2socmVzdWx0KSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgndmFsaWRhdGUnLCByZXN1bHQpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRfZ2V0VmFsdWU6IGdldFZhbHVlLFxyXG5cdFx0XHRfaXNSZXF1aXJlZEZpZWxkOiBpc1JlcXVpcmVkRmllbGQsXHJcblx0XHRcdF9zZXREYXRhVmFsdWU6IHNldERhdGFWYWx1ZSxcclxuXHRcdFx0X2dldERhdGFWYWx1ZTogZ2V0RGF0YVZhbHVlLFxyXG5cdFx0XHRfcmVhbE5hbWU6IHJlYWxOYW1lLFxyXG5cdFx0XHRfaXNSZWFsTmFtZTogaXNSZWFsTmFtZSxcclxuXHRcdFx0X2lzRXF1YWw6IGlzRXF1YWxcclxuXHRcdH1cclxuXHR9O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG5cdC51bmktZm9ybXMge31cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///14\n"); /***/ }), /* 15 */ /*!*********************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js ***! \*********************************************************************/ /*! exports provided: log, default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return formatLog; }); function typof (v) { var s = Object.prototype.toString.call(v) return s.substring(8, s.length - 1) } function isDebugMode () { /* eslint-disable no-undef */ return typeof __channelId__ === 'string' && __channelId__ } function jsonStringifyReplacer (k, p) { switch (typof(p)) { case 'Function': return 'function() { [native code] }' default : return p } } function log (type) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key] } console[type].apply(console, args) } function formatLog () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key] } var type = args.shift() if (isDebugMode()) { args.push(args.pop().replace('at ', 'uni-app:///')) return console[type].apply(console, args) } var msgs = args.map(function (v) { var type = Object.prototype.toString.call(v).toLowerCase() if (type === '[object object]' || type === '[object array]') { try { v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---' } catch (e) { v = type } } else { if (v === null) { v = '---NULL---' } else if (v === undefined) { v = '---UNDEFINED---' } else { var vType = typof(v).toUpperCase() if (vType === 'NUMBER' || vType === 'BOOLEAN') { v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---' } else { v = String(v) } } } return v }) var msg = '' if (msgs.length > 1) { var lastMsg = msgs.pop() msg = msgs.join('---COMMA---') if (lastMsg.indexOf(' at ') === 0) { msg += lastMsg } else { msg += '---COMMA---' + lastMsg } } else { msg = msgs[0] } console[type](msg) } /***/ }), /* 16 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/regenerator/index.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); // TODO(Babel 8): Remove this file. var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ 17)(); module.exports = runtime; // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= try { regeneratorRuntime = runtime; } catch (accidentalStrictMode) { if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") { globalThis.regeneratorRuntime = runtime; } else { Function("r", "regeneratorRuntime = r")(runtime); } } /***/ }), /* 17 */ /*!*******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ module.exports = _regeneratorRuntime = function _regeneratorRuntime() { return e; }, module.exports.__esModule = true, module.exports["default"] = module.exports; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) { if (n.call(e, o)) return next.value = e[o], next.done = !1, next; } return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) { r.push(n); } return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) { "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); } }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 18 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 19 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms/validate.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ 20));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ 22));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ 24));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 25));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 26));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar pattern = {\n email: /^\\S+?@\\S+?\\.\\S+?$/,\n idcard: /^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$/,\n url: new RegExp(\"^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$\", 'i')\n};\nvar FORMAT_MAPPING = {\n \"int\": 'integer',\n \"bool\": 'boolean',\n \"double\": 'number',\n \"long\": 'number',\n \"password\": 'string'\n // \"fileurls\": 'array'\n};\n\nfunction formatMessage(args) {\n var resources = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var defaultMessage = ['label'];\n defaultMessage.forEach(function (item) {\n if (args[item] === undefined) {\n args[item] = '';\n }\n });\n var str = resources;\n for (var key in args) {\n var reg = new RegExp('{' + key + '}');\n str = str.replace(reg, args[key]);\n }\n return str;\n}\nfunction isEmptyValue(value, type) {\n if (value === undefined || value === null) {\n return true;\n }\n if (typeof value === 'string' && !value) {\n return true;\n }\n if (Array.isArray(value) && !value.length) {\n return true;\n }\n if (type === 'object' && !Object.keys(value).length) {\n return true;\n }\n return false;\n}\nvar types = {\n integer: function integer(value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n string: function string(value) {\n return typeof value === 'string';\n },\n number: function number(value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n \"boolean\": function boolean(value) {\n return typeof value === 'boolean';\n },\n \"float\": function float(value) {\n return types.number(value) && !types.integer(value);\n },\n array: function array(value) {\n return Array.isArray(value);\n },\n object: function object(value) {\n return (0, _typeof2.default)(value) === 'object' && !types.array(value);\n },\n date: function date(value) {\n return value instanceof Date;\n },\n timestamp: function timestamp(value) {\n if (!this.integer(value) || Math.abs(value).toString().length > 16) {\n return false;\n }\n return true;\n },\n file: function file(value) {\n return typeof value.url === 'string';\n },\n email: function email(value) {\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n },\n url: function url(value) {\n return typeof value === 'string' && !!value.match(pattern.url);\n },\n pattern: function pattern(reg, value) {\n try {\n return new RegExp(reg).test(value);\n } catch (e) {\n return false;\n }\n },\n method: function method(value) {\n return typeof value === 'function';\n },\n idcard: function idcard(value) {\n return typeof value === 'string' && !!value.match(pattern.idcard);\n },\n 'url-https': function urlHttps(value) {\n return this.url(value) && value.startsWith('https://');\n },\n 'url-scheme': function urlScheme(value) {\n return value.startsWith('://');\n },\n 'url-web': function urlWeb(value) {\n return false;\n }\n};\nvar RuleValidator = /*#__PURE__*/function () {\n function RuleValidator(message) {\n (0, _classCallCheck2.default)(this, RuleValidator);\n this._message = message;\n }\n (0, _createClass2.default)(RuleValidator, [{\n key: \"validateRule\",\n value: function () {\n var _validateRule = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(fieldKey, fieldValue, value, data, allData) {\n var result, rules, hasRequired, message, i, rule, vt, now, resultExpr;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n result = null;\n rules = fieldValue.rules;\n hasRequired = rules.findIndex(function (item) {\n return item.required;\n });\n if (!(hasRequired < 0)) {\n _context.next = 8;\n break;\n }\n if (!(value === null || value === undefined)) {\n _context.next = 6;\n break;\n }\n return _context.abrupt(\"return\", result);\n case 6:\n if (!(typeof value === 'string' && !value.length)) {\n _context.next = 8;\n break;\n }\n return _context.abrupt(\"return\", result);\n case 8:\n message = this._message;\n if (!(rules === undefined)) {\n _context.next = 11;\n break;\n }\n return _context.abrupt(\"return\", message['default']);\n case 11:\n i = 0;\n case 12:\n if (!(i < rules.length)) {\n _context.next = 35;\n break;\n }\n rule = rules[i];\n vt = this._getValidateType(rule);\n Object.assign(rule, {\n label: fieldValue.label || \"[\\\"\".concat(fieldKey, \"\\\"]\")\n });\n if (!RuleValidatorHelper[vt]) {\n _context.next = 20;\n break;\n }\n result = RuleValidatorHelper[vt](rule, value, message);\n if (!(result != null)) {\n _context.next = 20;\n break;\n }\n return _context.abrupt(\"break\", 35);\n case 20:\n if (!rule.validateExpr) {\n _context.next = 26;\n break;\n }\n now = Date.now();\n resultExpr = rule.validateExpr(value, allData, now);\n if (!(resultExpr === false)) {\n _context.next = 26;\n break;\n }\n result = this._getMessage(rule, rule.errorMessage || this._message['default']);\n return _context.abrupt(\"break\", 35);\n case 26:\n if (!rule.validateFunction) {\n _context.next = 32;\n break;\n }\n _context.next = 29;\n return this.validateFunction(rule, value, data, allData, vt);\n case 29:\n result = _context.sent;\n if (!(result !== null)) {\n _context.next = 32;\n break;\n }\n return _context.abrupt(\"break\", 35);\n case 32:\n i++;\n _context.next = 12;\n break;\n case 35:\n if (result !== null) {\n result = message.TAG + result;\n }\n return _context.abrupt(\"return\", result);\n case 37:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n function validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n }\n return validateRule;\n }()\n }, {\n key: \"validateFunction\",\n value: function () {\n var _validateFunction = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(rule, value, data, allData, vt) {\n var result, callbackMessage, res;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n result = null;\n _context2.prev = 1;\n callbackMessage = null;\n _context2.next = 5;\n return rule.validateFunction(rule, value, allData || data, function (message) {\n callbackMessage = message;\n });\n case 5:\n res = _context2.sent;\n if (callbackMessage || typeof res === 'string' && res || res === false) {\n result = this._getMessage(rule, callbackMessage || res, vt);\n }\n _context2.next = 12;\n break;\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](1);\n result = this._getMessage(rule, _context2.t0.message, vt);\n case 12:\n return _context2.abrupt(\"return\", result);\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this, [[1, 9]]);\n }));\n function validateFunction(_x6, _x7, _x8, _x9, _x10) {\n return _validateFunction.apply(this, arguments);\n }\n return validateFunction;\n }()\n }, {\n key: \"_getMessage\",\n value: function _getMessage(rule, message, vt) {\n return formatMessage(rule, message || rule.errorMessage || this._message[vt] || message['default']);\n }\n }, {\n key: \"_getValidateType\",\n value: function _getValidateType(rule) {\n var result = '';\n if (rule.required) {\n result = 'required';\n } else if (rule.format) {\n result = 'format';\n } else if (rule.arrayType) {\n result = 'arrayTypeFormat';\n } else if (rule.range) {\n result = 'range';\n } else if (rule.maximum !== undefined || rule.minimum !== undefined) {\n result = 'rangeNumber';\n } else if (rule.maxLength !== undefined || rule.minLength !== undefined) {\n result = 'rangeLength';\n } else if (rule.pattern) {\n result = 'pattern';\n } else if (rule.validateFunction) {\n result = 'validateFunction';\n }\n return result;\n }\n }]);\n return RuleValidator;\n}();\nvar RuleValidatorHelper = {\n required: function required(rule, value, message) {\n if (rule.required && isEmptyValue(value, rule.format || (0, _typeof2.default)(value))) {\n return formatMessage(rule, rule.errorMessage || message.required);\n }\n return null;\n },\n range: function range(rule, value, message) {\n var range = rule.range,\n errorMessage = rule.errorMessage;\n var list = new Array(range.length);\n for (var i = 0; i < range.length; i++) {\n var item = range[i];\n if (types.object(item) && item.value !== undefined) {\n list[i] = item.value;\n } else {\n list[i] = item;\n }\n }\n var result = false;\n if (Array.isArray(value)) {\n result = new Set(value.concat(list)).size === list.length;\n } else {\n if (list.indexOf(value) > -1) {\n result = true;\n }\n }\n if (!result) {\n return formatMessage(rule, errorMessage || message['enum']);\n }\n return null;\n },\n rangeNumber: function rangeNumber(rule, value, message) {\n if (!types.number(value)) {\n return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);\n }\n var minimum = rule.minimum,\n maximum = rule.maximum,\n exclusiveMinimum = rule.exclusiveMinimum,\n exclusiveMaximum = rule.exclusiveMaximum;\n var min = exclusiveMinimum ? value <= minimum : value < minimum;\n var max = exclusiveMaximum ? value >= maximum : value > maximum;\n if (minimum !== undefined && min) {\n return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMinimum ? 'exclusiveMinimum' : 'minimum']);\n } else if (maximum !== undefined && max) {\n return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMaximum ? 'exclusiveMaximum' : 'maximum']);\n } else if (minimum !== undefined && maximum !== undefined && (min || max)) {\n return formatMessage(rule, rule.errorMessage || message['number'].range);\n }\n return null;\n },\n rangeLength: function rangeLength(rule, value, message) {\n if (!types.string(value) && !types.array(value)) {\n return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);\n }\n var min = rule.minLength;\n var max = rule.maxLength;\n var val = value.length;\n if (min !== undefined && val < min) {\n return formatMessage(rule, rule.errorMessage || message['length'].minLength);\n } else if (max !== undefined && val > max) {\n return formatMessage(rule, rule.errorMessage || message['length'].maxLength);\n } else if (min !== undefined && max !== undefined && (val < min || val > max)) {\n return formatMessage(rule, rule.errorMessage || message['length'].range);\n }\n return null;\n },\n pattern: function pattern(rule, value, message) {\n if (!types['pattern'](rule.pattern, value)) {\n return formatMessage(rule, rule.errorMessage || message.pattern.mismatch);\n }\n return null;\n },\n format: function format(rule, value, message) {\n var customTypes = Object.keys(types);\n var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : rule.format || rule.arrayType;\n if (customTypes.indexOf(format) > -1) {\n if (!types[format](value)) {\n return formatMessage(rule, rule.errorMessage || message.typeError);\n }\n }\n return null;\n },\n arrayTypeFormat: function arrayTypeFormat(rule, value, message) {\n if (!Array.isArray(value)) {\n return formatMessage(rule, rule.errorMessage || message.typeError);\n }\n for (var i = 0; i < value.length; i++) {\n var element = value[i];\n var formatResult = this.format(rule, element, message);\n if (formatResult !== null) {\n return formatResult;\n }\n }\n return null;\n }\n};\nvar SchemaValidator = /*#__PURE__*/function (_RuleValidator) {\n (0, _inherits2.default)(SchemaValidator, _RuleValidator);\n var _super = _createSuper(SchemaValidator);\n function SchemaValidator(schema, options) {\n var _this;\n (0, _classCallCheck2.default)(this, SchemaValidator);\n _this = _super.call(this, SchemaValidator.message);\n _this._schema = schema;\n _this._options = options || null;\n return _this;\n }\n (0, _createClass2.default)(SchemaValidator, [{\n key: \"updateSchema\",\n value: function updateSchema(schema) {\n this._schema = schema;\n }\n }, {\n key: \"validate\",\n value: function () {\n var _validate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(data, allData) {\n var result;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n result = this._checkFieldInSchema(data);\n if (result) {\n _context3.next = 5;\n break;\n }\n _context3.next = 4;\n return this.invokeValidate(data, false, allData);\n case 4:\n result = _context3.sent;\n case 5:\n return _context3.abrupt(\"return\", result.length ? result[0] : null);\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n function validate(_x11, _x12) {\n return _validate.apply(this, arguments);\n }\n return validate;\n }()\n }, {\n key: \"validateAll\",\n value: function () {\n var _validateAll = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(data, allData) {\n var result;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n result = this._checkFieldInSchema(data);\n if (result) {\n _context4.next = 5;\n break;\n }\n _context4.next = 4;\n return this.invokeValidate(data, true, allData);\n case 4:\n result = _context4.sent;\n case 5:\n return _context4.abrupt(\"return\", result);\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n function validateAll(_x13, _x14) {\n return _validateAll.apply(this, arguments);\n }\n return validateAll;\n }()\n }, {\n key: \"validateUpdate\",\n value: function () {\n var _validateUpdate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(data, allData) {\n var result;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n result = this._checkFieldInSchema(data);\n if (result) {\n _context5.next = 5;\n break;\n }\n _context5.next = 4;\n return this.invokeValidateUpdate(data, false, allData);\n case 4:\n result = _context5.sent;\n case 5:\n return _context5.abrupt(\"return\", result.length ? result[0] : null);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n function validateUpdate(_x15, _x16) {\n return _validateUpdate.apply(this, arguments);\n }\n return validateUpdate;\n }()\n }, {\n key: \"invokeValidate\",\n value: function () {\n var _invokeValidate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(data, all, allData) {\n var result, schema, key, value, errorMessage;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n result = [];\n schema = this._schema;\n _context6.t0 = _regenerator.default.keys(schema);\n case 3:\n if ((_context6.t1 = _context6.t0()).done) {\n _context6.next = 15;\n break;\n }\n key = _context6.t1.value;\n value = schema[key];\n _context6.next = 8;\n return this.validateRule(key, value, data[key], data, allData);\n case 8:\n errorMessage = _context6.sent;\n if (!(errorMessage != null)) {\n _context6.next = 13;\n break;\n }\n result.push({\n key: key,\n errorMessage: errorMessage\n });\n if (all) {\n _context6.next = 13;\n break;\n }\n return _context6.abrupt(\"break\", 15);\n case 13:\n _context6.next = 3;\n break;\n case 15:\n return _context6.abrupt(\"return\", result);\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n function invokeValidate(_x17, _x18, _x19) {\n return _invokeValidate.apply(this, arguments);\n }\n return invokeValidate;\n }()\n }, {\n key: \"invokeValidateUpdate\",\n value: function () {\n var _invokeValidateUpdate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(data, all, allData) {\n var result, key, errorMessage;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n result = [];\n _context7.t0 = _regenerator.default.keys(data);\n case 2:\n if ((_context7.t1 = _context7.t0()).done) {\n _context7.next = 13;\n break;\n }\n key = _context7.t1.value;\n _context7.next = 6;\n return this.validateRule(key, this._schema[key], data[key], data, allData);\n case 6:\n errorMessage = _context7.sent;\n if (!(errorMessage != null)) {\n _context7.next = 11;\n break;\n }\n result.push({\n key: key,\n errorMessage: errorMessage\n });\n if (all) {\n _context7.next = 11;\n break;\n }\n return _context7.abrupt(\"break\", 13);\n case 11:\n _context7.next = 2;\n break;\n case 13:\n return _context7.abrupt(\"return\", result);\n case 14:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n function invokeValidateUpdate(_x20, _x21, _x22) {\n return _invokeValidateUpdate.apply(this, arguments);\n }\n return invokeValidateUpdate;\n }()\n }, {\n key: \"_checkFieldInSchema\",\n value: function _checkFieldInSchema(data) {\n var keys = Object.keys(data);\n var keys2 = Object.keys(this._schema);\n if (new Set(keys.concat(keys2)).size === keys2.length) {\n return '';\n }\n var noExistFields = keys.filter(function (key) {\n return keys2.indexOf(key) < 0;\n });\n var errorMessage = formatMessage({\n field: JSON.stringify(noExistFields)\n }, SchemaValidator.message.TAG + SchemaValidator.message['defaultInvalid']);\n return [{\n key: 'invalid',\n errorMessage: errorMessage\n }];\n }\n }]);\n return SchemaValidator;\n}(RuleValidator);\nfunction Message() {\n return {\n TAG: \"\",\n default: '验证错误',\n defaultInvalid: '提交的字段{field}在数据库中并不存在',\n validateFunction: '验证无效',\n required: '{label}必填',\n 'enum': '{label}超出范围',\n timestamp: '{label}格式无效',\n whitespace: '{label}不能为空',\n typeError: '{label}类型无效',\n date: {\n format: '{label}日期{value}格式无效',\n parse: '{label}日期无法解析,{value}无效',\n invalid: '{label}日期{value}无效'\n },\n length: {\n minLength: '{label}长度不能少于{minLength}',\n maxLength: '{label}长度不能超过{maxLength}',\n range: '{label}必须介于{minLength}和{maxLength}之间'\n },\n number: {\n minimum: '{label}不能小于{minimum}',\n maximum: '{label}不能大于{maximum}',\n exclusiveMinimum: '{label}不能小于等于{minimum}',\n exclusiveMaximum: '{label}不能大于等于{maximum}',\n range: '{label}必须介于{minimum}and{maximum}之间'\n },\n pattern: {\n mismatch: '{label}格式不匹配'\n }\n };\n}\nSchemaValidator.message = new Message();\nvar _default = SchemaValidator;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWZvcm1zL2NvbXBvbmVudHMvdW5pLWZvcm1zL3ZhbGlkYXRlLmpzIl0sIm5hbWVzIjpbInBhdHRlcm4iLCJlbWFpbCIsImlkY2FyZCIsInVybCIsIlJlZ0V4cCIsIkZPUk1BVF9NQVBQSU5HIiwiZm9ybWF0TWVzc2FnZSIsImFyZ3MiLCJyZXNvdXJjZXMiLCJkZWZhdWx0TWVzc2FnZSIsImZvckVhY2giLCJpdGVtIiwidW5kZWZpbmVkIiwic3RyIiwia2V5IiwicmVnIiwicmVwbGFjZSIsImlzRW1wdHlWYWx1ZSIsInZhbHVlIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIk9iamVjdCIsImtleXMiLCJ0eXBlcyIsImludGVnZXIiLCJudW1iZXIiLCJwYXJzZUludCIsInN0cmluZyIsImlzTmFOIiwiYXJyYXkiLCJvYmplY3QiLCJkYXRlIiwiRGF0ZSIsInRpbWVzdGFtcCIsIk1hdGgiLCJhYnMiLCJ0b1N0cmluZyIsImZpbGUiLCJtYXRjaCIsInRlc3QiLCJlIiwibWV0aG9kIiwic3RhcnRzV2l0aCIsIlJ1bGVWYWxpZGF0b3IiLCJtZXNzYWdlIiwiX21lc3NhZ2UiLCJmaWVsZEtleSIsImZpZWxkVmFsdWUiLCJkYXRhIiwiYWxsRGF0YSIsInJlc3VsdCIsInJ1bGVzIiwiaGFzUmVxdWlyZWQiLCJmaW5kSW5kZXgiLCJyZXF1aXJlZCIsImkiLCJydWxlIiwidnQiLCJfZ2V0VmFsaWRhdGVUeXBlIiwiYXNzaWduIiwibGFiZWwiLCJSdWxlVmFsaWRhdG9ySGVscGVyIiwidmFsaWRhdGVFeHByIiwibm93IiwicmVzdWx0RXhwciIsIl9nZXRNZXNzYWdlIiwiZXJyb3JNZXNzYWdlIiwidmFsaWRhdGVGdW5jdGlvbiIsIlRBRyIsImNhbGxiYWNrTWVzc2FnZSIsInJlcyIsImZvcm1hdCIsImFycmF5VHlwZSIsInJhbmdlIiwibWF4aW11bSIsIm1pbmltdW0iLCJtYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJsaXN0IiwiU2V0IiwiY29uY2F0Iiwic2l6ZSIsImluZGV4T2YiLCJyYW5nZU51bWJlciIsIm1pc21hdGNoIiwiZXhjbHVzaXZlTWluaW11bSIsImV4Y2x1c2l2ZU1heGltdW0iLCJtaW4iLCJtYXgiLCJyYW5nZUxlbmd0aCIsInZhbCIsImN1c3RvbVR5cGVzIiwidHlwZUVycm9yIiwiYXJyYXlUeXBlRm9ybWF0IiwiZWxlbWVudCIsImZvcm1hdFJlc3VsdCIsIlNjaGVtYVZhbGlkYXRvciIsInNjaGVtYSIsIm9wdGlvbnMiLCJfc2NoZW1hIiwiX29wdGlvbnMiLCJfY2hlY2tGaWVsZEluU2NoZW1hIiwiaW52b2tlVmFsaWRhdGUiLCJpbnZva2VWYWxpZGF0ZVVwZGF0ZSIsImFsbCIsInZhbGlkYXRlUnVsZSIsInB1c2giLCJrZXlzMiIsIm5vRXhpc3RGaWVsZHMiLCJmaWx0ZXIiLCJmaWVsZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJNZXNzYWdlIiwiZGVmYXVsdCIsImRlZmF1bHRJbnZhbGlkIiwid2hpdGVzcGFjZSIsInBhcnNlIiwiaW52YWxpZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxPQUFPLEdBQUc7RUFDYkMsS0FBSyxFQUFFLG1CQUFtQjtFQUMxQkMsTUFBTSxFQUFFLDhGQUE4RjtFQUN0R0MsR0FBRyxFQUFFLElBQUlDLE1BQU0sQ0FDZCxnWkFBZ1osRUFDaFosR0FBRztBQUNMLENBQUM7QUFFRCxJQUFNQyxjQUFjLEdBQUc7RUFDdEIsS0FBSyxFQUFFLFNBQVM7RUFDaEIsTUFBTSxFQUFFLFNBQVM7RUFDakIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLFFBQVE7RUFDaEIsVUFBVSxFQUFFO0VBQ1o7QUFDRCxDQUFDOztBQUVELFNBQVNDLGFBQWEsQ0FBQ0MsSUFBSSxFQUFrQjtFQUFBLElBQWhCQyxTQUFTLHVFQUFHLEVBQUU7RUFDMUMsSUFBSUMsY0FBYyxHQUFHLENBQUMsT0FBTyxDQUFDO0VBQzlCQSxjQUFjLENBQUNDLE9BQU8s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Q3ZDaEQsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QmIsUUFBUSxFQUFFLFdBQVc7SUFDckIsTUFBTSxFQUFFLGFBQWE7SUFDckJyQixTQUFTLEVBQUUsYUFBYTtJQUN4Qm1GLFVBQVUsRUFBRSxhQUFhO0lBQ3pCeEIsU0FBUyxFQUFFLGFBQWE7SUFDeEI3RCxJQUFJLEVBQUU7TUFDTHdDLE1BQU0sRUFBRSxzQkFBc0I7TUFDOUI4QyxLQUFLLEVBQUUseUJBQXlCO01BQ2hDQyxPQUFPLEVBQUU7SUFDVixDQUFDO0lBQ0RsRyxNQUFNLEVBQUU7TUFDUHlELFNBQVMsRUFBRSwwQkFBMEI7TUFDckNELFNBQVMsRUFBRSwwQkFBMEI7TUFDckNILEtBQUssRUFBRTtJQUNSLENBQUM7SUFDRGhELE1BQU0sRUFBRTtNQUNQa0QsT0FBTyxFQUFFLHNCQUFzQjtNQUMvQkQsT0FBTyxFQUFFLHNCQUFzQjtNQUMvQlcsZ0JBQWdCLEVBQUUsd0JBQXdCO01BQzFDQyxnQkFBZ0IsRUFBRSx3QkFBd0I7TUFDMUNiLEtBQUssRUFBRTtJQUNSLENBQUM7SUFDRDNFLE9BQU8sRUFBRTtNQUNSc0YsUUFBUSxFQUFFO0lBQ1g7RUFDRCxDQUFDO0FBQ0Y7QUFHQVksZUFBZSxDQUFDcEQsT0FBTyxHQUFHLElBQUlxRSxPQUFPLEVBQUU7QUFBQyxlQUV6QmpCLGVBQWU7QUFBQSIsImZpbGUiOiIxOS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBwYXR0ZXJuID0ge1xyXG5cdGVtYWlsOiAvXlxcUys/QFxcUys/XFwuXFxTKz8kLyxcclxuXHRpZGNhcmQ6IC9eWzEtOV1cXGR7NX0oMTh8MTl8KFsyM11cXGQpKVxcZHsyfSgoMFsxLTldKXwoMTB8MTF8MTIpKSgoWzAtMl1bMS05XSl8MTB8MjB8MzB8MzEpXFxkezN9WzAtOVh4XSQvLFxyXG5cdHVybDogbmV3IFJlZ0V4cChcclxuXHRcdFwiXig/IW1haWx0bzopKD86KD86aHR0cHxodHRwc3xmdHApOi8vfC8vKSg/OlxcXFxTKyg/OjpcXFxcUyopP0ApPyg/Oig/Oig/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMDFdXFxcXGR8MjJbMC0zXSkoPzpcXFxcLig/OjE/XFxcXGR7MSwyfXwyWzAtNF1cXFxcZHwyNVswLTVdKSl7Mn0oPzpcXFxcLig/OlswLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMC00XVxcXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKig/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmZdezIsfSkpKXxsb2NhbGhvc3QpKD86OlxcXFxkezIsNX0pPyg/OigvfFxcXFw/fCMpW15cXFxcc10qKT8kXCIsXHJcblx0XHQnaScpXHJcbn07XHJcblxyXG5jb25zdCBGT1JNQVRfTUFQUElORyA9IHtcclxuXHRcImludFwiOiAnaW50ZWdlcicsXHJcblx0XCJib29sXCI6ICdib29sZWFuJyxcclxuXHRcImRvdWJsZVwiOiAnbnVtYmVyJyxcclxuXHRcImxvbmdcIjogJ251bWJlcicsXHJcblx0XCJwYXNzd29yZFwiOiAnc3RyaW5nJ1xyXG5cdC8vIFwiZmlsZXVybHNcIjogJ2FycmF5J1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtYXRNZXNzYWdlKGFyZ3MsIHJlc291cmNlcyA9ICcnKSB7XHJcblx0dmFyIGRlZmF1bHRNZXNzYWdlID0gWydsYWJlbCddXHJcblx0ZGVmYXVsdE1lc3NhZ2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0aWYgKGFyZ3NbaXRlbV0gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRhcmdzW2l0ZW1dID0gJydcclxuXHRcdH1cclxuXHR9KVxyXG5cclxuXHRsZXQgc3RyID0gcmVzb3VyY2VzXHJcblx0Zm9yIChsZXQga2V5IGluIGFyZ3MpIHtcclxuXHRcdGxldCByZWcgPSBuZXcgUmVnRXhwKCd7JyArIGtleSArICd9JylcclxuXHRcdHN0ciA9IHN0ci5yZXBsYWNlKHJlZywgYXJnc1trZXldKVxyXG5cdH1cclxuXHRyZXR1cm4gc3RyXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRW1wdHlWYWx1ZSh2YWx1ZSwgdHlwZSkge1xyXG5cdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHRpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aCkge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHRpZiAodHlwZSA9PT0gJ29iamVjdCcgJiYgIU9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpIHtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5jb25zdCB0eXBlcyA9IHtcclxuXHRpbnRlZ2VyKHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gdHlwZXMubnVtYmVyKHZhbHVlKSAmJiBwYXJzZUludCh2YWx1ZSwgMTApID09PSB2YWx1ZTtcclxuXHR9LFxyXG5cdHN0cmluZyh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XHJcblx0fSxcclxuXHRudW1iZXIodmFsdWUpIHtcclxuXHRcdGlmIChpc05hTih2YWx1ZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcic7XHJcblx0fSxcclxuXHRcImJvb2xlYW5cIjogZnVuY3Rpb24odmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJztcclxuXHR9LFxyXG5cdFwiZmxvYXRcIjogZnVuY3Rpb24odmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlcy5udW1iZXIodmFsdWUpICYmICF0eXBlcy5pbnRlZ2VyKHZhbHVlKTtcclxuXHR9LFxyXG5cdGFycmF5KHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XHJcblx0fSxcclxuXHRvYmplY3QodmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICF0eXBlcy5hcnJheSh2YWx1ZSk7XHJcblx0fSxcclxuXHRkYXRlKHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlO1xyXG5cdH0sXHJcblx0dGltZXN0YW1wKHZhbHVlKSB7XHJcblx0XHRpZiAoIXRoaXMuaW50ZWdlcih2YWx1ZSkgfHwgTWF0aC5hYnModmFsdWUpLnRvU3RyaW5nKCkubGVuZ3RoID4gMTYpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9LFxyXG5cdGZpbGUodmFsdWUpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgdmFsdWUudXJsID09PSAnc3RyaW5nJztcclxuXHR9LFxyXG5cdGVtYWlsKHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhIXZhbHVlLm1hdGNoKHBhdHRlcm4uZW1haWwpICYmIHZhbHVlLmxlbmd0aCA8IDI1NTtcclxuXHR9LFxyXG5cdHVybCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLnVybCk7XHJcblx0fSxcclxuXHRwYXR0ZXJuKHJlZywgdmFsdWUpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiBuZXcgUmVnRXhwKHJlZykudGVzdCh2YWx1ZSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdG1ldGhvZCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcclxuXHR9LFxyXG5cdGlkY2FyZCh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgISF2YWx1ZS5tYXRjaChwYXR0ZXJuLmlkY2FyZCk7XHJcblx0fSxcclxuXHQndXJsLWh0dHBzJyh2YWx1ZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMudXJsKHZhbHVlKSAmJiB2YWx1ZS5zdGFydHNXaXRoKCdodHRwczovLycpO1xyXG5cdH0sXHJcblx0J3VybC1zY2hlbWUnKHZhbHVlKSB7XHJcblx0XHRyZXR1cm4gdmFsdWUuc3RhcnRzV2l0aCgnOi8vJyk7XHJcblx0fSxcclxuXHQndXJsLXdlYicodmFsdWUpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcbn1cclxuXHJcbmNsYXNzIFJ1bGVWYWxpZGF0b3Ige1xyXG5cclxuXHRjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcblx0XHR0aGlzLl9tZXNzYWdlID0gbWVzc2FnZVxyXG5cdH1cclxuXHJcblx0YXN5bmMgdmFsaWRhdGVSdWxlKGZpZWxkS2V5LCBmaWVsZFZhbHVlLCB2YWx1ZSwgZGF0YSwgYWxsRGF0YSkge1xyXG5cdFx0dmFyIHJlc3VsdCA9IG51bGxcclxuXHJcblx0XHRsZXQgcnVsZXMgPSBmaWVsZFZhbHVlLnJ1bGVzXHJcblxyXG5cdFx0bGV0IGhhc1JlcXVpcmVkID0gcnVsZXMuZmluZEluZGV4KChpdGVtKSA9PiB7XHJcblx0XHRcdHJldHVybiBpdGVtLnJlcXVpcmVkXHJcblx0XHR9KVxyXG5cdFx0aWYgKGhhc1JlcXVpcmVkIDwgMCkge1xyXG5cdFx0XHRpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdHJldHVybiByZXN1bHRcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhdmFsdWUubGVuZ3RoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3VsdFxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIG1lc3NhZ2UgPSB0aGlzLl9tZXNzYWdlXHJcblxyXG5cdFx0aWYgKHJ1bGVzID09PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuIG1lc3NhZ2VbJ2RlZmF1bHQnXVxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0bGV0IHJ1bGUgPSBydWxlc1tpXVxyXG5cdFx0XHRsZXQgdnQgPSB0aGlzLl9nZXRWYWxpZGF0ZVR5cGUocnVsZSlcclxuXHJcblx0XHRcdE9iamVjdC5hc3NpZ24ocnVsZSwge1xyXG5cdFx0XHRcdGxhYmVsOiBmaWVsZFZhbHVlLmxhYmVsIHx8IGBbXCIke2ZpZWxkS2V5fVwiXWBcclxuXHRcdFx0fSlcclxuXHJcblx0XHRcdGlmIChSdWxlVmFsaWRhdG9ySGVscGVyW3Z0XSkge1xyXG5cdFx0XHRcdHJlc3VsdCA9IFJ1bGVWYWxpZGF0b3JIZWxwZXJbdnRdKHJ1bGUsIHZhbHVlLCBtZXNzYWdlKVxyXG5cdFx0XHRcdGlmIChyZXN1bHQgIT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0YnJlYWtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChydWxlLnZhbGlkYXRlRXhwcikge1xyXG5cdFx0XHRcdGxldCBub3cgPSBEYXRlLm5vdygpXHJcblx0XHRcdFx0bGV0IHJlc3VsdEV4cHIgPSBydWxlLnZhbGlkYXRlRXhwcih2YWx1ZSwgYWxsRGF0YSwgbm93KVxyXG5cdFx0XHRcdGlmIChyZXN1bHRFeHByID09PSBmYWxzZSkge1xyXG5cdFx0XHRcdFx0cmVzdWx0ID0gdGhpcy5fZ2V0TWVzc2FnZShydWxlLCBydWxlLmVycm9yTWVzc2FnZSB8fCB0aGlzLl9tZXNzYWdlWydkZWZhdWx0J10pXHJcblx0XHRcdFx0XHRicmVha1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHJ1bGUudmFsaWRhdGVGdW5jdGlvbikge1xyXG5cdFx0XHRcdHJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGVGdW5jdGlvbihydWxlLCB2YWx1ZSwgZGF0YSwgYWxsRGF0YSwgdnQpXHJcblx0XHRcdFx0aWYgKHJlc3VsdCAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0YnJlYWtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAocmVzdWx0ICE9PSBudWxsKSB7XHJcblx0XHRcdHJlc3VsdCA9IG1lc3NhZ2UuVEFHICsgcmVzdWx0XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlc3VsdFxyXG5cdH1cclxuXHJcblx0YXN5bmMgdmFsaWRhdGVGdW5jdGlvbihydWxlLCB2YWx1ZSwgZGF0YSwgYWxsRGF0YSwgdnQpIHtcclxuXHRcdGxldCByZXN1bHQgPSBudWxsXHJcblx0XHR0cnkge1xyXG5cdFx0XHRsZXQgY2FsbGJhY2tNZXNzYWdlID0gbnVsbFxyXG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBydWxlLnZhbGlkYXRlRnVuY3Rpb24ocnVsZSwgdmFsdWUsIGFsbERhdGEgfHwgZGF0YSwgKG1lc3NhZ2UpID0+IHtcclxuXHRcdFx0XHRjYWxsYmFja01lc3NhZ2UgPSBtZXNzYWdlXHJcblx0XHRcdH0pXHJcblx0XHRcdGlmIChjYWxsYmFja01lc3NhZ2UgfHwgKHR5cGVvZiByZXMgPT09ICdzdHJpbmcnICYmIHJlcykgfHwgcmVzID09PSBmYWxzZSkge1xyXG5cdFx0XHRcdHJlc3VsdCA9IHRoaXMuX2dldE1lc3NhZ2UocnVsZSwgY2FsbGJhY2tNZXNzYWdlIHx8IHJlcywgdnQpXHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmVzdWx0ID0gdGhpcy5fZ2V0TWVzc2FnZShydWxlLCBlLm1lc3NhZ2UsIHZ0KVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHJlc3VsdFxyXG5cdH1cclxuXHJcblx0X2dldE1lc3NhZ2UocnVsZSwgbWVzc2FnZSwgdnQpIHtcclxuXHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIG1lc3NhZ2UgfHwgcnVsZS5lcnJvck1lc3NhZ2UgfHwgdGhpcy5fbWVzc2FnZVt2dF0gfHwgbWVzc2FnZVsnZGVmYXVsdCddKVxyXG5cdH1cclxuXHJcblx0X2dldFZhbGlkYXRlVHlwZShydWxlKSB7XHJcblx0XHR2YXIgcmVzdWx0ID0gJydcclxuXHRcdGlmIChydWxlLnJlcXVpcmVkKSB7XHJcblx0XHRcdHJlc3VsdCA9ICdyZXF1aXJlZCdcclxuXHRcdH0gZWxzZSBpZiAocnVsZS5mb3JtYXQpIHtcclxuXHRcdFx0cmVzdWx0ID0gJ2Zvcm1hdCdcclxuXHRcdH0gZWxzZSBpZiAocnVsZS5hcnJheVR5cGUpIHtcclxuXHRcdFx0cmVzdWx0ID0gJ2FycmF5VHlwZUZvcm1hdCdcclxuXHRcdH0gZWxzZSBpZiAocnVsZS5yYW5nZSkge1xyXG5cdFx0XHRyZXN1bHQgPSAncmFuZ2UnXHJcblx0XHR9IGVsc2UgaWYgKHJ1bGUubWF4aW11bSAhPT0gdW5kZWZpbmVkIHx8IHJ1bGUubWluaW11bSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJlc3VsdCA9ICdyYW5nZU51bWJlcidcclxuXHRcdH0gZWxzZSBpZiAocnVsZS5tYXhMZW5ndGggIT09IHVuZGVmaW5lZCB8fCBydWxlLm1pbkxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJlc3VsdCA9ICdyYW5nZUxlbmd0aCdcclxuXHRcdH0gZWxzZSBpZiAocnVsZS5wYXR0ZXJuKSB7XHJcblx0XHRcdHJlc3VsdCA9ICdwYXR0ZXJuJ1xyXG5cdFx0fSBlbHNlIGlmIChydWxlLnZhbGlkYXRlRnVuY3Rpb24pIHtcclxuXHRcdFx0cmVzdWx0ID0gJ3ZhbGlkYXRlRnVuY3Rpb24nXHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0XHJcblx0fVxyXG59XHJcblxyXG5jb25zdCBSdWxlVmFsaWRhdG9ySGVscGVyID0ge1xyXG5cdHJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBtZXNzYWdlKSB7XHJcblx0XHRpZiAocnVsZS5yZXF1aXJlZCAmJiBpc0VtcHR5VmFsdWUodmFsdWUsIHJ1bGUuZm9ybWF0IHx8IHR5cGVvZiB2YWx1ZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZvcm1hdE1lc3NhZ2UocnVsZSwgcnVsZS5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZS5yZXF1aXJlZCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGxcclxuXHR9LFxyXG5cclxuXHRyYW5nZShydWxlLCB2YWx1ZSwgbWVzc2FnZSkge1xyXG5cdFx0Y29uc3Qge1xyXG5cdFx0XHRyYW5nZSxcclxuXHRcdFx0ZXJyb3JNZXNzYWdlXHJcblx0XHR9ID0gcnVsZTtcclxuXHJcblx0XHRsZXQgbGlzdCA9IG5ldyBBcnJheShyYW5nZS5sZW5ndGgpO1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBpdGVtID0gcmFuZ2VbaV07XHJcblx0XHRcdGlmICh0eXBlcy5vYmplY3QoaXRlbSkgJiYgaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0bGlzdFtpXSA9IGl0ZW0udmFsdWU7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0bGlzdFtpXSA9IGl0ZW07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRsZXQgcmVzdWx0ID0gZmFsc2VcclxuXHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG5cdFx0XHRyZXN1bHQgPSAobmV3IFNldCh2YWx1ZS5jb25jYXQobGlzdCkpLnNpemUgPT09IGxpc3QubGVuZ3RoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGlmIChsaXN0LmluZGV4T2YodmFsdWUpID4gLTEpIHtcclxuXHRcdFx0XHRyZXN1bHQgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQpIHtcclxuXHRcdFx0cmV0dXJuIGZvcm1hdE1lc3NhZ2UocnVsZSwgZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2VbJ2VudW0nXSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGxcclxuXHR9LFxyXG5cclxuXHRyYW5nZU51bWJlcihydWxlLCB2YWx1ZSwgbWVzc2FnZSkge1xyXG5cdFx0aWYgKCF0eXBlcy5udW1iZXIodmFsdWUpKSB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIHJ1bGUuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2UucGF0dGVybi5taXNtYXRjaCk7XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IHtcclxuXHRcdFx0bWluaW11bSxcclxuXHRcdFx0bWF4aW11bSxcclxuXHRcdFx0ZXhjbHVzaXZlTWluaW11bSxcclxuXHRcdFx0ZXhjbHVzaXZlTWF4aW11bVxyXG5cdFx0fSA9IHJ1bGU7XHJcblx0XHRsZXQgbWluID0gZXhjbHVzaXZlTWluaW11bSA/IHZhbHVlIDw9IG1pbmltdW0gOiB2YWx1ZSA8IG1pbmltdW07XHJcblx0XHRsZXQgbWF4ID0gZXhjbHVzaXZlTWF4aW11bSA/IHZhbHVlID49IG1heGltdW0gOiB2YWx1ZSA+IG1heGltdW07XHJcblxyXG5cdFx0aWYgKG1pbmltdW0gIT09IHVuZGVmaW5lZCAmJiBtaW4pIHtcclxuXHRcdFx0cmV0dXJuIGZvcm1hdE1lc3NhZ2UocnVsZSwgcnVsZS5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZVsnbnVtYmVyJ11bZXhjbHVzaXZlTWluaW11bSA/XHJcblx0XHRcdFx0J2V4Y2x1c2l2ZU1pbmltdW0nIDogJ21pbmltdW0nXHJcblx0XHRcdF0pXHJcblx0XHR9IGVsc2UgaWYgKG1heGltdW0gIT09IHVuZGVmaW5lZCAmJiBtYXgpIHtcclxuXHRcdFx0cmV0dXJuIGZvcm1hdE1lc3NhZ2UocnVsZSwgcnVsZS5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZVsnbnVtYmVyJ11bZXhjbHVzaXZlTWF4aW11bSA/XHJcblx0XHRcdFx0J2V4Y2x1c2l2ZU1heGltdW0nIDogJ21heGltdW0nXHJcblx0XHRcdF0pXHJcblx0XHR9IGVsc2UgaWYgKG1pbmltdW0gIT09IHVuZGVmaW5lZCAmJiBtYXhpbXVtICE9PSB1bmRlZmluZWQgJiYgKG1pbiB8fCBtYXgpKSB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIHJ1bGUuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2VbJ251bWJlciddLnJhbmdlKVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBudWxsXHJcblx0fSxcclxuXHJcblx0cmFuZ2VMZW5ndGgocnVsZSwgdmFsdWUsIG1lc3NhZ2UpIHtcclxuXHRcdGlmICghdHlwZXMuc3RyaW5nKHZhbHVlKSAmJiAhdHlwZXMuYXJyYXkodmFsdWUpKSB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIHJ1bGUuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2UucGF0dGVybi5taXNtYXRjaCk7XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IG1pbiA9IHJ1bGUubWluTGVuZ3RoO1xyXG5cdFx0bGV0IG1heCA9IHJ1bGUubWF4TGVuZ3RoO1xyXG5cdFx0bGV0IHZhbCA9IHZhbHVlLmxlbmd0aDtcclxuXHJcblx0XHRpZiAobWluICE9PSB1bmRlZmluZWQgJiYgdmFsIDwgbWluKSB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIHJ1bGUuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2VbJ2xlbmd0aCddLm1pbkxlbmd0aClcclxuXHRcdH0gZWxzZSBpZiAobWF4ICE9PSB1bmRlZmluZWQgJiYgdmFsID4gbWF4KSB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIHJ1bGUuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2VbJ2xlbmd0aCddLm1heExlbmd0aClcclxuXHRcdH0gZWxzZSBpZiAobWluICE9PSB1bmRlZmluZWQgJiYgbWF4ICE9PSB1bmRlZmluZWQgJiYgKHZhbCA8IG1pbiB8fCB2YWwgPiBtYXgpKSB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIHJ1bGUuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2VbJ2xlbmd0aCddLnJhbmdlKVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBudWxsXHJcblx0fSxcclxuXHJcblx0cGF0dGVybihydWxlLCB2YWx1ZSwgbWVzc2FnZSkge1xyXG5cdFx0aWYgKCF0eXBlc1sncGF0dGVybiddKHJ1bGUucGF0dGVybiwgdmFsdWUpKSB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNZXNzYWdlKHJ1bGUsIHJ1bGUuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2UucGF0dGVybi5taXNtYXRjaCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGxcclxuXHR9LFxyXG5cclxuXHRmb3JtYXQocnVsZSwgdmFsdWUsIG1lc3NhZ2UpIHtcclxuXHRcdHZhciBjdXN0b21UeXBlcyA9IE9iamVjdC5rZXlzKHR5cGVzKTtcclxuXHRcdHZhciBmb3JtYXQgPSBGT1JNQVRfTUFQUElOR1tydWxlLmZvcm1hdF0gPyBGT1JNQVRfTUFQUElOR1tydWxlLmZvcm1hdF0gOiAocnVsZS5mb3JtYXQgfHwgcnVsZS5hcnJheVR5cGUpO1xyXG5cclxuXHRcdGlmIChjdXN0b21UeXBlcy5pbmRleE9mKGZvcm1hdCkgPiAtMSkge1xyXG5cdFx0XHRpZiAoIXR5cGVzW2Zvcm1hdF0odmFsdWUpKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZvcm1hdE1lc3NhZ2UocnVsZSwgcnVsZS5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZS50eXBlRXJyb3IpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGxcclxuXHR9LFxyXG5cclxuXHRhcnJheVR5cGVGb3JtYXQocnVsZSwgdmFsdWUsIG1lc3NhZ2UpIHtcclxuXHRcdGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZvcm1hdE1lc3NhZ2UocnVsZSwgcnVsZS5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZS50eXBlRXJyb3IpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0Y29uc3QgZWxlbWVudCA9IHZhbHVlW2ldO1xyXG5cdFx0XHRsZXQgZm9ybWF0UmVzdWx0ID0gdGhpcy5mb3JtYXQocnVsZSwgZWxlbWVudCwgbWVzc2FnZSlcclxuXHRcdFx0aWYgKGZvcm1hdFJlc3VsdCAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdHJldHVybiBmb3JtYXRSZXN1bHRcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBudWxsXHJcblx0fVxyXG59XHJcblxyXG5jbGFzcyBTY2hlbWFWYWxpZGF0b3IgZXh0ZW5kcyBSdWxlVmFsaWRhdG9yIHtcclxuXHJcblx0Y29uc3RydWN0b3Ioc2NoZW1hLCBvcHRpb25zKSB7XHJcblx0XHRzdXBlcihTY2hlbWFWYWxpZGF0b3IubWVzc2FnZSk7XHJcblxyXG5cdFx0dGhpcy5fc2NoZW1hID0gc2NoZW1hXHJcblx0XHR0aGlzLl9vcHRpb25zID0gb3B0aW9ucyB8fCBudWxsXHJcblx0fVxyXG5cclxuXHR1cGRhdGVTY2hlbWEoc2NoZW1hKSB7XHJcblx0XHR0aGlzLl9zY2hlbWEgPSBzY2hlbWFcclxuXHR9XHJcblxyXG5cdGFzeW5jIHZhbGlkYXRlKGRhdGEsIGFsbERhdGEpIHtcclxuXHRcdGxldCByZXN1bHQgPSB0aGlzLl9jaGVja0ZpZWxkSW5TY2hlbWEoZGF0YSlcclxuXHRcdGlmICghcmVzdWx0KSB7XHJcblx0XHRcdHJlc3VsdCA9IGF3YWl0IHRoaXMuaW52b2tlVmFsaWRhdGUoZGF0YSwgZmFsc2UsIGFsbERhdGEpXHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdFswXSA6IG51bGxcclxuXHR9XHJcblxyXG5cdGFzeW5jIHZhbGlkYXRlQWxsKGRhdGEsIGFsbERhdGEpIHtcclxuXHRcdGxldCByZXN1bHQgPSB0aGlzLl9jaGVja0ZpZWxkSW5TY2hlbWEoZGF0YSlcclxuXHRcdGlmICghcmVzdWx0KSB7XHJcblx0XHRcdHJlc3VsdCA9IGF3YWl0IHRoaXMuaW52b2tlVmFsaWRhdGUoZGF0YSwgdHJ1ZSwgYWxsRGF0YSlcclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHRcclxuXHR9XHJcblxyXG5cdGFzeW5jIHZhbGlkYXRlVXBkYXRlKGRhdGEsIGFsbERhdGEpIHtcclxuXHRcdGxldCByZXN1bHQgPSB0aGlzLl9jaGVja0ZpZWxkSW5TY2hlbWEoZGF0YSlcclxuXHRcdGlmICghcmVzdWx0KSB7XHJcblx0XHRcdHJlc3VsdCA9IGF3YWl0IHRoaXMuaW52b2tlVmFsaWRhdGVVcGRhdGUoZGF0YSwgZmFsc2UsIGFsbERhdGEpXHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdFswXSA6IG51bGxcclxuXHR9XHJcblxyXG5cdGFzeW5jIGludm9rZVZhbGlkYXRlKGRhdGEsIGFsbCwgYWxsRGF0YSkge1xyXG5cdFx0bGV0IHJlc3VsdCA9IFtdXHJcblx0XHRsZXQgc2NoZW1hID0gdGhpcy5fc2NoZW1hXHJcblx0XHRmb3IgKGxldCBrZXkgaW4gc2NoZW1hKSB7XHJcblx0XHRcdGxldCB2YWx1ZSA9IHNjaGVtYVtrZXldXHJcblx0XHRcdGxldCBlcnJvck1lc3NhZ2UgPSBhd2FpdCB0aGlzLnZhbGlkYXRlUnVsZShrZXksIHZhbHVlLCBkYXRhW2tleV0sIGRhdGEsIGFsbERhdGEpXHJcblx0XHRcdGlmIChlcnJvck1lc3NhZ2UgIT0gbnVsbCkge1xyXG5cdFx0XHRcdHJlc3VsdC5wdXNoKHtcclxuXHRcdFx0XHRcdGtleSxcclxuXHRcdFx0XHRcdGVycm9yTWVzc2FnZVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0aWYgKCFhbGwpIGJyZWFrXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHRcclxuXHR9XHJcblxyXG5cdGFzeW5jIGludm9rZVZhbGlkYXRlVXBkYXRlKGRhdGEsIGFsbCwgYWxsRGF0YSkge1xyXG5cdFx0bGV0IHJlc3VsdCA9IFtdXHJcblx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YSkge1xyXG5cdFx0XHRsZXQgZXJyb3JNZXNzYWdlID0gYXdhaXQgdGhpcy52YWxpZGF0ZVJ1bGUoa2V5LCB0aGlzLl9zY2hlbWFba2V5XSwgZGF0YVtrZXldLCBkYXRhLCBhbGxEYXRhKVxyXG5cdFx0XHRpZiAoZXJyb3JNZXNzYWdlICE9IG51bGwpIHtcclxuXHRcdFx0XHRyZXN1bHQucHVzaCh7XHJcblx0XHRcdFx0XHRrZXksXHJcblx0XHRcdFx0XHRlcnJvck1lc3NhZ2VcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdGlmICghYWxsKSBicmVha1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0XHJcblx0fVxyXG5cclxuXHRfY2hlY2tGaWVsZEluU2NoZW1hKGRhdGEpIHtcclxuXHRcdHZhciBrZXlzID0gT2JqZWN0LmtleXMoZGF0YSlcclxuXHRcdHZhciBrZXlzMiA9IE9iamVjdC5rZXlzKHRoaXMuX3NjaGVtYSlcclxuXHRcdGlmIChuZXcgU2V0KGtleXMuY29uY2F0KGtleXMyKSkuc2l6ZSA9PT0ga2V5czIubGVuZ3RoKSB7XHJcblx0XHRcdHJldHVybiAnJ1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBub0V4aXN0RmllbGRzID0ga2V5cy5maWx0ZXIoKGtleSkgPT4ge1xyXG5cdFx0XHRyZXR1cm4ga2V5czIuaW5kZXhPZihrZXkpIDwgMDtcclxuXHRcdH0pXHJcblx0XHR2YXIgZXJyb3JNZXNzYWdlID0gZm9ybWF0TWVzc2FnZSh7XHJcblx0XHRcdGZpZWxkOiBKU09OLnN0cmluZ2lmeShub0V4aXN0RmllbGRzKVxyXG5cdFx0fSwgU2NoZW1hVmFsaWRhdG9yLm1lc3NhZ2UuVEFHICsgU2NoZW1hVmFsaWRhdG9yLm1lc3NhZ2VbJ2RlZmF1bHRJbnZhbGlkJ10pXHJcblx0XHRyZXR1cm4gW3tcclxuXHRcdFx0a2V5OiAnaW52YWxpZCcsXHJcblx0XHRcdGVycm9yTWVzc2FnZVxyXG5cdFx0fV1cclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIE1lc3NhZ2UoKSB7XHJcblx0cmV0dXJuIHtcclxuXHRcdFRBRzogXCJcIixcclxuXHRcdGRlZmF1bHQ6ICfpqozor4HplJnor68nLFxyXG5cdFx0ZGVmYXVsdEludmFsaWQ6ICfmj5DkuqTnmoTlrZfmrrV7ZmllbGR95Zyo5pWw5o2u5bqT5Lit5bm25LiN5a2Y5ZyoJyxcclxuXHRcdHZhbGlkYXRlRnVuY3Rpb246ICfpqozor4Hml6DmlYgnLFxyXG5cdFx0cmVxdWlyZWQ6ICd7bGFiZWx95b+F5aGrJyxcclxuXHRcdCdlbnVtJzogJ3tsYWJlbH3otoXlh7rojIPlm7QnLFxyXG5cdFx0dGltZXN0YW1wOiAne2xhYmVsfeagvOW8j+aXoOaViCcsXHJcblx0XHR3aGl0ZXNwYWNlOiAne2xhYmVsfeS4jeiDveS4uuepuicsXHJcblx0XHR0eXBlRXJyb3I6ICd7bGFiZWx957G75Z6L5peg5pWIJyxcclxuXHRcdGRhdGU6IHtcclxuXHRcdFx0Zm9ybWF0OiAne2xhYmVsfeaXpeacn3t2YWx1ZX3moLzlvI/ml6DmlYgnLFxyXG5cdFx0XHRwYXJzZTogJ3tsYWJlbH3ml6XmnJ/ml6Dms5Xop6PmnpAse3ZhbHVlfeaXoOaViCcsXHJcblx0XHRcdGludmFsaWQ6ICd7bGFiZWx95pel5pyfe3ZhbHVlfeaXoOaViCdcclxuXHRcdH0sXHJcblx0XHRsZW5ndGg6IHtcclxuXHRcdFx0bWluTGVuZ3RoOiAne2xhYmVsfemVv+W6puS4jeiDveWwkeS6jnttaW5MZW5ndGh9JyxcclxuXHRcdFx0bWF4TGVuZ3RoOiAne2xhYmVsfemVv+W6puS4jeiDvei2hei/h3ttYXhMZW5ndGh9JyxcclxuXHRcdFx0cmFuZ2U6ICd7bGFiZWx95b+F6aG75LuL5LqOe21pbkxlbmd0aH3lkox7bWF4TGVuZ3RofeS5i+mXtCdcclxuXHRcdH0sXHJcblx0XHRudW1iZXI6IHtcclxuXHRcdFx0bWluaW11bTogJ3tsYWJlbH3kuI3og73lsI/kuo57bWluaW11bX0nLFxyXG5cdFx0XHRtYXhpbXVtOiAne2xhYmVsfeS4jeiDveWkp+S6jnttYXhpbXVtfScsXHJcblx0XHRcdGV4Y2x1c2l2ZU1pbmltdW06ICd7bGFiZWx95LiN6IO95bCP5LqO562J5LqOe21pbmltdW19JyxcclxuXHRcdFx0ZXhjbHVzaXZlTWF4aW11bTogJ3tsYWJlbH3kuI3og73lpKfkuo7nrYnkuo57bWF4aW11bX0nLFxyXG5cdFx0XHRyYW5nZTogJ3tsYWJlbH3lv4Xpobvku4vkuo57bWluaW11bX1hbmR7bWF4aW11bX3kuYvpl7QnXHJcblx0XHR9LFxyXG5cdFx0cGF0dGVybjoge1xyXG5cdFx0XHRtaXNtYXRjaDogJ3tsYWJlbH3moLzlvI/kuI3ljLnphY0nXHJcblx0XHR9XHJcblx0fTtcclxufVxyXG5cclxuXHJcblNjaGVtYVZhbGlkYXRvci5tZXNzYWdlID0gbmV3IE1lc3NhZ2UoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFNjaGVtYVZhbGlkYXRvclxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///19\n"); /***/ }), /* 20 */ /*!*********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 21); function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) setPrototypeOf(subClass, superClass); } module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 21 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _setPrototypeOf(o, p) { module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _setPrototypeOf(o, p); } module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 22 */ /*!**************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 4)["default"]; var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ 23); function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return assertThisInitialized(self); } module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 23 */ /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 24 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _getPrototypeOf(o) { module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _getPrototypeOf(o); } module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 25 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 26 */ /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 3); 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, toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 27 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms/utils.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.typeFilter = exports.type = exports.setDataValue = exports.realName = exports.rawData = exports.objSet = exports.objGet = exports.name2arr = exports.isRequiredField = exports.isRealName = exports.isNumber = exports.isEqual = exports.isBoolean = exports.getValue = exports.getDataValueType = exports.getDataValue = exports.deepCopy = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\n/**\r\n * 简单处理对象拷贝\r\n * @param {Obejct} 被拷贝对象\r\n * @@return {Object} 拷贝对象\r\n */\nvar deepCopy = function deepCopy(val) {\n return JSON.parse(JSON.stringify(val));\n};\n/**\r\n * 过滤数字类型\r\n * @param {String} format 数字类型\r\n * @@return {Boolean} 返回是否为数字类型\r\n */\nexports.deepCopy = deepCopy;\nvar typeFilter = function typeFilter(format) {\n return format === 'int' || format === 'double' || format === 'number' || format === 'timestamp';\n};\n\n/**\r\n * 把 value 转换成指定的类型,用于处理初始值,原因是初始值需要入库不能为 undefined\r\n * @param {String} key 字段名\r\n * @param {any} value 字段值\r\n * @param {Object} rules 表单校验规则\r\n */\nexports.typeFilter = typeFilter;\nvar getValue = function getValue(key, value, rules) {\n var isRuleNumType = rules.find(function (val) {\n return val.format && typeFilter(val.format);\n });\n var isRuleBoolType = rules.find(function (val) {\n return val.format && val.format === 'boolean' || val.format === 'bool';\n });\n // 输入类型为 number\n if (!!isRuleNumType) {\n if (!value && value !== 0) {\n value = null;\n } else {\n value = isNumber(Number(value)) ? Number(value) : value;\n }\n }\n\n // 输入类型为 boolean\n if (!!isRuleBoolType) {\n value = isBoolean(value) ? value : false;\n }\n return value;\n};\n\n/**\r\n * 获取表单数据\r\n * @param {String|Array} name 真实名称,需要使用 realName 获取\r\n * @param {Object} data 原始数据\r\n * @param {any} value 需要设置的值\r\n */\nexports.getValue = getValue;\nvar setDataValue = function setDataValue(field, formdata, value) {\n formdata[field] = value;\n return value || '';\n};\n\n/**\r\n * 获取表单数据\r\n * @param {String|Array} field 真实名称,需要使用 realName 获取\r\n * @param {Object} data 原始数据\r\n */\nexports.setDataValue = setDataValue;\nvar getDataValue = function getDataValue(field, data) {\n return objGet(data, field);\n};\n\n/**\r\n * 获取表单类型\r\n * @param {String|Array} field 真实名称,需要使用 realName 获取\r\n */\nexports.getDataValue = getDataValue;\nvar getDataValueType = function getDataValueType(field, data) {\n var value = getDataValue(field, data);\n return {\n type: type(value),\n value: value\n };\n};\n\n/**\r\n * 获取表单可用的真实name\r\n * @param {String|Array} name 表单name\r\n * @@return {String} 表单可用的真实name\r\n */\nexports.getDataValueType = getDataValueType;\nvar realName = function realName(name) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var base_name = _basePath(name);\n if ((0, _typeof2.default)(base_name) === 'object' && Array.isArray(base_name) && base_name.length > 1) {\n var realname = base_name.reduce(function (a, b) {\n return a += \"#\".concat(b);\n }, '_formdata_');\n return realname;\n }\n return base_name[0] || name;\n};\n\n/**\r\n * 判断是否表单可用的真实name\r\n * @param {String|Array} name 表单name\r\n * @@return {String} 表单可用的真实name\r\n */\nexports.realName = realName;\nvar isRealName = function isRealName(name) {\n var reg = /^_formdata_#*/;\n return reg.test(name);\n};\n\n/**\r\n * 获取表单数据的原始格式\r\n * @@return {Object|Array} object 需要解析的数据\r\n */\nexports.isRealName = isRealName;\nvar rawData = function rawData() {\n var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var name = arguments.length > 1 ? arguments[1] : undefined;\n var newData = JSON.parse(JSON.stringify(object));\n var formData = {};\n for (var i in newData) {\n var path = name2arr(i);\n objSet(formData, path, newData[i]);\n }\n return formData;\n};\n\n/**\r\n * 真实name还原为 array\r\n * @param {*} name \r\n */\nexports.rawData = rawData;\nvar name2arr = function name2arr(name) {\n var field = name.replace('_formdata_#', '');\n field = field.split('#').map(function (v) {\n return isNumber(v) ? Number(v) : v;\n });\n return field;\n};\n\n/**\r\n * 对象中设置值\r\n * @param {Object|Array} object 源数据\r\n * @param {String| Array} path 'a.b.c' 或 ['a',0,'b','c']\r\n * @param {String} value 需要设置的值\r\n */\nexports.name2arr = name2arr;\nvar objSet = function objSet(object, path, value) {\n if ((0, _typeof2.default)(object) !== 'object') return object;\n _basePath(path).reduce(function (o, k, i, _) {\n if (i === _.length - 1) {\n // 若遍历结束直接赋值\n o[k] = value;\n return null;\n } else if (k in o) {\n // 若存在对应路径,则返回找到的对象,进行下一次遍历\n return o[k];\n } else {\n // 若不存在对应路径,则创建对应对象,若下一路径是数字,新对象赋值为空数组,否则赋值为空对象\n o[k] = /^[0-9]{1,}$/.test(_[i + 1]) ? [] : {};\n return o[k];\n }\n }, object);\n // 返回object\n return object;\n};\n\n// 处理 path, path有三种形式:'a[0].b.c'、'a.0.b.c' 和 ['a','0','b','c'],需要统一处理成数组,便于后续使用\nexports.objSet = objSet;\nfunction _basePath(path) {\n // 若是数组,则直接返回\n if (Array.isArray(path)) return path;\n // 若有 '[',']',则替换成将 '[' 替换成 '.',去掉 ']'\n return path.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n}\n\n/**\r\n * 从对象中获取值\r\n * @param {Object|Array} object 源数据\r\n * @param {String| Array} path 'a.b.c' 或 ['a',0,'b','c']\r\n * @param {String} defaultVal 如果无法从调用链中获取值的默认值\r\n */\nvar objGet = function objGet(object, path) {\n var defaultVal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'undefined';\n // 先将path处理成统一格式\n var newPath = _basePath(path);\n // 递归处理,返回最后结果\n var val = newPath.reduce(function (o, k) {\n return (o || {})[k];\n }, object);\n return !val || val !== undefined ? val : defaultVal;\n};\n\n/**\r\n * 是否为 number 类型 \r\n * @param {any} num 需要判断的值\r\n * @return {Boolean} 是否为 number\r\n */\nexports.objGet = objGet;\nvar isNumber = function isNumber(num) {\n return !isNaN(Number(num));\n};\n\n/**\r\n * 是否为 boolean 类型 \r\n * @param {any} bool 需要判断的值\r\n * @return {Boolean} 是否为 boolean\r\n */\nexports.isNumber = isNumber;\nvar isBoolean = function isBoolean(bool) {\n return typeof bool === 'boolean';\n};\n/**\r\n * 是否有必填字段\r\n * @param {Object} rules 规则\r\n * @return {Boolean} 是否有必填字段\r\n */\nexports.isBoolean = isBoolean;\nvar isRequiredField = function isRequiredField(rules) {\n var isNoField = false;\n for (var i = 0; i < rules.length; i++) {\n var ruleData = rules[i];\n if (ruleData.required) {\n isNoField = true;\n break;\n }\n }\n return isNoField;\n};\n\n/**\r\n * 获取数据类型\r\n * @param {Any} obj 需要获取数据类型的值\r\n */\nexports.isRequiredField = isRequiredField;\nvar type = function type(obj) {\n var class2type = {};\n\n // 生成class2type映射\n \"Boolean Number String Function Array Date RegExp Object Error\".split(\" \").map(function (item, index) {\n class2type[\"[object \" + item + \"]\"] = item.toLowerCase();\n });\n if (obj == null) {\n return obj + \"\";\n }\n return (0, _typeof2.default)(obj) === \"object\" || typeof obj === \"function\" ? class2type[Object.prototype.toString.call(obj)] || \"object\" : (0, _typeof2.default)(obj);\n};\n\n/**\r\n * 判断两个值是否相等\r\n * @param {any} a 值 \r\n * @param {any} b 值 \r\n * @return {Boolean} 是否相等\r\n */\nexports.type = type;\nvar isEqual = function isEqual(a, b) {\n //如果a和b本来就全等\n if (a === b) {\n //判断是否为0和-0\n return a !== 0 || 1 / a === 1 / b;\n }\n //判断是否为null和undefined\n if (a == null || b == null) {\n return a === b;\n }\n //接下来判断a和b的数据类型\n var classNameA = toString.call(a),\n classNameB = toString.call(b);\n //如果数据类型不相等,则返回false\n if (classNameA !== classNameB) {\n return false;\n }\n //如果数据类型相等,再根据不同数据类型分别判断\n switch (classNameA) {\n case '[object RegExp]':\n case '[object String]':\n //进行字符串转换比较\n return '' + a === '' + b;\n case '[object Number]':\n //进行数字转换比较,判断是否为NaN\n if (+a !== +a) {\n return +b !== +b;\n }\n //判断是否为0或-0\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n return +a === +b;\n }\n //如果是对象类型\n if (classNameA == '[object Object]') {\n //获取a和b的属性长度\n var propsA = Object.getOwnPropertyNames(a),\n propsB = Object.getOwnPropertyNames(b);\n if (propsA.length != propsB.length) {\n return false;\n }\n for (var i = 0; i < propsA.length; i++) {\n var propName = propsA[i];\n //如果对应属性对应值不相等,则返回false\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n }\n //如果是数组类型\n if (classNameA == '[object Array]') {\n if (a.toString() == b.toString()) {\n return true;\n }\n return false;\n }\n};\nexports.isEqual = isEqual;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWZvcm1zL2NvbXBvbmVudHMvdW5pLWZvcm1zL3V0aWxzLmpzIl0sIm5hbWVzIjpbImRlZXBDb3B5IiwidmFsIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwidHlwZUZpbHRlciIsImZvcm1hdCIsImdldFZhbHVlIiwia2V5IiwidmFsdWUiLCJydWxlcyIsImlzUnVsZU51bVR5cGUiLCJmaW5kIiwiaXNSdWxlQm9vbFR5cGUiLCJpc051bWJlciIsIk51bWJlciIsImlzQm9vbGVhbiIsInNldERhdGFWYWx1ZSIsImZpZWxkIiwiZm9ybWRhdGEiLCJnZXREYXRhVmFsdWUiLCJkYXRhIiwib2JqR2V0IiwiZ2V0RGF0YVZhbHVlVHlwZSIsInR5cGUiLCJyZWFsTmFtZSIsIm5hbWUiLCJiYXNlX25hbWUiLCJfYmFzZVBhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJyZWFsbmFtZSIsInJlZHVjZSIsImEiLCJiIiwiaXNSZWFsTmFtZSIsInJlZyIsInRlc3QiLCJyYXdEYXRhIiwib2JqZWN0IiwibmV3RGF0YSIsImZvcm1EYXRhIiwiaSIsInBhdGgiLCJuYW1lMmFyciIsIm9ialNldCIsInJlcGxhY2UiLCJzcGxpdCIsIm1hcCIsInYiLCJvIiwiayIsIl8iLCJkZWZhdWx0VmFsIiwibmV3UGF0aCIsInVuZGVmaW5lZCIsIm51bSIsImlzTmFOIiwiYm9vbCIsImlzUmVxdWlyZWRGaWVsZCIsImlzTm9GaWVsZCIsInJ1bGVEYXRhIiwicmVxdWlyZWQiLCJvYmoiLCJjbGFzczJ0eXBlIiwiaXRlbSIsImluZGV4IiwidG9Mb3dlckNhc2UiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJpc0VxdWFsIiwiY2xhc3NOYW1lQSIsImNsYXNzTmFtZUIiLCJwcm9wc0EiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcHNCIiwicHJvcE5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FB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QUFLLGtCQUFrQjtNQUN0QixPQUFPLENBQUNELENBQUMsS0FBSyxDQUFDQyxDQUFDO0VBQUM7RUFFbkI7RUFDQSxJQUFJdUMsVUFBVSxJQUFJLGlCQUFpQixFQUFFO0lBQ3BDO0lBQ0EsSUFBSUUsTUFBTSxHQUFHUCxNQUFNLENBQUNRLG1CQUFtQixDQUFDM0MsQ0FBQyxDQUFDO01BQ3pDNEMsTUFBTSxHQUFHVCxNQUFNLENBQUNRLG1CQUFtQixDQUFDMUMsQ0FBQyxDQUFDO0lBQ3ZDLElBQUl5QyxNQUFNLENBQUM3QyxNQUFNLElBQUkrQyxNQUFNLENBQUMvQyxNQUFNLEVBQUU7TUFDbkMsT0FBTyxLQUFLO0lBQ2I7SUFDQSxLQUFLLElBQUlZLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR2lDLE1BQU0sQ0FBQzdDLE1BQU0sRUFBRVksQ0FBQyxFQUFFLEVBQUU7TUFDdkMsSUFBSW9DLFFBQVEsR0FBR0gsTUFBTSxDQUFDakMsQ0FBQyxDQUFDO01BQ3hCO01BQ0EsSUFBSVQsQ0FBQyxDQUFDNkMsUUFBUSxDQUFDLEtBQUs1QyxDQUFDLENBQUM0QyxRQUFRLENBQUMsRUFBRTtRQUNoQyxPQUFPLEtBQUs7TUFDYjtJQUNEO0lBQ0EsT0FBTyxJQUFJO0VBQ1o7RUFDQTtFQUNBLElBQUlMLFVBQVUsSUFBSSxnQkFBZ0IsRUFBRTtJQUNuQyxJQUFJeEMsQ0FBQyxDQUFDcUMsUUFBUSxFQUFFLElBQUlwQyxDQUFDLENBQUNvQyxRQUFRLEVBQUUsRUFBRTtNQUNqQyxPQUFPLElBQUk7SUFDWjtJQUNBLE9BQU8sS0FBSztFQUNiO0FBQ0QsQ0FBQztBQUFBIiwiZmlsZSI6IjI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIOeugOWNleWkhOeQhuWvueixoeaLt+i0nVxyXG4gKiBAcGFyYW0ge09iZWpjdH0g6KKr5ou36LSd5a+56LGhXHJcbiAqIEBAcmV0dXJuIHtPYmplY3R9IOaLt+i0neWvueixoVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGRlZXBDb3B5ID0gKHZhbCkgPT4ge1xyXG5cdHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbCkpXHJcbn1cclxuLyoqXHJcbiAqIOi/h+a7pOaVsOWtl+exu+Wei1xyXG4gKiBAcGFyYW0ge1N0cmluZ30gZm9ybWF0IOaVsOWtl+exu+Wei1xyXG4gKiBAQHJldHVybiB7Qm9vbGVhbn0g6L+U5Zue5piv5ZCm5Li65pWw5a2X57G75Z6LXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdHlwZUZpbHRlciA9IChmb3JtYXQpID0+IHtcclxuXHRyZXR1cm4gZm9ybWF0ID09PSAnaW50JyB8fCBmb3JtYXQgPT09ICdkb3VibGUnIHx8IGZvcm1hdCA9PT0gJ251bWJlcicgfHwgZm9ybWF0ID09PSAndGltZXN0YW1wJztcclxufVxyXG5cclxuLyoqXHJcbiAqIOaKiiB2YWx1ZSDovazmjaLmiJDmjIflrprnmoTnsbvlnovvvIznlKjkuo7lpITnkIbliJ3lp4vlgLzvvIzljp/lm6DmmK/liJ3lp4vlgLzpnIDopoHlhaXlupPkuI3og73kuLogdW5kZWZpbmVkXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXkg5a2X5q615ZCNXHJcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSDlrZfmrrXlgLxcclxuICogQHBhcmFtIHtPYmplY3R9IHJ1bGVzIOihqOWNleagoemqjOinhOWImVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFZhbHVlID0gKGtleSwgdmFsdWUsIHJ1bGVzKSA9PiB7XHJcblx0Y29uc3QgaXNSdWxlTnVtVHlwZSA9IHJ1bGVzLmZpbmQodmFsID0+IHZhbC5mb3JtYXQgJiYgdHlwZUZpbHRlcih2YWwuZm9ybWF0KSk7XHJcblx0Y29uc3QgaXNSdWxlQm9vbFR5cGUgPSBydWxlcy5maW5kKHZhbCA9PiAodmFsLmZvcm1hdCAmJiB2YWwuZm9ybWF0ID09PSAnYm9vbGVhbicpIHx8IHZhbC5mb3JtYXQgPT09ICdib29sJyk7XHJcblx0Ly8g6L6T5YWl57G75Z6L5Li6IG51bWJlclxyXG5cdGlmICghIWlzUnVsZU51bVR5cGUpIHtcclxuXHRcdGlmICghdmFsdWUgJiYgdmFsdWUgIT09IDApIHtcclxuXHRcdFx0dmFsdWUgPSBudWxsXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR2YWx1ZSA9IGlzTnVtYmVyKE51bWJlcih2YWx1ZSkpID8gTnVtYmVyKHZhbHVlKSA6IHZhbHVlXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyDovpPlhaXnsbvlnovkuLogYm9vbGVhblxyXG5cdGlmICghIWlzUnVsZUJvb2xUeXBlKSB7XHJcblx0XHR2YWx1ZSA9IGlzQm9vbGVhbih2YWx1ZSkgPyB2YWx1ZSA6IGZhbHNlXHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5booajljZXmlbDmja5cclxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IG5hbWUg55yf5a6e5ZCN56ew77yM6ZyA6KaB5L2/55SoIHJlYWxOYW1lIOiOt+WPllxyXG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YSDljp/lp4vmlbDmja5cclxuICogQHBhcmFtIHthbnl9IHZhbHVlICDpnIDopoHorr7nva7nmoTlgLxcclxuICovXHJcbmV4cG9ydCBjb25zdCBzZXREYXRhVmFsdWUgPSAoZmllbGQsIGZvcm1kYXRhLCB2YWx1ZSkgPT4ge1xyXG5cdGZvcm1kYXRhW2ZpZWxkXSA9IHZhbHVlXHJcblx0cmV0dXJuIHZhbHVlIHx8ICcnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5booajljZXmlbDmja5cclxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IGZpZWxkIOecn+WunuWQjeensO+8jOmcgOimgeS9v+eUqCByZWFsTmFtZSDojrflj5ZcclxuICogQHBhcmFtIHtPYmplY3R9IGRhdGEg5Y6f5aeL5pWw5o2uXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0RGF0YVZhbHVlID0gKGZpZWxkLCBkYXRhKSA9PiB7XHJcblx0cmV0dXJuIG9iakdldChkYXRhLCBmaWVsZClcclxufVxyXG5cclxuLyoqXHJcbiAqIOiOt+WPluihqOWNleexu+Wei1xyXG4gKiBAcGFyYW0ge1N0cmluZ3xBcnJheX0gZmllbGQg55yf5a6e5ZCN56ew77yM6ZyA6KaB5L2/55SoIHJlYWxOYW1lIOiOt+WPllxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldERhdGFWYWx1ZVR5cGUgPSAoZmllbGQsIGRhdGEpID0+IHtcclxuXHRjb25zdCB2YWx1ZSA9IGdldERhdGFWYWx1ZShmaWVsZCwgZGF0YSlcclxuXHRyZXR1cm4ge1xyXG5cdFx0dHlwZTogdHlwZSh2YWx1ZSksXHJcblx0XHR2YWx1ZVxyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIOiOt+WPluihqOWNleWPr+eUqOeahOecn+Wunm5hbWVcclxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IG5hbWUg6KGo5Y2VbmFtZVxyXG4gKiBAQHJldHVybiB7U3RyaW5nfSDooajljZXlj6/nlKjnmoTnnJ/lrp5uYW1lXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgcmVhbE5hbWUgPSAobmFtZSwgZGF0YSA9IHt9KSA9PiB7XHJcblx0Y29uc3QgYmFzZV9uYW1lID0gX2Jhc2VQYXRoKG5hbWUpXHJcblx0aWYgKHR5cGVvZiBiYXNlX25hbWUgPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkoYmFzZV9uYW1lKSAmJiBiYXNlX25hbWUubGVuZ3RoID4gMSkge1xyXG5cdFx0Y29uc3QgcmVhbG5hbWUgPSBiYXNlX25hbWUucmVkdWNlKChhLCBiKSA9PiBhICs9IGAjJHtifWAsICdfZm9ybWRhdGFfJylcclxuXHRcdHJldHVybiByZWFsbmFtZVxyXG5cdH1cclxuXHRyZXR1cm4gYmFzZV9uYW1lWzBdIHx8IG5hbWVcclxufVxyXG5cclxuLyoqXHJcbiAqIOWIpOaWreaYr+WQpuihqOWNleWPr+eUqOeahOecn+Wunm5hbWVcclxuICogQHBhcmFtIHtTdHJpbmd8QXJyYXl9IG5hbWUg6KGo5Y2VbmFtZVxyXG4gKiBAQHJldHVybiB7U3RyaW5nfSDooajljZXlj6/nlKjnmoTnnJ/lrp5uYW1lXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNSZWFsTmFtZSA9IChuYW1lKSA9PiB7XHJcblx0Y29uc3QgcmVnID0gL15fZm9ybWRhdGFfIyovXHJcblx0cmV0dXJuIHJlZy50ZXN0KG5hbWUpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5booajljZXmlbDmja7nmoTljp/lp4vmoLzlvI9cclxuICogQEByZXR1cm4ge09iamVjdHxBcnJheX0gb2JqZWN0IOmcgOimgeino+aekOeahOaVsOaNrlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHJhd0RhdGEgPSAob2JqZWN0ID0ge30sIG5hbWUpID0+IHtcclxuXHRsZXQgbmV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSlcclxuXHRsZXQgZm9ybURhdGEgPSB7fVxyXG5cdGZvcihsZXQgaSBpbiBuZXdEYXRhKXtcclxuXHRcdGxldCBwYXRoID0gbmFtZTJhcnIoaSlcclxuXHRcdG9ialNldChmb3JtRGF0YSxwYXRoLG5ld0RhdGFbaV0pXHJcblx0fVxyXG5cdHJldHVybiBmb3JtRGF0YVxyXG59XHJcblxyXG4vKipcclxuICog55yf5a6ebmFtZei/mOWOn+S4uiBhcnJheVxyXG4gKiBAcGFyYW0geyp9IG5hbWUgXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbmFtZTJhcnIgPSAobmFtZSkgPT4ge1xyXG5cdGxldCBmaWVsZCA9IG5hbWUucmVwbGFjZSgnX2Zvcm1kYXRhXyMnLCAnJylcclxuXHRmaWVsZCA9IGZpZWxkLnNwbGl0KCcjJykubWFwKHYgPT4gKGlzTnVtYmVyKHYpID8gTnVtYmVyKHYpIDogdikpXHJcblx0cmV0dXJuIGZpZWxkXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDlr7nosaHkuK3orr7nva7lgLxcclxuICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IG9iamVjdCDmupDmlbDmja5cclxuICogQHBhcmFtIHtTdHJpbmd8IEFycmF5fSBwYXRoICdhLmIuYycg5oiWIFsnYScsMCwnYicsJ2MnXVxyXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUg6ZyA6KaB6K6+572u55qE5YC8XHJcbiAqL1xyXG5leHBvcnQgY29uc3Qgb2JqU2V0ID0gKG9iamVjdCwgcGF0aCwgdmFsdWUpID0+IHtcclxuXHRpZiAodHlwZW9mIG9iamVjdCAhPT0gJ29iamVjdCcpIHJldHVybiBvYmplY3Q7XHJcblx0X2Jhc2VQYXRoKHBhdGgpLnJlZHVjZSgobywgaywgaSwgXykgPT4ge1xyXG5cdFx0aWYgKGkgPT09IF8ubGVuZ3RoIC0gMSkgeyBcclxuXHRcdFx0Ly8g6Iul6YGN5Y6G57uT5p2f55u05o6l6LWL5YC8XHJcblx0XHRcdG9ba10gPSB2YWx1ZVxyXG5cdFx0XHRyZXR1cm4gbnVsbFxyXG5cdFx0fSBlbHNlIGlmIChrIGluIG8pIHsgXHJcblx0XHRcdC8vIOiLpeWtmOWcqOWvueW6lOi3r+W+hO+8jOWImei/lOWbnuaJvuWIsOeahOWvueixoe+8jOi/m+ihjOS4i+S4gOasoemBjeWOhlxyXG5cdFx0XHRyZXR1cm4gb1trXVxyXG5cdFx0fSBlbHNlIHsgXHJcblx0XHRcdC8vIOiLpeS4jeWtmOWcqOWvueW6lOi3r+W+hO+8jOWImeWIm+W7uuWvueW6lOWvueixoe+8jOiLpeS4i+S4gOi3r+W+hOaYr+aVsOWtl++8jOaWsOWvueixoei1i+WAvOS4uuepuuaVsOe7hO+8jOWQpuWImei1i+WAvOS4uuepuuWvueixoVxyXG5cdFx0XHRvW2tdID0gL15bMC05XXsxLH0kLy50ZXN0KF9baSArIDFdKSA/IFtdIDoge31cclxuXHRcdFx0cmV0dXJuIG9ba11cclxuXHRcdH1cclxuXHR9LCBvYmplY3QpXHJcblx0Ly8g6L+U5Zueb2JqZWN0XHJcblx0cmV0dXJuIG9iamVjdDtcclxufVxyXG5cclxuLy8g5aSE55CGIHBhdGjvvIwgcGF0aOacieS4ieenjeW9ouW8j++8midhWzBdLmIuYyfjgIEnYS4wLmIuYycg5ZKMIFsnYScsJzAnLCdiJywnYydd77yM6ZyA6KaB57uf5LiA5aSE55CG5oiQ5pWw57uE77yM5L6/5LqO5ZCO57ut5L2/55SoXHJcbmZ1bmN0aW9uIF9iYXNlUGF0aChwYXRoKSB7XHJcblx0Ly8g6Iul5piv5pWw57uE77yM5YiZ55u05o6l6L+U5ZueXHJcblx0aWYgKEFycmF5LmlzQXJyYXkocGF0aCkpIHJldHVybiBwYXRoXHJcblx0Ly8g6Iul5pyJICdbJywnXSfvvIzliJnmm7/mjaLmiJDlsIYgJ1snIOabv+aNouaIkCAnLics5Y675o6JICddJ1xyXG5cdHJldHVybiBwYXRoLnJlcGxhY2UoL1xcWy9nLCAnLicpLnJlcGxhY2UoL1xcXS9nLCAnJykuc3BsaXQoJy4nKVxyXG59XHJcblxyXG4vKipcclxuICog5LuO5a+56LGh5Lit6I635Y+W5YC8XHJcbiAqIEBwYXJhbSB7T2JqZWN0fEFycmF5fSBvYmplY3Qg5rqQ5pWw5o2uXHJcbiAqIEBwYXJhbSB7U3RyaW5nfCBBcnJheX0gcGF0aCAnYS5iLmMnIOaIliBbJ2EnLDAsJ2InLCdjJ11cclxuICogQHBhcmFtIHtTdHJpbmd9IGRlZmF1bHRWYWwg5aaC5p6c5peg5rOV5LuO6LCD55So6ZO+5Lit6I635Y+W5YC855qE6buY6K6k5YC8XHJcbiAqL1xyXG5leHBvcnQgY29uc3Qgb2JqR2V0ID0gKG9iamVjdCwgcGF0aCwgZGVmYXVsdFZhbCA9ICd1bmRlZmluZWQnKSA9PiB7XHJcblx0Ly8g5YWI5bCGcGF0aOWkhOeQhuaIkOe7n+S4gOagvOW8j1xyXG5cdGxldCBuZXdQYXRoID0gX2Jhc2VQYXRoKHBhdGgpXHJcblx0Ly8g6YCS5b2S5aSE55CG77yM6L+U5Zue5pyA5ZCO57uT5p6cXHJcblx0bGV0IHZhbCA9IG5ld1BhdGgucmVkdWNlKChvLCBrKSA9PiB7XHJcblx0XHRyZXR1cm4gKG8gfHwge30pW2tdXHJcblx0fSwgb2JqZWN0KTtcclxuXHRyZXR1cm4gIXZhbCB8fCB2YWwgIT09IHVuZGVmaW5lZCA/IHZhbCA6IGRlZmF1bHRWYWxcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiDmmK/lkKbkuLogbnVtYmVyIOexu+WeiyBcclxuICogQHBhcmFtIHthbnl9IG51bSDpnIDopoHliKTmlq3nmoTlgLxcclxuICogQHJldHVybiB7Qm9vbGVhbn0g5piv5ZCm5Li6IG51bWJlclxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGlzTnVtYmVyID0gKG51bSkgPT4ge1xyXG5cdHJldHVybiAhaXNOYU4oTnVtYmVyKG51bSkpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDmmK/lkKbkuLogYm9vbGVhbiDnsbvlnosgXHJcbiAqIEBwYXJhbSB7YW55fSBib29sIOmcgOimgeWIpOaWreeahOWAvFxyXG4gKiBAcmV0dXJuIHtCb29sZWFufSDmmK/lkKbkuLogYm9vbGVhblxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGlzQm9vbGVhbiA9IChib29sKSA9PiB7XHJcblx0cmV0dXJuICh0eXBlb2YgYm9vbCA9PT0gJ2Jvb2xlYW4nKVxyXG59XHJcbi8qKlxyXG4gKiDmmK/lkKbmnInlv4XloavlrZfmrrVcclxuICogQHBhcmFtIHtPYmplY3R9IHJ1bGVzIOinhOWImVxyXG4gKiBAcmV0dXJuIHtCb29sZWFufSDmmK/lkKbmnInlv4XloavlrZfmrrVcclxuICovXHJcbmV4cG9ydCBjb25zdCBpc1JlcXVpcmVkRmllbGQgPSAocnVsZXMpID0+IHtcclxuXHRsZXQgaXNOb0ZpZWxkID0gZmFsc2U7XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0Y29uc3QgcnVsZURhdGEgPSBydWxlc1tpXTtcclxuXHRcdGlmIChydWxlRGF0YS5yZXF1aXJlZCkge1xyXG5cdFx0XHRpc05vRmllbGQgPSB0cnVlO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIGlzTm9GaWVsZDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiDojrflj5bmlbDmja7nsbvlnotcclxuICogQHBhcmFtIHtBbnl9IG9iaiDpnIDopoHojrflj5bmlbDmja7nsbvlnovnmoTlgLxcclxuICovXHJcbmV4cG9ydCBjb25zdCB0eXBlID0gKG9iaikgPT4ge1xyXG5cdHZhciBjbGFzczJ0eXBlID0ge307XHJcblxyXG5cdC8vIOeUn+aIkGNsYXNzMnR5cGXmmKDlsIRcclxuXHRcIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3JcIi5zcGxpdChcIiBcIikubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcblx0XHRjbGFzczJ0eXBlW1wiW29iamVjdCBcIiArIGl0ZW0gKyBcIl1cIl0gPSBpdGVtLnRvTG93ZXJDYXNlKCk7XHJcblx0fSlcclxuXHRpZiAob2JqID09IG51bGwpIHtcclxuXHRcdHJldHVybiBvYmogKyBcIlwiO1xyXG5cdH1cclxuXHRyZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIgP1xyXG5cdFx0Y2xhc3MydHlwZVtPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKV0gfHwgXCJvYmplY3RcIiA6XHJcblx0XHR0eXBlb2Ygb2JqO1xyXG59XHJcblxyXG4vKipcclxuICog5Yik5pat5Lik5Liq5YC85piv5ZCm55u4562JXHJcbiAqIEBwYXJhbSB7YW55fSBhIOWAvCAgXHJcbiAqIEBwYXJhbSB7YW55fSBiIOWAvCAgXHJcbiAqIEByZXR1cm4ge0Jvb2xlYW59IOaYr+WQpuebuOetiVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGlzRXF1YWwgPSAoYSwgYikgPT4ge1xyXG5cdC8v5aaC5p6cYeWSjGLmnKzmnaXlsLHlhajnrYlcclxuXHRpZiAoYSA9PT0gYikge1xyXG5cdFx0Ly/liKTmlq3mmK/lkKbkuLow5ZKMLTBcclxuXHRcdHJldHVybiBhICE9PSAwIHx8IDEgLyBhID09PSAxIC8gYjtcclxuXHR9XHJcblx0Ly/liKTmlq3mmK/lkKbkuLpudWxs5ZKMdW5kZWZpbmVkXHJcblx0aWYgKGEgPT0gbnVsbCB8fCBiID09IG51bGwpIHtcclxuXHRcdHJldHVybiBhID09PSBiO1xyXG5cdH1cclxuXHQvL+aOpeS4i+adpeWIpOaWrWHlkoxi55qE5pWw5o2u57G75Z6LXHJcblx0dmFyIGNsYXNzTmFtZUEgPSB0b1N0cmluZy5jYWxsKGEpLFxyXG5cdFx0Y2xhc3NOYW1lQiA9IHRvU3RyaW5nLmNhbGwoYik7XHJcblx0Ly/lpoLmnpzmlbDmja7nsbvlnovkuI3nm7jnrYnvvIzliJnov5Tlm55mYWxzZVxyXG5cdGlmIChjbGFzc05hbWVBICE9PSBjbGFzc05hbWVCKSB7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cdC8v5aaC5p6c5pWw5o2u57G75Z6L55u4562J77yM5YaN5qC55o2u5LiN5ZCM5pWw5o2u57G75Z6L5YiG5Yir5Yik5patXHJcblx0c3dpdGNoIChjbGFzc05hbWVBKSB7XHJcblx0XHRjYXNlICdbb2JqZWN0IFJlZ0V4cF0nOlxyXG5cdFx0Y2FzZSAnW29iamVjdCBTdHJpbmddJzpcclxuXHRcdFx0Ly/ov5vooYzlrZfnrKbkuLLovazmjaLmr5TovoNcclxuXHRcdFx0cmV0dXJuICcnICsgYSA9PT0gJycgKyBiO1xyXG5cdFx0Y2FzZSAnW29iamVjdCBOdW1iZXJdJzpcclxuXHRcdFx0Ly/ov5vooYzmlbDlrZfovazmjaLmr5TovoMs5Yik5pat5piv5ZCm5Li6TmFOXHJcblx0XHRcdGlmICgrYSAhPT0gK2EpIHtcclxuXHRcdFx0XHRyZXR1cm4gK2IgIT09ICtiO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8v5Yik5pat5piv5ZCm5Li6MOaIli0wXHJcblx0XHRcdHJldHVybiArYSA9PT0gMCA/IDEgLyArYSA9PT0gMSAvIGIgOiArYSA9PT0gK2I7XHJcblx0XHRjYXNlICdbb2JqZWN0IERhdGVdJzpcclxuXHRcdGNhc2UgJ1tvYmplY3QgQm9vbGVhbl0nOlxyXG5cdFx0XHRyZXR1cm4gK2EgPT09ICtiO1xyXG5cdH1cclxuXHQvL+WmguaenOaYr+Wvueixoeexu+Wei1xyXG5cdGlmIChjbGFzc05hbWVBID09ICdbb2JqZWN0IE9iamVjdF0nKSB7XHJcblx0XHQvL+iOt+WPlmHlkoxi55qE5bGe5oCn6ZW/5bqmXHJcblx0XHR2YXIgcHJvcHNBID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYSksXHJcblx0XHRcdHByb3BzQiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpO1xyXG5cdFx0aWYgKHByb3BzQS5sZW5ndGggIT0gcHJvcHNCLmxlbmd0aCkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzQS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHR2YXIgcHJvcE5hbWUgPSBwcm9wc0FbaV07XHJcblx0XHRcdC8v5aaC5p6c5a+55bqU5bGe5oCn5a+55bqU5YC85LiN55u4562J77yM5YiZ6L+U5ZueZmFsc2VcclxuXHRcdFx0aWYgKGFbcHJvcE5hbWVdICE9PSBiW3Byb3BOYW1lXSkge1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cdC8v5aaC5p6c5piv5pWw57uE57G75Z6LXHJcblx0aWYgKGNsYXNzTmFtZUEgPT0gJ1tvYmplY3QgQXJyYXldJykge1xyXG5cdFx0aWYgKGEudG9TdHJpbmcoKSA9PSBiLnRvU3RyaW5nKCkpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///27\n"); /***/ }), /* 28 */ /*!**********************!*\ !*** external "Vue" ***! \**********************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = Vue; /***/ }), /* 29 */ /*!**********************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***! \**********************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", 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 */ components, // fixed by xxxxxx auto components renderjs // fixed by xxxxxx renderjs ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // fixed by xxxxxx auto components if (components) { if (!options.components) { options.components = {} } var hasOwn = Object.prototype.hasOwnProperty for (var name in components) { if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) { options.components[name] = components[name] } } } // fixed by xxxxxx renderjs if (renderjs) { if(typeof renderjs.beforeCreate === 'function'){ renderjs.beforeCreate = [renderjs.beforeCreate] } (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() { this[renderjs.__module] = this }); (options.mixins || (options.mixins = [])).push(renderjs) } // 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, 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 functioal 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 } } /***/ }), /* 30 */ /*!***************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-forms-item.vue?vue&type=template&id=61dfc0d0& */ 31);\n/* harmony import */ var _uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-forms-item.vue?vue&type=script&lang=js& */ 33);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_forms_item_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 _uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMkg7QUFDM0g7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSx5RkFBTTtBQUNSLEVBQUUsa0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1mb3Jtcy1pdGVtLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02MWRmYzBkMCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3VuaS1mb3Jtcy1pdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLWZvcm1zLWl0ZW0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1mb3Jtcy9jb21wb25lbnRzL3VuaS1mb3Jtcy1pdGVtL3VuaS1mb3Jtcy1pdGVtLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///30\n"); /***/ }), /* 31 */ /*!**********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue?vue&type=template&id=61dfc0d0& ***! \**********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-forms-item.vue?vue&type=template&id=61dfc0d0& */ 32); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_template_id_61dfc0d0___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 32 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue?vue&type=template&id=61dfc0d0& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-forms-item"), class: _vm._$s(0, "c", [ "is-direction-" + _vm.localLabelPos, _vm.border ? "uni-forms-item--border" : "", _vm.border && _vm.isFirstBorder ? "is-first-border" : "", ]), attrs: { _i: 0 }, }, [ _vm._t( "label", [ _c( "view", { staticClass: _vm._$s(2, "sc", "uni-forms-item__label"), class: _vm._$s(2, "c", { "no-label": !_vm.label && !_vm.required, }), style: _vm._$s(2, "s", { width: _vm.localLabelWidth, justifyContent: _vm.localLabelAlign, }), attrs: { _i: 2 }, }, [ _vm._$s(3, "i", _vm.required) ? _c("text", { staticClass: _vm._$s(3, "sc", "is-required"), attrs: { _i: 3 }, }) : _vm._e(), _c("text", [_vm._v(_vm._$s(4, "t0-0", _vm._s(_vm.label)))]), ] ), ], { _i: 1 } ), _c( "view", { staticClass: _vm._$s(5, "sc", "uni-forms-item__content"), attrs: { _i: 5 }, }, [ _vm._t("default", null, { _i: 6 }), _c( "view", { staticClass: _vm._$s(7, "sc", "uni-forms-item__error"), class: _vm._$s(7, "c", { "msg--active": _vm.msg }), attrs: { _i: 7 }, }, [_c("text", [_vm._v(_vm._$s(8, "t0-0", _vm._s(_vm.msg)))])] ), ], 2 ), ], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 33 */ /*!****************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-forms-item.vue?vue&type=script&lang=js& */ 34);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_forms_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWtrQixDQUFnQixva0JBQUcsRUFBQyIsImZpbGUiOiIzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1mb3Jtcy1pdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdW5pLWZvcm1zLWl0ZW0udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///33\n"); /***/ }), /* 34 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue?vue&type=script&lang=js& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * uni-fomrs-item 表单子组件\n * @description uni-fomrs-item 表单子组件,提供了基础布局已经校验能力\n * @tutorial https://ext.dcloud.net.cn/plugin?id=2773\n * @property {Boolean} required 是否必填,左边显示红色\"*\"号\n * @property {String } \tlabel \t\t\t\t输入框左边的文字提示\n * @property {Number } \tlabelWidth \t\t\tlabel的宽度,单位px(默认65)\n * @property {String } \tlabelAlign = [left|center|right] label的文字对齐方式(默认left)\n * \t@value left\t\tlabel 左侧显示\n * \t@value center\tlabel 居中\n * \t@value right\tlabel 右侧对齐\n * @property {String } \terrorMessage \t\t显示的错误提示内容,如果为空字符串或者false,则不显示错误信息\n * @property {String } \tname \t\t\t\t表单域的属性名,在使用校验规则时必填\n * @property {String } \tleftIcon \t\t\t【1.4.0废弃】label左边的图标,限 uni-ui 的图标名称\n * @property {String } \ticonColor \t\t【1.4.0废弃】左边通过icon配置的图标的颜色(默认#606266)\n * @property {String} validateTrigger = [bind|submit|blur]\t【1.4.0废弃】校验触发器方式 默认 submit\n * \t@value bind \t发生变化时触发\n * \t@value submit 提交时触发\n * \t@value blur \t失去焦点触发\n * @property {String } \tlabelPosition = [top|left] 【1.4.0废弃】label的文字的位置(默认left)\n * \t@value top\t顶部显示 label\n * \t@value left\t左侧显示 label\n */\nvar _default2 = {\n name: 'uniFormsItem',\n options: {\n virtualHost: true\n },\n provide: function provide() {\n return {\n uniFormItem: this\n };\n },\n inject: {\n form: {\n from: 'uniForm',\n default: null\n }\n },\n props: {\n // 表单校验规则\n rules: {\n type: Array,\n default: function _default() {\n return null;\n }\n },\n // 表单域的属性名,在使用校验规则时必填\n name: {\n type: [String, Array],\n default: ''\n },\n required: {\n type: Boolean,\n default: false\n },\n label: {\n type: String,\n default: ''\n },\n // label的宽度 ,默认 80\n labelWidth: {\n type: [String, Number],\n default: ''\n },\n // label 居中方式,默认 left 取值 left/center/right\n labelAlign: {\n type: String,\n default: ''\n },\n // 强制显示错误信息\n errorMessage: {\n type: [String, Boolean],\n default: ''\n },\n // 1.4.0 弃用,统一使用 form 的校验时机\n // validateTrigger: {\n // \ttype: String,\n // \tdefault: ''\n // },\n // 1.4.0 弃用,统一使用 form 的label 位置\n // labelPosition: {\n // \ttype: String,\n // \tdefault: ''\n // },\n // 1.4.0 以下属性已经废弃,请使用 #label 插槽代替\n leftIcon: String,\n iconColor: {\n type: String,\n default: '#606266'\n }\n },\n data: function data() {\n return {\n errMsg: '',\n userRules: null,\n localLabelAlign: 'left',\n localLabelWidth: '65px',\n localLabelPos: 'left',\n border: false,\n isFirstBorder: false\n };\n },\n computed: {\n // 处理错误信息\n msg: function msg() {\n return this.errorMessage || this.errMsg;\n }\n },\n watch: {\n // 规则发生变化通知子组件更新\n 'form.formRules': function formFormRules(val) {\n // TODO 处理头条vue3 watch不生效的问题\n\n this.init();\n },\n 'form.labelWidth': function formLabelWidth(val) {\n // 宽度\n this.localLabelWidth = this._labelWidthUnit(val);\n },\n 'form.labelPosition': function formLabelPosition(val) {\n // 标签位置\n this.localLabelPos = this._labelPosition();\n },\n 'form.labelAlign': function formLabelAlign(val) {}\n },\n created: function created() {\n var _this = this;\n this.init(true);\n if (this.name && this.form) {\n // TODO 处理头条vue3 watch不生效的问题\n\n // 监听变化\n this.$watch(function () {\n var val = _this.form._getDataValue(_this.name, _this.form.localData);\n return val;\n }, function (value, oldVal) {\n var isEqual = _this.form._isEqual(value, oldVal);\n // 简单判断前后值的变化,只有发生变化才会发生校验\n // TODO 如果 oldVal = undefined ,那么大概率是源数据里没有值导致 ,这个情况不哦校验 ,可能不严谨 ,需要在做观察\n // fix by mehaotian 暂时取消 && oldVal !== undefined ,如果formData 中不存在,可能会不校验\n if (!isEqual) {\n var val = _this.itemSetValue(value);\n _this.onFieldChange(val, false);\n }\n }, {\n immediate: false\n });\n }\n },\n destroyed: function destroyed() {\n if (this.__isUnmounted) return;\n this.unInit();\n },\n methods: {\n /**\n * 外部调用方法\n * 设置规则 ,主要用于小程序自定义检验规则\n * @param {Array} rules 规则源数据\n */\n setRules: function setRules() {\n var rules = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.userRules = rules;\n this.init(false);\n },\n // 兼容老版本表单组件\n setValue: function setValue() {\n // console.log('setValue 方法已经弃用,请使用最新版本的 uni-forms 表单组件以及其他关联组件。');\n },\n /**\n * 外部调用方法\n * 校验数据\n * @param {any} value 需要校验的数据\n * @param {boolean} 是否立即校验\n * @return {Array|null} 校验内容\n */\n onFieldChange: function onFieldChange(value) {\n var _arguments = arguments,\n _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var formtrigger, _this2$form, formData, localData, errShowType, validateCheck, validateTrigger, _isRequiredField, _realName, name, ruleLen, isRequiredField, result;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n formtrigger = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : true;\n _this2$form = _this2.form, formData = _this2$form.formData, localData = _this2$form.localData, errShowType = _this2$form.errShowType, validateCheck = _this2$form.validateCheck, validateTrigger = _this2$form.validateTrigger, _isRequiredField = _this2$form._isRequiredField, _realName = _this2$form._realName;\n name = _realName(_this2.name);\n if (!value) {\n value = _this2.form.formData[name];\n }\n // fixd by mehaotian 不在校验前清空信息,解决闪屏的问题\n // this.errMsg = '';\n\n // fix by mehaotian 解决没有检验规则的情况下,抛出错误的问题\n ruleLen = _this2.itemRules.rules && _this2.itemRules.rules.length;\n if (!(!_this2.validator || !ruleLen || ruleLen === 0)) {\n _context.next = 7;\n break;\n }\n return _context.abrupt(\"return\");\n case 7:\n // 检验时机\n // let trigger = this.isTrigger(this.itemRules.validateTrigger, this.validateTrigger, validateTrigger);\n isRequiredField = _isRequiredField(_this2.itemRules.rules || []);\n result = null; // 只有等于 bind 时 ,才能开启时实校验\n if (!(validateTrigger === 'bind' || formtrigger)) {\n _context.next = 18;\n break;\n }\n _context.next = 12;\n return _this2.validator.validateUpdate((0, _defineProperty2.default)({}, name, value), formData);\n case 12:\n result = _context.sent;\n // 判断是否必填,非必填,不填不校验,填写才校验 ,暂时只处理 undefined 和空的情况\n if (!isRequiredField && (value === undefined || value === '')) {\n result = null;\n }\n\n // 判断错误信息显示类型\n if (result && result.errorMessage) {\n if (errShowType === 'undertext') {\n // 获取错误信息\n _this2.errMsg = !result ? '' : result.errorMessage;\n }\n if (errShowType === 'toast') {\n uni.showToast({\n title: result.errorMessage || '校验错误',\n icon: 'none'\n });\n }\n if (errShowType === 'modal') {\n uni.showModal({\n title: '提示',\n content: result.errorMessage || '校验错误'\n });\n }\n } else {\n _this2.errMsg = '';\n }\n // 通知 form 组件更新事件\n validateCheck(result ? result : null);\n _context.next = 19;\n break;\n case 18:\n _this2.errMsg = '';\n case 19:\n return _context.abrupt(\"return\", result ? result : null);\n case 20:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n /**\n * 初始组件数据\n */\n init: function init() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var _ref = this.form || {},\n validator = _ref.validator,\n formRules = _ref.formRules,\n childrens = _ref.childrens,\n formData = _ref.formData,\n localData = _ref.localData,\n _realName = _ref._realName,\n labelWidth = _ref.labelWidth,\n _getDataValue = _ref._getDataValue,\n _setDataValue = _ref._setDataValue;\n // 对齐方式\n this.localLabelAlign = this._justifyContent();\n // 宽度\n this.localLabelWidth = this._labelWidthUnit(labelWidth);\n // 标签位置\n this.localLabelPos = this._labelPosition();\n // 将需要校验的子组件加入form 队列\n this.form && type && childrens.push(this);\n if (!validator || !formRules) return;\n // 判断第一个 item\n if (!this.form.isFirstBorder) {\n this.form.isFirstBorder = true;\n this.isFirstBorder = true;\n }\n\n // 判断 group 里的第一个 item\n if (this.group) {\n if (!this.group.isFirstBorder) {\n this.group.isFirstBorder = true;\n this.isFirstBorder = true;\n }\n }\n this.border = this.form.border;\n // 获取子域的真实名称\n var name = _realName(this.name);\n var itemRule = this.userRules || this.rules;\n if ((0, _typeof2.default)(formRules) === 'object' && itemRule) {\n // 子规则替换父规则\n formRules[name] = {\n rules: itemRule\n };\n validator.updateSchema(formRules);\n }\n // 注册校验规则\n var itemRules = formRules[name] || {};\n this.itemRules = itemRules;\n // 注册校验函数\n this.validator = validator;\n // 默认值赋予\n this.itemSetValue(_getDataValue(this.name, localData));\n },\n unInit: function unInit() {\n var _this3 = this;\n if (this.form) {\n var _this$form = this.form,\n childrens = _this$form.childrens,\n formData = _this$form.formData,\n _realName = _this$form._realName;\n childrens.forEach(function (item, index) {\n if (item === _this3) {\n _this3.form.childrens.splice(index, 1);\n delete formData[_realName(item.name)];\n }\n });\n }\n },\n // 设置item 的值\n itemSetValue: function itemSetValue(value) {\n var name = this.form._realName(this.name);\n var rules = this.itemRules.rules || [];\n var val = this.form._getValue(name, value, rules);\n this.form._setDataValue(name, this.form.formData, val);\n return val;\n },\n /**\n * 移除该表单项的校验结果\n */\n clearValidate: function clearValidate() {\n this.errMsg = '';\n },\n // 是否显示星号\n _isRequired: function _isRequired() {\n // TODO 不根据规则显示 星号,考虑后续兼容\n // if (this.form) {\n // \tif (this.form._isRequiredField(this.itemRules.rules || []) && this.required) {\n // \t\treturn true\n // \t}\n // \treturn false\n // }\n return this.required;\n },\n // 处理对齐方式\n _justifyContent: function _justifyContent() {\n if (this.form) {\n var labelAlign = this.form.labelAlign;\n var labelAli = this.labelAlign ? this.labelAlign : labelAlign;\n if (labelAli === 'left') return 'flex-start';\n if (labelAli === 'center') return 'center';\n if (labelAli === 'right') return 'flex-end';\n }\n return 'flex-start';\n },\n // 处理 label宽度单位 ,继承父元素的值\n _labelWidthUnit: function _labelWidthUnit(labelWidth) {\n // if (this.form) {\n // \tconst {\n // \t\tlabelWidth\n // \t} = this.form\n return this.num2px(this.labelWidth ? this.labelWidth : labelWidth || (this.label ? 65 : 'auto'));\n // }\n // return '65px'\n },\n // 处理 label 位置\n _labelPosition: function _labelPosition() {\n if (this.form) return this.form.labelPosition || 'left';\n return 'left';\n },\n /**\n * 触发时机\n * @param {Object} rule 当前规则内时机\n * @param {Object} itemRlue 当前组件时机\n * @param {Object} parentRule 父组件时机\n */\n isTrigger: function isTrigger(rule, itemRlue, parentRule) {\n // bind submit\n if (rule === 'submit' || !rule) {\n if (rule === undefined) {\n if (itemRlue !== 'bind') {\n if (!itemRlue) {\n return parentRule === '' ? 'bind' : 'submit';\n }\n return 'submit';\n }\n return 'bind';\n }\n return 'submit';\n }\n return 'bind';\n },\n num2px: function num2px(num) {\n if (typeof num === 'number') {\n return \"\".concat(num, \"px\");\n }\n return num;\n }\n }\n};\nexports.default = _default2;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWZvcm1zL2NvbXBvbmVudHMvdW5pLWZvcm1zLWl0ZW0vdW5pLWZvcm1zLWl0ZW0udnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJvcHRpb25zIiwidmlydHVhbEhvc3QiLCJwcm92aWRlIiwidW5pRm9ybUl0ZW0iLCJpbmplY3QiLCJmb3JtIiwiZnJvbSIsImRlZmF1bHQiLCJwcm9wcyIsInJ1bGVzIiwidHlwZSIsInJlcXVpcmVkIiwibGFiZWwiLCJsYWJlbFdpZHRoIiwibGFiZWxBbGlnbiIsImVycm9yTWVzc2FnZSIsImxlZnRJY29uIiwiaWNvbkNvbG9yIiwiZGF0YSIsImVyck1zZyIsInVzZXJSdWxlcyIsImxvY2FsTGFiZWxBbGlnbiIsImxvY2FsTGFiZWxXaWR0aCIsImxvY2FsTGFiZWxQb3MiLCJib3JkZXIiLCJpc0ZpcnN0Qm9yZGVyIiwiY29tcHV0ZWQiLCJtc2ciLCJ3YXRjaCIsImNyZWF0ZWQiLCJpbW1lZGlhdGUiLCJkZXN0cm95ZWQiLCJtZXRob2RzIiwic2V0UnVsZXMiLCJzZXRWYWx1ZSIsIm9uRmllbGRDaGFuZ2UiLCJmb3JtdHJpZ2dlciIsImZvcm1EYXRhIiwibG9jYWxEYXRhIiwiZXJyU2hvd1R5cGUiLCJ2YWxpZGF0ZUNoZWNrIiwidmFsaWRhdGVUcmlnZ2VyIiwiX2lzUmVxdWlyZWRGaWVsZCIsIl9yZWFsTmFtZSIsInZhbHVlIiwicnVsZUxlbiIsImlzUmVxdWlyZWRGaWVsZCIsInJlc3VsdCIsInVuaSIsInRpdGxlIiwiaWNvbiIsImNvbnRlbnQiLCJpbml0IiwidmFsaWRhdG9yIiwiZm9ybVJ1bGVzIiwiY2hpbGRyZW5zIiwiX2dldERhdGFWYWx1ZSIsIl9zZXREYXRhVmFsdWUiLCJ1bkluaXQiLCJpdGVtU2V0VmFsdWUiLCJjbGVhclZhbGlkYXRlIiwiX2lzUmVxdWlyZWQiLCJfanVzdGlmeUNvbnRlbnQiLCJfbGFiZWxXaWR0aFVuaXQiLCJfbGFiZWxQb3NpdGlvbiIsImlzVHJp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QTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQUg7VUFDQTdDO1FBQ0E7UUFDQTRDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FLO01BQUE7TUFDQTtRQUNBLGlCQUlBO1VBSEFIO1VBQ0FsQjtVQUNBTTtRQUVBWTtVQUNBO1lBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUk7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQTtJQUNBQztNQUNBO1FBQ0EsSUFDQWhELGFBQ0EsVUFEQUE7UUFFQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FpRDtNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFFQTtJQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQ0E7Y0FDQTtZQUNBO1lBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJ1bmktZm9ybXMtaXRlbVwiXHJcblx0XHQ6Y2xhc3M9XCJbJ2lzLWRpcmVjdGlvbi0nICsgbG9jYWxMYWJlbFBvcyAsYm9yZGVyPyd1bmktZm9ybXMtaXRlbS0tYm9yZGVyJzonJyAsYm9yZGVyICYmIGlzRmlyc3RCb3JkZXI/J2lzLWZpcnN0LWJvcmRlcic6JyddXCI+XHJcblx0XHQ8c2xvdCBuYW1lPVwibGFiZWxcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZm9ybXMtaXRlbV9fbGFiZWxcIiA6Y2xhc3M9XCJ7J25vLWxhYmVsJzohbGFiZWwgJiYgIXJlcXVpcmVkfVwiXHJcblx0XHRcdFx0OnN0eWxlPVwie3dpZHRoOmxvY2FsTGFiZWxXaWR0aCxqdXN0aWZ5Q29udGVudDogbG9jYWxMYWJlbEFsaWdufVwiPlxyXG5cdFx0XHRcdDx0ZXh0IHYtaWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwiaXMtcmVxdWlyZWRcIj4qPC90ZXh0PlxyXG5cdFx0XHRcdDx0ZXh0Pnt7bGFiZWx9fTwvdGV4dD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0PC9zbG90PlxyXG5cdFx0PCEtLSAjaWZuZGVmIEFQUC1OVlVFIC0tPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bmktZm9ybXMtaXRlbV9fY29udGVudFwiPlxyXG5cdFx0XHQ8c2xvdD48L3Nsb3Q+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidW5pLWZvcm1zLWl0ZW1fX2Vycm9yXCIgOmNsYXNzPVwieydtc2ctLWFjdGl2ZSc6bXNnfVwiPlxyXG5cdFx0XHRcdDx0ZXh0Pnt7bXNnfX08L3RleHQ+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdmlldz5cclxuXHRcdDwhLS0gI2VuZGlmIC0tPlxyXG5cdFx0PCEtLSAjaWZkZWYgQVBQLU5WVUUgLS0+XHJcblx0XHQ8dmlldyBjbGFzcz1cInVuaS1mb3Jtcy1pdGVtX19udXZlLWNvbnRlbnRcIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktZm9ybXMtaXRlbV9fY29udGVudFwiPlxyXG5cdFx0XHRcdDxzbG90Pjwvc2xvdD5cclxuXHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cInVuaS1mb3Jtcy1pdGVtX19lcnJvclwiIDpjbGFzcz1cInsnbXNnLS1hY3RpdmUnOm1zZ31cIj5cclxuXHRcdFx0XHQ8dGV4dCBjbGFzcz1cImVycm9yLXRleHRcIj57e21zZ319PC90ZXh0PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tICNlbmRpZiAtLT5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdC8qKlxyXG5cdCAqIHVuaS1mb21ycy1pdGVtIOihqOWNleWtkOe7hOS7tlxyXG5cdCAqIEBkZXNjcmlwdGlvbiB1bmktZm9tcnMtaXRlbSDooajljZXlrZDnu4Tku7bvvIzmj5Dkvpvkuobln7rnoYDluIPlsYDlt7Lnu4/moKHpqozog73liptcclxuXHQgKiBAdHV0b3JpYWwgaHR0cHM6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9Mjc3M1xyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gcmVxdWlyZWQg5piv5ZCm5b+F5aGr77yM5bem6L655pi+56S657qi6ImyXCIqXCLlj7dcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB9IFx0bGFiZWwgXHRcdFx0XHTovpPlhaXmoYblt6bovrnnmoTmloflrZfmj5DnpLpcclxuXHQgKiBAcHJvcGVydHkge051bWJlciB9IFx0bGFiZWxXaWR0aCBcdFx0XHRsYWJlbOeahOWuveW6pu+8jOWNleS9jXB477yI6buY6K6kNjXvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB9IFx0bGFiZWxBbGlnbiA9IFtsZWZ0fGNlbnRlcnxyaWdodF0gbGFiZWznmoTmloflrZflr7npvZDmlrnlvI/vvIjpu5jorqRsZWZ077yJXHJcblx0ICogXHRAdmFsdWUgbGVmdFx0XHRsYWJlbCDlt6bkvqfmmL7npLpcclxuXHQgKiBcdEB2YWx1ZSBjZW50ZXJcdGxhYmVsIOWxheS4rVxyXG5cdCAqIFx0QHZhbHVlIHJpZ2h0XHRsYWJlbCDlj7Pkvqflr7npvZBcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB9IFx0ZXJyb3JNZXNzYWdlIFx0XHTmmL7npLrnmoTplJnor6/mj5DnpLrlhoXlrrnvvIzlpoLmnpzkuLrnqbrlrZfnrKbkuLLmiJbogIVmYWxzZe+8jOWImeS4jeaYvuekuumUmeivr+S/oeaBr1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nIH0gXHRuYW1lIFx0XHRcdFx06KGo5Y2V5Z+f55qE5bGe5oCn5ZCN77yM5Zyo5L2/55So5qCh6aqM6KeE5YiZ5pe25b+F5aGrXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfSBcdGxlZnRJY29uIFx0XHRcdOOAkDEuNC4w5bqf5byD44CRbGFiZWzlt6bovrnnmoTlm77moIfvvIzpmZAgdW5pLXVpIOeahOWbvuagh+WQjeensFxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nIH0gXHRpY29uQ29sb3IgXHRcdOOAkDEuNC4w5bqf5byD44CR5bem6L656YCa6L+HaWNvbumFjee9rueahOWbvuagh+eahOminOiJsu+8iOm7mOiupCM2MDYyNjbvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gdmFsaWRhdGVUcmlnZ2VyID0gW2JpbmR8c3VibWl0fGJsdXJdXHTjgJAxLjQuMOW6n+W8g+OAkeagoemqjOinpuWPkeWZqOaWueW8jyDpu5jorqQgc3VibWl0XHJcblx0ICogXHRAdmFsdWUgYmluZCBcdOWPkeeUn+WPmOWMluaXtuinpuWPkVxyXG5cdCAqIFx0QHZhbHVlIHN1Ym1pdCDmj5DkuqTml7bop6blj5FcclxuXHQgKiBcdEB2YWx1ZSBibHVyIFx05aSx5Y6754Sm54K56Kem5Y+RXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfSBcdGxhYmVsUG9zaXRpb24gPSBbdG9wfGxlZnRdIOOAkDEuNC4w5bqf5byD44CRbGFiZWznmoTmloflrZfnmoTkvY3nva7vvIjpu5jorqRsZWZ077yJXHJcblx0ICogXHRAdmFsdWUgdG9wXHTpobbpg6jmmL7npLogbGFiZWxcclxuXHQgKiBcdEB2YWx1ZSBsZWZ0XHTlt6bkvqfmmL7npLogbGFiZWxcclxuXHQgKi9cclxuXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3VuaUZvcm1zSXRlbScsXHJcblx0XHRvcHRpb25zOiB7XHJcblx0XHRcdHZpcnR1YWxIb3N0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0cHJvdmlkZSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHR1bmlGb3JtSXRlbTogdGhpc1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0aW5qZWN0OiB7XHJcblx0XHRcdGZvcm06IHtcclxuXHRcdFx0XHRmcm9tOiAndW5pRm9ybScsXHJcblx0XHRcdFx0ZGVmYXVsdDogbnVsbFxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdC8vIOihqOWNleagoemqjOinhOWImVxyXG5cdFx0XHRydWxlczoge1xyXG5cdFx0XHRcdHR5cGU6IEFycmF5LFxyXG5cdFx0XHRcdGRlZmF1bHQgKCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDooajljZXln5/nmoTlsZ7mgKflkI3vvIzlnKjkvb/nlKjmoKHpqozop4TliJnml7blv4XloatcclxuXHRcdFx0bmFtZToge1xyXG5cdFx0XHRcdHR5cGU6IFtTdHJpbmcsIEFycmF5XSxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZXF1aXJlZDoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdFx0bGFiZWw6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gbGFiZWznmoTlrr3luqYg77yM6buY6K6kIDgwXHJcblx0XHRcdGxhYmVsV2lkdGg6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIGxhYmVsIOWxheS4reaWueW8j++8jOm7mOiupCBsZWZ0IOWPluWAvCBsZWZ0L2NlbnRlci9yaWdodFxyXG5cdFx0XHRsYWJlbEFsaWduOiB7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOW8uuWItuaYvuekuumUmeivr+S/oeaBr1xyXG5cdFx0XHRlcnJvck1lc3NhZ2U6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBCb29sZWFuXSxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyAxLjQuMCDlvIPnlKjvvIznu5/kuIDkvb/nlKggZm9ybSDnmoTmoKHpqozml7bmnLpcclxuXHRcdFx0Ly8gdmFsaWRhdGVUcmlnZ2VyOiB7XHJcblx0XHRcdC8vIFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHQvLyBcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdC8vIH0sXHJcblx0XHRcdC8vIDEuNC4wIOW8g+eUqO+8jOe7n+S4gOS9v+eUqCBmb3JtIOeahGxhYmVsIOS9jee9rlxyXG5cdFx0XHQvLyBsYWJlbFBvc2l0aW9uOiB7XHJcblx0XHRcdC8vIFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHQvLyBcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdC8vIH0sXHJcblx0XHRcdC8vIDEuNC4wIOS7peS4i+WxnuaAp+W3sue7j+W6n+W8g++8jOivt+S9v+eUqCAgI2xhYmVsIOaPkuanveS7o+abv1xyXG5cdFx0XHRsZWZ0SWNvbjogU3RyaW5nLFxyXG5cdFx0XHRpY29uQ29sb3I6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJyM2MDYyNjYnXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRlcnJNc2c6ICcnLFxyXG5cdFx0XHRcdHVzZXJSdWxlczogbnVsbCxcclxuXHRcdFx0XHRsb2NhbExhYmVsQWxpZ246ICdsZWZ0JyxcclxuXHRcdFx0XHRsb2NhbExhYmVsV2lkdGg6ICc2NXB4JyxcclxuXHRcdFx0XHRsb2NhbExhYmVsUG9zOiAnbGVmdCcsXHJcblx0XHRcdFx0Ym9yZGVyOiBmYWxzZSxcclxuXHRcdFx0XHRpc0ZpcnN0Qm9yZGVyOiBmYWxzZSxcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHQvLyDlpITnkIbplJnor6/kv6Hmga9cclxuXHRcdFx0bXNnKCkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLmVycm9yTWVzc2FnZSB8fCB0aGlzLmVyck1zZztcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdC8vIOinhOWImeWPkeeUn+WPmOWMlumAmuefpeWtkOe7hOS7tuabtOaWsFxyXG5cdFx0XHQnZm9ybS5mb3JtUnVsZXMnKHZhbCkge1xyXG5cdFx0XHRcdC8vIFRPRE8g5aSE55CG5aS05p2hdnVlMyB3YXRjaOS4jeeUn+aViOeahOmXrumimFxyXG5cdFx0XHRcdC8vICNpZm5kZWYgTVAtVE9VVElBT1xyXG5cdFx0XHRcdHRoaXMuaW5pdCgpXHJcblx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdH0sXHJcblx0XHRcdCdmb3JtLmxhYmVsV2lkdGgnKHZhbCkge1xyXG5cdFx0XHRcdC8vIOWuveW6plxyXG5cdFx0XHRcdHRoaXMubG9jYWxMYWJlbFdpZHRoID0gdGhpcy5fbGFiZWxXaWR0aFVuaXQodmFsKVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0J2Zvcm0ubGFiZWxQb3NpdGlvbicodmFsKSB7XHJcblx0XHRcdFx0Ly8g5qCH562+5L2N572uXHJcblx0XHRcdFx0dGhpcy5sb2NhbExhYmVsUG9zID0gdGhpcy5fbGFiZWxQb3NpdGlvbigpXHJcblx0XHRcdH0sXHJcblx0XHRcdCdmb3JtLmxhYmVsQWxpZ24nKHZhbCkge1xyXG5cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNyZWF0ZWQoKSB7XHJcblx0XHRcdHRoaXMuaW5pdCh0cnVlKVxyXG5cdFx0XHRpZiAodGhpcy5uYW1lICYmIHRoaXMuZm9ybSkge1xyXG5cdFx0XHRcdC8vIFRPRE8g5aSE55CG5aS05p2hdnVlMyB3YXRjaOS4jeeUn+aViOeahOmXrumimFxyXG5cdFx0XHRcdC8vICNpZmRlZiBNUC1UT1VUSUFPXHJcblx0XHRcdFx0dGhpcy4kd2F0Y2goJ2Zvcm0uZm9ybVJ1bGVzJywgKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pbml0KClcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cclxuXHRcdFx0XHQvLyDnm5HlkKzlj5jljJZcclxuXHRcdFx0XHR0aGlzLiR3YXRjaChcclxuXHRcdFx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdmFsID0gdGhpcy5mb3JtLl9nZXREYXRhVmFsdWUodGhpcy5uYW1lLCB0aGlzLmZvcm0ubG9jYWxEYXRhKVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdmFsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0KHZhbHVlLCBvbGRWYWwpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgaXNFcXVhbCA9IHRoaXMuZm9ybS5faXNFcXVhbCh2YWx1ZSwgb2xkVmFsKVxyXG5cdFx0XHRcdFx0XHQvLyDnroDljZXliKTmlq3liY3lkI7lgLznmoTlj5jljJbvvIzlj6rmnInlj5HnlJ/lj5jljJbmiY3kvJrlj5HnlJ/moKHpqoxcclxuXHRcdFx0XHRcdFx0Ly8gVE9ETyAg5aaC5p6cIG9sZFZhbCA9IHVuZGVmaW5lZCDvvIzpgqPkuYjlpKfmpoLnjofmmK/mupDmlbDmja7ph4zmsqHmnInlgLzlr7zoh7Qg77yM6L+Z5Liq5oOF5Ya15LiN5ZOm5qCh6aqMICzlj6/og73kuI3kuKXosKgg77yM6ZyA6KaB5Zyo5YGa6KeC5a+fXHJcblx0XHRcdFx0XHRcdC8vIGZpeCBieSBtZWhhb3RpYW4g5pqC5pe25Y+W5raIICYmIG9sZFZhbCAhPT0gdW5kZWZpbmVkIO+8jOWmguaenGZvcm1EYXRhIOS4reS4jeWtmOWcqO+8jOWPr+iDveS8muS4jeagoemqjFxyXG5cdFx0XHRcdFx0XHRpZiAoIWlzRXF1YWwpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB2YWwgPSB0aGlzLml0ZW1TZXRWYWx1ZSh2YWx1ZSlcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm9uRmllbGRDaGFuZ2UodmFsLCBmYWxzZSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSwge1xyXG5cdFx0XHRcdFx0XHRpbW1lZGlhdGU6IGZhbHNlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdH0sXHJcblx0XHQvLyAjaWZuZGVmIFZVRTNcclxuXHRcdGRlc3Ryb3llZCgpIHtcclxuXHRcdFx0aWYgKHRoaXMuX19pc1VubW91bnRlZCkgcmV0dXJuXHJcblx0XHRcdHRoaXMudW5Jbml0KClcclxuXHRcdH0sXHJcblx0XHQvLyAjZW5kaWZcclxuXHRcdC8vICNpZmRlZiBWVUUzXHJcblx0XHR1bm1vdW50ZWQoKSB7XHJcblx0XHRcdHRoaXMuX19pc1VubW91bnRlZCA9IHRydWVcclxuXHRcdFx0dGhpcy51bkluaXQoKVxyXG5cdFx0fSxcclxuXHRcdC8vICNlbmRpZlxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog5aSW6YOo6LCD55So5pa55rOVXHJcblx0XHRcdCAqIOiuvue9ruinhOWImSDvvIzkuLvopoHnlKjkuo7lsI/nqIvluo/oh6rlrprkuYnmo4Dpqozop4TliJlcclxuXHRcdFx0ICogQHBhcmFtIHtBcnJheX0gcnVsZXMg6KeE5YiZ5rqQ5pWw5o2uXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRzZXRSdWxlcyhydWxlcyA9IG51bGwpIHtcclxuXHRcdFx0XHR0aGlzLnVzZXJSdWxlcyA9IHJ1bGVzXHJcblx0XHRcdFx0dGhpcy5pbml0KGZhbHNlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlhbzlrrnogIHniYjmnKzooajljZXnu4Tku7ZcclxuXHRcdFx0c2V0VmFsdWUoKSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3NldFZhbHVlIOaWueazleW3sue7j+W8g+eUqO+8jOivt+S9v+eUqOacgOaWsOeJiOacrOeahCB1bmktZm9ybXMg6KGo5Y2V57uE5Lu25Lul5Y+K5YW25LuW5YWz6IGU57uE5Lu244CCJyk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDlpJbpg6josIPnlKjmlrnms5VcclxuXHRcdFx0ICog5qCh6aqM5pWw5o2uXHJcblx0XHRcdCAqIEBwYXJhbSB7YW55fSB2YWx1ZSDpnIDopoHmoKHpqoznmoTmlbDmja5cclxuXHRcdFx0ICogQHBhcmFtIHtib29sZWFufSDmmK/lkKbnq4vljbPmoKHpqoxcclxuXHRcdFx0ICogQHJldHVybiB7QXJyYXl8bnVsbH0g5qCh6aqM5YaF5a65XHJcblx0XHRcdCAqL1xyXG5cdFx0XHRhc3luYyBvbkZpZWxkQ2hhbmdlKHZhbHVlLCBmb3JtdHJpZ2dlciA9IHRydWUpIHtcclxuXHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHRmb3JtRGF0YSxcclxuXHRcdFx0XHRcdGxvY2FsRGF0YSxcclxuXHRcdFx0XHRcdGVyclNob3dUeXBlLFxyXG5cdFx0XHRcdFx0dmFsaWRhdGVDaGVjayxcclxuXHRcdFx0XHRcdHZhbGlkYXRlVHJpZ2dlcixcclxuXHRcdFx0XHRcdF9pc1JlcXVpcmVkRmllbGQsXHJcblx0XHRcdFx0XHRfcmVhbE5hbWVcclxuXHRcdFx0XHR9ID0gdGhpcy5mb3JtXHJcblx0XHRcdFx0Y29uc3QgbmFtZSA9IF9yZWFsTmFtZSh0aGlzLm5hbWUpXHJcblx0XHRcdFx0aWYgKCF2YWx1ZSkge1xyXG5cdFx0XHRcdFx0dmFsdWUgPSB0aGlzLmZvcm0uZm9ybURhdGFbbmFtZV1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8gZml4ZCBieSBtZWhhb3RpYW4g5LiN5Zyo5qCh6aqM5YmN5riF56m65L+h5oGv77yM6Kej5Yaz6Zeq5bGP55qE6Zeu6aKYXHJcblx0XHRcdFx0Ly8gdGhpcy5lcnJNc2cgPSAnJztcclxuXHJcblx0XHRcdFx0Ly8gZml4IGJ5IG1laGFvdGlhbiDop6PlhrPmsqHmnInmo4Dpqozop4TliJnnmoTmg4XlhrXkuIvvvIzmipvlh7rplJnor6/nmoTpl67pophcclxuXHRcdFx0XHRjb25zdCBydWxlTGVuID0gdGhpcy5pdGVtUnVsZXMucnVsZXMgJiYgdGhpcy5pdGVtUnVsZXMucnVsZXMubGVuZ3RoXHJcblx0XHRcdFx0aWYgKCF0aGlzLnZhbGlkYXRvciB8fCAhcnVsZUxlbiB8fCBydWxlTGVuID09PSAwKSByZXR1cm47XHJcblxyXG5cdFx0XHRcdC8vIOajgOmqjOaXtuaculxyXG5cdFx0XHRcdC8vIGxldCB0cmlnZ2VyID0gdGhpcy5pc1RyaWdnZXIodGhpcy5pdGVtUnVsZXMudmFsaWRhdGVUcmlnZ2VyLCB0aGlzLnZhbGlkYXRlVHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKTtcclxuXHRcdFx0XHRjb25zdCBpc1JlcXVpcmVkRmllbGQgPSBfaXNSZXF1aXJlZEZpZWxkKHRoaXMuaXRlbVJ1bGVzLnJ1bGVzIHx8IFtdKTtcclxuXHRcdFx0XHRsZXQgcmVzdWx0ID0gbnVsbDtcclxuXHRcdFx0XHQvLyDlj6rmnInnrYnkuo4gYmluZCDml7Yg77yM5omN6IO95byA5ZCv5pe25a6e5qCh6aqMXHJcblx0XHRcdFx0aWYgKHZhbGlkYXRlVHJpZ2dlciA9PT0gJ2JpbmQnIHx8IGZvcm10cmlnZ2VyKSB7XHJcblx0XHRcdFx0XHQvLyDmoKHpqozlvZPliY3ooajljZXpoblcclxuXHRcdFx0XHRcdHJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdG9yLnZhbGlkYXRlVXBkYXRlKHtcclxuXHRcdFx0XHRcdFx0XHRbbmFtZV06IHZhbHVlXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdGZvcm1EYXRhXHJcblx0XHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHRcdC8vIOWIpOaWreaYr+WQpuW/heWhqyzpnZ7lv4XloavvvIzkuI3loavkuI3moKHpqozvvIzloavlhpnmiY3moKHpqowgLOaaguaXtuWPquWkhOeQhiB1bmRlZmluZWQgIOWSjOepuueahOaDheWGtVxyXG5cdFx0XHRcdFx0aWYgKCFpc1JlcXVpcmVkRmllbGQgJiYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSkge1xyXG5cdFx0XHRcdFx0XHRyZXN1bHQgPSBudWxsO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIOWIpOaWremUmeivr+S/oeaBr+aYvuekuuexu+Wei1xyXG5cdFx0XHRcdFx0aWYgKHJlc3VsdCAmJiByZXN1bHQuZXJyb3JNZXNzYWdlKSB7XHJcblx0XHRcdFx0XHRcdGlmIChlcnJTaG93VHlwZSA9PT0gJ3VuZGVydGV4dCcpIHtcclxuXHRcdFx0XHRcdFx0XHQvLyDojrflj5bplJnor6/kv6Hmga9cclxuXHRcdFx0XHRcdFx0XHR0aGlzLmVyck1zZyA9ICFyZXN1bHQgPyAnJyA6IHJlc3VsdC5lcnJvck1lc3NhZ2U7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKGVyclNob3dUeXBlID09PSAndG9hc3QnKSB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogcmVzdWx0LmVycm9yTWVzc2FnZSB8fCAn5qCh6aqM6ZSZ6K+vJyxcclxuXHRcdFx0XHRcdFx0XHRcdGljb246ICdub25lJ1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmIChlcnJTaG93VHlwZSA9PT0gJ21vZGFsJykge1xyXG5cdFx0XHRcdFx0XHRcdHVuaS5zaG93TW9kYWwoe1xyXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6ICfmj5DnpLonLFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29udGVudDogcmVzdWx0LmVycm9yTWVzc2FnZSB8fCAn5qCh6aqM6ZSZ6K+vJ1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmVyck1zZyA9ICcnXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQvLyDpgJrnn6UgZm9ybSDnu4Tku7bmm7TmlrDkuovku7ZcclxuXHRcdFx0XHRcdHZhbGlkYXRlQ2hlY2socmVzdWx0ID8gcmVzdWx0IDogbnVsbClcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5lcnJNc2cgPSAnJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcmVzdWx0ID8gcmVzdWx0IDogbnVsbDtcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqXHJcblx0XHRcdCAqIOWIneWni+e7hOS7tuaVsOaNrlxyXG5cdFx0XHQgKi9cclxuXHRcdFx0aW5pdCh0eXBlID0gZmFsc2UpIHtcclxuXHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHR2YWxpZGF0b3IsXHJcblx0XHRcdFx0XHRmb3JtUnVsZXMsXHJcblx0XHRcdFx0XHRjaGlsZHJlbnMsXHJcblx0XHRcdFx0XHRmb3JtRGF0YSxcclxuXHRcdFx0XHRcdGxvY2FsRGF0YSxcclxuXHRcdFx0XHRcdF9yZWFsTmFtZSxcclxuXHRcdFx0XHRcdGxhYmVsV2lkdGgsXHJcblx0XHRcdFx0XHRfZ2V0RGF0YVZhbHVlLFxyXG5cdFx0XHRcdFx0X3NldERhdGFWYWx1ZVxyXG5cdFx0XHRcdH0gPSB0aGlzLmZvcm0gfHwge31cclxuXHRcdFx0XHQvLyDlr7npvZDmlrnlvI9cclxuXHRcdFx0XHR0aGlzLmxvY2FsTGFiZWxBbGlnbiA9IHRoaXMuX2p1c3RpZnlDb250ZW50KClcclxuXHRcdFx0XHQvLyDlrr3luqZcclxuXHRcdFx0XHR0aGlzLmxvY2FsTGFiZWxXaWR0aCA9IHRoaXMuX2xhYmVsV2lkdGhVbml0KGxhYmVsV2lkdGgpXHJcblx0XHRcdFx0Ly8g5qCH562+5L2N572uXHJcblx0XHRcdFx0dGhpcy5sb2NhbExhYmVsUG9zID0gdGhpcy5fbGFiZWxQb3NpdGlvbigpXHJcblx0XHRcdFx0Ly8g5bCG6ZyA6KaB5qCh6aqM55qE5a2Q57uE5Lu25Yqg5YWlZm9ybSDpmJ/liJdcclxuXHRcdFx0XHR0aGlzLmZvcm0gJiYgdHlwZSAmJiBjaGlsZHJlbnMucHVzaCh0aGlzKVxyXG5cclxuXHRcdFx0XHRpZiAoIXZhbGlkYXRvciB8fCAhZm9ybVJ1bGVzKSByZXR1cm5cclxuXHRcdFx0XHQvLyDliKTmlq3nrKzkuIDkuKogaXRlbVxyXG5cdFx0XHRcdGlmICghdGhpcy5mb3JtLmlzRmlyc3RCb3JkZXIpIHtcclxuXHRcdFx0XHRcdHRoaXMuZm9ybS5pc0ZpcnN0Qm9yZGVyID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHRoaXMuaXNGaXJzdEJvcmRlciA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyDliKTmlq0gZ3JvdXAg6YeM55qE56ys5LiA5LiqIGl0ZW1cclxuXHRcdFx0XHRpZiAodGhpcy5ncm91cCkge1xyXG5cdFx0XHRcdFx0aWYgKCF0aGlzLmdyb3VwLmlzRmlyc3RCb3JkZXIpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5ncm91cC5pc0ZpcnN0Qm9yZGVyID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5pc0ZpcnN0Qm9yZGVyID0gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5ib3JkZXIgPSB0aGlzLmZvcm0uYm9yZGVyO1xyXG5cdFx0XHRcdC8vIOiOt+WPluWtkOWfn+eahOecn+WunuWQjeensFxyXG5cdFx0XHRcdGNvbnN0IG5hbWUgPSBfcmVhbE5hbWUodGhpcy5uYW1lKVxyXG5cdFx0XHRcdGNvbnN0IGl0ZW1SdWxlID0gdGhpcy51c2VyUnVsZXMgfHwgdGhpcy5ydWxlc1xyXG5cdFx0XHRcdGlmICh0eXBlb2YgZm9ybVJ1bGVzID09PSAnb2JqZWN0JyAmJiBpdGVtUnVsZSkge1xyXG5cdFx0XHRcdFx0Ly8g5a2Q6KeE5YiZ5pu/5o2i54i26KeE5YiZXHJcblx0XHRcdFx0XHRmb3JtUnVsZXNbbmFtZV0gPSB7XHJcblx0XHRcdFx0XHRcdHJ1bGVzOiBpdGVtUnVsZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dmFsaWRhdG9yLnVwZGF0ZVNjaGVtYShmb3JtUnVsZXMpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDms6jlhozmoKHpqozop4TliJlcclxuXHRcdFx0XHRjb25zdCBpdGVtUnVsZXMgPSBmb3JtUnVsZXNbbmFtZV0gfHwge31cclxuXHRcdFx0XHR0aGlzLml0ZW1SdWxlcyA9IGl0ZW1SdWxlc1xyXG5cdFx0XHRcdC8vIOazqOWGjOagoemqjOWHveaVsFxyXG5cdFx0XHRcdHRoaXMudmFsaWRhdG9yID0gdmFsaWRhdG9yXHJcblx0XHRcdFx0Ly8g6buY6K6k5YC86LWL5LqIXHJcblx0XHRcdFx0dGhpcy5pdGVtU2V0VmFsdWUoX2dldERhdGFWYWx1ZSh0aGlzLm5hbWUsIGxvY2FsRGF0YSkpXHJcblx0XHRcdH0sXHJcblx0XHRcdHVuSW5pdCgpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5mb3JtKSB7XHJcblx0XHRcdFx0XHRjb25zdCB7XHJcblx0XHRcdFx0XHRcdGNoaWxkcmVucyxcclxuXHRcdFx0XHRcdFx0Zm9ybURhdGEsXHJcblx0XHRcdFx0XHRcdF9yZWFsTmFtZVxyXG5cdFx0XHRcdFx0fSA9IHRoaXMuZm9ybVxyXG5cdFx0XHRcdFx0Y2hpbGRyZW5zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChpdGVtID09PSB0aGlzKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtLmNoaWxkcmVucy5zcGxpY2UoaW5kZXgsIDEpXHJcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIGZvcm1EYXRhW19yZWFsTmFtZShpdGVtLm5hbWUpXVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6K6+572uaXRlbSDnmoTlgLxcclxuXHRcdFx0aXRlbVNldFZhbHVlKHZhbHVlKSB7XHJcblx0XHRcdFx0Y29uc3QgbmFtZSA9IHRoaXMuZm9ybS5fcmVhbE5hbWUodGhpcy5uYW1lKVxyXG5cdFx0XHRcdGNvbnN0IHJ1bGVzID0gdGhpcy5pdGVtUnVsZXMucnVsZXMgfHwgW11cclxuXHRcdFx0XHRjb25zdCB2YWwgPSB0aGlzLmZvcm0uX2dldFZhbHVlKG5hbWUsIHZhbHVlLCBydWxlcylcclxuXHRcdFx0XHR0aGlzLmZvcm0uX3NldERhdGFWYWx1ZShuYW1lLCB0aGlzLmZvcm0uZm9ybURhdGEsIHZhbClcclxuXHRcdFx0XHRyZXR1cm4gdmFsXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog56e76Zmk6K+l6KGo5Y2V6aG555qE5qCh6aqM57uT5p6cXHJcblx0XHRcdCAqL1xyXG5cdFx0XHRjbGVhclZhbGlkYXRlKCkge1xyXG5cdFx0XHRcdHRoaXMuZXJyTXNnID0gJyc7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvLyDmmK/lkKbmmL7npLrmmJ/lj7dcclxuXHRcdFx0X2lzUmVxdWlyZWQoKSB7XHJcblx0XHRcdFx0Ly8gVE9ETyDkuI3moLnmja7op4TliJnmmL7npLog5pif5Y+377yM6ICD6JmR5ZCO57ut5YW85a65XHJcblx0XHRcdFx0Ly8gaWYgKHRoaXMuZm9ybSkge1xyXG5cdFx0XHRcdC8vIFx0aWYgKHRoaXMuZm9ybS5faXNSZXF1aXJlZEZpZWxkKHRoaXMuaXRlbVJ1bGVzLnJ1bGVzIHx8IFtdKSAmJiB0aGlzLnJlcXVpcmVkKSB7XHJcblx0XHRcdFx0Ly8gXHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0Ly8gXHR9XHJcblx0XHRcdFx0Ly8gXHRyZXR1cm4gZmFsc2VcclxuXHRcdFx0XHQvLyB9XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMucmVxdWlyZWRcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8vIOWkhOeQhuWvuem9kOaWueW8j1xyXG5cdFx0XHRfanVzdGlmeUNvbnRlbnQoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuZm9ybSkge1xyXG5cdFx0XHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdFx0XHRsYWJlbEFsaWduXHJcblx0XHRcdFx0XHR9ID0gdGhpcy5mb3JtXHJcblx0XHRcdFx0XHRsZXQgbGFiZWxBbGkgPSB0aGlzLmxhYmVsQWxpZ24gPyB0aGlzLmxhYmVsQWxpZ24gOiBsYWJlbEFsaWduO1xyXG5cdFx0XHRcdFx0aWYgKGxhYmVsQWxpID09PSAnbGVmdCcpIHJldHVybiAnZmxleC1zdGFydCc7XHJcblx0XHRcdFx0XHRpZiAobGFiZWxBbGkgPT09ICdjZW50ZXInKSByZXR1cm4gJ2NlbnRlcic7XHJcblx0XHRcdFx0XHRpZiAobGFiZWxBbGkgPT09ICdyaWdodCcpIHJldHVybiAnZmxleC1lbmQnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gJ2ZsZXgtc3RhcnQnO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlpITnkIYgbGFiZWzlrr3luqbljZXkvY0gLOe7p+aJv+eItuWFg+e0oOeahOWAvFxyXG5cdFx0XHRfbGFiZWxXaWR0aFVuaXQobGFiZWxXaWR0aCkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiAodGhpcy5mb3JtKSB7XHJcblx0XHRcdFx0Ly8gXHRjb25zdCB7XHJcblx0XHRcdFx0Ly8gXHRcdGxhYmVsV2lkdGhcclxuXHRcdFx0XHQvLyBcdH0gPSB0aGlzLmZvcm1cclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5udW0ycHgodGhpcy5sYWJlbFdpZHRoID8gdGhpcy5sYWJlbFdpZHRoIDogKGxhYmVsV2lkdGggfHwgKHRoaXMubGFiZWwgPyA2NSA6ICdhdXRvJykpKVxyXG5cdFx0XHRcdC8vIH1cclxuXHRcdFx0XHQvLyByZXR1cm4gJzY1cHgnXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWkhOeQhiBsYWJlbCDkvY3nva5cclxuXHRcdFx0X2xhYmVsUG9zaXRpb24oKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuZm9ybSkgcmV0dXJuIHRoaXMuZm9ybS5sYWJlbFBvc2l0aW9uIHx8ICdsZWZ0J1xyXG5cdFx0XHRcdHJldHVybiAnbGVmdCdcclxuXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvKipcclxuXHRcdFx0ICog6Kem5Y+R5pe25py6XHJcblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBydWxlIOW9k+WJjeinhOWImeWGheaXtuaculxyXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gaXRlbVJsdWUg5b2T5YmN57uE5Lu25pe25py6XHJcblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBwYXJlbnRSdWxlIOeItue7hOS7tuaXtuaculxyXG5cdFx0XHQgKi9cclxuXHRcdFx0aXNUcmlnZ2VyKHJ1bGUsIGl0ZW1SbHVlLCBwYXJlbnRSdWxlKSB7XHJcblx0XHRcdFx0Ly8gIGJpbmQgIHN1Ym1pdFxyXG5cdFx0XHRcdGlmIChydWxlID09PSAnc3VibWl0JyB8fCAhcnVsZSkge1xyXG5cdFx0XHRcdFx0aWYgKHJ1bGUgPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0XHRpZiAoaXRlbVJsdWUgIT09ICdiaW5kJykge1xyXG5cdFx0XHRcdFx0XHRcdGlmICghaXRlbVJsdWUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBwYXJlbnRSdWxlID09PSAnJyA/ICdiaW5kJyA6ICdzdWJtaXQnO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gJ3N1Ym1pdCc7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cmV0dXJuICdiaW5kJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiAnc3VibWl0JztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuICdiaW5kJztcclxuXHRcdFx0fSxcclxuXHRcdFx0bnVtMnB4KG51bSkge1xyXG5cdFx0XHRcdGlmICh0eXBlb2YgbnVtID09PSAnbnVtYmVyJykge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGAke251bX1weGBcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIG51bVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIj5cclxuXHQudW5pLWZvcm1zLWl0ZW0ge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdC8qICNpZmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0Ly8g5ZyoIG52dWUg5Lit77yM5L2/55SoIG1hcmdpbi1ib3R0b20gZXJyb3Ig5L+h5oGv5Lya6KKr6ZqQ6JePXHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMjJweDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjJweDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHJcblx0XHQmX19sYWJlbCB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0Y29sb3I6ICM2MDYyNjY7XHJcblx0XHRcdGhlaWdodDogMzZweDtcclxuXHRcdFx0cGFkZGluZzogMCAxMnB4IDAgMDtcclxuXHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRmbGV4LXNocmluazogMDtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblxyXG5cdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0Ji5uby1sYWJlbCB7XHJcblx0XHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2NvbnRlbnQge1xyXG5cdFx0XHQvKiAjaWZuZGVmIE1QLVRPVVRJQU8gKi9cclxuXHRcdFx0Ly8gZGlzcGxheTogZmxleDtcclxuXHRcdFx0Ly8gYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRmbGV4OiAxO1xyXG5cdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cclxuXHRcdFx0LyogI2lmbmRlZiBBUFAgfHwgSDUgfHwgTVAtV0VJWElOIHx8IEFQUC1OVlVFICovXHJcblx0XHRcdC8vIFRPRE8g5Zug5Li65bCP56iL5bqP5bmz5Y+w5Lya5aSa5LiA5bGC5qCH562+6IqC54K5IO+8jOaJgOS7pemcgOimgeWcqOWkmuS9meiKgueCuee7p+aJv+W9k+WJjeagt+W8j1xyXG5cdFx0XHQmPnVuaS1lYXN5aW5wdXQsXHJcblx0XHRcdCY+dW5pLWRhdGEtcGlja2VyIHtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogI2VuZGlmICovXHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdCYgLnVuaS1mb3Jtcy1pdGVtX19udXZlLWNvbnRlbnQge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0XHRmbGV4OiAxO1xyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2Vycm9yIHtcclxuXHRcdFx0Y29sb3I6ICNmNTZjNmM7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHRcdHBhZGRpbmctdG9wOiA0cHg7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHR0b3A6IDEwMCU7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdFx0LyogI2lmZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdGJvdHRvbTogNXB4O1xyXG5cdFx0XHQvKiAjZW5kaWYgKi9cclxuXHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblxyXG5cdFx0XHQuZXJyb3ItdGV4dCB7XHJcblx0XHRcdFx0Ly8g5Y+q5pyJIG52dWUg5LiL6L+Z5Liq5qC35byP5omN55Sf5pWIXHJcblx0XHRcdFx0Y29sb3I6ICNmNTZjNmM7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLm1zZy0tYWN0aXZlIHtcclxuXHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyDkvY3nva7kv67ppbDmoLflvI9cclxuXHRcdCYuaXMtZGlyZWN0aW9uLWxlZnQge1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0fVxyXG5cclxuXHRcdCYuaXMtZGlyZWN0aW9uLXRvcCB7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG5cdFx0XHQudW5pLWZvcm1zLWl0ZW1fX2xhYmVsIHtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDAgOHB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjU3MTU7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdFx0d2hpdGUtc3BhY2U6IGluaXRpYWw7XHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuaXMtcmVxdWlyZWQge1xyXG5cdFx0XHQvLyBjb2xvcjogJHVuaS1jb2xvci1lcnJvcjtcclxuXHRcdFx0Y29sb3I6ICNkZDUyNGQ7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblxyXG5cdC51bmktZm9ybXMtaXRlbS0tYm9yZGVyIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDA7XHJcblx0XHQvLyBwYWRkaW5nLWJvdHRvbTogMDtcclxuXHRcdGJvcmRlci10b3A6IDFweCAjZWVlIHNvbGlkO1xyXG5cclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdC51bmktZm9ybXMtaXRlbV9fY29udGVudCB7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcblxyXG5cdFx0XHQudW5pLWZvcm1zLWl0ZW1fX2Vycm9yIHtcclxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0dG9wOiA1cHg7XHJcblx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cclxuXHRcdC8qICNpZmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblxyXG5cdFx0LnVuaS1mb3Jtcy1pdGVtX19lcnJvciB7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0dG9wOiAwcHg7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAwO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiA1cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogI2VuZGlmICovXHJcblxyXG5cdH1cclxuXHJcblx0LmlzLWZpcnN0LWJvcmRlciB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRib3JkZXI6IG5vbmU7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdC8qICNpZmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0Ym9yZGVyLXdpZHRoOiAwO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///34\n"); /***/ }), /* 35 */ /*!*****************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-easyinput.vue?vue&type=template&id=abe12412& */ 36);\n/* harmony import */ var _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-easyinput.vue?vue&type=script&lang=js& */ 44);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_easyinput_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 _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMEg7QUFDMUg7QUFDaUU7QUFDTDs7O0FBRzVEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLG1GQUFNO0FBQ1IsRUFBRSx3RkFBTTtBQUNSLEVBQUUsaUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNEZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1lYXN5aW5wdXQudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWFiZTEyNDEyJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLWVhc3lpbnB1dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1lYXN5aW5wdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1lYXN5aW5wdXQvY29tcG9uZW50cy91bmktZWFzeWlucHV0L3VuaS1lYXN5aW5wdXQudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///35\n"); /***/ }), /* 36 */ /*!************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=template&id=abe12412& ***! \************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-easyinput.vue?vue&type=template&id=abe12412& */ 37); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_template_id_abe12412___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 37 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=template&id=abe12412& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uniIcons: __webpack_require__(/*! @/uni_modules/uni-icons/components/uni-icons/uni-icons.vue */ 38) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-easyinput"), class: _vm._$s(0, "c", { "uni-easyinput-error": _vm.msg }), style: _vm._$s(0, "s", _vm.boxStyle), attrs: { _i: 0 }, }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "uni-easyinput__content"), class: _vm._$s(1, "c", _vm.inputContentClass), style: _vm._$s(1, "s", _vm.inputContentStyle), attrs: { _i: 1 }, }, [ _vm._$s(2, "i", _vm.prefixIcon) ? _c("uni-icons", { staticClass: _vm._$s(2, "sc", "content-clear-icon"), attrs: { type: _vm.prefixIcon, color: "#c0c4cc", size: "22", _i: 2, }, on: { click: function ($event) { return _vm.onClickIcon("prefix") }, }, }) : _vm._e(), _vm._$s(3, "i", _vm.type === "textarea") ? _c("textarea", { staticClass: _vm._$s( 3, "sc", "uni-easyinput__content-textarea" ), class: _vm._$s(3, "c", { "input-padding": _vm.inputBorder }), attrs: { name: _vm._$s(3, "a-name", _vm.name), value: _vm._$s(3, "a-value", _vm.val), placeholder: _vm._$s(3, "a-placeholder", _vm.placeholder), placeholderStyle: _vm._$s( 3, "a-placeholderStyle", _vm.placeholderStyle ), disabled: _vm._$s(3, "a-disabled", _vm.disabled), maxlength: _vm._$s(3, "a-maxlength", _vm.inputMaxlength), focus: _vm._$s(3, "a-focus", _vm.focused), autoHeight: _vm._$s(3, "a-autoHeight", _vm.autoHeight), "cursor-spacing": _vm._$s( 3, "a-cursor-spacing", _vm.cursorSpacing ), _i: 3, }, on: { input: _vm.onInput, blur: _vm._Blur, focus: _vm._Focus, confirm: _vm.onConfirm, keyboardheightchange: _vm.onkeyboardheightchange, }, }) : _c("input", { staticClass: _vm._$s(4, "sc", "uni-easyinput__content-input"), style: _vm._$s(4, "s", _vm.inputStyle), attrs: { type: _vm._$s( 4, "a-type", _vm.type === "password" ? "text" : _vm.type ), name: _vm._$s(4, "a-name", _vm.name), value: _vm._$s(4, "a-value", _vm.val), password: _vm._$s( 4, "a-password", !_vm.showPassword && _vm.type === "password" ), placeholder: _vm._$s(4, "a-placeholder", _vm.placeholder), placeholderStyle: _vm._$s( 4, "a-placeholderStyle", _vm.placeholderStyle ), disabled: _vm._$s(4, "a-disabled", _vm.disabled), maxlength: _vm._$s(4, "a-maxlength", _vm.inputMaxlength), focus: _vm._$s(4, "a-focus", _vm.focused), confirmType: _vm._$s(4, "a-confirmType", _vm.confirmType), "cursor-spacing": _vm._$s( 4, "a-cursor-spacing", _vm.cursorSpacing ), _i: 4, }, on: { focus: _vm._Focus, blur: _vm._Blur, input: _vm.onInput, confirm: _vm.onConfirm, keyboardheightchange: _vm.onkeyboardheightchange, }, }), _vm._$s(5, "i", _vm.type === "password" && _vm.passwordIcon) ? [ _vm._$s(6, "i", _vm.isVal) ? _c("uni-icons", { staticClass: _vm._$s(6, "sc", "content-clear-icon"), class: _vm._$s(6, "c", { "is-textarea-icon": _vm.type === "textarea", }), attrs: { type: _vm.showPassword ? "eye-slash-filled" : "eye-filled", size: 22, color: _vm.focusShow ? _vm.primaryColor : "#c0c4cc", _i: 6, }, on: { click: _vm.onEyes }, }) : _vm._e(), ] : _vm._$s(7, "e", _vm.suffixIcon) ? [ _vm._$s(8, "i", _vm.suffixIcon) ? _c("uni-icons", { staticClass: _vm._$s(8, "sc", "content-clear-icon"), attrs: { type: _vm.suffixIcon, color: "#c0c4cc", size: "22", _i: 8, }, on: { click: function ($event) { return _vm.onClickIcon("suffix") }, }, }) : _vm._e(), ] : [ _vm._$s( 10, "i", _vm.clearable && _vm.isVal && !_vm.disabled && _vm.type !== "textarea" ) ? _c("uni-icons", { staticClass: _vm._$s(10, "sc", "content-clear-icon"), class: _vm._$s(10, "c", { "is-textarea-icon": _vm.type === "textarea", }), attrs: { type: "clear", size: _vm.clearSize, color: _vm.msg ? "#dd524d" : _vm.focusShow ? _vm.primaryColor : "#c0c4cc", _i: 10, }, on: { click: _vm.onClear }, }) : _vm._e(), ], _vm._t("right", null, { _i: 11 }), ], 2 ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 38 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-icons/components/uni-icons/uni-icons.vue ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-icons.vue?vue&type=template&id=a2e81f6e& */ 39);\n/* harmony import */ var _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-icons.vue?vue&type=script&lang=js& */ 41);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_icons_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 _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-icons/components/uni-icons/uni-icons.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0g7QUFDdEg7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxvRkFBTTtBQUNSLEVBQUUsNkZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0ZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3VuaS1pY29ucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9YTJlODFmNmUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91bmktaWNvbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3VuaS1pY29ucy9jb21wb25lbnRzL3VuaS1pY29ucy91bmktaWNvbnMudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///38\n"); /***/ }), /* 39 */ /*!************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=template&id=a2e81f6e& ***! \************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-icons.vue?vue&type=template&id=a2e81f6e& */ 40); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_template_id_a2e81f6e___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 40 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=template&id=a2e81f6e& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("text", { staticClass: _vm._$s(0, "sc", "uni-icons"), class: _vm._$s(0, "c", [ "uniui-" + _vm.type, _vm.customPrefix, _vm.customPrefix ? _vm.type : "", ]), style: _vm._$s(0, "s", { color: _vm.color, "font-size": _vm.iconSize }), attrs: { _i: 0 }, on: { click: _vm._onClick }, }) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 41 */ /*!******************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-icons.vue?vue&type=script&lang=js& */ 42);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_icons_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZqQixDQUFnQiwrakJBQUcsRUFBQyIsImZpbGUiOiI0MS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1pY29ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1pY29ucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///41\n"); /***/ }), /* 42 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-icons/components/uni-icons/uni-icons.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _icons = _interopRequireDefault(__webpack_require__(/*! ./icons.js */ 43));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar getVal = function getVal(val) {\n var reg = /^[0-9]*$/g;\n return typeof val === 'number' || reg.test(val) ? val + 'px' : val;\n};\n\n/**\n * Icons 图标\n * @description 用于展示 icons 图标\n * @tutorial https://ext.dcloud.net.cn/plugin?id=28\n * @property {Number} size 图标大小\n * @property {String} type 图标图案,参考示例\n * @property {String} color 图标颜色\n * @property {String} customPrefix 自定义图标\n * @event {Function} click 点击 Icon 触发事件\n */\nvar _default = {\n name: 'UniIcons',\n emits: ['click'],\n props: {\n type: {\n type: String,\n default: ''\n },\n color: {\n type: String,\n default: '#333333'\n },\n size: {\n type: [Number, String],\n default: 16\n },\n customPrefix: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n icons: _icons.default.glyphs\n };\n },\n computed: {\n unicode: function unicode() {\n var _this = this;\n var code = this.icons.find(function (v) {\n return v.font_class === _this.type;\n });\n if (code) {\n return unescape(\"%u\".concat(code.unicode));\n }\n return '';\n },\n iconSize: function iconSize() {\n return getVal(this.size);\n }\n },\n methods: {\n _onClick: function _onClick() {\n this.$emit('click');\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL3VuaS1pY29ucy52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNvbG9yIiwic2l6ZSIsImN1c3RvbVByZWZpeCIsImRhdGEiLCJpY29ucyIsImNvbXB1dGVkIiwidW5pY29kZSIsImljb25TaXplIiwibWV0aG9kcyIsIl9vbkNsaWNrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBVUE7Ozs7Ozs7Ozs7O0FBQ0E7RUFDQTtFQUNBO0FBQ0E7O0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQSxlQVVBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FBO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBRTtNQUNBSDtNQUNBQztJQUNBO0lBQ0FHO01BQ0FKO01BQ0FDO0lBQ0E7RUFDQTtFQUNBSTtJQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUFBO01BQ0E7UUFBQTtNQUFBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiNDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PCEtLSAjaWZkZWYgQVBQLU5WVUUgLS0+XHJcblx0PHRleHQgOnN0eWxlPVwieyBjb2xvcjogY29sb3IsICdmb250LXNpemUnOiBpY29uU2l6ZSB9XCIgY2xhc3M9XCJ1bmktaWNvbnNcIiBAY2xpY2s9XCJfb25DbGlja1wiPnt7dW5pY29kZX19PC90ZXh0PlxyXG5cdDwhLS0gI2VuZGlmIC0tPlxyXG5cdDwhLS0gI2lmbmRlZiBBUFAtTlZVRSAtLT5cclxuXHQ8dGV4dCA6c3R5bGU9XCJ7IGNvbG9yOiBjb2xvciwgJ2ZvbnQtc2l6ZSc6IGljb25TaXplIH1cIiBjbGFzcz1cInVuaS1pY29uc1wiIDpjbGFzcz1cIlsndW5pdWktJyt0eXBlLGN1c3RvbVByZWZpeCxjdXN0b21QcmVmaXg/dHlwZTonJ11cIiBAY2xpY2s9XCJfb25DbGlja1wiPjwvdGV4dD5cclxuXHQ8IS0tICNlbmRpZiAtLT5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IGljb25zIGZyb20gJy4vaWNvbnMuanMnO1xyXG5cdGNvbnN0IGdldFZhbCA9ICh2YWwpID0+IHtcclxuXHRcdGNvbnN0IHJlZyA9IC9eWzAtOV0qJC9nXHJcblx0XHRyZXR1cm4gKHR5cGVvZiB2YWwgPT09ICdudW1iZXInIHx844CAcmVnLnRlc3QodmFsKSApPyB2YWwgKyAncHgnIDogdmFsO1xyXG5cdH0gXHJcblx0Ly8gI2lmZGVmIEFQUC1OVlVFXHJcblx0dmFyIGRvbU1vZHVsZSA9IHdlZXgucmVxdWlyZU1vZHVsZSgnZG9tJyk7XHJcblx0aW1wb3J0IGljb25VcmwgZnJvbSAnLi91bmlpY29ucy50dGYnXHJcblx0ZG9tTW9kdWxlLmFkZFJ1bGUoJ2ZvbnRGYWNlJywge1xyXG5cdFx0J2ZvbnRGYW1pbHknOiBcInVuaWljb25zXCIsXHJcblx0XHQnc3JjJzogXCJ1cmwoJ1wiK2ljb25VcmwrXCInKVwiXHJcblx0fSk7XHJcblx0Ly8gI2VuZGlmXHJcblxyXG5cdC8qKlxyXG5cdCAqIEljb25zIOWbvuagh1xyXG5cdCAqIEBkZXNjcmlwdGlvbiDnlKjkuo7lsZXnpLogaWNvbnMg5Zu+5qCHXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI4XHJcblx0ICogQHByb3BlcnR5IHtOdW1iZXJ9IHNpemUg5Zu+5qCH5aSn5bCPXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUg5Zu+5qCH5Zu+5qGI77yM5Y+C6ICD56S65L6LXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IGNvbG9yIOWbvuagh+minOiJslxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBjdXN0b21QcmVmaXgg6Ieq5a6a5LmJ5Zu+5qCHXHJcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xpY2sg54K55Ye7IEljb24g6Kem5Y+R5LqL5Lu2XHJcblx0ICovXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ1VuaUljb25zJyxcclxuXHRcdGVtaXRzOlsnY2xpY2snXSxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdHR5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0Y29sb3I6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJyMzMzMzMzMnXHJcblx0XHRcdH0sXHJcblx0XHRcdHNpemU6IHtcclxuXHRcdFx0XHR0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IDE2XHJcblx0XHRcdH0sXHJcblx0XHRcdGN1c3RvbVByZWZpeDp7XHJcblx0XHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRcdGRlZmF1bHQ6ICcnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGljb25zOiBpY29ucy5nbHlwaHNcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOntcclxuXHRcdFx0dW5pY29kZSgpe1xyXG5cdFx0XHRcdGxldCBjb2RlID0gdGhpcy5pY29ucy5maW5kKHY9PnYuZm9udF9jbGFzcyA9PT0gdGhpcy50eXBlKVxyXG5cdFx0XHRcdGlmKGNvZGUpe1xyXG5cdFx0XHRcdFx0cmV0dXJuIHVuZXNjYXBlKGAldSR7Y29kZS51bmljb2RlfWApXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRpY29uU2l6ZSgpe1xyXG5cdFx0XHRcdHJldHVybiBnZXRWYWwodGhpcy5zaXplKVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRfb25DbGljaygpIHtcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdjbGljaycpXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdEBpbXBvcnQgJy4vdW5paWNvbnMuY3NzJztcclxuXHRAZm9udC1mYWNlIHtcclxuXHRcdGZvbnQtZmFtaWx5OiB1bmlpY29ucztcclxuXHRcdHNyYzogdXJsKCcuL3VuaWljb25zLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcclxuXHR9XHJcblxyXG5cdC8qICNlbmRpZiAqL1xyXG5cdC51bmktaWNvbnMge1xyXG5cdFx0Zm9udC1mYW1pbHk6IHVuaWljb25zO1xyXG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///42\n"); /***/ }), /* 43 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-icons/components/uni-icons/icons.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n \"id\": \"2852637\",\n \"name\": \"uniui图标库\",\n \"font_family\": \"uniicons\",\n \"css_prefix_text\": \"uniui-\",\n \"description\": \"\",\n \"glyphs\": [{\n \"icon_id\": \"25027049\",\n \"name\": \"yanse\",\n \"font_class\": \"color\",\n \"unicode\": \"e6cf\",\n \"unicode_decimal\": 59087\n }, {\n \"icon_id\": \"25027048\",\n \"name\": \"wallet\",\n \"font_class\": \"wallet\",\n \"unicode\": \"e6b1\",\n \"unicode_decimal\": 59057\n }, {\n \"icon_id\": \"25015720\",\n \"name\": \"settings-filled\",\n \"font_class\": \"settings-filled\",\n \"unicode\": \"e6ce\",\n \"unicode_decimal\": 59086\n }, {\n \"icon_id\": \"25015434\",\n \"name\": \"shimingrenzheng-filled\",\n \"font_class\": \"auth-filled\",\n \"unicode\": \"e6cc\",\n \"unicode_decimal\": 59084\n }, {\n \"icon_id\": \"24934246\",\n \"name\": \"shop-filled\",\n \"font_class\": \"shop-filled\",\n \"unicode\": \"e6cd\",\n \"unicode_decimal\": 59085\n }, {\n \"icon_id\": \"24934159\",\n \"name\": \"staff-filled-01\",\n \"font_class\": \"staff-filled\",\n \"unicode\": \"e6cb\",\n \"unicode_decimal\": 59083\n }, {\n \"icon_id\": \"24932461\",\n \"name\": \"VIP-filled\",\n \"font_class\": \"vip-filled\",\n \"unicode\": \"e6c6\",\n \"unicode_decimal\": 59078\n }, {\n \"icon_id\": \"24932462\",\n \"name\": \"plus_circle_fill\",\n \"font_class\": \"plus-filled\",\n \"unicode\": \"e6c7\",\n \"unicode_decimal\": 59079\n }, {\n \"icon_id\": \"24932463\",\n \"name\": \"folder_add-filled\",\n \"font_class\": \"folder-add-filled\",\n \"unicode\": \"e6c8\",\n \"unicode_decimal\": 59080\n }, {\n \"icon_id\": \"24932464\",\n \"name\": \"yanse-filled\",\n \"font_class\": \"color-filled\",\n \"unicode\": \"e6c9\",\n \"unicode_decimal\": 59081\n }, {\n \"icon_id\": \"24932465\",\n \"name\": \"tune-filled\",\n \"font_class\": \"tune-filled\",\n \"unicode\": \"e6ca\",\n \"unicode_decimal\": 59082\n }, {\n \"icon_id\": \"24932455\",\n \"name\": \"a-rilidaka-filled\",\n \"font_class\": \"calendar-filled\",\n \"unicode\": \"e6c0\",\n \"unicode_decimal\": 59072\n }, {\n \"icon_id\": \"24932456\",\n \"name\": \"notification-filled\",\n \"font_class\": \"notification-filled\",\n \"unicode\": \"e6c1\",\n \"unicode_decimal\": 59073\n }, {\n \"icon_id\": \"24932457\",\n \"name\": \"wallet-filled\",\n \"font_class\": \"wallet-filled\",\n \"unicode\": \"e6c2\",\n \"unicode_decimal\": 59074\n }, {\n \"icon_id\": \"24932458\",\n \"name\": \"paihangbang-filled\",\n \"font_class\": \"medal-filled\",\n \"unicode\": \"e6c3\",\n \"unicode_decimal\": 59075\n }, {\n \"icon_id\": \"24932459\",\n \"name\": \"gift-filled\",\n \"font_class\": \"gift-filled\",\n \"unicode\": \"e6c4\",\n \"unicode_decimal\": 59076\n }, {\n \"icon_id\": \"24932460\",\n \"name\": \"fire-filled\",\n \"font_class\": \"fire-filled\",\n \"unicode\": \"e6c5\",\n \"unicode_decimal\": 59077\n }, {\n \"icon_id\": \"24928001\",\n \"name\": \"refreshempty\",\n \"font_class\": \"refreshempty\",\n \"unicode\": \"e6bf\",\n \"unicode_decimal\": 59071\n }, {\n \"icon_id\": \"24926853\",\n \"name\": \"location-ellipse\",\n \"font_class\": \"location-filled\",\n \"unicode\": \"e6af\",\n \"unicode_decimal\": 59055\n }, {\n \"icon_id\": \"24926735\",\n \"name\": \"person-filled\",\n \"font_class\": \"person-filled\",\n \"unicode\": \"e69d\",\n \"unicode_decimal\": 59037\n }, {\n \"icon_id\": \"24926703\",\n \"name\": \"personadd-filled\",\n \"font_class\": \"personadd-filled\",\n \"unicode\": \"e698\",\n \"unicode_decimal\": 59032\n }, {\n \"icon_id\": \"24923351\",\n \"name\": \"back\",\n \"font_class\": \"back\",\n \"unicode\": \"e6b9\",\n \"unicode_decimal\": 59065\n }, {\n \"icon_id\": \"24923352\",\n \"name\": \"forward\",\n \"font_class\": \"forward\",\n \"unicode\": \"e6ba\",\n \"unicode_decimal\": 59066\n }, {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrow-right\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n }, {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrowthinright\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n }, {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrow-left\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n }, {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrowthinleft\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n }, {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrow-up\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n }, {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrowthinup\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n }, {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrow-down\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n }, {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrowthindown\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n }, {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"bottom\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n }, {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"arrowdown\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n }, {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"right\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n }, {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"arrowright\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n }, {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"top\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n }, {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"arrowup\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n }, {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"left\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n }, {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"arrowleft\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n }, {\n \"icon_id\": \"24923334\",\n \"name\": \"eye\",\n \"font_class\": \"eye\",\n \"unicode\": \"e651\",\n \"unicode_decimal\": 58961\n }, {\n \"icon_id\": \"24923335\",\n \"name\": \"eye-filled\",\n \"font_class\": \"eye-filled\",\n \"unicode\": \"e66a\",\n \"unicode_decimal\": 58986\n }, {\n \"icon_id\": \"24923336\",\n \"name\": \"eye-slash\",\n \"font_class\": \"eye-slash\",\n \"unicode\": \"e6b3\",\n \"unicode_decimal\": 59059\n }, {\n \"icon_id\": \"24923337\",\n \"name\": \"eye-slash-filled\",\n \"font_class\": \"eye-slash-filled\",\n \"unicode\": \"e6b4\",\n \"unicode_decimal\": 59060\n }, {\n \"icon_id\": \"24923305\",\n \"name\": \"info-filled\",\n \"font_class\": \"info-filled\",\n \"unicode\": \"e649\",\n \"unicode_decimal\": 58953\n }, {\n \"icon_id\": \"24923299\",\n \"name\": \"reload-01\",\n \"font_class\": \"reload\",\n \"unicode\": \"e6b2\",\n \"unicode_decimal\": 59058\n }, {\n \"icon_id\": \"24923195\",\n \"name\": \"mic_slash_fill\",\n \"font_class\": \"micoff-filled\",\n \"unicode\": \"e6b0\",\n \"unicode_decimal\": 59056\n }, {\n \"icon_id\": \"24923165\",\n \"name\": \"map-pin-ellipse\",\n \"font_class\": \"map-pin-ellipse\",\n \"unicode\": \"e6ac\",\n \"unicode_decimal\": 59052\n }, {\n \"icon_id\": \"24923166\",\n \"name\": \"map-pin\",\n \"font_class\": \"map-pin\",\n \"unicode\": \"e6ad\",\n \"unicode_decimal\": 59053\n }, {\n \"icon_id\": \"24923167\",\n \"name\": \"location\",\n \"font_class\": \"location\",\n \"unicode\": \"e6ae\",\n \"unicode_decimal\": 59054\n }, {\n \"icon_id\": \"24923064\",\n \"name\": \"starhalf\",\n \"font_class\": \"starhalf\",\n \"unicode\": \"e683\",\n \"unicode_decimal\": 59011\n }, {\n \"icon_id\": \"24923065\",\n \"name\": \"star\",\n \"font_class\": \"star\",\n \"unicode\": \"e688\",\n \"unicode_decimal\": 59016\n }, {\n \"icon_id\": \"24923066\",\n \"name\": \"star-filled\",\n \"font_class\": \"star-filled\",\n \"unicode\": \"e68f\",\n \"unicode_decimal\": 59023\n }, {\n \"icon_id\": \"24899646\",\n \"name\": \"a-rilidaka\",\n \"font_class\": \"calendar\",\n \"unicode\": \"e6a0\",\n \"unicode_decimal\": 59040\n }, {\n \"icon_id\": \"24899647\",\n \"name\": \"fire\",\n \"font_class\": \"fire\",\n \"unicode\": \"e6a1\",\n \"unicode_decimal\": 59041\n }, {\n \"icon_id\": \"24899648\",\n \"name\": \"paihangbang\",\n \"font_class\": \"medal\",\n \"unicode\": \"e6a2\",\n \"unicode_decimal\": 59042\n }, {\n \"icon_id\": \"24899649\",\n \"name\": \"font\",\n \"font_class\": \"font\",\n \"unicode\": \"e6a3\",\n \"unicode_decimal\": 59043\n }, {\n \"icon_id\": \"24899650\",\n \"name\": \"gift\",\n \"font_class\": \"gift\",\n \"unicode\": \"e6a4\",\n \"unicode_decimal\": 59044\n }, {\n \"icon_id\": \"24899651\",\n \"name\": \"link\",\n \"font_class\": \"link\",\n \"unicode\": \"e6a5\",\n \"unicode_decimal\": 59045\n }, {\n \"icon_id\": \"24899652\",\n \"name\": \"notification\",\n \"font_class\": \"notification\",\n \"unicode\": \"e6a6\",\n \"unicode_decimal\": 59046\n }, {\n \"icon_id\": \"24899653\",\n \"name\": \"staff\",\n \"font_class\": \"staff\",\n \"unicode\": \"e6a7\",\n \"unicode_decimal\": 59047\n }, {\n \"icon_id\": \"24899654\",\n \"name\": \"VIP\",\n \"font_class\": \"vip\",\n \"unicode\": \"e6a8\",\n \"unicode_decimal\": 59048\n }, {\n \"icon_id\": \"24899655\",\n \"name\": \"folder_add\",\n \"font_class\": \"folder-add\",\n \"unicode\": \"e6a9\",\n \"unicode_decimal\": 59049\n }, {\n \"icon_id\": \"24899656\",\n \"name\": \"tune\",\n \"font_class\": \"tune\",\n \"unicode\": \"e6aa\",\n \"unicode_decimal\": 59050\n }, {\n \"icon_id\": \"24899657\",\n \"name\": \"shimingrenzheng\",\n \"font_class\": \"auth\",\n \"unicode\": \"e6ab\",\n \"unicode_decimal\": 59051\n }, {\n \"icon_id\": \"24899565\",\n \"name\": \"person\",\n \"font_class\": \"person\",\n \"unicode\": \"e699\",\n \"unicode_decimal\": 59033\n }, {\n \"icon_id\": \"24899566\",\n \"name\": \"email-filled\",\n \"font_class\": \"email-filled\",\n \"unicode\": \"e69a\",\n \"unicode_decimal\": 59034\n }, {\n \"icon_id\": \"24899567\",\n \"name\": \"phone-filled\",\n \"font_class\": \"phone-filled\",\n \"unicode\": \"e69b\",\n \"unicode_decimal\": 59035\n }, {\n \"icon_id\": \"24899568\",\n \"name\": \"phone\",\n \"font_class\": \"phone\",\n \"unicode\": \"e69c\",\n \"unicode_decimal\": 59036\n }, {\n \"icon_id\": \"24899570\",\n \"name\": \"email\",\n \"font_class\": \"email\",\n \"unicode\": \"e69e\",\n \"unicode_decimal\": 59038\n }, {\n \"icon_id\": \"24899571\",\n \"name\": \"personadd\",\n \"font_class\": \"personadd\",\n \"unicode\": \"e69f\",\n \"unicode_decimal\": 59039\n }, {\n \"icon_id\": \"24899558\",\n \"name\": \"chatboxes-filled\",\n \"font_class\": \"chatboxes-filled\",\n \"unicode\": \"e692\",\n \"unicode_decimal\": 59026\n }, {\n \"icon_id\": \"24899559\",\n \"name\": \"contact\",\n \"font_class\": \"contact\",\n \"unicode\": \"e693\",\n \"unicode_decimal\": 59027\n }, {\n \"icon_id\": \"24899560\",\n \"name\": \"chatbubble-filled\",\n \"font_class\": \"chatbubble-filled\",\n \"unicode\": \"e694\",\n \"unicode_decimal\": 59028\n }, {\n \"icon_id\": \"24899561\",\n \"name\": \"contact-filled\",\n \"font_class\": \"contact-filled\",\n \"unicode\": \"e695\",\n \"unicode_decimal\": 59029\n }, {\n \"icon_id\": \"24899562\",\n \"name\": \"chatboxes\",\n \"font_class\": \"chatboxes\",\n \"unicode\": \"e696\",\n \"unicode_decimal\": 59030\n }, {\n \"icon_id\": \"24899563\",\n \"name\": \"chatbubble\",\n \"font_class\": \"chatbubble\",\n \"unicode\": \"e697\",\n \"unicode_decimal\": 59031\n }, {\n \"icon_id\": \"24881290\",\n \"name\": \"upload-filled\",\n \"font_class\": \"upload-filled\",\n \"unicode\": \"e68e\",\n \"unicode_decimal\": 59022\n }, {\n \"icon_id\": \"24881292\",\n \"name\": \"upload\",\n \"font_class\": \"upload\",\n \"unicode\": \"e690\",\n \"unicode_decimal\": 59024\n }, {\n \"icon_id\": \"24881293\",\n \"name\": \"weixin\",\n \"font_class\": \"weixin\",\n \"unicode\": \"e691\",\n \"unicode_decimal\": 59025\n }, {\n \"icon_id\": \"24881274\",\n \"name\": \"compose\",\n \"font_class\": \"compose\",\n \"unicode\": \"e67f\",\n \"unicode_decimal\": 59007\n }, {\n \"icon_id\": \"24881275\",\n \"name\": \"qq\",\n \"font_class\": \"qq\",\n \"unicode\": \"e680\",\n \"unicode_decimal\": 59008\n }, {\n \"icon_id\": \"24881276\",\n \"name\": \"download-filled\",\n \"font_class\": \"download-filled\",\n \"unicode\": \"e681\",\n \"unicode_decimal\": 59009\n }, {\n \"icon_id\": \"24881277\",\n \"name\": \"pengyouquan\",\n \"font_class\": \"pyq\",\n \"unicode\": \"e682\",\n \"unicode_decimal\": 59010\n }, {\n \"icon_id\": \"24881279\",\n \"name\": \"sound\",\n \"font_class\": \"sound\",\n \"unicode\": \"e684\",\n \"unicode_decimal\": 59012\n }, {\n \"icon_id\": \"24881280\",\n \"name\": \"trash-filled\",\n \"font_class\": \"trash-filled\",\n \"unicode\": \"e685\",\n \"unicode_decimal\": 59013\n }, {\n \"icon_id\": \"24881281\",\n \"name\": \"sound-filled\",\n \"font_class\": \"sound-filled\",\n \"unicode\": \"e686\",\n \"unicode_decimal\": 59014\n }, {\n \"icon_id\": \"24881282\",\n \"name\": \"trash\",\n \"font_class\": \"trash\",\n \"unicode\": \"e687\",\n \"unicode_decimal\": 59015\n }, {\n \"icon_id\": \"24881284\",\n \"name\": \"videocam-filled\",\n \"font_class\": \"videocam-filled\",\n \"unicode\": \"e689\",\n \"unicode_decimal\": 59017\n }, {\n \"icon_id\": \"24881285\",\n \"name\": \"spinner-cycle\",\n \"font_class\": \"spinner-cycle\",\n \"unicode\": \"e68a\",\n \"unicode_decimal\": 59018\n }, {\n \"icon_id\": \"24881286\",\n \"name\": \"weibo\",\n \"font_class\": \"weibo\",\n \"unicode\": \"e68b\",\n \"unicode_decimal\": 59019\n }, {\n \"icon_id\": \"24881288\",\n \"name\": \"videocam\",\n \"font_class\": \"videocam\",\n \"unicode\": \"e68c\",\n \"unicode_decimal\": 59020\n }, {\n \"icon_id\": \"24881289\",\n \"name\": \"download\",\n \"font_class\": \"download\",\n \"unicode\": \"e68d\",\n \"unicode_decimal\": 59021\n }, {\n \"icon_id\": \"24879601\",\n \"name\": \"help\",\n \"font_class\": \"help\",\n \"unicode\": \"e679\",\n \"unicode_decimal\": 59001\n }, {\n \"icon_id\": \"24879602\",\n \"name\": \"navigate-filled\",\n \"font_class\": \"navigate-filled\",\n \"unicode\": \"e67a\",\n \"unicode_decimal\": 59002\n }, {\n \"icon_id\": \"24879603\",\n \"name\": \"plusempty\",\n \"font_class\": \"plusempty\",\n \"unicode\": \"e67b\",\n \"unicode_decimal\": 59003\n }, {\n \"icon_id\": \"24879604\",\n \"name\": \"smallcircle\",\n \"font_class\": \"smallcircle\",\n \"unicode\": \"e67c\",\n \"unicode_decimal\": 59004\n }, {\n \"icon_id\": \"24879605\",\n \"name\": \"minus-filled\",\n \"font_class\": \"minus-filled\",\n \"unicode\": \"e67d\",\n \"unicode_decimal\": 59005\n }, {\n \"icon_id\": \"24879606\",\n \"name\": \"micoff\",\n \"font_class\": \"micoff\",\n \"unicode\": \"e67e\",\n \"unicode_decimal\": 59006\n }, {\n \"icon_id\": \"24879588\",\n \"name\": \"closeempty\",\n \"font_class\": \"closeempty\",\n \"unicode\": \"e66c\",\n \"unicode_decimal\": 58988\n }, {\n \"icon_id\": \"24879589\",\n \"name\": \"clear\",\n \"font_class\": \"clear\",\n \"unicode\": \"e66d\",\n \"unicode_decimal\": 58989\n }, {\n \"icon_id\": \"24879590\",\n \"name\": \"navigate\",\n \"font_class\": \"navigate\",\n \"unicode\": \"e66e\",\n \"unicode_decimal\": 58990\n }, {\n \"icon_id\": \"24879591\",\n \"name\": \"minus\",\n \"font_class\": \"minus\",\n \"unicode\": \"e66f\",\n \"unicode_decimal\": 58991\n }, {\n \"icon_id\": \"24879592\",\n \"name\": \"image\",\n \"font_class\": \"image\",\n \"unicode\": \"e670\",\n \"unicode_decimal\": 58992\n }, {\n \"icon_id\": \"24879593\",\n \"name\": \"mic\",\n \"font_class\": \"mic\",\n \"unicode\": \"e671\",\n \"unicode_decimal\": 58993\n }, {\n \"icon_id\": \"24879594\",\n \"name\": \"paperplane\",\n \"font_class\": \"paperplane\",\n \"unicode\": \"e672\",\n \"unicode_decimal\": 58994\n }, {\n \"icon_id\": \"24879595\",\n \"name\": \"close\",\n \"font_class\": \"close\",\n \"unicode\": \"e673\",\n \"unicode_decimal\": 58995\n }, {\n \"icon_id\": \"24879596\",\n \"name\": \"help-filled\",\n \"font_class\": \"help-filled\",\n \"unicode\": \"e674\",\n \"unicode_decimal\": 58996\n }, {\n \"icon_id\": \"24879597\",\n \"name\": \"plus-filled\",\n \"font_class\": \"paperplane-filled\",\n \"unicode\": \"e675\",\n \"unicode_decimal\": 58997\n }, {\n \"icon_id\": \"24879598\",\n \"name\": \"plus\",\n \"font_class\": \"plus\",\n \"unicode\": \"e676\",\n \"unicode_decimal\": 58998\n }, {\n \"icon_id\": \"24879599\",\n \"name\": \"mic-filled\",\n \"font_class\": \"mic-filled\",\n \"unicode\": \"e677\",\n \"unicode_decimal\": 58999\n }, {\n \"icon_id\": \"24879600\",\n \"name\": \"image-filled\",\n \"font_class\": \"image-filled\",\n \"unicode\": \"e678\",\n \"unicode_decimal\": 59000\n }, {\n \"icon_id\": \"24855900\",\n \"name\": \"locked-filled\",\n \"font_class\": \"locked-filled\",\n \"unicode\": \"e668\",\n \"unicode_decimal\": 58984\n }, {\n \"icon_id\": \"24855901\",\n \"name\": \"info\",\n \"font_class\": \"info\",\n \"unicode\": \"e669\",\n \"unicode_decimal\": 58985\n }, {\n \"icon_id\": \"24855903\",\n \"name\": \"locked\",\n \"font_class\": \"locked\",\n \"unicode\": \"e66b\",\n \"unicode_decimal\": 58987\n }, {\n \"icon_id\": \"24855884\",\n \"name\": \"camera-filled\",\n \"font_class\": \"camera-filled\",\n \"unicode\": \"e658\",\n \"unicode_decimal\": 58968\n }, {\n \"icon_id\": \"24855885\",\n \"name\": \"chat-filled\",\n \"font_class\": \"chat-filled\",\n \"unicode\": \"e659\",\n \"unicode_decimal\": 58969\n }, {\n \"icon_id\": \"24855886\",\n \"name\": \"camera\",\n \"font_class\": \"camera\",\n \"unicode\": \"e65a\",\n \"unicode_decimal\": 58970\n }, {\n \"icon_id\": \"24855887\",\n \"name\": \"circle\",\n \"font_class\": \"circle\",\n \"unicode\": \"e65b\",\n \"unicode_decimal\": 58971\n }, {\n \"icon_id\": \"24855888\",\n \"name\": \"checkmarkempty\",\n \"font_class\": \"checkmarkempty\",\n \"unicode\": \"e65c\",\n \"unicode_decimal\": 58972\n }, {\n \"icon_id\": \"24855889\",\n \"name\": \"chat\",\n \"font_class\": \"chat\",\n \"unicode\": \"e65d\",\n \"unicode_decimal\": 58973\n }, {\n \"icon_id\": \"24855890\",\n \"name\": \"circle-filled\",\n \"font_class\": \"circle-filled\",\n \"unicode\": \"e65e\",\n \"unicode_decimal\": 58974\n }, {\n \"icon_id\": \"24855891\",\n \"name\": \"flag\",\n \"font_class\": \"flag\",\n \"unicode\": \"e65f\",\n \"unicode_decimal\": 58975\n }, {\n \"icon_id\": \"24855892\",\n \"name\": \"flag-filled\",\n \"font_class\": \"flag-filled\",\n \"unicode\": \"e660\",\n \"unicode_decimal\": 58976\n }, {\n \"icon_id\": \"24855893\",\n \"name\": \"gear-filled\",\n \"font_class\": \"gear-filled\",\n \"unicode\": \"e661\",\n \"unicode_decimal\": 58977\n }, {\n \"icon_id\": \"24855894\",\n \"name\": \"home\",\n \"font_class\": \"home\",\n \"unicode\": \"e662\",\n \"unicode_decimal\": 58978\n }, {\n \"icon_id\": \"24855895\",\n \"name\": \"home-filled\",\n \"font_class\": \"home-filled\",\n \"unicode\": \"e663\",\n \"unicode_decimal\": 58979\n }, {\n \"icon_id\": \"24855896\",\n \"name\": \"gear\",\n \"font_class\": \"gear\",\n \"unicode\": \"e664\",\n \"unicode_decimal\": 58980\n }, {\n \"icon_id\": \"24855897\",\n \"name\": \"smallcircle-filled\",\n \"font_class\": \"smallcircle-filled\",\n \"unicode\": \"e665\",\n \"unicode_decimal\": 58981\n }, {\n \"icon_id\": \"24855898\",\n \"name\": \"map-filled\",\n \"font_class\": \"map-filled\",\n \"unicode\": \"e666\",\n \"unicode_decimal\": 58982\n }, {\n \"icon_id\": \"24855899\",\n \"name\": \"map\",\n \"font_class\": \"map\",\n \"unicode\": \"e667\",\n \"unicode_decimal\": 58983\n }, {\n \"icon_id\": \"24855825\",\n \"name\": \"refresh-filled\",\n \"font_class\": \"refresh-filled\",\n \"unicode\": \"e656\",\n \"unicode_decimal\": 58966\n }, {\n \"icon_id\": \"24855826\",\n \"name\": \"refresh\",\n \"font_class\": \"refresh\",\n \"unicode\": \"e657\",\n \"unicode_decimal\": 58967\n }, {\n \"icon_id\": \"24855808\",\n \"name\": \"cloud-upload\",\n \"font_class\": \"cloud-upload\",\n \"unicode\": \"e645\",\n \"unicode_decimal\": 58949\n }, {\n \"icon_id\": \"24855809\",\n \"name\": \"cloud-download-filled\",\n \"font_class\": \"cloud-download-filled\",\n \"unicode\": \"e646\",\n \"unicode_decimal\": 58950\n }, {\n \"icon_id\": \"24855810\",\n \"name\": \"cloud-download\",\n \"font_class\": \"cloud-download\",\n \"unicode\": \"e647\",\n \"unicode_decimal\": 58951\n }, {\n \"icon_id\": \"24855811\",\n \"name\": \"cloud-upload-filled\",\n \"font_class\": \"cloud-upload-filled\",\n \"unicode\": \"e648\",\n \"unicode_decimal\": 58952\n }, {\n \"icon_id\": \"24855813\",\n \"name\": \"redo\",\n \"font_class\": \"redo\",\n \"unicode\": \"e64a\",\n \"unicode_decimal\": 58954\n }, {\n \"icon_id\": \"24855814\",\n \"name\": \"images-filled\",\n \"font_class\": \"images-filled\",\n \"unicode\": \"e64b\",\n \"unicode_decimal\": 58955\n }, {\n \"icon_id\": \"24855815\",\n \"name\": \"undo-filled\",\n \"font_class\": \"undo-filled\",\n \"unicode\": \"e64c\",\n \"unicode_decimal\": 58956\n }, {\n \"icon_id\": \"24855816\",\n \"name\": \"more\",\n \"font_class\": \"more\",\n \"unicode\": \"e64d\",\n \"unicode_decimal\": 58957\n }, {\n \"icon_id\": \"24855817\",\n \"name\": \"more-filled\",\n \"font_class\": \"more-filled\",\n \"unicode\": \"e64e\",\n \"unicode_decimal\": 58958\n }, {\n \"icon_id\": \"24855818\",\n \"name\": \"undo\",\n \"font_class\": \"undo\",\n \"unicode\": \"e64f\",\n \"unicode_decimal\": 58959\n }, {\n \"icon_id\": \"24855819\",\n \"name\": \"images\",\n \"font_class\": \"images\",\n \"unicode\": \"e650\",\n \"unicode_decimal\": 58960\n }, {\n \"icon_id\": \"24855821\",\n \"name\": \"paperclip\",\n \"font_class\": \"paperclip\",\n \"unicode\": \"e652\",\n \"unicode_decimal\": 58962\n }, {\n \"icon_id\": \"24855822\",\n \"name\": \"settings\",\n \"font_class\": \"settings\",\n \"unicode\": \"e653\",\n \"unicode_decimal\": 58963\n }, {\n \"icon_id\": \"24855823\",\n \"name\": \"search\",\n \"font_class\": \"search\",\n \"unicode\": \"e654\",\n \"unicode_decimal\": 58964\n }, {\n \"icon_id\": \"24855824\",\n \"name\": \"redo-filled\",\n \"font_class\": \"redo-filled\",\n \"unicode\": \"e655\",\n \"unicode_decimal\": 58965\n }, {\n \"icon_id\": \"24841702\",\n \"name\": \"list\",\n \"font_class\": \"list\",\n \"unicode\": \"e644\",\n \"unicode_decimal\": 58948\n }, {\n \"icon_id\": \"24841489\",\n \"name\": \"mail-open-filled\",\n \"font_class\": \"mail-open-filled\",\n \"unicode\": \"e63a\",\n \"unicode_decimal\": 58938\n }, {\n \"icon_id\": \"24841491\",\n \"name\": \"hand-thumbsdown-filled\",\n \"font_class\": \"hand-down-filled\",\n \"unicode\": \"e63c\",\n \"unicode_decimal\": 58940\n }, {\n \"icon_id\": \"24841492\",\n \"name\": \"hand-thumbsdown\",\n \"font_class\": \"hand-down\",\n \"unicode\": \"e63d\",\n \"unicode_decimal\": 58941\n }, {\n \"icon_id\": \"24841493\",\n \"name\": \"hand-thumbsup-filled\",\n \"font_class\": \"hand-up-filled\",\n \"unicode\": \"e63e\",\n \"unicode_decimal\": 58942\n }, {\n \"icon_id\": \"24841494\",\n \"name\": \"hand-thumbsup\",\n \"font_class\": \"hand-up\",\n \"unicode\": \"e63f\",\n \"unicode_decimal\": 58943\n }, {\n \"icon_id\": \"24841496\",\n \"name\": \"heart-filled\",\n \"font_class\": \"heart-filled\",\n \"unicode\": \"e641\",\n \"unicode_decimal\": 58945\n }, {\n \"icon_id\": \"24841498\",\n \"name\": \"mail-open\",\n \"font_class\": \"mail-open\",\n \"unicode\": \"e643\",\n \"unicode_decimal\": 58947\n }, {\n \"icon_id\": \"24841488\",\n \"name\": \"heart\",\n \"font_class\": \"heart\",\n \"unicode\": \"e639\",\n \"unicode_decimal\": 58937\n }, {\n \"icon_id\": \"24839963\",\n \"name\": \"loop\",\n \"font_class\": \"loop\",\n \"unicode\": \"e633\",\n \"unicode_decimal\": 58931\n }, {\n \"icon_id\": \"24839866\",\n \"name\": \"pulldown\",\n \"font_class\": \"pulldown\",\n \"unicode\": \"e632\",\n \"unicode_decimal\": 58930\n }, {\n \"icon_id\": \"24813798\",\n \"name\": \"scan\",\n \"font_class\": \"scan\",\n \"unicode\": \"e62a\",\n \"unicode_decimal\": 58922\n }, {\n \"icon_id\": \"24813786\",\n \"name\": \"bars\",\n \"font_class\": \"bars\",\n \"unicode\": \"e627\",\n \"unicode_decimal\": 58919\n }, {\n \"icon_id\": \"24813788\",\n \"name\": \"cart-filled\",\n \"font_class\": \"cart-filled\",\n \"unicode\": \"e629\",\n \"unicode_decimal\": 58921\n }, {\n \"icon_id\": \"24813790\",\n \"name\": \"checkbox\",\n \"font_class\": \"checkbox\",\n \"unicode\": \"e62b\",\n \"unicode_decimal\": 58923\n }, {\n \"icon_id\": \"24813791\",\n \"name\": \"checkbox-filled\",\n \"font_class\": \"checkbox-filled\",\n \"unicode\": \"e62c\",\n \"unicode_decimal\": 58924\n }, {\n \"icon_id\": \"24813794\",\n \"name\": \"shop\",\n \"font_class\": \"shop\",\n \"unicode\": \"e62f\",\n \"unicode_decimal\": 58927\n }, {\n \"icon_id\": \"24813795\",\n \"name\": \"headphones\",\n \"font_class\": \"headphones\",\n \"unicode\": \"e630\",\n \"unicode_decimal\": 58928\n }, {\n \"icon_id\": \"24813796\",\n \"name\": \"cart\",\n \"font_class\": \"cart\",\n \"unicode\": \"e631\",\n \"unicode_decimal\": 58929\n }]\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWljb25zL2NvbXBvbmVudHMvdW5pLWljb25zL2ljb25zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0VBQ2IsSUFBSSxFQUFFLFNBQVM7RUFDZixNQUFNLEVBQUUsVUFBVTtFQUNsQixhQUFhLEVBQUUsVUFBVTtFQUN6QixpQkFBaUIsRUFBRSxRQUFRO0VBQzNCLGFBQWEsRUFBRSxFQUFFO0VBQ2pCLFFBQVEsRUFBRSxDQUNSO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixZQUFZLEVBQUUsT0FBTztJQUNyQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixZQUFZLEVBQUUsUUFBUTtJQUN0QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLHdCQUF3QjtJQUNoQyxZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxj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QWE7SUFDckIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUFDO0lBQ0EsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUFDO0lBQ0EsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFdBQVc7SUFDekIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsWUFBWSxFQUFFLE9BQU87SUFDckIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNIO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFNBQVM7SUFDakIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNIO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFNBQVM7SUFDakIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNIO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFdBQVc7SUFDekIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNDO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLEtBQUs7SUFDYixZQUFZLEVBQUUsS0FBSztJQUNuQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsWUFBWTtJQUNwQixZQUFZLEVBQUUsWUFBWTtJQUMxQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsV0FBVztJQUNuQixZQUFZLEVBQUUsV0FBVztJQUN6QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsa0JBQWtCO0lBQzFCLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGFBQWE7SUFDckIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixZQUFZLEVBQUUsZUFBZTtJQUM3QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFNBQVM7SUFDakIsWUFBWSxFQUFFLFNBQVM7SUFDdkIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFVBQVU7SUFDbEIsWUFBWSxFQUFFLFVBQVU7SUFDeEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFVBQVU7SUFDbEIsWUFBWSxFQUFFLFVBQVU7SUFDeEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE1BQU07SUFDZCxZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsWUFBWTtJQUNwQixZQUFZLEVBQUUsVUFBVTtJQUN4QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFlBQVksRUFBRSxPQUFPO0lBQ3JCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE1BQU07SUFDZCxZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxjQUFjO0lBQ3RCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsWUFBWSxFQUFFLE9BQU87SUFDckIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLEtBQUs7SUFDYixZQUFZLEVBQUUsS0FBSztJQUNuQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsWUFBWTtJQUNwQixZQUFZLEVBQUUsWUFBWTtJQUMxQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixZQUFZLEVBQUUsT0FBTztJQUNyQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsT0FBTztJQUNmLFlBQVksRUFBRSxPQUFPO0lBQ3JCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLFlBQVksRUFBRSxXQUFXO0lBQ3pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxrQkFBa0I7SUFDMUIsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsU0FBUztJQUNqQixZQUFZLEVBQUUsU0FBUztJQUN2QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsbUJBQW1CO0lBQzNCLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLFlBQVksRUFBRSxXQUFXO0lBQ3pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLFlBQVksRUFBRSxZQUFZO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFlBQVksRUFBRSxlQUFlO0lBQzdCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxRQUFRO0lBQ3RCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxRQUFRO0lBQ3RCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLElBQUk7SUFDbEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFlBQVksRUFBRSxLQUFLO0lBQ25CLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsWUFBWSxFQUFFLE9BQU87SUFDckIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixZQUFZLEVBQUUsT0FBTztJQUNyQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixZQUFZLEVBQUUsT0FBTztJQUNyQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsVUFBVTtJQUNsQixZQUFZLEVBQUUsVUFBVTtJQUN4QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsVUFBVTtJQUNsQixZQUFZLEVBQUUsVUFBVTtJQUN4QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsWUFBWSxFQUFFLGlCQUFpQjtJQUMvQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsV0FBVztJQUNuQixZQUFZLEVBQUUsV0FBVztJQUN6QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsY0FBYztJQUN0QixZQUFZLEVBQUUsY0FBYztJQUM1QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixZQUFZLEVBQUUsUUFBUTtJQUN0QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsWUFBWTtJQUNwQixZQUFZLEVBQUUsWUFBWTtJQUMxQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsT0FBTztJQUNmLFlBQVksRUFBRSxPQUFPO0lBQ3JCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFlBQVksRUFBRSxVQUFVO0lBQ3hCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsWUFBWSxFQUFFLE9BQU87SUFDckIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE9BQU87SUFDZixZQUFZLEVBQUUsT0FBTztJQUNyQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsS0FBSztJQUNiLFlBQVksRUFBRSxLQUFLO0lBQ25CLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLFlBQVksRUFBRSxZQUFZO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsWUFBWSxFQUFFLE9BQU87SUFDckIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGFBQWE7SUFDckIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGFBQWE7SUFDckIsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLFlBQVksRUFBRSxZQUFZO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxjQUFjO0lBQ3RCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFlBQVksRUFBRSxlQUFlO0lBQzdCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGFBQWE7SUFDckIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsWUFBWSxFQUFFLFFBQVE7SUFDdEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE1BQU07SUFDZCxZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFlBQVksRUFBRSxhQUFhO0lBQzNCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixZQUFZLEVBQUUsb0JBQW9CO0lBQ2xDLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLFlBQVksRUFBRSxZQUFZO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsWUFBWSxFQUFFLEtBQUs7SUFDbkIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxjQUFjO0lBQ3RCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSx1QkFBdUI7SUFDL0IsWUFBWSxFQUFFLHVCQUF1QjtJQUNyQyxTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLFlBQVksRUFBRSxnQkFBZ0I7SUFDOUIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixZQUFZLEVBQUUscUJBQXFCO0lBQ25DLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGFBQWE7SUFDckIsWUFBWSxFQUFFLGFBQWE7SUFDM0IsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE1BQU07SUFDZCxZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsYUFBYTtJQUNyQixZQUFZLEVBQUUsYUFBYTtJQUMzQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxRQUFRO0lBQ3RCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLFlBQVksRUFBRSxXQUFXO0lBQ3pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFlBQVksRUFBRSxVQUFVO0lBQ3hCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRSxRQUFRO0lBQ3RCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFlBQVksRUFBRSxhQUFhO0lBQzNCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLGtCQUFrQjtJQUMxQixZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSx3QkFBd0I7SUFDaEMsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFlBQVksRUFBRSxXQUFXO0lBQ3pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxzQkFBc0I7SUFDOUIsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsZUFBZTtJQUN2QixZQUFZLEVBQUUsU0FBUztJQUN2QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsY0FBYztJQUN0QixZQUFZLEVBQUUsY0FBYztJQUM1QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsV0FBVztJQUNuQixZQUFZLEVBQUUsV0FBVztJQUN6QixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsT0FBTztJQUNmLFlBQVksRUFBRSxPQUFPO0lBQ3JCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLFVBQVU7SUFDbEIsWUFBWSxFQUFFLFVBQVU7SUFDeEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQyxFQUNEO0lBQ0UsU0FBUyxFQUFFLFVBQVU7SUFDckIsTUFBTSxFQUFFLE1BQU07SUFDZCxZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxhQUFhO0lBQ3JCLFlBQVksRUFBRSxhQUFhO0lBQzNCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFlBQVksRUFBRSxVQUFVO0lBQ3hCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsWUFBWSxFQUFFLGlCQUFpQjtJQUMvQixTQUFTLEVBQUUsTUFBTTtJQUNqQixpQkFBaUIsRUFBRTtFQUNyQixDQUFDLEVBQ0Q7SUFDRSxTQUFTLEVBQUUsVUFBVTtJQUNyQixNQUFNLEVBQUUsTUFBTTtJQUNkLFlBQVksRUFBRSxNQUFNO0lBQ3BCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLFlBQVksRUFBRSxZQUFZO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGlCQUFpQixFQUFFO0VBQ3JCLENBQUMsRUFDRDtJQUNFLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsWUFBWSxFQUFFLE1BQU07SUFDcEIsU0FBUyxFQUFFLE1BQU07SUFDakIsaUJBQWlCLEVBQUU7RUFDckIsQ0FBQztBQUVMLENBQUM7QUFBQSIsImZpbGUiOiI0My5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICBcImlkXCI6IFwiMjg1MjYzN1wiLFxyXG4gIFwibmFtZVwiOiBcInVuaXVp5Zu+5qCH5bqTXCIsXHJcbiAgXCJmb250X2ZhbWlseVwiOiBcInVuaWljb25zXCIsXHJcbiAgXCJjc3NfcHJlZml4X3RleHRcIjogXCJ1bml1aS1cIixcclxuICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXHJcbiAgXCJnbHlwaHNcIjogW1xyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNTAyNzA0OVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJ5YW5zZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjb2xvclwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmNmXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg3XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNTAyNzA0OFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJ3YWxsZXRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwid2FsbGV0XCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjFcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI1MDE1NzIwXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInNldHRpbmdzLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzZXR0aW5ncy1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjZVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4NlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjUwMTU0MzRcIixcclxuICAgICAgXCJuYW1lXCI6IFwic2hpbWluZ3JlbnpoZW5nLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhdXRoLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmNjXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkzNDI0NlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJzaG9wLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzaG9wLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmNkXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDg1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkzNDE1OVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJzdGFmZi1maWxsZWQtMDFcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic3RhZmYtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2Y2JcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwODNcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDYxXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIlZJUC1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidmlwLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM2XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc4XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2MlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwbHVzX2NpcmNsZV9maWxsXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBsdXMtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzdcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDYzXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImZvbGRlcl9hZGQtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZvbGRlci1hZGQtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzhcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwODBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDY0XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInlhbnNlLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjb2xvci1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjOVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4MVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NjVcIixcclxuICAgICAgXCJuYW1lXCI6IFwidHVuZS1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidHVuZS1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjYVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA4MlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NTVcIixcclxuICAgICAgXCJuYW1lXCI6IFwiYS1yaWxpZGFrYS1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FsZW5kYXItZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YzBcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTMyNDU2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIm5vdGlmaWNhdGlvbi1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibm90aWZpY2F0aW9uLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmMxXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDczXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ1N1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJ3YWxsZXQtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIndhbGxldC1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZjMlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA3NFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MzI0NThcIixcclxuICAgICAgXCJuYW1lXCI6IFwicGFpaGFuZ2JhbmctZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1lZGFsLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmMzXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ1OVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJnaWZ0LWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJnaWZ0LWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM0XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc2XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkzMjQ2MFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJmaXJlLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJmaXJlLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmM1XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDc3XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyODAwMVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJyZWZyZXNoZW1wdHlcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVmcmVzaGVtcHR5XCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YmZcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzFcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTI2ODUzXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImxvY2F0aW9uLWVsbGlwc2VcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibG9jYXRpb24tZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWZcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTI2NzM1XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInBlcnNvbi1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGVyc29uLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjlkXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM3XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyNjcwM1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwZXJzb25hZGQtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBlcnNvbmFkZC1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5OFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzMlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNTFcIixcclxuICAgICAgXCJuYW1lXCI6IFwiYmFja1wiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJiYWNrXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjlcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzUyXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImZvcndhcmRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZm9yd2FyZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJhXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDY2XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1M1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJhcnJvd3RoaW5yaWdodFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvdy1yaWdodFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJiXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDY3XHJcbiAgICB9LFxyXG5cdFx0e1xyXG5cdFx0ICBcImljb25faWRcIjogXCIyNDkyMzM1M1wiLFxyXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3RoaW5yaWdodFwiLFxyXG5cdFx0ICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3RoaW5yaWdodFwiLFxyXG5cdFx0ICBcInVuaWNvZGVcIjogXCJlNmJiXCIsXHJcblx0XHQgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDY3XHJcblx0XHR9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzM1NFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJhcnJvd3RoaW5sZWZ0XCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImFycm93LWxlZnRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiY1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2OFxyXG4gICAgfSxcclxuXHRcdHtcclxuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNTRcIixcclxuXHRcdCAgXCJuYW1lXCI6IFwiYXJyb3d0aGlubGVmdFwiLFxyXG5cdFx0ICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3RoaW5sZWZ0XCIsXHJcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YmNcIixcclxuXHRcdCAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjhcclxuXHRcdH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU1XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImFycm93dGhpbnVwXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImFycm93LXVwXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YmRcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjlcclxuICAgIH0sXHJcblx0XHR7XHJcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU1XCIsXHJcblx0XHQgIFwibmFtZVwiOiBcImFycm93dGhpbnVwXCIsXHJcblx0XHQgIFwiZm9udF9jbGFzc1wiOiBcImFycm93dGhpbnVwXCIsXHJcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YmRcIixcclxuXHRcdCAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjlcclxuXHRcdH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzU2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImFycm93dGhpbmRvd25cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXJyb3ctZG93blwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmJlXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDcwXHJcbiAgICB9LHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNTZcIixcclxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d0aGluZG93blwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3RoaW5kb3duXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YmVcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNzBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzQ5XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImFycm93ZG93blwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJib3R0b21cIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiOFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NFxyXG4gICAgfSx7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzQ5XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImFycm93ZG93blwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd2Rvd25cIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiOFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2NFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDZcIixcclxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3dyaWdodFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJyaWdodFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmI1XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDYxXHJcbiAgICB9LFxyXG5cdFx0e1xyXG5cdFx0ICBcImljb25faWRcIjogXCIyNDkyMzM0NlwiLFxyXG5cdFx0ICBcIm5hbWVcIjogXCJhcnJvd3JpZ2h0XCIsXHJcblx0XHQgIFwiZm9udF9jbGFzc1wiOiBcImFycm93cmlnaHRcIixcclxuXHRcdCAgXCJ1bmljb2RlXCI6IFwiZTZiNVwiLFxyXG5cdFx0ICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2MVxyXG5cdFx0fSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDdcIixcclxuICAgICAgXCJuYW1lXCI6IFwiYXJyb3d1cFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ0b3BcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiNlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2MlxyXG4gICAgfSxcclxuXHRcdHtcclxuXHRcdCAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzNDdcIixcclxuXHRcdCAgXCJuYW1lXCI6IFwiYXJyb3d1cFwiLFxyXG5cdFx0ICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd3VwXCIsXHJcblx0XHQgIFwidW5pY29kZVwiOiBcImU2YjZcIixcclxuXHRcdCAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjJcclxuXHRcdH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzQ4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImFycm93bGVmdFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJsZWZ0XCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjdcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNjNcclxuICAgIH0sXHJcblx0XHR7XHJcblx0XHQgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMzQ4XCIsXHJcblx0XHQgIFwibmFtZVwiOiBcImFycm93bGVmdFwiLFxyXG5cdFx0ICBcImZvbnRfY2xhc3NcIjogXCJhcnJvd2xlZnRcIixcclxuXHRcdCAgXCJ1bmljb2RlXCI6IFwiZTZiN1wiLFxyXG5cdFx0ICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2M1xyXG5cdFx0fSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzMzRcIixcclxuICAgICAgXCJuYW1lXCI6IFwiZXllXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImV5ZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjUxXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTYxXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzMzNVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJleWUtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImV5ZS1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2YVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk4NlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzMzZcIixcclxuICAgICAgXCJuYW1lXCI6IFwiZXllLXNsYXNoXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImV5ZS1zbGFzaFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmIzXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU5XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzMzN1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJleWUtc2xhc2gtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImV5ZS1zbGFzaC1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZiNFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA2MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMzMDVcIixcclxuICAgICAgXCJuYW1lXCI6IFwiaW5mby1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW5mby1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0OVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1M1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMyOTlcIixcclxuICAgICAgXCJuYW1lXCI6IFwicmVsb2FkLTAxXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJlbG9hZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmIyXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDU4XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzE5NVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJtaWNfc2xhc2hfZmlsbFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtaWNvZmYtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YjBcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTZcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMTY1XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIm1hcC1waW4tZWxsaXBzZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYXAtcGluLWVsbGlwc2VcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhY1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA1MlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ5MjMxNjZcIixcclxuICAgICAgXCJuYW1lXCI6IFwibWFwLXBpblwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYXAtcGluXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWRcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTNcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMTY3XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImxvY2F0aW9uXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxvY2F0aW9uXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YWVcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNTRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMDY0XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInN0YXJoYWxmXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YXJoYWxmXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2ODNcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTFcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0OTIzMDY1XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInN0YXJcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic3RhclwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg4XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDE2XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDkyMzA2NlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJzdGFyLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzdGFyLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjhmXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDIzXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY0NlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJhLXJpbGlkYWthXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNhbGVuZGFyXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTBcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjQ3XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImZpcmVcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZmlyZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmExXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDQxXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY0OFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwYWloYW5nYmFuZ1wiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtZWRhbFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmEyXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDQyXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY0OVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJmb250XCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZvbnRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhM1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0M1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTBcIixcclxuICAgICAgXCJuYW1lXCI6IFwiZ2lmdFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJnaWZ0XCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTRcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjUxXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImxpbmtcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibGlua1wiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmE1XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDQ1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY1MlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJub3RpZmljYXRpb25cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibm90aWZpY2F0aW9uXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTZcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDZcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjUzXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInN0YWZmXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInN0YWZmXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTdcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjU0XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIlZJUFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ2aXBcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTZhOFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTA0OFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk2NTVcIixcclxuICAgICAgXCJuYW1lXCI6IFwiZm9sZGVyX2FkZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJmb2xkZXItYWRkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2YTlcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwNDlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NjU2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInR1bmVcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidHVuZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmFhXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDUwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTY1N1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJzaGltaW5ncmVuemhlbmdcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiYXV0aFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNmFiXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDUxXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU2NVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwZXJzb25cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGVyc29uXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OTlcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMzNcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTY2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImVtYWlsLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJlbWFpbC1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5YVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzNFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjdcIixcclxuICAgICAgXCJuYW1lXCI6IFwicGhvbmUtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBob25lLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjliXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU2OFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwaG9uZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwaG9uZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjljXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM2XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU3MFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJlbWFpbFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJlbWFpbFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjllXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDM4XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU3MVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwZXJzb25hZGRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGVyc29uYWRkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OWZcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMzlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODk5NTU4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImNoYXRib3hlcy1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdGJveGVzLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkyXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDI2XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU1OVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjb250YWN0XCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNvbnRhY3RcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5M1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyN1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjBcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJ1YmJsZS1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hhdGJ1YmJsZS1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5NFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyOFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjFcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY29udGFjdC1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY29udGFjdC1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5NVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyOVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4OTk1NjJcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2hhdGJveGVzXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNoYXRib3hlc1wiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjk2XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDMwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg5OTU2M1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjaGF0YnViYmxlXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNoYXRidWJibGVcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5N1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAzMVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyOTBcIixcclxuICAgICAgXCJuYW1lXCI6IFwidXBsb2FkLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1cGxvYWQtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OGVcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMjJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjkyXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInVwbG9hZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ1cGxvYWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY5MFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAyNFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyOTNcIixcclxuICAgICAgXCJuYW1lXCI6IFwid2VpeGluXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIndlaXhpblwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjkxXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDI1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI3NFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjb21wb3NlXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNvbXBvc2VcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3ZlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwN1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzVcIixcclxuICAgICAgXCJuYW1lXCI6IFwicXFcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicXFcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4MFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwOFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzZcIixcclxuICAgICAgXCJuYW1lXCI6IFwiZG93bmxvYWQtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImRvd25sb2FkLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjgxXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDA5XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI3N1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwZW5neW91cXVhblwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJweXFcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4MlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxMFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyNzlcIixcclxuICAgICAgXCJuYW1lXCI6IFwic291bmRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic291bmRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4NFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxMlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODBcIixcclxuICAgICAgXCJuYW1lXCI6IFwidHJhc2gtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInRyYXNoLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjg1XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDEzXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg4MTI4MVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJzb3VuZC1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic291bmQtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2ODZcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjgyXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInRyYXNoXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInRyYXNoXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2ODdcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg0XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInZpZGVvY2FtLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJ2aWRlb2NhbS1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY4OVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAxN1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4ODEyODVcIixcclxuICAgICAgXCJuYW1lXCI6IFwic3Bpbm5lci1jeWNsZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJzcGlubmVyLWN5Y2xlXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OGFcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMThcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIndlaWJvXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIndlaWJvXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OGJcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMTlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInZpZGVvY2FtXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInZpZGVvY2FtXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OGNcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMjBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODgxMjg5XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImRvd25sb2FkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImRvd25sb2FkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2OGRcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMjFcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NjAxXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImhlbHBcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGVscFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjc5XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDAxXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwMlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJuYXZpZ2F0ZS1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibmF2aWdhdGUtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2FcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMDJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NjAzXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInBsdXNlbXB0eVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwbHVzZW1wdHlcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3YlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwM1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDRcIixcclxuICAgICAgXCJuYW1lXCI6IFwic21hbGxjaXJjbGVcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic21hbGxjaXJjbGVcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3Y1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwNFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk2MDVcIixcclxuICAgICAgXCJuYW1lXCI6IFwibWludXMtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1pbnVzLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjdkXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU5MDA1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTYwNlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJtaWNvZmZcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWljb2ZmXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2N2VcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTkwMDZcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTg4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImNsb3NlZW1wdHlcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2xvc2VlbXB0eVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjZjXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg4XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU4OVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjbGVhclwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbGVhclwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjZkXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg5XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5MFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJuYXZpZ2F0ZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJuYXZpZ2F0ZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjZlXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTkwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5MVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJtaW51c1wiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtaW51c1wiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjZmXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTkxXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5MlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJpbWFnZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJpbWFnZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjcwXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTkyXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5M1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJtaWNcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWljXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzFcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OTNcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NTk0XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInBhcGVycGxhbmVcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicGFwZXJwbGFuZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjcyXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5NVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjbG9zZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbG9zZVwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjczXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5NlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJoZWxwLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoZWxwLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjc0XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk2XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5N1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwbHVzLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwYXBlcnBsYW5lLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjc1XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTk3XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg3OTU5OFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJwbHVzXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInBsdXNcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3NlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk5OFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Nzk1OTlcIixcclxuICAgICAgXCJuYW1lXCI6IFwibWljLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtaWMtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NzdcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5OTlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODc5NjAwXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImltYWdlLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJpbWFnZS1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY3OFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1OTAwMFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU5MDBcIixcclxuICAgICAgXCJuYW1lXCI6IFwibG9ja2VkLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJsb2NrZWQtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjhcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODRcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1OTAxXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImluZm9cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW5mb1wiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjY5XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTg1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTkwM1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJsb2NrZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibG9ja2VkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NmJcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg0XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImNhbWVyYS1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FtZXJhLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU4XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY4XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg4NVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjaGF0LWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0LWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU5XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY5XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg4NlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjYW1lcmFcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FtZXJhXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NWFcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODg3XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImNpcmNsZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaXJjbGVcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1YlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3MVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4ODhcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2hlY2ttYXJrZW1wdHlcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hlY2ttYXJrZW1wdHlcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1Y1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3MlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4ODlcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2hhdFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjaGF0XCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NWRcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzNcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODkwXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImNpcmNsZS1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2lyY2xlLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjVlXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTc0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg5MVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJmbGFnXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImZsYWdcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1ZlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3NVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTJcIixcclxuICAgICAgXCJuYW1lXCI6IFwiZmxhZy1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZmxhZy1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2MFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3NlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTNcIixcclxuICAgICAgXCJuYW1lXCI6IFwiZ2Vhci1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZ2Vhci1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY2MVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk3N1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4OTRcIixcclxuICAgICAgXCJuYW1lXCI6IFwiaG9tZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJob21lXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjJcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzhcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODk1XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImhvbWUtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhvbWUtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjNcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NzlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODk2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImdlYXJcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiZ2VhclwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjY0XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTgwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg5N1wiLFxyXG4gICAgICBcIm5hbWVcIjogXCJzbWFsbGNpcmNsZS1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic21hbGxjaXJjbGUtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjVcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODFcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODk4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIm1hcC1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWFwLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjY2XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTgyXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTg5OVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJtYXBcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwibWFwXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NjdcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5ODNcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODI1XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInJlZnJlc2gtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInJlZnJlc2gtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NTZcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjZcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODI2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInJlZnJlc2hcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVmcmVzaFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU3XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY3XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgwOFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJjbG91ZC11cGxvYWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2xvdWQtdXBsb2FkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDVcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NDlcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODA5XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImNsb3VkLWRvd25sb2FkLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbG91ZC1kb3dubG9hZC1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0NlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTBcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtZG93bmxvYWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2xvdWQtZG93bmxvYWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0N1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1MVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTFcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2xvdWQtdXBsb2FkLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJjbG91ZC11cGxvYWQtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDhcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NTJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODEzXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInJlZG9cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwicmVkb1wiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRhXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTU0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgxNFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJpbWFnZXMtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImltYWdlcy1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0YlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1NVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTVcIixcclxuICAgICAgXCJuYW1lXCI6IFwidW5kby1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidW5kby1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0Y1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk1NlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MTZcIixcclxuICAgICAgXCJuYW1lXCI6IFwibW9yZVwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtb3JlXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NGRcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NTdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE3XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIm1vcmUtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcIm1vcmUtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NGVcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NThcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODE4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInVuZG9cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwidW5kb1wiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjRmXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTU5XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgxOVwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJpbWFnZXNcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaW1hZ2VzXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NTBcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NjBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODU1ODIxXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInBhcGVyY2xpcFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJwYXBlcmNsaXBcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1MlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2MlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjJcIixcclxuICAgICAgXCJuYW1lXCI6IFwic2V0dGluZ3NcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic2V0dGluZ3NcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY1M1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk2M1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NTU4MjNcIixcclxuICAgICAgXCJuYW1lXCI6IFwic2VhcmNoXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNlYXJjaFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU0XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg1NTgyNFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJyZWRvLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJyZWRvLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjU1XCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTY1XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTcwMlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJsaXN0XCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImxpc3RcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0NFwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk0OFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NDE0ODlcIixcclxuICAgICAgXCJuYW1lXCI6IFwibWFpbC1vcGVuLWZpbGxlZFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYWlsLW9wZW4tZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2FcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MzhcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODQxNDkxXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImhhbmQtdGh1bWJzZG93bi1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGFuZC1kb3duLWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjNjXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5MlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJoYW5kLXRodW1ic2Rvd25cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGFuZC1kb3duXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2RcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NDFcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODQxNDkzXCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImhhbmQtdGh1bWJzdXAtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImhhbmQtdXAtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2M2VcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NDJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODQxNDk0XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImhhbmQtdGh1bWJzdXBcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGFuZC11cFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjNmXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTQzXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDg0MTQ5NlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJoZWFydC1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGVhcnQtZmlsbGVkXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2NDFcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5NDVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODQxNDk4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcIm1haWwtb3BlblwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJtYWlsLW9wZW5cIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTY0M1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODk0N1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4NDE0ODhcIixcclxuICAgICAgXCJuYW1lXCI6IFwiaGVhcnRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiaGVhcnRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYzOVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkzN1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4Mzk5NjNcIixcclxuICAgICAgXCJuYW1lXCI6IFwibG9vcFwiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJsb29wXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MzNcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MzFcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODM5ODY2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInB1bGxkb3duXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInB1bGxkb3duXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MzJcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MzBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODEzNzk4XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcInNjYW5cIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwic2NhblwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjJhXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTIyXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc4NlwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJiYXJzXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImJhcnNcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYyN1wiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkxOVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3ODhcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2FydC1maWxsZWRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FydC1maWxsZWRcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYyOVwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyMVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OTBcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2hlY2tib3hcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2hlY2tib3hcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYyYlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyM1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OTFcIixcclxuICAgICAgXCJuYW1lXCI6IFwiY2hlY2tib3gtZmlsbGVkXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcImNoZWNrYm94LWZpbGxlZFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjJjXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTI0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBcImljb25faWRcIjogXCIyNDgxMzc5NFwiLFxyXG4gICAgICBcIm5hbWVcIjogXCJzaG9wXCIsXHJcbiAgICAgIFwiZm9udF9jbGFzc1wiOiBcInNob3BcIixcclxuICAgICAgXCJ1bmljb2RlXCI6IFwiZTYyZlwiLFxyXG4gICAgICBcInVuaWNvZGVfZGVjaW1hbFwiOiA1ODkyN1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgXCJpY29uX2lkXCI6IFwiMjQ4MTM3OTVcIixcclxuICAgICAgXCJuYW1lXCI6IFwiaGVhZHBob25lc1wiLFxyXG4gICAgICBcImZvbnRfY2xhc3NcIjogXCJoZWFkcGhvbmVzXCIsXHJcbiAgICAgIFwidW5pY29kZVwiOiBcImU2MzBcIixcclxuICAgICAgXCJ1bmljb2RlX2RlY2ltYWxcIjogNTg5MjhcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIFwiaWNvbl9pZFwiOiBcIjI0ODEzNzk2XCIsXHJcbiAgICAgIFwibmFtZVwiOiBcImNhcnRcIixcclxuICAgICAgXCJmb250X2NsYXNzXCI6IFwiY2FydFwiLFxyXG4gICAgICBcInVuaWNvZGVcIjogXCJlNjMxXCIsXHJcbiAgICAgIFwidW5pY29kZV9kZWNpbWFsXCI6IDU4OTI5XHJcbiAgICB9XHJcbiAgXVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///43\n"); /***/ }), /* 44 */ /*!******************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-easyinput.vue?vue&type=script&lang=js& */ 45);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_easyinput_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlrQixDQUFnQixta0JBQUcsRUFBQyIsImZpbGUiOiI0NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1lYXN5aW5wdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktZWFzeWlucHV0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///44\n"); /***/ }), /* 45 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/**\r\n * Easyinput 输入框\r\n * @description 此组件可以实现表单的输入与校验,包括 \"text\" 和 \"textarea\" 类型。\r\n * @tutorial https://ext.dcloud.net.cn/plugin?id=3455\r\n * @property {String}\tvalue\t输入内容\r\n * @property {String }\ttype\t输入框的类型(默认text) password/text/textarea/..\r\n * \t@value text\t\t\t文本输入键盘\r\n * \t@value textarea\t多行文本输入键盘\r\n * \t@value password\t密码输入键盘\r\n * \t@value number\t\t数字输入键盘,注意iOS上app-vue弹出的数字键盘并非9宫格方式\r\n * \t@value idcard\t\t身份证输入键盘,信、支付宝、百度、QQ小程序\r\n * \t@value digit\t\t带小数点的数字键盘\t,App的nvue页面、微信、支付宝、百度、头条、QQ小程序支持\r\n * @property {Boolean}\tclearable\t是否显示右侧清空内容的图标控件,点击可清空输入框内容(默认true)\r\n * @property {Boolean}\tautoHeight\t是否自动增高输入区域,type为textarea时有效(默认true)\r\n * @property {String }\tplaceholder\t输入框的提示文字\r\n * @property {String }\tplaceholderStyle\tplaceholder的样式(内联样式,字符串),如\"color: #ddd\"\r\n * @property {Boolean}\tfocus\t是否自动获得焦点(默认false)\r\n * @property {Boolean}\tdisabled\t是否禁用(默认false)\r\n * @property {Number }\tmaxlength\t最大输入长度,设置为 -1 的时候不限制最大长度(默认140)\r\n * @property {String }\tconfirmType\t设置键盘右下角按钮的文字,仅在type=\"text\"时生效(默认done)\r\n * @property {Number }\tclearSize\t清除图标的大小,单位px(默认15)\r\n * @property {String}\tprefixIcon\t输入框头部图标\r\n * @property {String}\tsuffixIcon\t输入框尾部图标\r\n * @property {String}\tprimaryColor\t设置主题色(默认#2979ff)\r\n * @property {Boolean}\ttrim\t是否自动去除两端的空格\r\n * @property {Boolean}\tcursorSpacing\t指定光标与键盘的距离,单位 px\r\n * @value both\t去除两端空格\r\n * @value left\t去除左侧空格\r\n * @value right\t去除右侧空格\r\n * @value start\t去除左侧空格\r\n * @value end\t\t去除右侧空格\r\n * @value all\t\t去除全部空格\r\n * @value none\t不去除空格\r\n * @property {Boolean}\tinputBorder\t是否显示input输入框的边框(默认true)\r\n * @property {Boolean}\tpasswordIcon\ttype=password时是否显示小眼睛图标\r\n * @property {Object}\tstyles\t自定义颜色\r\n * @event {Function}\tinput\t输入框内容发生变化时触发\r\n * @event {Function}\tfocus\t输入框获得焦点时触发\r\n * @event {Function}\tblur\t输入框失去焦点时触发\r\n * @event {Function}\tconfirm\t点击完成按钮时触发\r\n * @event {Function}\ticonClick\t点击图标时触发\r\n * @example \r\n */\nfunction obj2strClass(obj) {\n var classess = '';\n for (var key in obj) {\n var val = obj[key];\n if (val) {\n classess += \"\".concat(key, \" \");\n }\n }\n return classess;\n}\nfunction obj2strStyle(obj) {\n var style = '';\n for (var key in obj) {\n var val = obj[key];\n style += \"\".concat(key, \":\").concat(val, \";\");\n }\n return style;\n}\nvar _default2 = {\n name: 'uni-easyinput',\n emits: ['click', 'iconClick', 'update:modelValue', 'input', 'focus', 'blur', 'confirm', 'clear', 'eyes', 'change', 'keyboardheightchange'],\n model: {\n prop: 'modelValue',\n event: 'update:modelValue'\n },\n options: {\n virtualHost: true\n },\n inject: {\n form: {\n from: 'uniForm',\n default: null\n },\n formItem: {\n from: 'uniFormItem',\n default: null\n }\n },\n props: {\n name: String,\n value: [Number, String],\n modelValue: [Number, String],\n type: {\n type: String,\n default: 'text'\n },\n clearable: {\n type: Boolean,\n default: true\n },\n autoHeight: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: ' '\n },\n placeholderStyle: String,\n focus: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n maxlength: {\n type: [Number, String],\n default: 140\n },\n confirmType: {\n type: String,\n default: 'done'\n },\n clearSize: {\n type: [Number, String],\n default: 24\n },\n inputBorder: {\n type: Boolean,\n default: true\n },\n prefixIcon: {\n type: String,\n default: ''\n },\n suffixIcon: {\n type: String,\n default: ''\n },\n trim: {\n type: [Boolean, String],\n default: false\n },\n cursorSpacing: {\n type: Number,\n default: 0\n },\n passwordIcon: {\n type: Boolean,\n default: true\n },\n primaryColor: {\n type: String,\n default: '#2979ff'\n },\n styles: {\n type: Object,\n default: function _default() {\n return {\n color: '#333',\n backgroundColor: '#fff',\n disableColor: '#F7F6F6',\n borderColor: '#e5e5e5'\n };\n }\n },\n errorMessage: {\n type: [String, Boolean],\n default: ''\n }\n },\n data: function data() {\n return {\n focused: false,\n val: '',\n showMsg: '',\n border: false,\n isFirstBorder: false,\n showClearIcon: false,\n showPassword: false,\n focusShow: false,\n localMsg: '',\n isEnter: false // 用于判断当前是否是使用回车操作\n };\n },\n\n computed: {\n // 输入框内是否有值\n isVal: function isVal() {\n var val = this.val;\n // fixed by mehaotian 处理值为0的情况,字符串0不在处理范围\n if (val || val === 0) {\n return true;\n }\n return false;\n },\n msg: function msg() {\n // console.log('computed', this.form, this.formItem);\n // if (this.form) {\n // \treturn this.errorMessage || this.formItem.errMsg;\n // }\n // TODO 处理头条 formItem 中 errMsg 不更新的问题\n return this.localMsg || this.errorMessage;\n },\n // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值\n inputMaxlength: function inputMaxlength() {\n return Number(this.maxlength);\n },\n // 处理外层样式的style\n boxStyle: function boxStyle() {\n return \"color:\".concat(this.inputBorder && this.msg ? '#e43d33' : this.styles.color, \";\");\n },\n // input 内容的类和样式处理\n inputContentClass: function inputContentClass() {\n return obj2strClass({\n 'is-input-border': this.inputBorder,\n 'is-input-error-border': this.inputBorder && this.msg,\n 'is-textarea': this.type === 'textarea',\n 'is-disabled': this.disabled,\n 'is-focused': this.focusShow\n });\n },\n inputContentStyle: function inputContentStyle() {\n var focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor;\n var borderColor = this.inputBorder && this.msg ? '#dd524d' : focusColor;\n return obj2strStyle({\n 'border-color': borderColor || '#e5e5e5',\n 'background-color': this.disabled ? this.styles.disableColor : this.styles.backgroundColor\n });\n },\n // input右侧样式\n inputStyle: function inputStyle() {\n var paddingRight = this.type === 'password' || this.clearable || this.prefixIcon ? '' : '10px';\n return obj2strStyle({\n 'padding-right': paddingRight,\n 'padding-left': this.prefixIcon ? '' : '10px'\n });\n }\n },\n watch: {\n value: function value(newVal) {\n this.val = newVal;\n },\n modelValue: function modelValue(newVal) {\n this.val = newVal;\n },\n focus: function focus(newVal) {\n var _this = this;\n this.$nextTick(function () {\n _this.focused = _this.focus;\n _this.focusShow = _this.focus;\n });\n }\n },\n created: function created() {\n var _this2 = this;\n this.init();\n // TODO 处理头条vue3 computed 不监听 inject 更改的问题(formItem.errMsg)\n if (this.form && this.formItem) {\n this.$watch('formItem.errMsg', function (newVal) {\n _this2.localMsg = newVal;\n });\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n this.$nextTick(function () {\n _this3.focused = _this3.focus;\n _this3.focusShow = _this3.focus;\n });\n },\n methods: {\n /**\r\n * 初始化变量值\r\n */\n init: function init() {\n if (this.value || this.value === 0) {\n this.val = this.value;\n } else if (this.modelValue || this.modelValue === 0 || this.modelValue === '') {\n this.val = this.modelValue;\n } else {\n this.val = null;\n }\n },\n /**\r\n * 点击图标时触发\r\n * @param {Object} type\r\n */\n onClickIcon: function onClickIcon(type) {\n this.$emit('iconClick', type);\n },\n /**\r\n * 显示隐藏内容,密码框时生效\r\n */\n onEyes: function onEyes() {\n this.showPassword = !this.showPassword;\n this.$emit('eyes', this.showPassword);\n },\n /**\r\n * 输入时触发\r\n * @param {Object} event\r\n */\n onInput: function onInput(event) {\n var value = event.detail.value;\n // 判断是否去除空格\n if (this.trim) {\n if (typeof this.trim === 'boolean' && this.trim) {\n value = this.trimStr(value);\n }\n if (typeof this.trim === 'string') {\n value = this.trimStr(value, this.trim);\n }\n }\n if (this.errMsg) this.errMsg = '';\n this.val = value;\n // TODO 兼容 vue2\n this.$emit('input', value);\n // TODO 兼容 vue3\n this.$emit('update:modelValue', value);\n },\n /**\r\n * 外部调用方法\r\n * 获取焦点时触发\r\n * @param {Object} event\r\n */\n onFocus: function onFocus() {\n var _this4 = this;\n this.$nextTick(function () {\n _this4.focused = true;\n });\n this.$emit('focus', null);\n },\n _Focus: function _Focus(event) {\n this.focusShow = true;\n this.$emit('focus', event);\n },\n /**\r\n * 外部调用方法\r\n * 失去焦点时触发\r\n * @param {Object} event\r\n */\n onBlur: function onBlur() {\n this.focused = false;\n this.$emit('focus', null);\n },\n _Blur: function _Blur(event) {\n var value = event.detail.value;\n this.focusShow = false;\n this.$emit('blur', event);\n // 根据类型返回值,在event中获取的值理论上讲都是string\n if (this.isEnter === false) {\n this.$emit('change', this.val);\n }\n // 失去焦点时参与表单校验\n if (this.form && this.formItem) {\n var validateTrigger = this.form.validateTrigger;\n if (validateTrigger === 'blur') {\n this.formItem.onFieldChange();\n }\n }\n },\n /**\r\n * 按下键盘的发送键\r\n * @param {Object} e\r\n */\n onConfirm: function onConfirm(e) {\n var _this5 = this;\n this.$emit('confirm', this.val);\n this.isEnter = true;\n this.$emit('change', this.val);\n this.$nextTick(function () {\n _this5.isEnter = false;\n });\n },\n /**\r\n * 清理内容\r\n * @param {Object} event\r\n */\n onClear: function onClear(event) {\n this.val = '';\n // TODO 兼容 vue2\n this.$emit('input', '');\n // TODO 兼容 vue2\n // TODO 兼容 vue3\n this.$emit('update:modelValue', '');\n // 点击叉号触发\n this.$emit('clear');\n },\n /**\r\n * 键盘高度发生变化的时候触发此事件\r\n * 兼容性:微信小程序2.7.0+、App 3.1.0+\r\n * @param {Object} event\r\n */\n onkeyboardheightchange: function onkeyboardheightchange(event) {\n this.$emit(\"keyboardheightchange\", event);\n },\n /**\r\n * 去除空格\r\n */\n trimStr: function trimStr(str) {\n var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'both';\n if (pos === 'both') {\n return str.trim();\n } else if (pos === 'left') {\n return str.trimLeft();\n } else if (pos === 'right') {\n return str.trimRight();\n } else if (pos === 'start') {\n return str.trimStart();\n } else if (pos === 'end') {\n return str.trimEnd();\n } else if (pos === 'all') {\n return str.replace(/\\s+/g, '');\n } else if (pos === 'none') {\n return str;\n }\n return str;\n }\n }\n};\nexports.default = _default2;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWVhc3lpbnB1dC9jb21wb25lbnRzL3VuaS1lYXN5aW5wdXQvdW5pLWVhc3lpbnB1dC52dWUiXSwibmFtZXMiOlsiY2xhc3Nlc3MiLCJzdHlsZSIsIm5hbWUiLCJlbWl0cyIsIm1vZGVsIiwicHJvcCIsImV2ZW50Iiwib3B0aW9ucyIsInZpcnR1YWxIb3N0IiwiaW5qZWN0IiwiZm9ybSIsImZyb20iLCJkZWZhdWx0IiwiZm9ybUl0ZW0iLCJwcm9wcyIsInZhbHVlIiwibW9kZWxWYWx1ZSIsInR5cGUiLCJjbGVhcmFibGUiLCJhdXRvSGVpZ2h0IiwicGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlclN0eWxlIiwiZm9jdXMiLCJkaXNhYmxlZCIsIm1heGxlbmd0aCIsImNvbmZpcm1UeXBlIiwiY2xlYXJTaXplIiwiaW5wdXRCb3JkZXIiLCJwcmVmaXhJY29uIiwic3VmZml4SWNvbiIsInRyaW0iLCJjdXJzb3JTcGFjaW5nIiwicGFzc3dvcmRJY29uIiwicHJpbWFyeUNvbG9yIiwic3R5bGVzIiwiY29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJkaXNhYmxlQ29sb3IiLCJib3JkZXJDb2xvciIsImVycm9yTWVzc2FnZSIsImRhdGEiLCJmb2N1c2VkIiwidmFsIiwic2hvd01zZyIsImJvcmRlciIsImlzRmlyc3RCb3JkZXIiLCJzaG93Q2xlYXJJY29uIiwic2hvd1Bhc3N3b3JkIiwiZm9jdXNTaG93IiwibG9jYWxNc2ciLCJpc0VudGVyIiwiY29tcHV0ZWQiLCJpc1ZhbCIsIm1zZyIsImlucHV0TWF4bGVuZ3RoIiwiYm94U3R5bGUiLCJpbnB1dENvbnRlbnRDbGFzcyIsImlucHV0Q29udGVudFN0eWxlIiwiaW5wdXRTdHlsZSIsIndhdGNoIiwiY3JlYXRlZCIsIm1vdW50ZWQiLCJtZXRob2RzIiwiaW5pdCIsIm9uQ2xpY2tJY29uIiwib25FeWVzIiwib25JbnB1dCIsIm9uRm9jdXMiLCJfRm9jdXMiLCJvbkJsdXIiLCJfQmx1ciIsIm9uQ29uZmlybSIsIm9uQ2xlYXIiLCJvbmtleWJvYXJkaGVpZ2h0Y2hhbmdlIiwidHJpbVN0ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQTtFQUNBO0lBQ0E7SUFDQTtNQUNBQTtJQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0lBQ0E7SUFDQUM7RUFDQTtFQUNBO0FBQ0E7QUFBQSxnQkFDQTtFQUNBQztFQUNBQztFQUNBQztJQUNBQztJQUNBQztFQUNBO0VBQ0FDO0lBQ0FDO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0VBQ0E7RUFDQUU7SUFDQVo7SUFDQWE7SUFDQUM7SUFDQUM7TUFDQUE7TUFDQUw7SUFDQTtJQUNBTTtNQUNBRDtNQUNBTDtJQUNBO0lBQ0FPO01BQ0FGO01BQ0FMO0lBQ0E7SUFDQVE7TUFDQUg7TUFDQUw7SUFDQTtJQUNBUztJQUNBQztNQUNBTDtNQUNBTDtJQUNBO0lBQ0FXO01BQ0FOO01BQ0FMO0lBQ0E7SUFDQVk7TUFDQVA7TUFDQUw7SUFDQTtJQUNBYTtNQUNBUjtNQUNBTDtJQUNBO0lBQ0FjO01BQ0FUO01BQ0FMO0lBQ0E7SUFDQWU7TUFDQVY7TUFDQUw7SUFDQTtJQUNBZ0I7TUFDQVg7TUFDQUw7SUFDQTtJQUNBaUI7TUFDQVo7TUFDQUw7SUFDQTtJQUNBa0I7TUFDQWI7TUFDQUw7SUFDQTtJQUNBbUI7TUFDQWQ7TUFDQUw7SUFDQTtJQUNBb0I7TUFDQWY7TUFDQUw7SUFDQTtJQUNBcUI7TUFDQWhCO01BQ0FMO0lBQ0E7SUFDQXNCO01BQ0FqQjtNQUNBTDtRQUNBO1VBQ0F1QjtVQUNBQztVQUNBQztVQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBdEI7TUFDQUw7SUFDQTtFQUNBO0VBQ0E0QjtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTs7RUFDQUM7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFFQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTVDO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQU07TUFBQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBc0M7SUFBQTtJQUNBO0lBQ0E7SUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFBQTtJQUNBO01BQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtVQUNBbkQ7UUFDQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNBb0Q7TUFBQTtNQUNBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtNQUNBO0lBQ0E7SUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7UUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFBQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUVBO0FBQ0E7QUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cInVuaS1lYXN5aW5wdXRcIiA6Y2xhc3M9XCJ7ICd1bmktZWFzeWlucHV0LWVycm9yJzogbXNnIH1cIiA6c3R5bGU9XCJib3hTdHlsZVwiPlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1bmktZWFzeWlucHV0X19jb250ZW50XCIgOmNsYXNzPVwiaW5wdXRDb250ZW50Q2xhc3NcIiA6c3R5bGU9XCJpbnB1dENvbnRlbnRTdHlsZVwiPlxyXG5cdFx0XHQ8dW5pLWljb25zIHYtaWY9XCJwcmVmaXhJY29uXCIgY2xhc3M9XCJjb250ZW50LWNsZWFyLWljb25cIiA6dHlwZT1cInByZWZpeEljb25cIiBjb2xvcj1cIiNjMGM0Y2NcIiBAY2xpY2s9XCJvbkNsaWNrSWNvbigncHJlZml4JylcIiBzaXplPVwiMjJcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0PHRleHRhcmVhXHJcblx0XHRcdFx0di1pZj1cInR5cGUgPT09ICd0ZXh0YXJlYSdcIlxyXG5cdFx0XHRcdGNsYXNzPVwidW5pLWVhc3lpbnB1dF9fY29udGVudC10ZXh0YXJlYVwiXHJcblx0XHRcdFx0OmNsYXNzPVwieyAnaW5wdXQtcGFkZGluZyc6IGlucHV0Qm9yZGVyIH1cIlxyXG5cdFx0XHRcdDpuYW1lPVwibmFtZVwiXHJcblx0XHRcdFx0OnZhbHVlPVwidmFsXCJcclxuXHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiXHJcblx0XHRcdFx0OnBsYWNlaG9sZGVyU3R5bGU9XCJwbGFjZWhvbGRlclN0eWxlXCJcclxuXHRcdFx0XHQ6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0cGxhY2Vob2xkZXItY2xhc3M9XCJ1bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzc1wiXHJcblx0XHRcdFx0Om1heGxlbmd0aD1cImlucHV0TWF4bGVuZ3RoXCJcclxuXHRcdFx0XHQ6Zm9jdXM9XCJmb2N1c2VkXCJcclxuXHRcdFx0XHQ6YXV0b0hlaWdodD1cImF1dG9IZWlnaHRcIlxyXG5cdFx0XHRcdDpjdXJzb3Itc3BhY2luZz1cImN1cnNvclNwYWNpbmdcIlxyXG5cdFx0XHRcdEBpbnB1dD1cIm9uSW5wdXRcIlxyXG5cdFx0XHRcdEBibHVyPVwiX0JsdXJcIlxyXG5cdFx0XHRcdEBmb2N1cz1cIl9Gb2N1c1wiXHJcblx0XHRcdFx0QGNvbmZpcm09XCJvbkNvbmZpcm1cIlxyXG4gICAgICAgIEBrZXlib2FyZGhlaWdodGNoYW5nZT1cIm9ua2V5Ym9hcmRoZWlnaHRjaGFuZ2VcIlxyXG5cdFx0XHQ+PC90ZXh0YXJlYT5cclxuXHRcdFx0PGlucHV0XHJcblx0XHRcdFx0di1lbHNlXHJcblx0XHRcdFx0OnR5cGU9XCJ0eXBlID09PSAncGFzc3dvcmQnID8gJ3RleHQnIDogdHlwZVwiXHJcblx0XHRcdFx0Y2xhc3M9XCJ1bmktZWFzeWlucHV0X19jb250ZW50LWlucHV0XCJcclxuXHRcdFx0XHQ6c3R5bGU9XCJpbnB1dFN0eWxlXCJcclxuXHRcdFx0XHQ6bmFtZT1cIm5hbWVcIlxyXG5cdFx0XHRcdDp2YWx1ZT1cInZhbFwiXHJcblx0XHRcdFx0OnBhc3N3b3JkPVwiIXNob3dQYXNzd29yZCAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcclxuXHRcdFx0XHQ6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiXHJcblx0XHRcdFx0OnBsYWNlaG9sZGVyU3R5bGU9XCJwbGFjZWhvbGRlclN0eWxlXCJcclxuXHRcdFx0XHRwbGFjZWhvbGRlci1jbGFzcz1cInVuaS1lYXN5aW5wdXRfX3BsYWNlaG9sZGVyLWNsYXNzXCJcclxuXHRcdFx0XHQ6ZGlzYWJsZWQ9XCJkaXNhYmxlZFwiXHJcblx0XHRcdFx0Om1heGxlbmd0aD1cImlucHV0TWF4bGVuZ3RoXCJcclxuXHRcdFx0XHQ6Zm9jdXM9XCJmb2N1c2VkXCJcclxuXHRcdFx0XHQ6Y29uZmlybVR5cGU9XCJjb25maXJtVHlwZVwiXHJcblx0XHRcdFx0OmN1cnNvci1zcGFjaW5nPVwiY3Vyc29yU3BhY2luZ1wiXHJcblx0XHRcdFx0QGZvY3VzPVwiX0ZvY3VzXCJcclxuXHRcdFx0XHRAYmx1cj1cIl9CbHVyXCJcclxuXHRcdFx0XHRAaW5wdXQ9XCJvbklucHV0XCJcclxuXHRcdFx0XHRAY29uZmlybT1cIm9uQ29uZmlybVwiXHJcbiAgICAgICAgQGtleWJvYXJkaGVpZ2h0Y2hhbmdlPVwib25rZXlib2FyZGhlaWdodGNoYW5nZVwiXHJcblx0XHRcdC8+XHJcblx0XHRcdDx0ZW1wbGF0ZSB2LWlmPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyAmJiBwYXNzd29yZEljb25cIj5cclxuXHRcdFx0XHQ8IS0tIOW8gOWQr+WvhueggeaXtuaYvuekuuWwj+ecvOedmyAtLT5cclxuXHRcdFx0XHQ8dW5pLWljb25zXHJcblx0XHRcdFx0XHR2LWlmPVwiaXNWYWxcIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjb250ZW50LWNsZWFyLWljb25cIlxyXG5cdFx0XHRcdFx0OmNsYXNzPVwieyAnaXMtdGV4dGFyZWEtaWNvbic6IHR5cGUgPT09ICd0ZXh0YXJlYScgfVwiXHJcblx0XHRcdFx0XHQ6dHlwZT1cInNob3dQYXNzd29yZCA/ICdleWUtc2xhc2gtZmlsbGVkJyA6ICdleWUtZmlsbGVkJ1wiXHJcblx0XHRcdFx0XHQ6c2l6ZT1cIjIyXCJcclxuXHRcdFx0XHRcdDpjb2xvcj1cImZvY3VzU2hvdyA/IHByaW1hcnlDb2xvciA6ICcjYzBjNGNjJ1wiXHJcblx0XHRcdFx0XHRAY2xpY2s9XCJvbkV5ZXNcIlxyXG5cdFx0XHRcdD48L3VuaS1pY29ucz5cclxuXHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0PHRlbXBsYXRlIHYtZWxzZS1pZj1cInN1ZmZpeEljb25cIj5cclxuXHRcdFx0XHQ8dW5pLWljb25zIHYtaWY9XCJzdWZmaXhJY29uXCIgY2xhc3M9XCJjb250ZW50LWNsZWFyLWljb25cIiA6dHlwZT1cInN1ZmZpeEljb25cIiBjb2xvcj1cIiNjMGM0Y2NcIiBAY2xpY2s9XCJvbkNsaWNrSWNvbignc3VmZml4JylcIiBzaXplPVwiMjJcIj48L3VuaS1pY29ucz5cclxuXHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0PHRlbXBsYXRlIHYtZWxzZT5cclxuXHRcdFx0XHQ8dW5pLWljb25zXHJcblx0XHRcdFx0XHR2LWlmPVwiY2xlYXJhYmxlICYmIGlzVmFsICYmICFkaXNhYmxlZCAmJiB0eXBlICE9PSAndGV4dGFyZWEnXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwiY29udGVudC1jbGVhci1pY29uXCJcclxuXHRcdFx0XHRcdDpjbGFzcz1cInsgJ2lzLXRleHRhcmVhLWljb24nOiB0eXBlID09PSAndGV4dGFyZWEnIH1cIlxyXG5cdFx0XHRcdFx0dHlwZT1cImNsZWFyXCJcclxuXHRcdFx0XHRcdDpzaXplPVwiY2xlYXJTaXplXCJcclxuXHRcdFx0XHRcdDpjb2xvcj1cIm1zZyA/ICcjZGQ1MjRkJyA6IGZvY3VzU2hvdyA/IHByaW1hcnlDb2xvciA6ICcjYzBjNGNjJ1wiXHJcblx0XHRcdFx0XHRAY2xpY2s9XCJvbkNsZWFyXCJcclxuXHRcdFx0XHQ+PC91bmktaWNvbnM+XHJcblx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdDxzbG90IG5hbWU9XCJyaWdodFwiPjwvc2xvdD5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4vKipcclxuICogRWFzeWlucHV0IOi+k+WFpeahhlxyXG4gKiBAZGVzY3JpcHRpb24g5q2k57uE5Lu25Y+v5Lul5a6e546w6KGo5Y2V55qE6L6T5YWl5LiO5qCh6aqM77yM5YyF5ousIFwidGV4dFwiIOWSjCBcInRleHRhcmVhXCIg57G75Z6L44CCXHJcbiAqIEB0dXRvcmlhbCBodHRwczovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0zNDU1XHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0dmFsdWVcdOi+k+WFpeWGheWuuVxyXG4gKiBAcHJvcGVydHkge1N0cmluZyB9XHR0eXBlXHTovpPlhaXmoYbnmoTnsbvlnovvvIjpu5jorqR0ZXh077yJIHBhc3N3b3JkL3RleHQvdGV4dGFyZWEvLi5cclxuICogXHRAdmFsdWUgdGV4dFx0XHRcdOaWh+acrOi+k+WFpemUruebmFxyXG4gKiBcdEB2YWx1ZSB0ZXh0YXJlYVx05aSa6KGM5paH5pys6L6T5YWl6ZSu55uYXHJcbiAqIFx0QHZhbHVlIHBhc3N3b3JkXHTlr4bnoIHovpPlhaXplK7nm5hcclxuICogXHRAdmFsdWUgbnVtYmVyXHRcdOaVsOWtl+i+k+WFpemUruebmO+8jOazqOaEj2lPU+S4imFwcC12dWXlvLnlh7rnmoTmlbDlrZfplK7nm5jlubbpnZ455a6r5qC85pa55byPXHJcbiAqIFx0QHZhbHVlIGlkY2FyZFx0XHTouqvku73or4HovpPlhaXplK7nm5jvvIzkv6HjgIHmlK/ku5jlrp3jgIHnmb7luqbjgIFRUeWwj+eoi+W6j1xyXG4gKiBcdEB2YWx1ZSBkaWdpdFx0XHTluKblsI/mlbDngrnnmoTmlbDlrZfplK7nm5hcdO+8jEFwcOeahG52dWXpobXpnaLjgIHlvq7kv6HjgIHmlK/ku5jlrp3jgIHnmb7luqbjgIHlpLTmnaHjgIFRUeWwj+eoi+W6j+aUr+aMgVxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59XHRjbGVhcmFibGVcdOaYr+WQpuaYvuekuuWPs+S+p+a4heepuuWGheWuueeahOWbvuagh+aOp+S7tu+8jOeCueWHu+WPr+a4heepuui+k+WFpeahhuWGheWuue+8iOm7mOiupHRydWXvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0YXV0b0hlaWdodFx05piv5ZCm6Ieq5Yqo5aKe6auY6L6T5YWl5Yy65Z+f77yMdHlwZeS4unRleHRhcmVh5pe25pyJ5pWI77yI6buY6K6kdHJ1Ze+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZyB9XHRwbGFjZWhvbGRlclx06L6T5YWl5qGG55qE5o+Q56S65paH5a2XXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nIH1cdHBsYWNlaG9sZGVyU3R5bGVcdHBsYWNlaG9sZGVy55qE5qC35byPKOWGheiBlOagt+W8j++8jOWtl+espuS4sinvvIzlpoJcImNvbG9yOiAjZGRkXCJcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0Zm9jdXNcdOaYr+WQpuiHquWKqOiOt+W+l+eEpueCue+8iOm7mOiupGZhbHNl77yJXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGRpc2FibGVkXHTmmK/lkKbnpoHnlKjvvIjpu5jorqRmYWxzZe+8iVxyXG4gKiBAcHJvcGVydHkge051bWJlciB9XHRtYXhsZW5ndGhcdOacgOWkp+i+k+WFpemVv+W6pu+8jOiuvue9ruS4uiAtMSDnmoTml7blgJnkuI3pmZDliLbmnIDlpKfplb/luqbvvIjpu5jorqQxNDDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmcgfVx0Y29uZmlybVR5cGVcdOiuvue9rumUruebmOWPs+S4i+inkuaMiemSrueahOaWh+Wtl++8jOS7heWcqHR5cGU9XCJ0ZXh0XCLml7bnlJ/mlYjvvIjpu5jorqRkb25l77yJXHJcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyIH1cdGNsZWFyU2l6ZVx05riF6Zmk5Zu+5qCH55qE5aSn5bCP77yM5Y2V5L2NcHjvvIjpu5jorqQxNe+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdHByZWZpeEljb25cdOi+k+WFpeahhuWktOmDqOWbvuagh1xyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdHN1ZmZpeEljb25cdOi+k+WFpeahhuWwvumDqOWbvuagh1xyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdHByaW1hcnlDb2xvclx06K6+572u5Li76aKY6Imy77yI6buY6K6kIzI5NzlmZu+8iVxyXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59XHR0cmltXHTmmK/lkKboh6rliqjljrvpmaTkuKTnq6/nmoTnqbrmoLxcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0Y3Vyc29yU3BhY2luZ1x05oyH5a6a5YWJ5qCH5LiO6ZSu55uY55qE6Led56a777yM5Y2V5L2NIHB4XHJcbiAqIEB2YWx1ZSBib3RoXHTljrvpmaTkuKTnq6/nqbrmoLxcclxuICogQHZhbHVlIGxlZnRcdOWOu+mZpOW3puS+p+epuuagvFxyXG4gKiBAdmFsdWUgcmlnaHRcdOWOu+mZpOWPs+S+p+epuuagvFxyXG4gKiBAdmFsdWUgc3RhcnRcdOWOu+mZpOW3puS+p+epuuagvFxyXG4gKiBAdmFsdWUgZW5kXHRcdOWOu+mZpOWPs+S+p+epuuagvFxyXG4gKiBAdmFsdWUgYWxsXHRcdOWOu+mZpOWFqOmDqOepuuagvFxyXG4gKiBAdmFsdWUgbm9uZVx05LiN5Y676Zmk56m65qC8XHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdGlucHV0Qm9yZGVyXHTmmK/lkKbmmL7npLppbnB1dOi+k+WFpeahhueahOi+ueahhu+8iOm7mOiupHRydWXvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0cGFzc3dvcmRJY29uXHR0eXBlPXBhc3N3b3Jk5pe25piv5ZCm5pi+56S65bCP55y8552b5Zu+5qCHXHJcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fVx0c3R5bGVzXHToh6rlrprkuYnpopzoibJcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGlucHV0XHTovpPlhaXmoYblhoXlrrnlj5HnlJ/lj5jljJbml7bop6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGZvY3VzXHTovpPlhaXmoYbojrflvpfnhKbngrnml7bop6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn1cdGJsdXJcdOi+k+WFpeahhuWkseWOu+eEpueCueaXtuinpuWPkVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufVx0Y29uZmlybVx054K55Ye75a6M5oiQ5oyJ6ZKu5pe26Kem5Y+RXHJcbiAqIEBldmVudCB7RnVuY3Rpb259XHRpY29uQ2xpY2tcdOeCueWHu+Wbvuagh+aXtuinpuWPkVxyXG4gKiBAZXhhbXBsZSA8dW5pLWVhc3lpbnB1dCB2LW1vZGVsPVwibW9iaWxlXCI+PC91bmktZWFzeWlucHV0PlxyXG4gKi9cclxuZnVuY3Rpb24gb2JqMnN0ckNsYXNzKG9iaikge1xyXG5cdGxldCBjbGFzc2VzcyA9ICcnO1xyXG5cdGZvciAobGV0IGtleSBpbiBvYmopIHtcclxuXHRcdGNvbnN0IHZhbCA9IG9ialtrZXldO1xyXG5cdFx0aWYgKHZhbCkge1xyXG5cdFx0XHRjbGFzc2VzcyArPSBgJHtrZXl9IGA7XHJcblx0XHR9XHJcblx0fVxyXG5cdHJldHVybiBjbGFzc2VzcztcclxufVxyXG5cclxuZnVuY3Rpb24gb2JqMnN0clN0eWxlKG9iaikge1xyXG5cdGxldCBzdHlsZSA9ICcnO1xyXG5cdGZvciAobGV0IGtleSBpbiBvYmopIHtcclxuXHRcdGNvbnN0IHZhbCA9IG9ialtrZXldO1xyXG5cdFx0c3R5bGUgKz0gYCR7a2V5fToke3ZhbH07YDtcclxuXHR9XHJcblx0cmV0dXJuIHN0eWxlO1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuXHRuYW1lOiAndW5pLWVhc3lpbnB1dCcsXHJcblx0ZW1pdHM6IFsnY2xpY2snLCAnaWNvbkNsaWNrJywgJ3VwZGF0ZTptb2RlbFZhbHVlJywgJ2lucHV0JywgJ2ZvY3VzJywgJ2JsdXInLCAnY29uZmlybScsICdjbGVhcicsICdleWVzJywgJ2NoYW5nZScsICdrZXlib2FyZGhlaWdodGNoYW5nZSddLFxyXG5cdG1vZGVsOiB7XHJcblx0XHRwcm9wOiAnbW9kZWxWYWx1ZScsXHJcblx0XHRldmVudDogJ3VwZGF0ZTptb2RlbFZhbHVlJ1xyXG5cdH0sXHJcblx0b3B0aW9uczoge1xyXG5cdFx0dmlydHVhbEhvc3Q6IHRydWVcclxuXHR9LFxyXG5cdGluamVjdDoge1xyXG5cdFx0Zm9ybToge1xyXG5cdFx0XHRmcm9tOiAndW5pRm9ybScsXHJcblx0XHRcdGRlZmF1bHQ6IG51bGxcclxuXHRcdH0sXHJcblx0XHRmb3JtSXRlbToge1xyXG5cdFx0XHRmcm9tOiAndW5pRm9ybUl0ZW0nLFxyXG5cdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHR9XHJcblx0fSxcclxuXHRwcm9wczoge1xyXG5cdFx0bmFtZTogU3RyaW5nLFxyXG5cdFx0dmFsdWU6IFtOdW1iZXIsIFN0cmluZ10sXHJcblx0XHRtb2RlbFZhbHVlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0dHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICd0ZXh0J1xyXG5cdFx0fSxcclxuXHRcdGNsZWFyYWJsZToge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0YXV0b0hlaWdodDoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdHBsYWNlaG9sZGVyOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJyAnXHJcblx0XHR9LFxyXG5cdFx0cGxhY2Vob2xkZXJTdHlsZTogU3RyaW5nLFxyXG5cdFx0Zm9jdXM6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogZmFsc2VcclxuXHRcdH0sXHJcblx0XHRkaXNhYmxlZDoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdG1heGxlbmd0aDoge1xyXG5cdFx0XHR0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0XHRkZWZhdWx0OiAxNDBcclxuXHRcdH0sXHJcblx0XHRjb25maXJtVHlwZToge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6ICdkb25lJ1xyXG5cdFx0fSxcclxuXHRcdGNsZWFyU2l6ZToge1xyXG5cdFx0XHR0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG5cdFx0XHRkZWZhdWx0OiAyNFxyXG5cdFx0fSxcclxuXHRcdGlucHV0Qm9yZGVyOiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdH0sXHJcblx0XHRwcmVmaXhJY29uOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdH0sXHJcblx0XHRzdWZmaXhJY29uOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdH0sXHJcblx0XHR0cmltOiB7XHJcblx0XHRcdHR5cGU6IFtCb29sZWFuLCBTdHJpbmddLFxyXG5cdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0fSxcclxuXHRcdGN1cnNvclNwYWNpbmc6IHtcclxuXHRcdFx0dHlwZTogTnVtYmVyLFxyXG5cdFx0XHRkZWZhdWx0OiAwXHJcblx0XHR9LFxyXG5cdFx0cGFzc3dvcmRJY29uOiB7XHJcblx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdH0sXHJcblx0XHRwcmltYXJ5Q29sb3I6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiAnIzI5NzlmZidcclxuXHRcdH0sXHJcblx0XHRzdHlsZXM6IHtcclxuXHRcdFx0dHlwZTogT2JqZWN0LFxyXG5cdFx0XHRkZWZhdWx0KCkge1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb2xvcjogJyMzMzMnLFxyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXHJcblx0XHRcdFx0XHRkaXNhYmxlQ29sb3I6ICcjRjdGNkY2JyxcclxuXHRcdFx0XHRcdGJvcmRlckNvbG9yOiAnI2U1ZTVlNSdcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZXJyb3JNZXNzYWdlOiB7XHJcblx0XHRcdHR5cGU6IFtTdHJpbmcsIEJvb2xlYW5dLFxyXG5cdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0fVxyXG5cdH0sXHJcblx0ZGF0YSgpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdGZvY3VzZWQ6IGZhbHNlLFxyXG5cdFx0XHR2YWw6ICcnLFxyXG5cdFx0XHRzaG93TXNnOiAnJyxcclxuXHRcdFx0Ym9yZGVyOiBmYWxzZSxcclxuXHRcdFx0aXNGaXJzdEJvcmRlcjogZmFsc2UsXHJcblx0XHRcdHNob3dDbGVhckljb246IGZhbHNlLFxyXG5cdFx0XHRzaG93UGFzc3dvcmQ6IGZhbHNlLFxyXG5cdFx0XHRmb2N1c1Nob3c6IGZhbHNlLFxyXG5cdFx0XHRsb2NhbE1zZzogJycsXHJcblx0XHRcdGlzRW50ZXI6IGZhbHNlIC8vIOeUqOS6juWIpOaWreW9k+WJjeaYr+WQpuaYr+S9v+eUqOWbnui9puaTjeS9nFxyXG5cdFx0fTtcclxuXHR9LFxyXG5cdGNvbXB1dGVkOiB7XHJcblx0XHQvLyDovpPlhaXmoYblhoXmmK/lkKbmnInlgLxcclxuXHRcdGlzVmFsKCkge1xyXG5cdFx0XHRjb25zdCB2YWwgPSB0aGlzLnZhbDtcclxuXHRcdFx0Ly8gZml4ZWQgYnkgbWVoYW90aWFuIOWkhOeQhuWAvOS4ujDnmoTmg4XlhrXvvIzlrZfnrKbkuLIw5LiN5Zyo5aSE55CG6IyD5Zu0XHJcblx0XHRcdGlmICh2YWwgfHwgdmFsID09PSAwKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fSxcclxuXHJcblx0XHRtc2coKSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdjb21wdXRlZCcsIHRoaXMuZm9ybSwgdGhpcy5mb3JtSXRlbSk7XHJcblx0XHRcdC8vIGlmICh0aGlzLmZvcm0pIHtcclxuXHRcdFx0Ly8gXHRyZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2UgfHwgdGhpcy5mb3JtSXRlbS5lcnJNc2c7XHJcblx0XHRcdC8vIH1cclxuXHRcdFx0Ly8gVE9ETyDlpITnkIblpLTmnaEgZm9ybUl0ZW0g5LitIGVyck1zZyDkuI3mm7TmlrDnmoTpl67pophcclxuXHRcdFx0cmV0dXJuIHRoaXMubG9jYWxNc2cgfHwgdGhpcy5lcnJvck1lc3NhZ2U7XHJcblx0XHR9LFxyXG5cdFx0Ly8g5Zug5Li6dW5pYXBw55qEaW5wdXTnu4Tku7bnmoRtYXhsZW5ndGjnu4Tku7blv4XpobvopoHmlbDlgLzvvIzov5nph4zovazkuLrmlbDlgLzvvIznlKjmiLflj6/ku6XkvKDlhaXlrZfnrKbkuLLmlbDlgLxcclxuXHRcdGlucHV0TWF4bGVuZ3RoKCkge1xyXG5cdFx0XHRyZXR1cm4gTnVtYmVyKHRoaXMubWF4bGVuZ3RoKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0Ly8g5aSE55CG5aSW5bGC5qC35byP55qEc3R5bGVcclxuXHRcdGJveFN0eWxlKCkge1xyXG5cdFx0XHRyZXR1cm4gYGNvbG9yOiR7dGhpcy5pbnB1dEJvcmRlciAmJiB0aGlzLm1zZyA/ICcjZTQzZDMzJyA6IHRoaXMuc3R5bGVzLmNvbG9yfTtgO1xyXG5cdFx0fSxcclxuXHRcdC8vIGlucHV0IOWGheWuueeahOexu+WSjOagt+W8j+WkhOeQhlxyXG5cdFx0aW5wdXRDb250ZW50Q2xhc3MoKSB7XHJcblx0XHRcdHJldHVybiBvYmoyc3RyQ2xhc3Moe1xyXG5cdFx0XHRcdCdpcy1pbnB1dC1ib3JkZXInOiB0aGlzLmlucHV0Qm9yZGVyLFxyXG5cdFx0XHRcdCdpcy1pbnB1dC1lcnJvci1ib3JkZXInOiB0aGlzLmlucHV0Qm9yZGVyICYmIHRoaXMubXNnLFxyXG5cdFx0XHRcdCdpcy10ZXh0YXJlYSc6IHRoaXMudHlwZSA9PT0gJ3RleHRhcmVhJyxcclxuXHRcdFx0XHQnaXMtZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxyXG5cdFx0XHRcdCdpcy1mb2N1c2VkJzogdGhpcy5mb2N1c1Nob3dcclxuXHRcdFx0fSk7XHJcblx0XHR9LFxyXG5cdFx0aW5wdXRDb250ZW50U3R5bGUoKSB7XHJcblx0XHRcdGNvbnN0IGZvY3VzQ29sb3IgPSB0aGlzLmZvY3VzU2hvdyA/IHRoaXMucHJpbWFyeUNvbG9yIDogdGhpcy5zdHlsZXMuYm9yZGVyQ29sb3I7XHJcblx0XHRcdGNvbnN0IGJvcmRlckNvbG9yID0gdGhpcy5pbnB1dEJvcmRlciAmJiB0aGlzLm1zZyA/ICcjZGQ1MjRkJyA6IGZvY3VzQ29sb3I7XHJcblx0XHRcdHJldHVybiBvYmoyc3RyU3R5bGUoe1xyXG5cdFx0XHRcdCdib3JkZXItY29sb3InOiBib3JkZXJDb2xvciB8fCAnI2U1ZTVlNScsXHJcblx0XHRcdFx0J2JhY2tncm91bmQtY29sb3InOiB0aGlzLmRpc2FibGVkID8gdGhpcy5zdHlsZXMuZGlzYWJsZUNvbG9yIDogdGhpcy5zdHlsZXMuYmFja2dyb3VuZENvbG9yXHJcblx0XHRcdH0pO1xyXG5cdFx0fSxcclxuXHRcdC8vIGlucHV05Y+z5L6n5qC35byPXHJcblx0XHRpbnB1dFN0eWxlKCkge1xyXG5cdFx0XHRjb25zdCBwYWRkaW5nUmlnaHQgPSB0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgfHwgdGhpcy5jbGVhcmFibGUgfHwgdGhpcy5wcmVmaXhJY29uID8gJycgOiAnMTBweCc7XHJcblx0XHRcdHJldHVybiBvYmoyc3RyU3R5bGUoe1xyXG5cdFx0XHRcdCdwYWRkaW5nLXJpZ2h0JzogcGFkZGluZ1JpZ2h0LFxyXG5cdFx0XHRcdCdwYWRkaW5nLWxlZnQnOiB0aGlzLnByZWZpeEljb24gPyAnJyA6ICcxMHB4J1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdHdhdGNoOiB7XHJcblx0XHR2YWx1ZShuZXdWYWwpIHtcclxuXHRcdFx0dGhpcy52YWwgPSBuZXdWYWw7XHJcblx0XHR9LFxyXG5cdFx0bW9kZWxWYWx1ZShuZXdWYWwpIHtcclxuXHRcdFx0dGhpcy52YWwgPSBuZXdWYWw7XHJcblx0XHR9LFxyXG5cdFx0Zm9jdXMobmV3VmFsKSB7XHJcblx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmZvY3VzZWQgPSB0aGlzLmZvY3VzO1xyXG5cdFx0XHRcdHRoaXMuZm9jdXNTaG93ID0gdGhpcy5mb2N1cztcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fSxcclxuXHRjcmVhdGVkKCkge1xyXG5cdFx0dGhpcy5pbml0KCk7XHJcblx0XHQvLyBUT0RPIOWkhOeQhuWktOadoXZ1ZTMgY29tcHV0ZWQg5LiN55uR5ZCsIGluamVjdCDmm7TmlLnnmoTpl67popjvvIhmb3JtSXRlbS5lcnJNc2fvvIlcclxuXHRcdGlmICh0aGlzLmZvcm0gJiYgdGhpcy5mb3JtSXRlbSkge1xyXG5cdFx0XHR0aGlzLiR3YXRjaCgnZm9ybUl0ZW0uZXJyTXNnJywgbmV3VmFsID0+IHtcclxuXHRcdFx0XHR0aGlzLmxvY2FsTXNnID0gbmV3VmFsO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdG1vdW50ZWQoKSB7XHJcblx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdHRoaXMuZm9jdXNlZCA9IHRoaXMuZm9jdXM7XHJcblx0XHRcdHRoaXMuZm9jdXNTaG93ID0gdGhpcy5mb2N1cztcclxuXHRcdH0pO1xyXG5cdH0sXHJcblx0bWV0aG9kczoge1xyXG5cdFx0LyoqXHJcblx0XHQgKiDliJ3lp4vljJblj5jph4/lgLxcclxuXHRcdCAqL1xyXG5cdFx0aW5pdCgpIHtcclxuXHRcdFx0aWYgKHRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZSA9PT0gMCkge1xyXG5cdFx0XHRcdHRoaXMudmFsID0gdGhpcy52YWx1ZTtcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLm1vZGVsVmFsdWUgfHwgdGhpcy5tb2RlbFZhbHVlID09PSAwIHx8IHRoaXMubW9kZWxWYWx1ZSA9PT0gJycpIHtcclxuXHRcdFx0XHR0aGlzLnZhbCA9IHRoaXMubW9kZWxWYWx1ZTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnZhbCA9IG51bGw7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDngrnlh7vlm77moIfml7bop6blj5FcclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSB0eXBlXHJcblx0XHQgKi9cclxuXHRcdG9uQ2xpY2tJY29uKHR5cGUpIHtcclxuXHRcdFx0dGhpcy4kZW1pdCgnaWNvbkNsaWNrJywgdHlwZSk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog5pi+56S66ZqQ6JeP5YaF5a6577yM5a+G56CB5qGG5pe255Sf5pWIXHJcblx0XHQgKi9cclxuXHRcdG9uRXllcygpIHtcclxuXHRcdFx0dGhpcy5zaG93UGFzc3dvcmQgPSAhdGhpcy5zaG93UGFzc3dvcmQ7XHJcblx0XHRcdHRoaXMuJGVtaXQoJ2V5ZXMnLCB0aGlzLnNob3dQYXNzd29yZCk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog6L6T5YWl5pe26Kem5Y+RXHJcblx0XHQgKiBAcGFyYW0ge09iamVjdH0gZXZlbnRcclxuXHRcdCAqL1xyXG5cdFx0b25JbnB1dChldmVudCkge1xyXG5cdFx0XHRsZXQgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XHJcblx0XHRcdC8vIOWIpOaWreaYr+WQpuWOu+mZpOepuuagvFxyXG5cdFx0XHRpZiAodGhpcy50cmltKSB7XHJcblx0XHRcdFx0aWYgKHR5cGVvZiB0aGlzLnRyaW0gPT09ICdib29sZWFuJyAmJiB0aGlzLnRyaW0pIHtcclxuXHRcdFx0XHRcdHZhbHVlID0gdGhpcy50cmltU3RyKHZhbHVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHR5cGVvZiB0aGlzLnRyaW0gPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0XHR2YWx1ZSA9IHRoaXMudHJpbVN0cih2YWx1ZSwgdGhpcy50cmltKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuZXJyTXNnKSB0aGlzLmVyck1zZyA9ICcnO1xyXG5cdFx0XHR0aGlzLnZhbCA9IHZhbHVlO1xyXG5cdFx0XHQvLyBUT0RPIOWFvOWuuSB2dWUyXHJcblx0XHRcdHRoaXMuJGVtaXQoJ2lucHV0JywgdmFsdWUpO1xyXG5cdFx0XHQvLyBUT0RP44CA5YW85a6544CAdnVlM1xyXG5cdFx0XHR0aGlzLiRlbWl0KCd1cGRhdGU6bW9kZWxWYWx1ZScsIHZhbHVlKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDlpJbpg6josIPnlKjmlrnms5VcclxuXHRcdCAqIOiOt+WPlueEpueCueaXtuinpuWPkVxyXG5cdFx0ICogQHBhcmFtIHtPYmplY3R9IGV2ZW50XHJcblx0XHQgKi9cclxuXHRcdG9uRm9jdXMoKSB7XHJcblx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy4kZW1pdCgnZm9jdXMnLCBudWxsKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0X0ZvY3VzKGV2ZW50KSB7XHJcblx0XHRcdHRoaXMuZm9jdXNTaG93ID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy4kZW1pdCgnZm9jdXMnLCBldmVudCk7XHJcblx0XHR9LFxyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICog5aSW6YOo6LCD55So5pa55rOVXHJcblx0XHQgKiDlpLHljrvnhKbngrnml7bop6blj5FcclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBldmVudFxyXG5cdFx0ICovXHJcblx0XHRvbkJsdXIoKSB7XHJcblx0XHRcdHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLiRlbWl0KCdmb2N1cycsIG51bGwpO1xyXG5cdFx0fSxcclxuXHRcdF9CbHVyKGV2ZW50KSB7XHJcblx0XHRcdGxldCB2YWx1ZSA9IGV2ZW50LmRldGFpbC52YWx1ZTtcclxuXHRcdFx0dGhpcy5mb2N1c1Nob3cgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy4kZW1pdCgnYmx1cicsIGV2ZW50KTtcclxuXHRcdFx0Ly8g5qC55o2u57G75Z6L6L+U5Zue5YC877yM5ZyoZXZlbnTkuK3ojrflj5bnmoTlgLznkIborrrkuIrorrLpg73mmK9zdHJpbmdcclxuXHRcdFx0aWYgKHRoaXMuaXNFbnRlciA9PT0gZmFsc2UpIHtcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB0aGlzLnZhbCk7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8g5aSx5Y6754Sm54K55pe25Y+C5LiO6KGo5Y2V5qCh6aqMXHJcblx0XHRcdGlmICh0aGlzLmZvcm0gJiYgdGhpcy5mb3JtSXRlbSkge1xyXG5cdFx0XHRcdGNvbnN0IHsgdmFsaWRhdGVUcmlnZ2VyIH0gPSB0aGlzLmZvcm07XHJcblx0XHRcdFx0aWYgKHZhbGlkYXRlVHJpZ2dlciA9PT0gJ2JsdXInKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm1JdGVtLm9uRmllbGRDaGFuZ2UoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDmjInkuIvplK7nm5jnmoTlj5HpgIHplK5cclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBlXHJcblx0XHQgKi9cclxuXHRcdG9uQ29uZmlybShlKSB7XHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nLCB0aGlzLnZhbCk7XHJcblx0XHRcdHRoaXMuaXNFbnRlciA9IHRydWU7XHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NoYW5nZScsIHRoaXMudmFsKTtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuaXNFbnRlciA9IGZhbHNlO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0sXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiDmuIXnkIblhoXlrrlcclxuXHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBldmVudFxyXG5cdFx0ICovXHJcblx0XHRvbkNsZWFyKGV2ZW50KSB7XHJcblx0XHRcdHRoaXMudmFsID0gJyc7XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHZ1ZTJcclxuXHRcdFx0dGhpcy4kZW1pdCgnaW5wdXQnLCAnJyk7XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHZ1ZTJcclxuXHRcdFx0Ly8gVE9ET+OAgOWFvOWuueOAgHZ1ZTNcclxuXHRcdFx0dGhpcy4kZW1pdCgndXBkYXRlOm1vZGVsVmFsdWUnLCAnJyk7XHJcblx0XHRcdC8vIOeCueWHu+WPieWPt+inpuWPkVxyXG5cdFx0XHR0aGlzLiRlbWl0KCdjbGVhcicpO1xyXG5cdFx0fSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOmUruebmOmrmOW6puWPkeeUn+WPmOWMlueahOaXtuWAmeinpuWPkeatpOS6i+S7tlxyXG4gICAgICog5YW85a655oCn77ya5b6u5L+h5bCP56iL5bqPMi43LjAr44CBQXBwIDMuMS4wK1xyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGV2ZW50XHJcbiAgICAgKi9cclxuICAgIG9ua2V5Ym9hcmRoZWlnaHRjaGFuZ2UoZXZlbnQpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImtleWJvYXJkaGVpZ2h0Y2hhbmdlXCIsZXZlbnQpO1xyXG4gICAgfSxcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIOWOu+mZpOepuuagvFxyXG5cdFx0ICovXHJcblx0XHR0cmltU3RyKHN0ciwgcG9zID0gJ2JvdGgnKSB7XHJcblx0XHRcdGlmIChwb3MgPT09ICdib3RoJykge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbSgpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHBvcyA9PT0gJ2xlZnQnKSB7XHJcblx0XHRcdFx0cmV0dXJuIHN0ci50cmltTGVmdCgpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHBvcyA9PT0gJ3JpZ2h0Jykge1xyXG5cdFx0XHRcdHJldHVybiBzdHIudHJpbVJpZ2h0KCk7XHJcblx0XHRcdH0gZWxzZSBpZiAocG9zID09PSAnc3RhcnQnKSB7XHJcblx0XHRcdFx0cmV0dXJuIHN0ci50cmltU3RhcnQoKTtcclxuXHRcdFx0fSBlbHNlIGlmIChwb3MgPT09ICdlbmQnKSB7XHJcblx0XHRcdFx0cmV0dXJuIHN0ci50cmltRW5kKCk7XHJcblx0XHRcdH0gZWxzZSBpZiAocG9zID09PSAnYWxsJykge1xyXG5cdFx0XHRcdHJldHVybiBzdHIucmVwbGFjZSgvXFxzKy9nLCAnJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAocG9zID09PSAnbm9uZScpIHtcclxuXHRcdFx0XHRyZXR1cm4gc3RyO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBzdHI7XHJcblx0XHR9XHJcblx0fVxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiPlxyXG4kdW5pLWVycm9yOiAjZTQzZDMzO1xyXG4kdW5pLWJvcmRlci0xOiAjZGNkZmU2ICFkZWZhdWx0O1xyXG5cclxuLnVuaS1lYXN5aW5wdXQge1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHR3aWR0aDogMTAwJTtcclxuXHQvKiAjZW5kaWYgKi9cclxuXHRmbGV4OiAxO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdGNvbG9yOiAjMzMzO1xyXG5cdGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuLnVuaS1lYXN5aW5wdXRfX2NvbnRlbnQge1xyXG5cdGZsZXg6IDE7XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHQvLyBtaW4taGVpZ2h0OiAzNnB4O1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHQvLyDlpITnkIZib3JkZXLliqjnlLvliJrlvIDlp4vmmL7npLrpu5HoibLnmoTpl67pophcclxuXHRib3JkZXItY29sb3I6ICNmZmY7XHJcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogYm9yZGVyLWNvbG9yO1xyXG5cdHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19jb250ZW50LWlucHV0IHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0d2lkdGg6IGF1dG87XHJcblx0LyogI2VuZGlmICovXHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0ZmxleDogMTtcclxuXHRsaW5lLWhlaWdodDogMTtcclxuXHRmb250LXNpemU6IDE0cHg7XHJcblx0aGVpZ2h0OiAzNXB4O1xyXG5cdC8vIG1pbi1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzcyB7XHJcblx0Y29sb3I6ICM5OTk7XHJcblx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdC8vIGZvbnQtd2VpZ2h0OiAyMDA7XHJcbn1cclxuXHJcbi5pcy10ZXh0YXJlYSB7XHJcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5pcy10ZXh0YXJlYS1pY29uIHtcclxuXHRtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi51bmktZWFzeWlucHV0X19jb250ZW50LXRleHRhcmVhIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRmbGV4OiAxO1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjU7XHJcblx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdG1hcmdpbjogNnB4O1xyXG5cdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdGhlaWdodDogODBweDtcclxuXHRtaW4taGVpZ2h0OiA4MHB4O1xyXG5cdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRtaW4taGVpZ2h0OiA4MHB4O1xyXG5cdHdpZHRoOiBhdXRvO1xyXG5cdC8qICNlbmRpZiAqL1xyXG59XHJcblxyXG4uaW5wdXQtcGFkZGluZyB7XHJcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG59XHJcblxyXG4uY29udGVudC1jbGVhci1pY29uIHtcclxuXHRwYWRkaW5nOiAwIDVweDtcclxufVxyXG5cclxuLmxhYmVsLWljb24ge1xyXG5cdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdG1hcmdpbi10b3A6IC0xcHg7XHJcbn1cclxuXHJcbi8vIOaYvuekuui+ueahhlxyXG4uaXMtaW5wdXQtYm9yZGVyIHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAkdW5pLWJvcmRlci0xO1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHQvKiAjaWZkZWYgTVAtQUxJUEFZICovXHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLnVuaS1lcnJvci1tZXNzYWdlIHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0Ym90dG9tOiAtMTdweDtcclxuXHRsZWZ0OiAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAxMnB4O1xyXG5cdGNvbG9yOiAkdW5pLWVycm9yO1xyXG5cdGZvbnQtc2l6ZTogMTJweDtcclxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4udW5pLWVycm9yLW1zZy0tYm9lZGVyIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0Ym90dG9tOiAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG59XHJcblxyXG4uaXMtaW5wdXQtZXJyb3ItYm9yZGVyIHtcclxuXHRib3JkZXItY29sb3I6ICR1bmktZXJyb3I7XHJcblxyXG5cdC51bmktZWFzeWlucHV0X19wbGFjZWhvbGRlci1jbGFzcyB7XHJcblx0XHRjb2xvcjogbWl4KCNmZmYsICR1bmktZXJyb3IsIDUwJSk7XHJcblx0fVxyXG59XHJcblxyXG4udW5pLWVhc3lpbnB1dC0tYm9yZGVyIHtcclxuXHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdHBhZGRpbmc6IDEwcHggMTVweDtcclxuXHQvLyBwYWRkaW5nLWJvdHRvbTogMDtcclxuXHRib3JkZXItdG9wOiAxcHggI2VlZSBzb2xpZDtcclxufVxyXG5cclxuLnVuaS1lYXN5aW5wdXQtZXJyb3Ige1xyXG5cdHBhZGRpbmctYm90dG9tOiAwO1xyXG59XHJcblxyXG4uaXMtZmlyc3QtYm9yZGVyIHtcclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0Ym9yZGVyOiBub25lO1xyXG5cdC8qICNlbmRpZiAqL1xyXG5cdC8qICNpZmRlZiBBUFAtTlZVRSAqL1xyXG5cdGJvcmRlci13aWR0aDogMDtcclxuXHQvKiAjZW5kaWYgKi9cclxufVxyXG5cclxuLmlzLWRpc2FibGVkIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmNmY2O1xyXG5cdGNvbG9yOiAjZDVkNWQ1O1xyXG5cclxuXHQudW5pLWVhc3lpbnB1dF9fcGxhY2Vob2xkZXItY2xhc3Mge1xyXG5cdFx0Y29sb3I6ICNkNWQ1ZDU7XHJcblx0XHRmb250LXNpemU6IDEycHg7XHJcblx0fVxyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///45\n"); /***/ }), /* 46 */ /*!*****************************************************!*\ !*** D:/work-gunshi/xytSk-App/static/images/u8.png ***! \*****************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("module.exports = __webpack_require__.p + \"static/images/u8.png\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQixxQkFBdUIiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19wdWJsaWNfcGF0aF9fICsgXCJzdGF0aWMvaW1hZ2VzL3U4LnBuZ1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///46\n"); /***/ }), /* 47 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/login/login.vue?vue&type=script&lang=js&mpType=page ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./login.vue?vue&type=script&lang=js&mpType=page */ 48);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRpQixDQUFnQixza0JBQUcsRUFBQyIsImZpbGUiOiI0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvZ2luLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2dpbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///47\n"); /***/ }), /* 48 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/login/login.vue?vue&type=script&lang=js&mpType=page ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _cryptoJs = _interopRequireDefault(__webpack_require__(/*! crypto-js */ 49));\nvar _vue = __webpack_require__(/*! vue */ 28);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar checked = false;\nvar _default = {\n data: function data() {\n return {\n formData: {\n username: '',\n password: '',\n checked: false\n }\n };\n },\n mounted: function mounted() {\n __f__(\"log\", uni.getStorageSync('loginChecked'), \" at pages/login/login.vue:55\");\n if (uni.getStorageSync('loginChecked') === true) {\n this.formData = {\n username: uni.getStorageSync('loginName'),\n password: uni.getStorageSync('password'),\n checked: true\n };\n }\n },\n methods: {\n handleChange: function handleChange(formData) {\n checked = !checked;\n formData.checked = !formData.checked;\n },\n xian: function xian() {\n this.formData = {\n username: 'cwz',\n password: '12345678a',\n checked: false\n };\n },\n xiang: function xiang() {\n this.formData = {\n username: 'glszfz',\n password: '12345678a',\n checked: false\n };\n },\n login: function login(formData) {\n //loading\n uni.showLoading({\n title: '努力登录中...',\n mask: true\n });\n\n //MD5加密\n var encryptData = function encryptData(data) {\n var encryptedData = _cryptoJs.default.MD5(data).toString();\n return encryptedData;\n };\n\n //创建提交表单\n var postForm = {\n username: formData.username,\n password: formData.password\n };\n\n //记住密码功能\n if (formData.checked === true) {\n uni.setStorageSync('loginChecked', true);\n uni.setStorageSync('loginName', postForm.loginName);\n uni.setStorageSync('password', formData.password);\n uni.setStorageSync('secretKey', postForm.secretKey);\n } else {\n uni.setStorageSync('loginChecked', false);\n uni.removeStorageSync('loginName');\n uni.removeStorageSync('secretKey');\n uni.removeStorageSync('password');\n this.formData.username = '';\n this.formData.password = '';\n }\n\n //提交表单\n __f__(\"log\", postForm, '---===', \" at pages/login/login.vue:116\");\n uni.$http.post('/gunshiApp/xyt/login', postForm).then(function (res) {\n uni.showLoading({\n title: '努力登录中...',\n mask: true\n });\n __f__(\"log\", res, '---===', \" at pages/login/login.vue:119\");\n if (res.data.code === 200) {\n //localStorage保存token\n\n if (res.data.token) {\n uni.setStorageSync('Gs-Token', res.data.token);\n uni.$http.get('/gunshiApp/xyt/getInfo').then(function (res) {\n // console.log('sss', res.data.data)\n uni.setStorageSync('value', res.data.user);\n setTimeout(function () {\n uni.hideLoading();\n uni.reLaunch({\n url: '/pages/homeIndex/index'\n });\n }, 1000);\n clearTimeout();\n // console.log('-----value------', res.data.data)\n });\n\n // 获取userId并获取头像\n uni.$http.get('/gunshiApp/xfflood/my/info/getByUserId').then(function (res) {\n __f__(\"log\", '-----avatar1------', res.data, \" at pages/login/login.vue:142\");\n if (res.data.data) {\n var url = '/gunshiApp/xfflood/bzProjectManipulationRecord/file/get/';\n url = url + res.data.data.fileId;\n uni.$http.get(url).then(function (res) {\n uni.setStorageSync('avatar', 'http://223.75.53.141:9102/test.by-lyf.tmp' + res.data.data.filePath);\n __f__(\"log\", '-----avatar------', uni.getStorageSync('avatar'), \" at pages/login/login.vue:153\");\n });\n } else {\n uni.setStorageSync('avatar', '../../static/tabs/touxiang.png');\n }\n\n // uni.showLoading({title:'努力登录中...', mask:true});\n //登录成功后跳转界\n });\n }\n } else if (res.data.code === 400) {\n //登录失败后弹出信息\n setTimeout(function () {\n uni.hideLoading();\n uni.showToast({\n title: res.data.description,\n icon: 'none',\n duration: 2000\n });\n }, 1000);\n clearTimeout();\n }\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvbG9naW4vbG9naW4udnVlIl0sIm5hbWVzIjpbImRhdGEiLCJmb3JtRGF0YSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJjaGVja2VkIiwibW91bnRlZCIsIm1ldGhvZHMiLCJoYW5kbGVDaGFuZ2UiLCJ4aWFuIiwieGlhbmciLCJsb2dpbiIsInVuaSIsInRpdGxlIiwibWFzayIsInNldFRpbWVvdXQiLCJ1cmwiLCJjbGVhclRpbWVvdXQiLCJnZXQiLCJ0aGVuIiwicmVzIiwiaWNvbiIsImR1cmF0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBdUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtBQUFBLGVBRUE7RUFDQUE7SUFDQTtNQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBRUE7TUFDQTtRQUNBSDtRQUNBQztRQUNBQztNQUNBO0lBQ0E7RUFDQTtFQUNBRTtJQUNBQztNQUNBSDtNQUNBSDtJQUNBO0lBQ0FPO01BQ0E7UUFDQU47UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0lBQ0FLO01BQ0E7UUFDQVA7UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0lBQ0FNO01BQ0E7TUFDQUM7UUFBQUM7UUFBQUM7TUFBQTs7TUFFQTtNQUNBO1FBQ0E7UUFDQTtNQUNBOztNQUVBO01BQ0E7UUFDQVg7UUFDQUM7TUFDQTs7TUFFQTtNQUNBO1FBQ0FRO1FBQ0FBO1FBQ0FBO1FBQ0FBO01BQ0E7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQUE7UUFDQTtRQUNBO01BQ0E7O01BRUE7TUFDQTtNQUNBQTtRQUNBQTtVQUFBQztVQUFBQztRQUFBO1FBQ0E7UUFDQTtVQUNBOztVQUVBO1lBQ0FGO1lBQ0FBO2NBQ0E7Y0FDQUE7Y0FDQUc7Z0JBQ0FIO2dCQUNBQTtrQkFDQUk7Z0JBQ0E7Y0FDQTtjQUNBQztjQUNBO1lBQ0E7O1lBRUE7WUFDQUwsVUFDQU0sOENBQ0FDO2NBQ0E7Y0FDQTtnQkFDQSxVQUNBO2dCQUNBSDtnQkFDQUo7a0JBQ0FBLG1CQUNBLFVBQ0EsOENBQ0FRLHVCQUNBO2tCQUNBLGFBQ0EscUJBQ0FSO2dCQUVBO2NBQ0E7Z0JBQ0FBO2NBQ0E7O2NBSUE7Y0FDQTtZQUVBO1VBQ0E7UUFDQTtVQUNBO1VBQ0FHO1lBQ0FIO1lBQ0FBO2NBQ0FDO2NBQ0FRO2NBQ0FDO1lBQ0E7VUFDQTtVQUNBTDtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiI0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImltZ1wiPlxyXG4gICAgICA8aW1hZ2VcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCVcIlxyXG4gICAgICAgIHNyYz1cIi4uLy4uL3N0YXRpYy9pbWFnZXMvdTgucG5nXCJcclxuICAgICAgICBtb2RlPVwic2NhbGVUb0ZpbGxcIlxyXG4gICAgICA+PC9pbWFnZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPHVuaS1mb3JtcyA6bW9kZWxWYWx1ZT1cImZvcm1EYXRhXCIgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgIDx1bmktZm9ybXMtaXRlbT5cclxuICAgICAgICA8dW5pLWVhc3lpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdi1tb2RlbD1cImZvcm1EYXRhLnVzZXJuYW1lXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl55So5oi35ZCNXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3VuaS1mb3Jtcy1pdGVtPlxyXG4gICAgICA8dW5pLWZvcm1zLWl0ZW0+XHJcbiAgICAgICAgPHVuaS1lYXN5aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICB2LW1vZGVsPVwiZm9ybURhdGEucGFzc3dvcmRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXlr4bnoIFcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdW5pLWZvcm1zLWl0ZW0+XHJcbiAgICAgIDx1bmktZm9ybXMtaXRlbT5cclxuICAgICAgICA8Y2hlY2tib3ggOmNoZWNrZWQ9XCJmb3JtRGF0YS5jaGVja2VkXCIgQGNsaWNrPVwiaGFuZGxlQ2hhbmdlKGZvcm1EYXRhKVwiIC8+PHRleHRcclxuICAgICAgICAgID7orrDkvY/nlKjmiLflkI3lkozlr4bnoIE8L3RleHRcclxuICAgICAgICA+XHJcbiAgICAgIDwvdW5pLWZvcm1zLWl0ZW0+XHJcbiAgICAgIDwhLS0gPGJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGNsYXNzPVwiYnV0dG9uXCIgQGNsaWNrPVwieGlhblwiPuWOvzwvYnV0dG9uPiAtLT5cclxuICAgICAgPCEtLSA8YnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgY2xhc3M9XCJidXR0b25cIiBAY2xpY2s9XCJ4aWFuZ1wiPuS5oTwvYnV0dG9uPiAtLT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGNsYXNzPVwiYnV0dG9uXCIgQGNsaWNrPVwibG9naW4oZm9ybURhdGEpXCI+XHJcbiAgICAgICAg55m75b2VXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC91bmktZm9ybXM+XHJcbiAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IENyeXB0b0pTIGZyb20gJ2NyeXB0by1qcydcclxuaW1wb3J0IHsgb25Nb3VudGVkIH0gZnJvbSBcInZ1ZVwiXHJcbmxldCBjaGVja2VkID0gZmFsc2VcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBkYXRhICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGZvcm1EYXRhOiB7XHJcbiAgICAgICAgdXNlcm5hbWU6ICcnLFxyXG4gICAgICAgIHBhc3N3b3JkOiAnJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCl7XHJcbiAgICBjb25zb2xlLmxvZyh1bmkuZ2V0U3RvcmFnZVN5bmMoJ2xvZ2luQ2hlY2tlZCcpKTtcclxuICAgIFxyXG4gICAgaWYgKHVuaS5nZXRTdG9yYWdlU3luYygnbG9naW5DaGVja2VkJyk9PT10cnVlKXtcclxuICAgICAgdGhpcy5mb3JtRGF0YSA9IHtcclxuICAgICAgICB1c2VybmFtZTogdW5pLmdldFN0b3JhZ2VTeW5jKCdsb2dpbk5hbWUnKSxcclxuICAgICAgICBwYXNzd29yZDogdW5pLmdldFN0b3JhZ2VTeW5jKCdwYXNzd29yZCcpLFxyXG4gICAgICAgIGNoZWNrZWQ6IHRydWUsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIGhhbmRsZUNoYW5nZSAoZm9ybURhdGEpIHtcclxuICAgICAgY2hlY2tlZCA9ICFjaGVja2VkXHJcbiAgICAgIGZvcm1EYXRhLmNoZWNrZWQgPSAhZm9ybURhdGEuY2hlY2tlZFxyXG4gICAgfSxcclxuICAgIHhpYW4gKCkge1xyXG4gICAgICB0aGlzLmZvcm1EYXRhID0ge1xyXG4gICAgICAgIHVzZXJuYW1lOiAnY3d6JyxcclxuICAgICAgICBwYXNzd29yZDogJzEyMzQ1Njc4YScsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2VcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHhpYW5nICgpIHtcclxuICAgICAgdGhpcy5mb3JtRGF0YSA9IHtcclxuICAgICAgICB1c2VybmFtZTogJ2dsc3pmeicsXHJcbiAgICAgICAgcGFzc3dvcmQ6ICcxMjM0NTY3OGEnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBsb2dpbiAoZm9ybURhdGEpIHtcclxuICAgICAgLy9sb2FkaW5nXHJcbiAgICAgIHVuaS5zaG93TG9hZGluZyh7dGl0bGU6J+WKquWKm+eZu+W9leS4rS4uLicsIG1hc2s6dHJ1ZX0pO1xyXG5cclxuICAgICAgLy9NRDXliqDlr4ZcclxuICAgICAgY29uc3QgZW5jcnlwdERhdGEgPSBkYXRhID0+IHtcclxuICAgICAgICBjb25zdCBlbmNyeXB0ZWREYXRhID0gQ3J5cHRvSlMuTUQ1KGRhdGEpLnRvU3RyaW5nKClcclxuICAgICAgICByZXR1cm4gZW5jcnlwdGVkRGF0YVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvL+WIm+W7uuaPkOS6pOihqOWNlVxyXG4gICAgICBsZXQgcG9zdEZvcm0gPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGZvcm1EYXRhLnVzZXJuYW1lLFxyXG4gICAgICAgIHBhc3N3b3JkOiBmb3JtRGF0YS5wYXNzd29yZFxyXG4gICAgICB9XHJcblxyXG4gICAgICAvL+iusOS9j+WvhueggeWKn+iDvVxyXG4gICAgICBpZiAoZm9ybURhdGEuY2hlY2tlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygnbG9naW5DaGVja2VkJywgdHJ1ZSlcclxuICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ2xvZ2luTmFtZScsIHBvc3RGb3JtLmxvZ2luTmFtZSlcclxuICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ3Bhc3N3b3JkJyxmb3JtRGF0YS5wYXNzd29yZClcclxuICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ3NlY3JldEtleScsIHBvc3RGb3JtLnNlY3JldEtleSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoJ2xvZ2luQ2hlY2tlZCcsIGZhbHNlKVxyXG4gICAgICAgIHVuaS5yZW1vdmVTdG9yYWdlU3luYygnbG9naW5OYW1lJylcclxuICAgICAgICB1bmkucmVtb3ZlU3RvcmFnZVN5bmMoJ3NlY3JldEtleScpXHJcbiAgICAgICAgdW5pLnJlbW92ZVN0b3JhZ2VTeW5jKCdwYXNzd29yZCcpXHJcbiAgICAgICAgdGhpcy5mb3JtRGF0YS51c2VybmFtZSA9ICcnXHJcbiAgICAgICAgdGhpcy5mb3JtRGF0YS5wYXNzd29yZCA9ICcnXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8v5o+Q5Lqk6KGo5Y2VXHJcblx0Y29uc29sZS5sb2cocG9zdEZvcm0sJy0tLT09PScpO1xyXG4gICAgICB1bmkuJGh0dHAucG9zdCgnL2d1bnNoaUFwcC94eXQvbG9naW4nLCBwb3N0Rm9ybSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgIHVuaS5zaG93TG9hZGluZyh7IHRpdGxlOiAn5Yqq5Yqb55m75b2V5LitLi4uJywgbWFzazogdHJ1ZSB9KVxyXG5cdFx0Y29uc29sZS5sb2cocmVzLCctLS09PT0nKTtcclxuICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAvL2xvY2FsU3RvcmFnZeS/neWtmHRva2VuXHJcblx0XHQgICAgICAgXHJcbiAgICAgICAgICBpZiAocmVzLmRhdGEudG9rZW4pIHtcclxuICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdHcy1Ub2tlbicsIHJlcy5kYXRhLnRva2VuKVxyXG4gICAgICAgICAgICB1bmkuJGh0dHAuZ2V0KCcvZ3Vuc2hpQXBwL3h5dC9nZXRJbmZvJykudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdzc3MnLCByZXMuZGF0YS5kYXRhKVxyXG4gICAgICAgICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYygndmFsdWUnLCByZXMuZGF0YS51c2VyKVxyXG5cdFx0XHQgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG5cdFx0XHQgICAgdW5pLmhpZGVMb2FkaW5nKClcclxuXHRcdFx0ICAgIHVuaS5yZUxhdW5jaCh7XHJcblx0XHRcdCAgICAgIHVybDogJy9wYWdlcy9ob21lSW5kZXgvaW5kZXgnXHJcblx0XHRcdCAgICB9KVxyXG5cdFx0XHQgIH0sIDEwMDApXHJcblx0XHRcdCAgY2xlYXJUaW1lb3V0KClcclxuICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnLS0tLS12YWx1ZS0tLS0tLScsIHJlcy5kYXRhLmRhdGEpXHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAvLyDojrflj5Z1c2VySWTlubbojrflj5blpLTlg49cclxuICAgICAgICAgICAgdW5pLiRodHRwXHJcbiAgICAgICAgICAgICAgLmdldCgnL2d1bnNoaUFwcC94ZmZsb29kL215L2luZm8vZ2V0QnlVc2VySWQnKVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnLS0tLS1hdmF0YXIxLS0tLS0tJywgcmVzLmRhdGEpXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgdXJsID1cclxuICAgICAgICAgICAgICAgICAgICAnL2d1bnNoaUFwcC94ZmZsb29kL2J6UHJvamVjdE1hbmlwdWxhdGlvblJlY29yZC9maWxlL2dldC8nXHJcbiAgICAgICAgICAgICAgICAgIHVybCA9IHVybCArIHJlcy5kYXRhLmRhdGEuZmlsZUlkXHJcbiAgICAgICAgICAgICAgICAgIHVuaS4kaHR0cC5nZXQodXJsKS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2F2YXRhcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnaHR0cDovLzIyMy43NS41My4xNDE6OTEwMi90ZXN0LmJ5LWx5Zi50bXAnICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEuZGF0YS5maWxlUGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAgICAgICAgICctLS0tLWF2YXRhci0tLS0tLScsXHJcbiAgICAgICAgICAgICAgICAgICAgICB1bmkuZ2V0U3RvcmFnZVN5bmMoJ2F2YXRhcicpXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKCdhdmF0YXInLCAnLi4vLi4vc3RhdGljL3RhYnMvdG91eGlhbmcucG5nJylcclxuICAgICAgICAgICAgICAgIH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyB1bmkuc2hvd0xvYWRpbmcoe3RpdGxlOifliqrlipvnmbvlvZXkuK0uLi4nLCBtYXNrOnRydWV9KTtcclxuXHRcdFx0XHQvL+eZu+W9leaIkOWKn+WQjui3s+i9rOeVjFxyXG5cdFx0XHRcdFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXMuZGF0YS5jb2RlID09PSA0MDApIHtcclxuICAgICAgICAgIC8v55m75b2V5aSx6LSl5ZCO5by55Ye65L+h5oGvXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdW5pLmhpZGVMb2FkaW5nKClcclxuICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgdGl0bGU6IHJlcy5kYXRhLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgIGljb246ICdub25lJyxcclxuICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSwgMTAwMClcclxuICAgICAgICAgIGNsZWFyVGltZW91dCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuLmNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAxO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmNWY4O1xyXG59XHJcbi5pbWcge1xyXG4gIHdpZHRoOiAxMDB2dztcclxuICBoZWlnaHQ6IDUwdmg7XHJcbiAgbWFyZ2luLXRvcDogNXZoO1xyXG4gIC8qIGJhY2tncm91bmQtY29sb3I6IHJlZDsgKi9cclxufVxyXG4uZm9ybSB7XHJcbiAgbWFyZ2luLXRvcDogNHZoO1xyXG4gIHdpZHRoOiA4MCU7XHJcbiAgaGVpZ2h0OiA4dmg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG4uYnV0dG9uIHtcclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///48\n"); /***/ }), /* 49 */ /*!****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/index.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54), __webpack_require__(/*! ./lib-typedarrays */ 55), __webpack_require__(/*! ./enc-utf16 */ 56), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./enc-base64url */ 58), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./sha1 */ 60), __webpack_require__(/*! ./sha256 */ 61), __webpack_require__(/*! ./sha224 */ 62), __webpack_require__(/*! ./sha512 */ 63), __webpack_require__(/*! ./sha384 */ 64), __webpack_require__(/*! ./sha3 */ 65), __webpack_require__(/*! ./ripemd160 */ 66), __webpack_require__(/*! ./hmac */ 67), __webpack_require__(/*! ./pbkdf2 */ 68), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70), __webpack_require__(/*! ./mode-cfb */ 71), __webpack_require__(/*! ./mode-ctr */ 72), __webpack_require__(/*! ./mode-ctr-gladman */ 73), __webpack_require__(/*! ./mode-ofb */ 74), __webpack_require__(/*! ./mode-ecb */ 75), __webpack_require__(/*! ./pad-ansix923 */ 76), __webpack_require__(/*! ./pad-iso10126 */ 77), __webpack_require__(/*! ./pad-iso97971 */ 78), __webpack_require__(/*! ./pad-zeropadding */ 79), __webpack_require__(/*! ./pad-nopadding */ 80), __webpack_require__(/*! ./format-hex */ 81), __webpack_require__(/*! ./aes */ 82), __webpack_require__(/*! ./tripledes */ 83), __webpack_require__(/*! ./rc4 */ 84), __webpack_require__(/*! ./rabbit */ 85), __webpack_require__(/*! ./rabbit-legacy */ 86), __webpack_require__(/*! ./blowfish */ 87)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54), __webpack_require__(/*! ./lib-typedarrays */ 55), __webpack_require__(/*! ./enc-utf16 */ 56), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./enc-base64url */ 58), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./sha1 */ 60), __webpack_require__(/*! ./sha256 */ 61), __webpack_require__(/*! ./sha224 */ 62), __webpack_require__(/*! ./sha512 */ 63), __webpack_require__(/*! ./sha384 */ 64), __webpack_require__(/*! ./sha3 */ 65), __webpack_require__(/*! ./ripemd160 */ 66), __webpack_require__(/*! ./hmac */ 67), __webpack_require__(/*! ./pbkdf2 */ 68), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70), __webpack_require__(/*! ./mode-cfb */ 71), __webpack_require__(/*! ./mode-ctr */ 72), __webpack_require__(/*! ./mode-ctr-gladman */ 73), __webpack_require__(/*! ./mode-ofb */ 74), __webpack_require__(/*! ./mode-ecb */ 75), __webpack_require__(/*! ./pad-ansix923 */ 76), __webpack_require__(/*! ./pad-iso10126 */ 77), __webpack_require__(/*! ./pad-iso97971 */ 78), __webpack_require__(/*! ./pad-zeropadding */ 79), __webpack_require__(/*! ./pad-nopadding */ 80), __webpack_require__(/*! ./format-hex */ 81), __webpack_require__(/*! ./aes */ 82), __webpack_require__(/*! ./tripledes */ 83), __webpack_require__(/*! ./rc4 */ 84), __webpack_require__(/*! ./rabbit */ 85), __webpack_require__(/*! ./rabbit-legacy */ 86), __webpack_require__(/*! ./blowfish */ 87)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { return CryptoJS; }); /***/ }), /* 50 */ /*!***************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/core.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_crypto, global, __webpack_provided_global_dot_crypto) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function () { /*globals window, global, require*/ /** * CryptoJS core components. */ var CryptoJS = CryptoJS || function (Math, undefined) { var crypto; // Native crypto from window (Browser) if (typeof window !== 'undefined' && __webpack_provided_window_dot_crypto) { crypto = __webpack_provided_window_dot_crypto; } // Native crypto in web worker (Browser) if (typeof self !== 'undefined' && self.crypto) { crypto = self.crypto; } // Native crypto from worker if (typeof globalThis !== 'undefined' && globalThis.crypto) { crypto = globalThis.crypto; } // Native (experimental IE 11) crypto from window (Browser) if (!crypto && typeof window !== 'undefined' && window.msCrypto) { crypto = window.msCrypto; } // Native crypto from global (NodeJS) if (!crypto && typeof global !== 'undefined' && __webpack_provided_global_dot_crypto) { crypto = __webpack_provided_global_dot_crypto; } // Native crypto import via require (NodeJS) if (!crypto && "function" === 'function') { try { crypto = __webpack_require__(/*! crypto */ 53); } catch (err) {} } /* * Cryptographically secure pseudorandom number generator * * As Math.random() is cryptographically not safe to use */ var cryptoSecureRandomInt = function cryptoSecureRandomInt() { if (crypto) { // Use getRandomValues method (Browser) if (typeof crypto.getRandomValues === 'function') { try { return crypto.getRandomValues(new Uint32Array(1))[0]; } catch (err) {} } // Use randomBytes method (NodeJS) if (typeof crypto.randomBytes === 'function') { try { return crypto.randomBytes(4).readInt32LE(); } catch (err) {} } } throw new Error('Native crypto module could not be used to get secure random number.'); }; /* * Local polyfill of Object.create */ var create = Object.create || function () { function F() {} return function (obj) { var subtype; F.prototype = obj; subtype = new F(); F.prototype = null; return subtype; }; }(); /** * CryptoJS namespace. */ var C = {}; /** * Library namespace. */ var C_lib = C.lib = {}; /** * Base object for prototypal inheritance. */ var Base = C_lib.Base = function () { return { /** * Creates a new object that inherits from this object. * * @param {Object} overrides Properties to copy into the new object. * * @return {Object} The new object. * * @static * * @example * * var MyType = CryptoJS.lib.Base.extend({ * field: 'value', * * method: function () { * } * }); */ extend: function extend(overrides) { // Spawn var subtype = create(this); // Augment if (overrides) { subtype.mixIn(overrides); } // Create default initializer if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { subtype.init = function () { subtype.$super.init.apply(this, arguments); }; } // Initializer's prototype is the subtype object subtype.init.prototype = subtype; // Reference supertype subtype.$super = this; return subtype; }, /** * Extends this object and runs the init method. * Arguments to create() will be passed to init(). * * @return {Object} The new object. * * @static * * @example * * var instance = MyType.create(); */ create: function create() { var instance = this.extend(); instance.init.apply(instance, arguments); return instance; }, /** * Initializes a newly created object. * Override this method to add some logic when your objects are created. * * @example * * var MyType = CryptoJS.lib.Base.extend({ * init: function () { * // ... * } * }); */ init: function init() {}, /** * Copies properties into this object. * * @param {Object} properties The properties to mix in. * * @example * * MyType.mixIn({ * field: 'value' * }); */ mixIn: function mixIn(properties) { for (var propertyName in properties) { if (properties.hasOwnProperty(propertyName)) { this[propertyName] = properties[propertyName]; } } // IE won't copy toString using the loop above if (properties.hasOwnProperty('toString')) { this.toString = properties.toString; } }, /** * Creates a copy of this object. * * @return {Object} The clone. * * @example * * var clone = instance.clone(); */ clone: function clone() { return this.init.prototype.extend(this); } }; }(); /** * An array of 32-bit words. * * @property {Array} words The array of 32-bit words. * @property {number} sigBytes The number of significant bytes in this word array. */ var WordArray = C_lib.WordArray = Base.extend({ /** * Initializes a newly created word array. * * @param {Array} words (Optional) An array of 32-bit words. * @param {number} sigBytes (Optional) The number of significant bytes in the words. * * @example * * var wordArray = CryptoJS.lib.WordArray.create(); * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); */ init: function init(words, sigBytes) { words = this.words = words || []; if (sigBytes != undefined) { this.sigBytes = sigBytes; } else { this.sigBytes = words.length * 4; } }, /** * Converts this word array to a string. * * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex * * @return {string} The stringified word array. * * @example * * var string = wordArray + ''; * var string = wordArray.toString(); * var string = wordArray.toString(CryptoJS.enc.Utf8); */ toString: function toString(encoder) { return (encoder || Hex).stringify(this); }, /** * Concatenates a word array to this word array. * * @param {WordArray} wordArray The word array to append. * * @return {WordArray} This word array. * * @example * * wordArray1.concat(wordArray2); */ concat: function concat(wordArray) { // Shortcuts var thisWords = this.words; var thatWords = wordArray.words; var thisSigBytes = this.sigBytes; var thatSigBytes = wordArray.sigBytes; // Clamp excess bits this.clamp(); // Concat if (thisSigBytes % 4) { // Copy one byte at a time for (var i = 0; i < thatSigBytes; i++) { var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff; thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8; } } else { // Copy one word at a time for (var j = 0; j < thatSigBytes; j += 4) { thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2]; } } this.sigBytes += thatSigBytes; // Chainable return this; }, /** * Removes insignificant bits. * * @example * * wordArray.clamp(); */ clamp: function clamp() { // Shortcuts var words = this.words; var sigBytes = this.sigBytes; // Clamp words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8; words.length = Math.ceil(sigBytes / 4); }, /** * Creates a copy of this word array. * * @return {WordArray} The clone. * * @example * * var clone = wordArray.clone(); */ clone: function clone() { var clone = Base.clone.call(this); clone.words = this.words.slice(0); return clone; }, /** * Creates a word array filled with random bytes. * * @param {number} nBytes The number of random bytes to generate. * * @return {WordArray} The random word array. * * @static * * @example * * var wordArray = CryptoJS.lib.WordArray.random(16); */ random: function random(nBytes) { var words = []; for (var i = 0; i < nBytes; i += 4) { words.push(cryptoSecureRandomInt()); } return new WordArray.init(words, nBytes); } }); /** * Encoder namespace. */ var C_enc = C.enc = {}; /** * Hex encoding strategy. */ var Hex = C_enc.Hex = { /** * Converts a word array to a hex string. * * @param {WordArray} wordArray The word array. * * @return {string} The hex string. * * @static * * @example * * var hexString = CryptoJS.enc.Hex.stringify(wordArray); */ stringify: function stringify(wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; // Convert var hexChars = []; for (var i = 0; i < sigBytes; i++) { var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff; hexChars.push((bite >>> 4).toString(16)); hexChars.push((bite & 0x0f).toString(16)); } return hexChars.join(''); }, /** * Converts a hex string to a word array. * * @param {string} hexStr The hex string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Hex.parse(hexString); */ parse: function parse(hexStr) { // Shortcut var hexStrLength = hexStr.length; // Convert var words = []; for (var i = 0; i < hexStrLength; i += 2) { words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4; } return new WordArray.init(words, hexStrLength / 2); } }; /** * Latin1 encoding strategy. */ var Latin1 = C_enc.Latin1 = { /** * Converts a word array to a Latin1 string. * * @param {WordArray} wordArray The word array. * * @return {string} The Latin1 string. * * @static * * @example * * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); */ stringify: function stringify(wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; // Convert var latin1Chars = []; for (var i = 0; i < sigBytes; i++) { var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff; latin1Chars.push(String.fromCharCode(bite)); } return latin1Chars.join(''); }, /** * Converts a Latin1 string to a word array. * * @param {string} latin1Str The Latin1 string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); */ parse: function parse(latin1Str) { // Shortcut var latin1StrLength = latin1Str.length; // Convert var words = []; for (var i = 0; i < latin1StrLength; i++) { words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8; } return new WordArray.init(words, latin1StrLength); } }; /** * UTF-8 encoding strategy. */ var Utf8 = C_enc.Utf8 = { /** * Converts a word array to a UTF-8 string. * * @param {WordArray} wordArray The word array. * * @return {string} The UTF-8 string. * * @static * * @example * * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); */ stringify: function stringify(wordArray) { try { return decodeURIComponent(escape(Latin1.stringify(wordArray))); } catch (e) { throw new Error('Malformed UTF-8 data'); } }, /** * Converts a UTF-8 string to a word array. * * @param {string} utf8Str The UTF-8 string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); */ parse: function parse(utf8Str) { return Latin1.parse(unescape(encodeURIComponent(utf8Str))); } }; /** * Abstract buffered block algorithm template. * * The property blockSize must be implemented in a concrete subtype. * * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 */ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ /** * Resets this block algorithm's data buffer to its initial state. * * @example * * bufferedBlockAlgorithm.reset(); */ reset: function reset() { // Initial values this._data = new WordArray.init(); this._nDataBytes = 0; }, /** * Adds new data to this block algorithm's buffer. * * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. * * @example * * bufferedBlockAlgorithm._append('data'); * bufferedBlockAlgorithm._append(wordArray); */ _append: function _append(data) { // Convert string to WordArray, else assume WordArray already if (typeof data == 'string') { data = Utf8.parse(data); } // Append this._data.concat(data); this._nDataBytes += data.sigBytes; }, /** * Processes available data blocks. * * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. * * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. * * @return {WordArray} The processed data. * * @example * * var processedData = bufferedBlockAlgorithm._process(); * var processedData = bufferedBlockAlgorithm._process(!!'flush'); */ _process: function _process(doFlush) { var processedWords; // Shortcuts var data = this._data; var dataWords = data.words; var dataSigBytes = data.sigBytes; var blockSize = this.blockSize; var blockSizeBytes = blockSize * 4; // Count blocks ready var nBlocksReady = dataSigBytes / blockSizeBytes; if (doFlush) { // Round up to include partial blocks nBlocksReady = Math.ceil(nBlocksReady); } else { // Round down to include only full blocks, // less the number of blocks that must remain in the buffer nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); } // Count words ready var nWordsReady = nBlocksReady * blockSize; // Count bytes ready var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); // Process blocks if (nWordsReady) { for (var offset = 0; offset < nWordsReady; offset += blockSize) { // Perform concrete-algorithm logic this._doProcessBlock(dataWords, offset); } // Remove processed words processedWords = dataWords.splice(0, nWordsReady); data.sigBytes -= nBytesReady; } // Return processed words return new WordArray.init(processedWords, nBytesReady); }, /** * Creates a copy of this object. * * @return {Object} The clone. * * @example * * var clone = bufferedBlockAlgorithm.clone(); */ clone: function clone() { var clone = Base.clone.call(this); clone._data = this._data.clone(); return clone; }, _minBufferSize: 0 }); /** * Abstract hasher template. * * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) */ var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ /** * Configuration options. */ cfg: Base.extend(), /** * Initializes a newly created hasher. * * @param {Object} cfg (Optional) The configuration options to use for this hash computation. * * @example * * var hasher = CryptoJS.algo.SHA256.create(); */ init: function init(cfg) { // Apply config defaults this.cfg = this.cfg.extend(cfg); // Set initial values this.reset(); }, /** * Resets this hasher to its initial state. * * @example * * hasher.reset(); */ reset: function reset() { // Reset data buffer BufferedBlockAlgorithm.reset.call(this); // Perform concrete-hasher logic this._doReset(); }, /** * Updates this hasher with a message. * * @param {WordArray|string} messageUpdate The message to append. * * @return {Hasher} This hasher. * * @example * * hasher.update('message'); * hasher.update(wordArray); */ update: function update(messageUpdate) { // Append this._append(messageUpdate); // Update the hash this._process(); // Chainable return this; }, /** * Finalizes the hash computation. * Note that the finalize operation is effectively a destructive, read-once operation. * * @param {WordArray|string} messageUpdate (Optional) A final message update. * * @return {WordArray} The hash. * * @example * * var hash = hasher.finalize(); * var hash = hasher.finalize('message'); * var hash = hasher.finalize(wordArray); */ finalize: function finalize(messageUpdate) { // Final message update if (messageUpdate) { this._append(messageUpdate); } // Perform concrete-hasher logic var hash = this._doFinalize(); return hash; }, blockSize: 512 / 32, /** * Creates a shortcut function to a hasher's object interface. * * @param {Hasher} hasher The hasher to create a helper for. * * @return {Function} The shortcut function. * * @static * * @example * * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); */ _createHelper: function _createHelper(hasher) { return function (message, cfg) { return new hasher.init(cfg).finalize(message); }; }, /** * Creates a shortcut function to the HMAC's object interface. * * @param {Hasher} hasher The hasher to use in this HMAC helper. * * @return {Function} The shortcut function. * * @static * * @example * * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); */ _createHmacHelper: function _createHmacHelper(hasher) { return function (message, key) { return new C_algo.HMAC.init(hasher, key).finalize(message); }; } }); /** * Algorithm namespace. */ var C_algo = C.algo = {}; return C; }(Math); return CryptoJS; }); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/crypto.js */ 51)["default"], __webpack_require__(/*! ./../../../../HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 52), __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/crypto.js */ 51)["default"])) /***/ }), /* 51 */ /*!*****************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/crypto.js ***! \*****************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); var lookup = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 62, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 63, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ] function base64Decode (source, target) { var sourceLength = source.length var paddingLength = (source[sourceLength - 2] === '=' ? 2 : (source[sourceLength - 1] === '=' ? 1 : 0)) var tmp var byteIndex = 0 var baseLength = (sourceLength - paddingLength) & 0xfffffffc for (var i = 0; i < baseLength; i += 4) { tmp = (lookup[source.charCodeAt(i)] << 18) | (lookup[source.charCodeAt(i + 1)] << 12) | (lookup[source.charCodeAt(i + 2)] << 6) | (lookup[source.charCodeAt(i + 3)]) target[byteIndex++] = (tmp >> 16) & 0xFF target[byteIndex++] = (tmp >> 8) & 0xFF target[byteIndex++] = (tmp) & 0xFF } if (paddingLength === 1) { tmp = (lookup[source.charCodeAt(i)] << 10) | (lookup[source.charCodeAt(i + 1)] << 4) | (lookup[source.charCodeAt(i + 2)] >> 2) target[byteIndex++] = (tmp >> 8) & 0xFF target[byteIndex++] = tmp & 0xFF } if (paddingLength === 2) { tmp = (lookup[source.charCodeAt(i)] << 2) | (lookup[source.charCodeAt(i + 1)] >> 4) target[byteIndex++] = tmp & 0xFF } } /* harmony default export */ __webpack_exports__["default"] = ({ getRandomValues (arr) { if (!( arr instanceof Int8Array || arr instanceof Uint8Array || arr instanceof Int16Array || arr instanceof Uint16Array || arr instanceof Int32Array || arr instanceof Uint32Array || arr instanceof Uint8ClampedArray )) { throw new Error('Expected an integer array') } if (arr.byteLength > 65536) { throw new Error('Can only request a maximum of 65536 bytes') } var crypto = uni.requireNativePlugin('DCloud-Crypto') base64Decode(crypto.getRandomValues(arr.byteLength), new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength)) return arr } }); /***/ }), /* 52 */ /*!***********************************!*\ !*** (webpack)/buildin/global.js ***! \***********************************/ /*! no static exports found */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 53 */ /*!************************!*\ !*** crypto (ignored) ***! \************************/ /*! no static exports found */ /***/ (function(module, exports) { /* (ignored) */ /***/ }), /* 54 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/x64-core.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function (undefined) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var Base = C_lib.Base; var X32WordArray = C_lib.WordArray; /** * x64 namespace. */ var C_x64 = C.x64 = {}; /** * A 64-bit word. */ var X64Word = C_x64.Word = Base.extend({ /** * Initializes a newly created 64-bit word. * * @param {number} high The high 32 bits. * @param {number} low The low 32 bits. * * @example * * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); */ init: function init(high, low) { this.high = high; this.low = low; } /** * Bitwise NOTs this word. * * @return {X64Word} A new x64-Word object after negating. * * @example * * var negated = x64Word.not(); */ // not: function () { // var high = ~this.high; // var low = ~this.low; // return X64Word.create(high, low); // }, /** * Bitwise ANDs this word with the passed word. * * @param {X64Word} word The x64-Word to AND with this word. * * @return {X64Word} A new x64-Word object after ANDing. * * @example * * var anded = x64Word.and(anotherX64Word); */ // and: function (word) { // var high = this.high & word.high; // var low = this.low & word.low; // return X64Word.create(high, low); // }, /** * Bitwise ORs this word with the passed word. * * @param {X64Word} word The x64-Word to OR with this word. * * @return {X64Word} A new x64-Word object after ORing. * * @example * * var ored = x64Word.or(anotherX64Word); */ // or: function (word) { // var high = this.high | word.high; // var low = this.low | word.low; // return X64Word.create(high, low); // }, /** * Bitwise XORs this word with the passed word. * * @param {X64Word} word The x64-Word to XOR with this word. * * @return {X64Word} A new x64-Word object after XORing. * * @example * * var xored = x64Word.xor(anotherX64Word); */ // xor: function (word) { // var high = this.high ^ word.high; // var low = this.low ^ word.low; // return X64Word.create(high, low); // }, /** * Shifts this word n bits to the left. * * @param {number} n The number of bits to shift. * * @return {X64Word} A new x64-Word object after shifting. * * @example * * var shifted = x64Word.shiftL(25); */ // shiftL: function (n) { // if (n < 32) { // var high = (this.high << n) | (this.low >>> (32 - n)); // var low = this.low << n; // } else { // var high = this.low << (n - 32); // var low = 0; // } // return X64Word.create(high, low); // }, /** * Shifts this word n bits to the right. * * @param {number} n The number of bits to shift. * * @return {X64Word} A new x64-Word object after shifting. * * @example * * var shifted = x64Word.shiftR(7); */ // shiftR: function (n) { // if (n < 32) { // var low = (this.low >>> n) | (this.high << (32 - n)); // var high = this.high >>> n; // } else { // var low = this.high >>> (n - 32); // var high = 0; // } // return X64Word.create(high, low); // }, /** * Rotates this word n bits to the left. * * @param {number} n The number of bits to rotate. * * @return {X64Word} A new x64-Word object after rotating. * * @example * * var rotated = x64Word.rotL(25); */ // rotL: function (n) { // return this.shiftL(n).or(this.shiftR(64 - n)); // }, /** * Rotates this word n bits to the right. * * @param {number} n The number of bits to rotate. * * @return {X64Word} A new x64-Word object after rotating. * * @example * * var rotated = x64Word.rotR(7); */ // rotR: function (n) { // return this.shiftR(n).or(this.shiftL(64 - n)); // }, /** * Adds this word with the passed word. * * @param {X64Word} word The x64-Word to add with this word. * * @return {X64Word} A new x64-Word object after adding. * * @example * * var added = x64Word.add(anotherX64Word); */ // add: function (word) { // var low = (this.low + word.low) | 0; // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; // var high = (this.high + word.high + carry) | 0; // return X64Word.create(high, low); // } }); /** * An array of 64-bit words. * * @property {Array} words The array of CryptoJS.x64.Word objects. * @property {number} sigBytes The number of significant bytes in this word array. */ var X64WordArray = C_x64.WordArray = Base.extend({ /** * Initializes a newly created word array. * * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. * @param {number} sigBytes (Optional) The number of significant bytes in the words. * * @example * * var wordArray = CryptoJS.x64.WordArray.create(); * * var wordArray = CryptoJS.x64.WordArray.create([ * CryptoJS.x64.Word.create(0x00010203, 0x04050607), * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) * ]); * * var wordArray = CryptoJS.x64.WordArray.create([ * CryptoJS.x64.Word.create(0x00010203, 0x04050607), * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) * ], 10); */ init: function init(words, sigBytes) { words = this.words = words || []; if (sigBytes != undefined) { this.sigBytes = sigBytes; } else { this.sigBytes = words.length * 8; } }, /** * Converts this 64-bit word array to a 32-bit word array. * * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. * * @example * * var x32WordArray = x64WordArray.toX32(); */ toX32: function toX32() { // Shortcuts var x64Words = this.words; var x64WordsLength = x64Words.length; // Convert var x32Words = []; for (var i = 0; i < x64WordsLength; i++) { var x64Word = x64Words[i]; x32Words.push(x64Word.high); x32Words.push(x64Word.low); } return X32WordArray.create(x32Words, this.sigBytes); }, /** * Creates a copy of this word array. * * @return {X64WordArray} The clone. * * @example * * var clone = x64WordArray.clone(); */ clone: function clone() { var clone = Base.clone.call(this); // Clone "words" array var words = clone.words = this.words.slice(0); // Clone each X64Word object var wordsLength = words.length; for (var i = 0; i < wordsLength; i++) { words[i] = words[i].clone(); } return clone; } }); })(); return CryptoJS; }); /***/ }), /* 55 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/lib-typedarrays.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Check if typed arrays are supported if (typeof ArrayBuffer != 'function') { return; } // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; // Reference original init var superInit = WordArray.init; // Augment WordArray.init to handle typed arrays var subInit = WordArray.init = function (typedArray) { // Convert buffers to uint8 if (typedArray instanceof ArrayBuffer) { typedArray = new Uint8Array(typedArray); } // Convert other array views to uint8 if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) { typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); } // Handle Uint8Array if (typedArray instanceof Uint8Array) { // Shortcut var typedArrayByteLength = typedArray.byteLength; // Extract bytes var words = []; for (var i = 0; i < typedArrayByteLength; i++) { words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8; } // Initialize this word array superInit.call(this, words, typedArrayByteLength); } else { // Else call normal init superInit.apply(this, arguments); } }; subInit.prototype = WordArray; })(); return CryptoJS.lib.WordArray; }); /***/ }), /* 56 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/enc-utf16.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var C_enc = C.enc; /** * UTF-16 BE encoding strategy. */ var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { /** * Converts a word array to a UTF-16 BE string. * * @param {WordArray} wordArray The word array. * * @return {string} The UTF-16 BE string. * * @static * * @example * * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); */ stringify: function stringify(wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; // Convert var utf16Chars = []; for (var i = 0; i < sigBytes; i += 2) { var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff; utf16Chars.push(String.fromCharCode(codePoint)); } return utf16Chars.join(''); }, /** * Converts a UTF-16 BE string to a word array. * * @param {string} utf16Str The UTF-16 BE string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); */ parse: function parse(utf16Str) { // Shortcut var utf16StrLength = utf16Str.length; // Convert var words = []; for (var i = 0; i < utf16StrLength; i++) { words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16; } return WordArray.create(words, utf16StrLength * 2); } }; /** * UTF-16 LE encoding strategy. */ C_enc.Utf16LE = { /** * Converts a word array to a UTF-16 LE string. * * @param {WordArray} wordArray The word array. * * @return {string} The UTF-16 LE string. * * @static * * @example * * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); */ stringify: function stringify(wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; // Convert var utf16Chars = []; for (var i = 0; i < sigBytes; i += 2) { var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff); utf16Chars.push(String.fromCharCode(codePoint)); } return utf16Chars.join(''); }, /** * Converts a UTF-16 LE string to a word array. * * @param {string} utf16Str The UTF-16 LE string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); */ parse: function parse(utf16Str) { // Shortcut var utf16StrLength = utf16Str.length; // Convert var words = []; for (var i = 0; i < utf16StrLength; i++) { words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16); } return WordArray.create(words, utf16StrLength * 2); } }; function swapEndian(word) { return word << 8 & 0xff00ff00 | word >>> 8 & 0x00ff00ff; } })(); return CryptoJS.enc.Utf16; }); /***/ }), /* 57 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/enc-base64.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var C_enc = C.enc; /** * Base64 encoding strategy. */ var Base64 = C_enc.Base64 = { /** * Converts a word array to a Base64 string. * * @param {WordArray} wordArray The word array. * * @return {string} The Base64 string. * * @static * * @example * * var base64String = CryptoJS.enc.Base64.stringify(wordArray); */ stringify: function stringify(wordArray) { // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; var map = this._map; // Clamp excess bits wordArray.clamp(); // Convert var base64Chars = []; for (var i = 0; i < sigBytes; i += 3) { var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff; var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff; var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff; var triplet = byte1 << 16 | byte2 << 8 | byte3; for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) { base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f)); } } // Add padding var paddingChar = map.charAt(64); if (paddingChar) { while (base64Chars.length % 4) { base64Chars.push(paddingChar); } } return base64Chars.join(''); }, /** * Converts a Base64 string to a word array. * * @param {string} base64Str The Base64 string. * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Base64.parse(base64String); */ parse: function parse(base64Str) { // Shortcuts var base64StrLength = base64Str.length; var map = this._map; var reverseMap = this._reverseMap; if (!reverseMap) { reverseMap = this._reverseMap = []; for (var j = 0; j < map.length; j++) { reverseMap[map.charCodeAt(j)] = j; } } // Ignore padding var paddingChar = map.charAt(64); if (paddingChar) { var paddingIndex = base64Str.indexOf(paddingChar); if (paddingIndex !== -1) { base64StrLength = paddingIndex; } } // Convert return parseLoop(base64Str, base64StrLength, reverseMap); }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' }; function parseLoop(base64Str, base64StrLength, reverseMap) { var words = []; var nBytes = 0; for (var i = 0; i < base64StrLength; i++) { if (i % 4) { var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2; var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2; var bitsCombined = bits1 | bits2; words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8; nBytes++; } } return WordArray.create(words, nBytes); } })(); return CryptoJS.enc.Base64; }); /***/ }), /* 58 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/enc-base64url.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var C_enc = C.enc; /** * Base64url encoding strategy. */ var Base64url = C_enc.Base64url = { /** * Converts a word array to a Base64url string. * * @param {WordArray} wordArray The word array. * * @param {boolean} urlSafe Whether to use url safe * * @return {string} The Base64url string. * * @static * * @example * * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); */ stringify: function stringify(wordArray, urlSafe) { if (urlSafe === undefined) { urlSafe = true; } // Shortcuts var words = wordArray.words; var sigBytes = wordArray.sigBytes; var map = urlSafe ? this._safe_map : this._map; // Clamp excess bits wordArray.clamp(); // Convert var base64Chars = []; for (var i = 0; i < sigBytes; i += 3) { var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff; var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff; var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff; var triplet = byte1 << 16 | byte2 << 8 | byte3; for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) { base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f)); } } // Add padding var paddingChar = map.charAt(64); if (paddingChar) { while (base64Chars.length % 4) { base64Chars.push(paddingChar); } } return base64Chars.join(''); }, /** * Converts a Base64url string to a word array. * * @param {string} base64Str The Base64url string. * * @param {boolean} urlSafe Whether to use url safe * * @return {WordArray} The word array. * * @static * * @example * * var wordArray = CryptoJS.enc.Base64url.parse(base64String); */ parse: function parse(base64Str, urlSafe) { if (urlSafe === undefined) { urlSafe = true; } // Shortcuts var base64StrLength = base64Str.length; var map = urlSafe ? this._safe_map : this._map; var reverseMap = this._reverseMap; if (!reverseMap) { reverseMap = this._reverseMap = []; for (var j = 0; j < map.length; j++) { reverseMap[map.charCodeAt(j)] = j; } } // Ignore padding var paddingChar = map.charAt(64); if (paddingChar) { var paddingIndex = base64Str.indexOf(paddingChar); if (paddingIndex !== -1) { base64StrLength = paddingIndex; } } // Convert return parseLoop(base64Str, base64StrLength, reverseMap); }, _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_' }; function parseLoop(base64Str, base64StrLength, reverseMap) { var words = []; var nBytes = 0; for (var i = 0; i < base64StrLength; i++) { if (i % 4) { var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2; var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2; var bitsCombined = bits1 | bits2; words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8; nBytes++; } } return WordArray.create(words, nBytes); } })(); return CryptoJS.enc.Base64url; }); /***/ }), /* 59 */ /*!**************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/md5.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function (Math) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var Hasher = C_lib.Hasher; var C_algo = C.algo; // Constants table var T = []; // Compute constants (function () { for (var i = 0; i < 64; i++) { T[i] = Math.abs(Math.sin(i + 1)) * 0x100000000 | 0; } })(); /** * MD5 hash algorithm. */ var MD5 = C_algo.MD5 = Hasher.extend({ _doReset: function _doReset() { this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]); }, _doProcessBlock: function _doProcessBlock(M, offset) { // Swap endian for (var i = 0; i < 16; i++) { // Shortcuts var offset_i = offset + i; var M_offset_i = M[offset_i]; M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00; } // Shortcuts var H = this._hash.words; var M_offset_0 = M[offset + 0]; var M_offset_1 = M[offset + 1]; var M_offset_2 = M[offset + 2]; var M_offset_3 = M[offset + 3]; var M_offset_4 = M[offset + 4]; var M_offset_5 = M[offset + 5]; var M_offset_6 = M[offset + 6]; var M_offset_7 = M[offset + 7]; var M_offset_8 = M[offset + 8]; var M_offset_9 = M[offset + 9]; var M_offset_10 = M[offset + 10]; var M_offset_11 = M[offset + 11]; var M_offset_12 = M[offset + 12]; var M_offset_13 = M[offset + 13]; var M_offset_14 = M[offset + 14]; var M_offset_15 = M[offset + 15]; // Working variables var a = H[0]; var b = H[1]; var c = H[2]; var d = H[3]; // Computation a = FF(a, b, c, d, M_offset_0, 7, T[0]); d = FF(d, a, b, c, M_offset_1, 12, T[1]); c = FF(c, d, a, b, M_offset_2, 17, T[2]); b = FF(b, c, d, a, M_offset_3, 22, T[3]); a = FF(a, b, c, d, M_offset_4, 7, T[4]); d = FF(d, a, b, c, M_offset_5, 12, T[5]); c = FF(c, d, a, b, M_offset_6, 17, T[6]); b = FF(b, c, d, a, M_offset_7, 22, T[7]); a = FF(a, b, c, d, M_offset_8, 7, T[8]); d = FF(d, a, b, c, M_offset_9, 12, T[9]); c = FF(c, d, a, b, M_offset_10, 17, T[10]); b = FF(b, c, d, a, M_offset_11, 22, T[11]); a = FF(a, b, c, d, M_offset_12, 7, T[12]); d = FF(d, a, b, c, M_offset_13, 12, T[13]); c = FF(c, d, a, b, M_offset_14, 17, T[14]); b = FF(b, c, d, a, M_offset_15, 22, T[15]); a = GG(a, b, c, d, M_offset_1, 5, T[16]); d = GG(d, a, b, c, M_offset_6, 9, T[17]); c = GG(c, d, a, b, M_offset_11, 14, T[18]); b = GG(b, c, d, a, M_offset_0, 20, T[19]); a = GG(a, b, c, d, M_offset_5, 5, T[20]); d = GG(d, a, b, c, M_offset_10, 9, T[21]); c = GG(c, d, a, b, M_offset_15, 14, T[22]); b = GG(b, c, d, a, M_offset_4, 20, T[23]); a = GG(a, b, c, d, M_offset_9, 5, T[24]); d = GG(d, a, b, c, M_offset_14, 9, T[25]); c = GG(c, d, a, b, M_offset_3, 14, T[26]); b = GG(b, c, d, a, M_offset_8, 20, T[27]); a = GG(a, b, c, d, M_offset_13, 5, T[28]); d = GG(d, a, b, c, M_offset_2, 9, T[29]); c = GG(c, d, a, b, M_offset_7, 14, T[30]); b = GG(b, c, d, a, M_offset_12, 20, T[31]); a = HH(a, b, c, d, M_offset_5, 4, T[32]); d = HH(d, a, b, c, M_offset_8, 11, T[33]); c = HH(c, d, a, b, M_offset_11, 16, T[34]); b = HH(b, c, d, a, M_offset_14, 23, T[35]); a = HH(a, b, c, d, M_offset_1, 4, T[36]); d = HH(d, a, b, c, M_offset_4, 11, T[37]); c = HH(c, d, a, b, M_offset_7, 16, T[38]); b = HH(b, c, d, a, M_offset_10, 23, T[39]); a = HH(a, b, c, d, M_offset_13, 4, T[40]); d = HH(d, a, b, c, M_offset_0, 11, T[41]); c = HH(c, d, a, b, M_offset_3, 16, T[42]); b = HH(b, c, d, a, M_offset_6, 23, T[43]); a = HH(a, b, c, d, M_offset_9, 4, T[44]); d = HH(d, a, b, c, M_offset_12, 11, T[45]); c = HH(c, d, a, b, M_offset_15, 16, T[46]); b = HH(b, c, d, a, M_offset_2, 23, T[47]); a = II(a, b, c, d, M_offset_0, 6, T[48]); d = II(d, a, b, c, M_offset_7, 10, T[49]); c = II(c, d, a, b, M_offset_14, 15, T[50]); b = II(b, c, d, a, M_offset_5, 21, T[51]); a = II(a, b, c, d, M_offset_12, 6, T[52]); d = II(d, a, b, c, M_offset_3, 10, T[53]); c = II(c, d, a, b, M_offset_10, 15, T[54]); b = II(b, c, d, a, M_offset_1, 21, T[55]); a = II(a, b, c, d, M_offset_8, 6, T[56]); d = II(d, a, b, c, M_offset_15, 10, T[57]); c = II(c, d, a, b, M_offset_6, 15, T[58]); b = II(b, c, d, a, M_offset_13, 21, T[59]); a = II(a, b, c, d, M_offset_4, 6, T[60]); d = II(d, a, b, c, M_offset_11, 10, T[61]); c = II(c, d, a, b, M_offset_2, 15, T[62]); b = II(b, c, d, a, M_offset_9, 21, T[63]); // Intermediate hash value H[0] = H[0] + a | 0; H[1] = H[1] + b | 0; H[2] = H[2] + c | 0; H[3] = H[3] + d | 0; }, _doFinalize: function _doFinalize() { // Shortcuts var data = this._data; var dataWords = data.words; var nBitsTotal = this._nDataBytes * 8; var nBitsLeft = data.sigBytes * 8; // Add padding dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32; var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); var nBitsTotalL = nBitsTotal; dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 0x00ff00ff | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 0xff00ff00; dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 0x00ff00ff | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 0xff00ff00; data.sigBytes = (dataWords.length + 1) * 4; // Hash final blocks this._process(); // Shortcuts var hash = this._hash; var H = hash.words; // Swap endian for (var i = 0; i < 4; i++) { // Shortcut var H_i = H[i]; H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00; } // Return final computed hash return hash; }, clone: function clone() { var clone = Hasher.clone.call(this); clone._hash = this._hash.clone(); return clone; } }); function FF(a, b, c, d, x, s, t) { var n = a + (b & c | ~b & d) + x + t; return (n << s | n >>> 32 - s) + b; } function GG(a, b, c, d, x, s, t) { var n = a + (b & d | c & ~d) + x + t; return (n << s | n >>> 32 - s) + b; } function HH(a, b, c, d, x, s, t) { var n = a + (b ^ c ^ d) + x + t; return (n << s | n >>> 32 - s) + b; } function II(a, b, c, d, x, s, t) { var n = a + (c ^ (b | ~d)) + x + t; return (n << s | n >>> 32 - s) + b; } /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.MD5('message'); * var hash = CryptoJS.MD5(wordArray); */ C.MD5 = Hasher._createHelper(MD5); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacMD5(message, key); */ C.HmacMD5 = Hasher._createHmacHelper(MD5); })(Math); return CryptoJS.MD5; }); /***/ }), /* 60 */ /*!***************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/sha1.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var Hasher = C_lib.Hasher; var C_algo = C.algo; // Reusable object var W = []; /** * SHA-1 hash algorithm. */ var SHA1 = C_algo.SHA1 = Hasher.extend({ _doReset: function _doReset() { this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]); }, _doProcessBlock: function _doProcessBlock(M, offset) { // Shortcut var H = this._hash.words; // Working variables var a = H[0]; var b = H[1]; var c = H[2]; var d = H[3]; var e = H[4]; // Computation for (var i = 0; i < 80; i++) { if (i < 16) { W[i] = M[offset + i] | 0; } else { var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; W[i] = n << 1 | n >>> 31; } var t = (a << 5 | a >>> 27) + e + W[i]; if (i < 20) { t += (b & c | ~b & d) + 0x5a827999; } else if (i < 40) { t += (b ^ c ^ d) + 0x6ed9eba1; } else if (i < 60) { t += (b & c | b & d | c & d) - 0x70e44324; } else /* if (i < 80) */{ t += (b ^ c ^ d) - 0x359d3e2a; } e = d; d = c; c = b << 30 | b >>> 2; b = a; a = t; } // Intermediate hash value H[0] = H[0] + a | 0; H[1] = H[1] + b | 0; H[2] = H[2] + c | 0; H[3] = H[3] + d | 0; H[4] = H[4] + e | 0; }, _doFinalize: function _doFinalize() { // Shortcuts var data = this._data; var dataWords = data.words; var nBitsTotal = this._nDataBytes * 8; var nBitsLeft = data.sigBytes * 8; // Add padding dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32; dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal; data.sigBytes = dataWords.length * 4; // Hash final blocks this._process(); // Return final computed hash return this._hash; }, clone: function clone() { var clone = Hasher.clone.call(this); clone._hash = this._hash.clone(); return clone; } }); /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.SHA1('message'); * var hash = CryptoJS.SHA1(wordArray); */ C.SHA1 = Hasher._createHelper(SHA1); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacSHA1(message, key); */ C.HmacSHA1 = Hasher._createHmacHelper(SHA1); })(); return CryptoJS.SHA1; }); /***/ }), /* 61 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/sha256.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function (Math) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var Hasher = C_lib.Hasher; var C_algo = C.algo; // Initialization and round constants tables var H = []; var K = []; // Compute constants (function () { function isPrime(n) { var sqrtN = Math.sqrt(n); for (var factor = 2; factor <= sqrtN; factor++) { if (!(n % factor)) { return false; } } return true; } function getFractionalBits(n) { return (n - (n | 0)) * 0x100000000 | 0; } var n = 2; var nPrime = 0; while (nPrime < 64) { if (isPrime(n)) { if (nPrime < 8) { H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); } K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); nPrime++; } n++; } })(); // Reusable object var W = []; /** * SHA-256 hash algorithm. */ var SHA256 = C_algo.SHA256 = Hasher.extend({ _doReset: function _doReset() { this._hash = new WordArray.init(H.slice(0)); }, _doProcessBlock: function _doProcessBlock(M, offset) { // Shortcut var H = this._hash.words; // Working variables var a = H[0]; var b = H[1]; var c = H[2]; var d = H[3]; var e = H[4]; var f = H[5]; var g = H[6]; var h = H[7]; // Computation for (var i = 0; i < 64; i++) { if (i < 16) { W[i] = M[offset + i] | 0; } else { var gamma0x = W[i - 15]; var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3; var gamma1x = W[i - 2]; var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10; W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; } var ch = e & f ^ ~e & g; var maj = a & b ^ a & c ^ b & c; var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22); var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25); var t1 = h + sigma1 + ch + K[i] + W[i]; var t2 = sigma0 + maj; h = g; g = f; f = e; e = d + t1 | 0; d = c; c = b; b = a; a = t1 + t2 | 0; } // Intermediate hash value H[0] = H[0] + a | 0; H[1] = H[1] + b | 0; H[2] = H[2] + c | 0; H[3] = H[3] + d | 0; H[4] = H[4] + e | 0; H[5] = H[5] + f | 0; H[6] = H[6] + g | 0; H[7] = H[7] + h | 0; }, _doFinalize: function _doFinalize() { // Shortcuts var data = this._data; var dataWords = data.words; var nBitsTotal = this._nDataBytes * 8; var nBitsLeft = data.sigBytes * 8; // Add padding dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32; dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal; data.sigBytes = dataWords.length * 4; // Hash final blocks this._process(); // Return final computed hash return this._hash; }, clone: function clone() { var clone = Hasher.clone.call(this); clone._hash = this._hash.clone(); return clone; } }); /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.SHA256('message'); * var hash = CryptoJS.SHA256(wordArray); */ C.SHA256 = Hasher._createHelper(SHA256); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacSHA256(message, key); */ C.HmacSHA256 = Hasher._createHmacHelper(SHA256); })(Math); return CryptoJS.SHA256; }); /***/ }), /* 62 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/sha224.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./sha256 */ 61)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./sha256 */ 61)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var C_algo = C.algo; var SHA256 = C_algo.SHA256; /** * SHA-224 hash algorithm. */ var SHA224 = C_algo.SHA224 = SHA256.extend({ _doReset: function _doReset() { this._hash = new WordArray.init([0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4]); }, _doFinalize: function _doFinalize() { var hash = SHA256._doFinalize.call(this); hash.sigBytes -= 4; return hash; } }); /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.SHA224('message'); * var hash = CryptoJS.SHA224(wordArray); */ C.SHA224 = SHA256._createHelper(SHA224); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacSHA224(message, key); */ C.HmacSHA224 = SHA256._createHmacHelper(SHA224); })(); return CryptoJS.SHA224; }); /***/ }), /* 63 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/sha512.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var Hasher = C_lib.Hasher; var C_x64 = C.x64; var X64Word = C_x64.Word; var X64WordArray = C_x64.WordArray; var C_algo = C.algo; function X64Word_create() { return X64Word.create.apply(X64Word, arguments); } // Constants var K = [X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)]; // Reusable objects var W = []; (function () { for (var i = 0; i < 80; i++) { W[i] = X64Word_create(); } })(); /** * SHA-512 hash algorithm. */ var SHA512 = C_algo.SHA512 = Hasher.extend({ _doReset: function _doReset() { this._hash = new X64WordArray.init([new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)]); }, _doProcessBlock: function _doProcessBlock(M, offset) { // Shortcuts var H = this._hash.words; var H0 = H[0]; var H1 = H[1]; var H2 = H[2]; var H3 = H[3]; var H4 = H[4]; var H5 = H[5]; var H6 = H[6]; var H7 = H[7]; var H0h = H0.high; var H0l = H0.low; var H1h = H1.high; var H1l = H1.low; var H2h = H2.high; var H2l = H2.low; var H3h = H3.high; var H3l = H3.low; var H4h = H4.high; var H4l = H4.low; var H5h = H5.high; var H5l = H5.low; var H6h = H6.high; var H6l = H6.low; var H7h = H7.high; var H7l = H7.low; // Working variables var ah = H0h; var al = H0l; var bh = H1h; var bl = H1l; var ch = H2h; var cl = H2l; var dh = H3h; var dl = H3l; var eh = H4h; var el = H4l; var fh = H5h; var fl = H5l; var gh = H6h; var gl = H6l; var hh = H7h; var hl = H7l; // Rounds for (var i = 0; i < 80; i++) { var Wil; var Wih; // Shortcut var Wi = W[i]; // Extend message if (i < 16) { Wih = Wi.high = M[offset + i * 2] | 0; Wil = Wi.low = M[offset + i * 2 + 1] | 0; } else { // Gamma0 var gamma0x = W[i - 15]; var gamma0xh = gamma0x.high; var gamma0xl = gamma0x.low; var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7; var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25); // Gamma1 var gamma1x = W[i - 2]; var gamma1xh = gamma1x.high; var gamma1xl = gamma1x.low; var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6; var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] var Wi7 = W[i - 7]; var Wi7h = Wi7.high; var Wi7l = Wi7.low; var Wi16 = W[i - 16]; var Wi16h = Wi16.high; var Wi16l = Wi16.low; Wil = gamma0l + Wi7l; Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0); Wil = Wil + gamma1l; Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0); Wil = Wil + Wi16l; Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0); Wi.high = Wih; Wi.low = Wil; } var chh = eh & fh ^ ~eh & gh; var chl = el & fl ^ ~el & gl; var majh = ah & bh ^ ah & ch ^ bh & ch; var majl = al & bl ^ al & cl ^ bl & cl; var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7); var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7); var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9); var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9); // t1 = h + sigma1 + ch + K[i] + W[i] var Ki = K[i]; var Kih = Ki.high; var Kil = Ki.low; var t1l = hl + sigma1l; var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0); var t1l = t1l + chl; var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0); var t1l = t1l + Kil; var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0); var t1l = t1l + Wil; var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0); // t2 = sigma0 + maj var t2l = sigma0l + majl; var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0); // Update working variables hh = gh; hl = gl; gh = fh; gl = fl; fh = eh; fl = el; el = dl + t1l | 0; eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0; dh = ch; dl = cl; ch = bh; cl = bl; bh = ah; bl = al; al = t1l + t2l | 0; ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0; } // Intermediate hash value H0l = H0.low = H0l + al; H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0); H1l = H1.low = H1l + bl; H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0); H2l = H2.low = H2l + cl; H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0); H3l = H3.low = H3l + dl; H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0); H4l = H4.low = H4l + el; H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0); H5l = H5.low = H5l + fl; H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0); H6l = H6.low = H6l + gl; H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0); H7l = H7.low = H7l + hl; H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0); }, _doFinalize: function _doFinalize() { // Shortcuts var data = this._data; var dataWords = data.words; var nBitsTotal = this._nDataBytes * 8; var nBitsLeft = data.sigBytes * 8; // Add padding dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32; dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal; data.sigBytes = dataWords.length * 4; // Hash final blocks this._process(); // Convert hash to 32-bit word array before returning var hash = this._hash.toX32(); // Return final computed hash return hash; }, clone: function clone() { var clone = Hasher.clone.call(this); clone._hash = this._hash.clone(); return clone; }, blockSize: 1024 / 32 }); /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.SHA512('message'); * var hash = CryptoJS.SHA512(wordArray); */ C.SHA512 = Hasher._createHelper(SHA512); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacSHA512(message, key); */ C.HmacSHA512 = Hasher._createHmacHelper(SHA512); })(); return CryptoJS.SHA512; }); /***/ }), /* 64 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/sha384.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54), __webpack_require__(/*! ./sha512 */ 63)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54), __webpack_require__(/*! ./sha512 */ 63)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_x64 = C.x64; var X64Word = C_x64.Word; var X64WordArray = C_x64.WordArray; var C_algo = C.algo; var SHA512 = C_algo.SHA512; /** * SHA-384 hash algorithm. */ var SHA384 = C_algo.SHA384 = SHA512.extend({ _doReset: function _doReset() { this._hash = new X64WordArray.init([new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)]); }, _doFinalize: function _doFinalize() { var hash = SHA512._doFinalize.call(this); hash.sigBytes -= 16; return hash; } }); /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.SHA384('message'); * var hash = CryptoJS.SHA384(wordArray); */ C.SHA384 = SHA512._createHelper(SHA384); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacSHA384(message, key); */ C.HmacSHA384 = SHA512._createHmacHelper(SHA384); })(); return CryptoJS.SHA384; }); /***/ }), /* 65 */ /*!***************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/sha3.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./x64-core */ 54)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function (Math) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var Hasher = C_lib.Hasher; var C_x64 = C.x64; var X64Word = C_x64.Word; var C_algo = C.algo; // Constants tables var RHO_OFFSETS = []; var PI_INDEXES = []; var ROUND_CONSTANTS = []; // Compute Constants (function () { // Compute rho offset constants var x = 1, y = 0; for (var t = 0; t < 24; t++) { RHO_OFFSETS[x + 5 * y] = (t + 1) * (t + 2) / 2 % 64; var newX = y % 5; var newY = (2 * x + 3 * y) % 5; x = newX; y = newY; } // Compute pi index constants for (var x = 0; x < 5; x++) { for (var y = 0; y < 5; y++) { PI_INDEXES[x + 5 * y] = y + (2 * x + 3 * y) % 5 * 5; } } // Compute round constants var LFSR = 0x01; for (var i = 0; i < 24; i++) { var roundConstantMsw = 0; var roundConstantLsw = 0; for (var j = 0; j < 7; j++) { if (LFSR & 0x01) { var bitPosition = (1 << j) - 1; if (bitPosition < 32) { roundConstantLsw ^= 1 << bitPosition; } else /* if (bitPosition >= 32) */{ roundConstantMsw ^= 1 << bitPosition - 32; } } // Compute next LFSR if (LFSR & 0x80) { // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 LFSR = LFSR << 1 ^ 0x71; } else { LFSR <<= 1; } } ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); } })(); // Reusable objects for temporary values var T = []; (function () { for (var i = 0; i < 25; i++) { T[i] = X64Word.create(); } })(); /** * SHA-3 hash algorithm. */ var SHA3 = C_algo.SHA3 = Hasher.extend({ /** * Configuration options. * * @property {number} outputLength * The desired number of bits in the output hash. * Only values permitted are: 224, 256, 384, 512. * Default: 512 */ cfg: Hasher.cfg.extend({ outputLength: 512 }), _doReset: function _doReset() { var state = this._state = []; for (var i = 0; i < 25; i++) { state[i] = new X64Word.init(); } this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function _doProcessBlock(M, offset) { // Shortcuts var state = this._state; var nBlockSizeLanes = this.blockSize / 2; // Absorb for (var i = 0; i < nBlockSizeLanes; i++) { // Shortcuts var M2i = M[offset + 2 * i]; var M2i1 = M[offset + 2 * i + 1]; // Swap endian M2i = (M2i << 8 | M2i >>> 24) & 0x00ff00ff | (M2i << 24 | M2i >>> 8) & 0xff00ff00; M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 0x00ff00ff | (M2i1 << 24 | M2i1 >>> 8) & 0xff00ff00; // Absorb message into state var lane = state[i]; lane.high ^= M2i1; lane.low ^= M2i; } // Rounds for (var round = 0; round < 24; round++) { // Theta for (var x = 0; x < 5; x++) { // Mix column lanes var tMsw = 0, tLsw = 0; for (var y = 0; y < 5; y++) { var lane = state[x + 5 * y]; tMsw ^= lane.high; tLsw ^= lane.low; } // Temporary values var Tx = T[x]; Tx.high = tMsw; Tx.low = tLsw; } for (var x = 0; x < 5; x++) { // Shortcuts var Tx4 = T[(x + 4) % 5]; var Tx1 = T[(x + 1) % 5]; var Tx1Msw = Tx1.high; var Tx1Lsw = Tx1.low; // Mix surrounding columns var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31); var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31); for (var y = 0; y < 5; y++) { var lane = state[x + 5 * y]; lane.high ^= tMsw; lane.low ^= tLsw; } } // Rho Pi for (var laneIndex = 1; laneIndex < 25; laneIndex++) { var tMsw; var tLsw; // Shortcuts var lane = state[laneIndex]; var laneMsw = lane.high; var laneLsw = lane.low; var rhoOffset = RHO_OFFSETS[laneIndex]; // Rotate lanes if (rhoOffset < 32) { tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset; tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset; } else /* if (rhoOffset >= 32) */{ tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset; tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset; } // Transpose lanes var TPiLane = T[PI_INDEXES[laneIndex]]; TPiLane.high = tMsw; TPiLane.low = tLsw; } // Rho pi at x = y = 0 var T0 = T[0]; var state0 = state[0]; T0.high = state0.high; T0.low = state0.low; // Chi for (var x = 0; x < 5; x++) { for (var y = 0; y < 5; y++) { // Shortcuts var laneIndex = x + 5 * y; var lane = state[laneIndex]; var TLane = T[laneIndex]; var Tx1Lane = T[(x + 1) % 5 + 5 * y]; var Tx2Lane = T[(x + 2) % 5 + 5 * y]; // Mix rows lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high; lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low; } } // Iota var lane = state[0]; var roundConstant = ROUND_CONSTANTS[round]; lane.high ^= roundConstant.high; lane.low ^= roundConstant.low; } }, _doFinalize: function _doFinalize() { // Shortcuts var data = this._data; var dataWords = data.words; var nBitsTotal = this._nDataBytes * 8; var nBitsLeft = data.sigBytes * 8; var blockSizeBits = this.blockSize * 32; // Add padding dataWords[nBitsLeft >>> 5] |= 0x1 << 24 - nBitsLeft % 32; dataWords[(Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 0x80; data.sigBytes = dataWords.length * 4; // Hash final blocks this._process(); // Shortcuts var state = this._state; var outputLengthBytes = this.cfg.outputLength / 8; var outputLengthLanes = outputLengthBytes / 8; // Squeeze var hashWords = []; for (var i = 0; i < outputLengthLanes; i++) { // Shortcuts var lane = state[i]; var laneMsw = lane.high; var laneLsw = lane.low; // Swap endian laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 0x00ff00ff | (laneMsw << 24 | laneMsw >>> 8) & 0xff00ff00; laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 0x00ff00ff | (laneLsw << 24 | laneLsw >>> 8) & 0xff00ff00; // Squeeze state to retrieve hash hashWords.push(laneLsw); hashWords.push(laneMsw); } // Return final computed hash return new WordArray.init(hashWords, outputLengthBytes); }, clone: function clone() { var clone = Hasher.clone.call(this); var state = clone._state = this._state.slice(0); for (var i = 0; i < 25; i++) { state[i] = state[i].clone(); } return clone; } }); /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.SHA3('message'); * var hash = CryptoJS.SHA3(wordArray); */ C.SHA3 = Hasher._createHelper(SHA3); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacSHA3(message, key); */ C.HmacSHA3 = Hasher._createHmacHelper(SHA3); })(Math); return CryptoJS.SHA3; }); /***/ }), /* 66 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/ripemd160.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** @preserve (c) 2012 by Cédric Mesnil. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ (function (Math) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var Hasher = C_lib.Hasher; var C_algo = C.algo; // Constants table var _zl = WordArray.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); var _zr = WordArray.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); var _sl = WordArray.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]); var _sr = WordArray.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]); var _hl = WordArray.create([0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); var _hr = WordArray.create([0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); /** * RIPEMD160 hash algorithm. */ var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ _doReset: function _doReset() { this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); }, _doProcessBlock: function _doProcessBlock(M, offset) { // Swap endian for (var i = 0; i < 16; i++) { // Shortcuts var offset_i = offset + i; var M_offset_i = M[offset_i]; // Swap M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00; } // Shortcut var H = this._hash.words; var hl = _hl.words; var hr = _hr.words; var zl = _zl.words; var zr = _zr.words; var sl = _sl.words; var sr = _sr.words; // Working variables var al, bl, cl, dl, el; var ar, br, cr, dr, er; ar = al = H[0]; br = bl = H[1]; cr = cl = H[2]; dr = dl = H[3]; er = el = H[4]; // Computation var t; for (var i = 0; i < 80; i += 1) { t = al + M[offset + zl[i]] | 0; if (i < 16) { t += f1(bl, cl, dl) + hl[0]; } else if (i < 32) { t += f2(bl, cl, dl) + hl[1]; } else if (i < 48) { t += f3(bl, cl, dl) + hl[2]; } else if (i < 64) { t += f4(bl, cl, dl) + hl[3]; } else { // if (i<80) { t += f5(bl, cl, dl) + hl[4]; } t = t | 0; t = rotl(t, sl[i]); t = t + el | 0; al = el; el = dl; dl = rotl(cl, 10); cl = bl; bl = t; t = ar + M[offset + zr[i]] | 0; if (i < 16) { t += f5(br, cr, dr) + hr[0]; } else if (i < 32) { t += f4(br, cr, dr) + hr[1]; } else if (i < 48) { t += f3(br, cr, dr) + hr[2]; } else if (i < 64) { t += f2(br, cr, dr) + hr[3]; } else { // if (i<80) { t += f1(br, cr, dr) + hr[4]; } t = t | 0; t = rotl(t, sr[i]); t = t + er | 0; ar = er; er = dr; dr = rotl(cr, 10); cr = br; br = t; } // Intermediate hash value t = H[1] + cl + dr | 0; H[1] = H[2] + dl + er | 0; H[2] = H[3] + el + ar | 0; H[3] = H[4] + al + br | 0; H[4] = H[0] + bl + cr | 0; H[0] = t; }, _doFinalize: function _doFinalize() { // Shortcuts var data = this._data; var dataWords = data.words; var nBitsTotal = this._nDataBytes * 8; var nBitsLeft = data.sigBytes * 8; // Add padding dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32; dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 0x00ff00ff | (nBitsTotal << 24 | nBitsTotal >>> 8) & 0xff00ff00; data.sigBytes = (dataWords.length + 1) * 4; // Hash final blocks this._process(); // Shortcuts var hash = this._hash; var H = hash.words; // Swap endian for (var i = 0; i < 5; i++) { // Shortcut var H_i = H[i]; // Swap H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00; } // Return final computed hash return hash; }, clone: function clone() { var clone = Hasher.clone.call(this); clone._hash = this._hash.clone(); return clone; } }); function f1(x, y, z) { return x ^ y ^ z; } function f2(x, y, z) { return x & y | ~x & z; } function f3(x, y, z) { return (x | ~y) ^ z; } function f4(x, y, z) { return x & z | y & ~z; } function f5(x, y, z) { return x ^ (y | ~z); } function rotl(x, n) { return x << n | x >>> 32 - n; } /** * Shortcut function to the hasher's object interface. * * @param {WordArray|string} message The message to hash. * * @return {WordArray} The hash. * * @static * * @example * * var hash = CryptoJS.RIPEMD160('message'); * var hash = CryptoJS.RIPEMD160(wordArray); */ C.RIPEMD160 = Hasher._createHelper(RIPEMD160); /** * Shortcut function to the HMAC's object interface. * * @param {WordArray|string} message The message to hash. * @param {WordArray|string} key The secret key. * * @return {WordArray} The HMAC. * * @static * * @example * * var hmac = CryptoJS.HmacRIPEMD160(message, key); */ C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); })(Math); return CryptoJS.RIPEMD160; }); /***/ }), /* 67 */ /*!***************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/hmac.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var Base = C_lib.Base; var C_enc = C.enc; var Utf8 = C_enc.Utf8; var C_algo = C.algo; /** * HMAC algorithm. */ var HMAC = C_algo.HMAC = Base.extend({ /** * Initializes a newly created HMAC. * * @param {Hasher} hasher The hash algorithm to use. * @param {WordArray|string} key The secret key. * * @example * * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); */ init: function init(hasher, key) { // Init hasher hasher = this._hasher = new hasher.init(); // Convert string to WordArray, else assume WordArray already if (typeof key == 'string') { key = Utf8.parse(key); } // Shortcuts var hasherBlockSize = hasher.blockSize; var hasherBlockSizeBytes = hasherBlockSize * 4; // Allow arbitrary length keys if (key.sigBytes > hasherBlockSizeBytes) { key = hasher.finalize(key); } // Clamp excess bits key.clamp(); // Clone key for inner and outer pads var oKey = this._oKey = key.clone(); var iKey = this._iKey = key.clone(); // Shortcuts var oKeyWords = oKey.words; var iKeyWords = iKey.words; // XOR keys with pad constants for (var i = 0; i < hasherBlockSize; i++) { oKeyWords[i] ^= 0x5c5c5c5c; iKeyWords[i] ^= 0x36363636; } oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; // Set initial values this.reset(); }, /** * Resets this HMAC to its initial state. * * @example * * hmacHasher.reset(); */ reset: function reset() { // Shortcut var hasher = this._hasher; // Reset hasher.reset(); hasher.update(this._iKey); }, /** * Updates this HMAC with a message. * * @param {WordArray|string} messageUpdate The message to append. * * @return {HMAC} This HMAC instance. * * @example * * hmacHasher.update('message'); * hmacHasher.update(wordArray); */ update: function update(messageUpdate) { this._hasher.update(messageUpdate); // Chainable return this; }, /** * Finalizes the HMAC computation. * Note that the finalize operation is effectively a destructive, read-once operation. * * @param {WordArray|string} messageUpdate (Optional) A final message update. * * @return {WordArray} The HMAC. * * @example * * var hmac = hmacHasher.finalize(); * var hmac = hmacHasher.finalize('message'); * var hmac = hmacHasher.finalize(wordArray); */ finalize: function finalize(messageUpdate) { // Shortcut var hasher = this._hasher; // Compute HMAC var innerHash = hasher.finalize(messageUpdate); hasher.reset(); var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); return hmac; } }); })(); }); /***/ }), /* 68 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/pbkdf2.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./sha256 */ 61), __webpack_require__(/*! ./hmac */ 67)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./sha256 */ 61), __webpack_require__(/*! ./hmac */ 67)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var Base = C_lib.Base; var WordArray = C_lib.WordArray; var C_algo = C.algo; var SHA256 = C_algo.SHA256; var HMAC = C_algo.HMAC; /** * Password-Based Key Derivation Function 2 algorithm. */ var PBKDF2 = C_algo.PBKDF2 = Base.extend({ /** * Configuration options. * * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) * @property {Hasher} hasher The hasher to use. Default: SHA256 * @property {number} iterations The number of iterations to perform. Default: 250000 */ cfg: Base.extend({ keySize: 128 / 32, hasher: SHA256, iterations: 250000 }), /** * Initializes a newly created key derivation function. * * @param {Object} cfg (Optional) The configuration options to use for the derivation. * * @example * * var kdf = CryptoJS.algo.PBKDF2.create(); * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); */ init: function init(cfg) { this.cfg = this.cfg.extend(cfg); }, /** * Computes the Password-Based Key Derivation Function 2. * * @param {WordArray|string} password The password. * @param {WordArray|string} salt A salt. * * @return {WordArray} The derived key. * * @example * * var key = kdf.compute(password, salt); */ compute: function compute(password, salt) { // Shortcut var cfg = this.cfg; // Init HMAC var hmac = HMAC.create(cfg.hasher, password); // Initial values var derivedKey = WordArray.create(); var blockIndex = WordArray.create([0x00000001]); // Shortcuts var derivedKeyWords = derivedKey.words; var blockIndexWords = blockIndex.words; var keySize = cfg.keySize; var iterations = cfg.iterations; // Generate key while (derivedKeyWords.length < keySize) { var block = hmac.update(salt).finalize(blockIndex); hmac.reset(); // Shortcuts var blockWords = block.words; var blockWordsLength = blockWords.length; // Iterations var intermediate = block; for (var i = 1; i < iterations; i++) { intermediate = hmac.finalize(intermediate); hmac.reset(); // Shortcut var intermediateWords = intermediate.words; // XOR intermediate with block for (var j = 0; j < blockWordsLength; j++) { blockWords[j] ^= intermediateWords[j]; } } derivedKey.concat(block); blockIndexWords[0]++; } derivedKey.sigBytes = keySize * 4; return derivedKey; } }); /** * Computes the Password-Based Key Derivation Function 2. * * @param {WordArray|string} password The password. * @param {WordArray|string} salt A salt. * @param {Object} cfg (Optional) The configuration options to use for this computation. * * @return {WordArray} The derived key. * * @static * * @example * * var key = CryptoJS.PBKDF2(password, salt); * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); */ C.PBKDF2 = function (password, salt, cfg) { return PBKDF2.create(cfg).compute(password, salt); }; })(); return CryptoJS.PBKDF2; }); /***/ }), /* 69 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/evpkdf.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./sha1 */ 60), __webpack_require__(/*! ./hmac */ 67)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./sha1 */ 60), __webpack_require__(/*! ./hmac */ 67)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var Base = C_lib.Base; var WordArray = C_lib.WordArray; var C_algo = C.algo; var MD5 = C_algo.MD5; /** * This key derivation function is meant to conform with EVP_BytesToKey. * www.openssl.org/docs/crypto/EVP_BytesToKey.html */ var EvpKDF = C_algo.EvpKDF = Base.extend({ /** * Configuration options. * * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) * @property {Hasher} hasher The hash algorithm to use. Default: MD5 * @property {number} iterations The number of iterations to perform. Default: 1 */ cfg: Base.extend({ keySize: 128 / 32, hasher: MD5, iterations: 1 }), /** * Initializes a newly created key derivation function. * * @param {Object} cfg (Optional) The configuration options to use for the derivation. * * @example * * var kdf = CryptoJS.algo.EvpKDF.create(); * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); */ init: function init(cfg) { this.cfg = this.cfg.extend(cfg); }, /** * Derives a key from a password. * * @param {WordArray|string} password The password. * @param {WordArray|string} salt A salt. * * @return {WordArray} The derived key. * * @example * * var key = kdf.compute(password, salt); */ compute: function compute(password, salt) { var block; // Shortcut var cfg = this.cfg; // Init hasher var hasher = cfg.hasher.create(); // Initial values var derivedKey = WordArray.create(); // Shortcuts var derivedKeyWords = derivedKey.words; var keySize = cfg.keySize; var iterations = cfg.iterations; // Generate key while (derivedKeyWords.length < keySize) { if (block) { hasher.update(block); } block = hasher.update(password).finalize(salt); hasher.reset(); // Iterations for (var i = 1; i < iterations; i++) { block = hasher.finalize(block); hasher.reset(); } derivedKey.concat(block); } derivedKey.sigBytes = keySize * 4; return derivedKey; } }); /** * Derives a key from a password. * * @param {WordArray|string} password The password. * @param {WordArray|string} salt A salt. * @param {Object} cfg (Optional) The configuration options to use for this computation. * * @return {WordArray} The derived key. * * @static * * @example * * var key = CryptoJS.EvpKDF(password, salt); * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); */ C.EvpKDF = function (password, salt, cfg) { return EvpKDF.create(cfg).compute(password, salt); }; })(); return CryptoJS.EvpKDF; }); /***/ }), /* 70 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/cipher-core.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./evpkdf */ 69)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./evpkdf */ 69)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * Cipher core components. */ CryptoJS.lib.Cipher || function (undefined) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var Base = C_lib.Base; var WordArray = C_lib.WordArray; var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; var C_enc = C.enc; var Utf8 = C_enc.Utf8; var Base64 = C_enc.Base64; var C_algo = C.algo; var EvpKDF = C_algo.EvpKDF; /** * Abstract base cipher template. * * @property {number} keySize This cipher's key size. Default: 4 (128 bits) * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. */ var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ /** * Configuration options. * * @property {WordArray} iv The IV to use for this operation. */ cfg: Base.extend(), /** * Creates this cipher in encryption mode. * * @param {WordArray} key The key. * @param {Object} cfg (Optional) The configuration options to use for this operation. * * @return {Cipher} A cipher instance. * * @static * * @example * * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); */ createEncryptor: function createEncryptor(key, cfg) { return this.create(this._ENC_XFORM_MODE, key, cfg); }, /** * Creates this cipher in decryption mode. * * @param {WordArray} key The key. * @param {Object} cfg (Optional) The configuration options to use for this operation. * * @return {Cipher} A cipher instance. * * @static * * @example * * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); */ createDecryptor: function createDecryptor(key, cfg) { return this.create(this._DEC_XFORM_MODE, key, cfg); }, /** * Initializes a newly created cipher. * * @param {number} xformMode Either the encryption or decryption transormation mode constant. * @param {WordArray} key The key. * @param {Object} cfg (Optional) The configuration options to use for this operation. * * @example * * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); */ init: function init(xformMode, key, cfg) { // Apply config defaults this.cfg = this.cfg.extend(cfg); // Store transform mode and key this._xformMode = xformMode; this._key = key; // Set initial values this.reset(); }, /** * Resets this cipher to its initial state. * * @example * * cipher.reset(); */ reset: function reset() { // Reset data buffer BufferedBlockAlgorithm.reset.call(this); // Perform concrete-cipher logic this._doReset(); }, /** * Adds data to be encrypted or decrypted. * * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. * * @return {WordArray} The data after processing. * * @example * * var encrypted = cipher.process('data'); * var encrypted = cipher.process(wordArray); */ process: function process(dataUpdate) { // Append this._append(dataUpdate); // Process available blocks return this._process(); }, /** * Finalizes the encryption or decryption process. * Note that the finalize operation is effectively a destructive, read-once operation. * * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. * * @return {WordArray} The data after final processing. * * @example * * var encrypted = cipher.finalize(); * var encrypted = cipher.finalize('data'); * var encrypted = cipher.finalize(wordArray); */ finalize: function finalize(dataUpdate) { // Final data update if (dataUpdate) { this._append(dataUpdate); } // Perform concrete-cipher logic var finalProcessedData = this._doFinalize(); return finalProcessedData; }, keySize: 128 / 32, ivSize: 128 / 32, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, /** * Creates shortcut functions to a cipher's object interface. * * @param {Cipher} cipher The cipher to create a helper for. * * @return {Object} An object with encrypt and decrypt shortcut functions. * * @static * * @example * * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); */ _createHelper: function () { function selectCipherStrategy(key) { if (typeof key == 'string') { return PasswordBasedCipher; } else { return SerializableCipher; } } return function (cipher) { return { encrypt: function encrypt(message, key, cfg) { return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); }, decrypt: function decrypt(ciphertext, key, cfg) { return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); } }; }; }() }); /** * Abstract base stream cipher template. * * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) */ var StreamCipher = C_lib.StreamCipher = Cipher.extend({ _doFinalize: function _doFinalize() { // Process partial blocks var finalProcessedBlocks = this._process(!!'flush'); return finalProcessedBlocks; }, blockSize: 1 }); /** * Mode namespace. */ var C_mode = C.mode = {}; /** * Abstract base block cipher mode template. */ var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ /** * Creates this mode for encryption. * * @param {Cipher} cipher A block cipher instance. * @param {Array} iv The IV words. * * @static * * @example * * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); */ createEncryptor: function createEncryptor(cipher, iv) { return this.Encryptor.create(cipher, iv); }, /** * Creates this mode for decryption. * * @param {Cipher} cipher A block cipher instance. * @param {Array} iv The IV words. * * @static * * @example * * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); */ createDecryptor: function createDecryptor(cipher, iv) { return this.Decryptor.create(cipher, iv); }, /** * Initializes a newly created mode. * * @param {Cipher} cipher A block cipher instance. * @param {Array} iv The IV words. * * @example * * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); */ init: function init(cipher, iv) { this._cipher = cipher; this._iv = iv; } }); /** * Cipher Block Chaining mode. */ var CBC = C_mode.CBC = function () { /** * Abstract base CBC mode. */ var CBC = BlockCipherMode.extend(); /** * CBC encryptor. */ CBC.Encryptor = CBC.extend({ /** * Processes the data block at offset. * * @param {Array} words The data words to operate on. * @param {number} offset The offset where the block starts. * * @example * * mode.processBlock(data.words, offset); */ processBlock: function processBlock(words, offset) { // Shortcuts var cipher = this._cipher; var blockSize = cipher.blockSize; // XOR and encrypt xorBlock.call(this, words, offset, blockSize); cipher.encryptBlock(words, offset); // Remember this block to use with next block this._prevBlock = words.slice(offset, offset + blockSize); } }); /** * CBC decryptor. */ CBC.Decryptor = CBC.extend({ /** * Processes the data block at offset. * * @param {Array} words The data words to operate on. * @param {number} offset The offset where the block starts. * * @example * * mode.processBlock(data.words, offset); */ processBlock: function processBlock(words, offset) { // Shortcuts var cipher = this._cipher; var blockSize = cipher.blockSize; // Remember this block to use with next block var thisBlock = words.slice(offset, offset + blockSize); // Decrypt and XOR cipher.decryptBlock(words, offset); xorBlock.call(this, words, offset, blockSize); // This block becomes the previous block this._prevBlock = thisBlock; } }); function xorBlock(words, offset, blockSize) { var block; // Shortcut var iv = this._iv; // Choose mixing block if (iv) { block = iv; // Remove IV for subsequent blocks this._iv = undefined; } else { block = this._prevBlock; } // XOR blocks for (var i = 0; i < blockSize; i++) { words[offset + i] ^= block[i]; } } return CBC; }(); /** * Padding namespace. */ var C_pad = C.pad = {}; /** * PKCS #5/7 padding strategy. */ var Pkcs7 = C_pad.Pkcs7 = { /** * Pads data using the algorithm defined in PKCS #5/7. * * @param {WordArray} data The data to pad. * @param {number} blockSize The multiple that the data should be padded to. * * @static * * @example * * CryptoJS.pad.Pkcs7.pad(wordArray, 4); */ pad: function pad(data, blockSize) { // Shortcut var blockSizeBytes = blockSize * 4; // Count padding bytes var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; // Create padding word var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes; // Create padding var paddingWords = []; for (var i = 0; i < nPaddingBytes; i += 4) { paddingWords.push(paddingWord); } var padding = WordArray.create(paddingWords, nPaddingBytes); // Add padding data.concat(padding); }, /** * Unpads data that had been padded using the algorithm defined in PKCS #5/7. * * @param {WordArray} data The data to unpad. * * @static * * @example * * CryptoJS.pad.Pkcs7.unpad(wordArray); */ unpad: function unpad(data) { // Get number of padding bytes from last byte var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding data.sigBytes -= nPaddingBytes; } }; /** * Abstract base block cipher template. * * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) */ var BlockCipher = C_lib.BlockCipher = Cipher.extend({ /** * Configuration options. * * @property {Mode} mode The block mode to use. Default: CBC * @property {Padding} padding The padding strategy to use. Default: Pkcs7 */ cfg: Cipher.cfg.extend({ mode: CBC, padding: Pkcs7 }), reset: function reset() { var modeCreator; // Reset cipher Cipher.reset.call(this); // Shortcuts var cfg = this.cfg; var iv = cfg.iv; var mode = cfg.mode; // Reset block mode if (this._xformMode == this._ENC_XFORM_MODE) { modeCreator = mode.createEncryptor; } else /* if (this._xformMode == this._DEC_XFORM_MODE) */{ modeCreator = mode.createDecryptor; // Keep at least one block in the buffer for unpadding this._minBufferSize = 1; } if (this._mode && this._mode.__creator == modeCreator) { this._mode.init(this, iv && iv.words); } else { this._mode = modeCreator.call(mode, this, iv && iv.words); this._mode.__creator = modeCreator; } }, _doProcessBlock: function _doProcessBlock(words, offset) { this._mode.processBlock(words, offset); }, _doFinalize: function _doFinalize() { var finalProcessedBlocks; // Shortcut var padding = this.cfg.padding; // Finalize if (this._xformMode == this._ENC_XFORM_MODE) { // Pad data padding.pad(this._data, this.blockSize); // Process final blocks finalProcessedBlocks = this._process(!!'flush'); } else /* if (this._xformMode == this._DEC_XFORM_MODE) */{ // Process final blocks finalProcessedBlocks = this._process(!!'flush'); // Unpad data padding.unpad(finalProcessedBlocks); } return finalProcessedBlocks; }, blockSize: 128 / 32 }); /** * A collection of cipher parameters. * * @property {WordArray} ciphertext The raw ciphertext. * @property {WordArray} key The key to this ciphertext. * @property {WordArray} iv The IV used in the ciphering operation. * @property {WordArray} salt The salt used with a key derivation function. * @property {Cipher} algorithm The cipher algorithm. * @property {Mode} mode The block mode used in the ciphering operation. * @property {Padding} padding The padding scheme used in the ciphering operation. * @property {number} blockSize The block size of the cipher. * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. */ var CipherParams = C_lib.CipherParams = Base.extend({ /** * Initializes a newly created cipher params object. * * @param {Object} cipherParams An object with any of the possible cipher parameters. * * @example * * var cipherParams = CryptoJS.lib.CipherParams.create({ * ciphertext: ciphertextWordArray, * key: keyWordArray, * iv: ivWordArray, * salt: saltWordArray, * algorithm: CryptoJS.algo.AES, * mode: CryptoJS.mode.CBC, * padding: CryptoJS.pad.PKCS7, * blockSize: 4, * formatter: CryptoJS.format.OpenSSL * }); */ init: function init(cipherParams) { this.mixIn(cipherParams); }, /** * Converts this cipher params object to a string. * * @param {Format} formatter (Optional) The formatting strategy to use. * * @return {string} The stringified cipher params. * * @throws Error If neither the formatter nor the default formatter is set. * * @example * * var string = cipherParams + ''; * var string = cipherParams.toString(); * var string = cipherParams.toString(CryptoJS.format.OpenSSL); */ toString: function toString(formatter) { return (formatter || this.formatter).stringify(this); } }); /** * Format namespace. */ var C_format = C.format = {}; /** * OpenSSL formatting strategy. */ var OpenSSLFormatter = C_format.OpenSSL = { /** * Converts a cipher params object to an OpenSSL-compatible string. * * @param {CipherParams} cipherParams The cipher params object. * * @return {string} The OpenSSL-compatible string. * * @static * * @example * * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); */ stringify: function stringify(cipherParams) { var wordArray; // Shortcuts var ciphertext = cipherParams.ciphertext; var salt = cipherParams.salt; // Format if (salt) { wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); } else { wordArray = ciphertext; } return wordArray.toString(Base64); }, /** * Converts an OpenSSL-compatible string to a cipher params object. * * @param {string} openSSLStr The OpenSSL-compatible string. * * @return {CipherParams} The cipher params object. * * @static * * @example * * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); */ parse: function parse(openSSLStr) { var salt; // Parse base64 var ciphertext = Base64.parse(openSSLStr); // Shortcut var ciphertextWords = ciphertext.words; // Test for salt if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { // Extract salt salt = WordArray.create(ciphertextWords.slice(2, 4)); // Remove salt from ciphertext ciphertextWords.splice(0, 4); ciphertext.sigBytes -= 16; } return CipherParams.create({ ciphertext: ciphertext, salt: salt }); } }; /** * A cipher wrapper that returns ciphertext as a serializable cipher params object. */ var SerializableCipher = C_lib.SerializableCipher = Base.extend({ /** * Configuration options. * * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL */ cfg: Base.extend({ format: OpenSSLFormatter }), /** * Encrypts a message. * * @param {Cipher} cipher The cipher algorithm to use. * @param {WordArray|string} message The message to encrypt. * @param {WordArray} key The key. * @param {Object} cfg (Optional) The configuration options to use for this operation. * * @return {CipherParams} A cipher params object. * * @static * * @example * * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); */ encrypt: function encrypt(cipher, message, key, cfg) { // Apply config defaults cfg = this.cfg.extend(cfg); // Encrypt var encryptor = cipher.createEncryptor(key, cfg); var ciphertext = encryptor.finalize(message); // Shortcut var cipherCfg = encryptor.cfg; // Create and return serializable cipher params return CipherParams.create({ ciphertext: ciphertext, key: key, iv: cipherCfg.iv, algorithm: cipher, mode: cipherCfg.mode, padding: cipherCfg.padding, blockSize: cipher.blockSize, formatter: cfg.format }); }, /** * Decrypts serialized ciphertext. * * @param {Cipher} cipher The cipher algorithm to use. * @param {CipherParams|string} ciphertext The ciphertext to decrypt. * @param {WordArray} key The key. * @param {Object} cfg (Optional) The configuration options to use for this operation. * * @return {WordArray} The plaintext. * * @static * * @example * * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); */ decrypt: function decrypt(cipher, ciphertext, key, cfg) { // Apply config defaults cfg = this.cfg.extend(cfg); // Convert string to CipherParams ciphertext = this._parse(ciphertext, cfg.format); // Decrypt var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); return plaintext; }, /** * Converts serialized ciphertext to CipherParams, * else assumed CipherParams already and returns ciphertext unchanged. * * @param {CipherParams|string} ciphertext The ciphertext. * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. * * @return {CipherParams} The unserialized ciphertext. * * @static * * @example * * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); */ _parse: function _parse(ciphertext, format) { if (typeof ciphertext == 'string') { return format.parse(ciphertext, this); } else { return ciphertext; } } }); /** * Key derivation function namespace. */ var C_kdf = C.kdf = {}; /** * OpenSSL key derivation function. */ var OpenSSLKdf = C_kdf.OpenSSL = { /** * Derives a key and IV from a password. * * @param {string} password The password to derive from. * @param {number} keySize The size in words of the key to generate. * @param {number} ivSize The size in words of the IV to generate. * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. * * @return {CipherParams} A cipher params object with the key, IV, and salt. * * @static * * @example * * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); */ execute: function execute(password, keySize, ivSize, salt, hasher) { // Generate random salt if (!salt) { salt = WordArray.random(64 / 8); } // Derive key and IV if (!hasher) { var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); } else { var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); } // Separate key and IV var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); key.sigBytes = keySize * 4; // Return params return CipherParams.create({ key: key, iv: iv, salt: salt }); } }; /** * A serializable cipher wrapper that derives the key from a password, * and returns ciphertext as a serializable cipher params object. */ var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ /** * Configuration options. * * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL */ cfg: SerializableCipher.cfg.extend({ kdf: OpenSSLKdf }), /** * Encrypts a message using a password. * * @param {Cipher} cipher The cipher algorithm to use. * @param {WordArray|string} message The message to encrypt. * @param {string} password The password. * @param {Object} cfg (Optional) The configuration options to use for this operation. * * @return {CipherParams} A cipher params object. * * @static * * @example * * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); */ encrypt: function encrypt(cipher, message, password, cfg) { // Apply config defaults cfg = this.cfg.extend(cfg); // Derive key and other params var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); // Add IV to config cfg.iv = derivedParams.iv; // Encrypt var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); // Mix in derived params ciphertext.mixIn(derivedParams); return ciphertext; }, /** * Decrypts serialized ciphertext using a password. * * @param {Cipher} cipher The cipher algorithm to use. * @param {CipherParams|string} ciphertext The ciphertext to decrypt. * @param {string} password The password. * @param {Object} cfg (Optional) The configuration options to use for this operation. * * @return {WordArray} The plaintext. * * @static * * @example * * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); */ decrypt: function decrypt(cipher, ciphertext, password, cfg) { // Apply config defaults cfg = this.cfg.extend(cfg); // Convert string to CipherParams ciphertext = this._parse(ciphertext, cfg.format); // Derive key and other params var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); // Add IV to config cfg.iv = derivedParams.iv; // Decrypt var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); return plaintext; } }); }(); }); /***/ }), /* 71 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/mode-cfb.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * Cipher Feedback block mode. */ CryptoJS.mode.CFB = function () { var CFB = CryptoJS.lib.BlockCipherMode.extend(); CFB.Encryptor = CFB.extend({ processBlock: function processBlock(words, offset) { // Shortcuts var cipher = this._cipher; var blockSize = cipher.blockSize; generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); // Remember this block to use with next block this._prevBlock = words.slice(offset, offset + blockSize); } }); CFB.Decryptor = CFB.extend({ processBlock: function processBlock(words, offset) { // Shortcuts var cipher = this._cipher; var blockSize = cipher.blockSize; // Remember this block to use with next block var thisBlock = words.slice(offset, offset + blockSize); generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); // This block becomes the previous block this._prevBlock = thisBlock; } }); function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { var keystream; // Shortcut var iv = this._iv; // Generate keystream if (iv) { keystream = iv.slice(0); // Remove IV for subsequent blocks this._iv = undefined; } else { keystream = this._prevBlock; } cipher.encryptBlock(keystream, 0); // Encrypt for (var i = 0; i < blockSize; i++) { words[offset + i] ^= keystream[i]; } } return CFB; }(); return CryptoJS.mode.CFB; }); /***/ }), /* 72 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/mode-ctr.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * Counter block mode. */ CryptoJS.mode.CTR = function () { var CTR = CryptoJS.lib.BlockCipherMode.extend(); var Encryptor = CTR.Encryptor = CTR.extend({ processBlock: function processBlock(words, offset) { // Shortcuts var cipher = this._cipher; var blockSize = cipher.blockSize; var iv = this._iv; var counter = this._counter; // Generate keystream if (iv) { counter = this._counter = iv.slice(0); // Remove IV for subsequent blocks this._iv = undefined; } var keystream = counter.slice(0); cipher.encryptBlock(keystream, 0); // Increment counter counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0; // Encrypt for (var i = 0; i < blockSize; i++) { words[offset + i] ^= keystream[i]; } } }); CTR.Decryptor = Encryptor; return CTR; }(); return CryptoJS.mode.CTR; }); /***/ }), /* 73 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/mode-ctr-gladman.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** @preserve * Counter block mode compatible with Dr Brian Gladman fileenc.c * derived from CryptoJS.mode.CTR * Jan Hruby jhruby.web@gmail.com */ CryptoJS.mode.CTRGladman = function () { var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); function incWord(word) { if ((word >> 24 & 0xff) === 0xff) { //overflow var b1 = word >> 16 & 0xff; var b2 = word >> 8 & 0xff; var b3 = word & 0xff; if (b1 === 0xff) // overflow b1 { b1 = 0; if (b2 === 0xff) { b2 = 0; if (b3 === 0xff) { b3 = 0; } else { ++b3; } } else { ++b2; } } else { ++b1; } word = 0; word += b1 << 16; word += b2 << 8; word += b3; } else { word += 0x01 << 24; } return word; } function incCounter(counter) { if ((counter[0] = incWord(counter[0])) === 0) { // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 counter[1] = incWord(counter[1]); } return counter; } var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ processBlock: function processBlock(words, offset) { // Shortcuts var cipher = this._cipher; var blockSize = cipher.blockSize; var iv = this._iv; var counter = this._counter; // Generate keystream if (iv) { counter = this._counter = iv.slice(0); // Remove IV for subsequent blocks this._iv = undefined; } incCounter(counter); var keystream = counter.slice(0); cipher.encryptBlock(keystream, 0); // Encrypt for (var i = 0; i < blockSize; i++) { words[offset + i] ^= keystream[i]; } } }); CTRGladman.Decryptor = Encryptor; return CTRGladman; }(); return CryptoJS.mode.CTRGladman; }); /***/ }), /* 74 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/mode-ofb.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * Output Feedback block mode. */ CryptoJS.mode.OFB = function () { var OFB = CryptoJS.lib.BlockCipherMode.extend(); var Encryptor = OFB.Encryptor = OFB.extend({ processBlock: function processBlock(words, offset) { // Shortcuts var cipher = this._cipher; var blockSize = cipher.blockSize; var iv = this._iv; var keystream = this._keystream; // Generate keystream if (iv) { keystream = this._keystream = iv.slice(0); // Remove IV for subsequent blocks this._iv = undefined; } cipher.encryptBlock(keystream, 0); // Encrypt for (var i = 0; i < blockSize; i++) { words[offset + i] ^= keystream[i]; } } }); OFB.Decryptor = Encryptor; return OFB; }(); return CryptoJS.mode.OFB; }); /***/ }), /* 75 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/mode-ecb.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * Electronic Codebook block mode. */ CryptoJS.mode.ECB = function () { var ECB = CryptoJS.lib.BlockCipherMode.extend(); ECB.Encryptor = ECB.extend({ processBlock: function processBlock(words, offset) { this._cipher.encryptBlock(words, offset); } }); ECB.Decryptor = ECB.extend({ processBlock: function processBlock(words, offset) { this._cipher.decryptBlock(words, offset); } }); return ECB; }(); return CryptoJS.mode.ECB; }); /***/ }), /* 76 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/pad-ansix923.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * ANSI X.923 padding strategy. */ CryptoJS.pad.AnsiX923 = { pad: function pad(data, blockSize) { // Shortcuts var dataSigBytes = data.sigBytes; var blockSizeBytes = blockSize * 4; // Count padding bytes var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; // Compute last byte position var lastBytePos = dataSigBytes + nPaddingBytes - 1; // Pad data.clamp(); data.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8; data.sigBytes += nPaddingBytes; }, unpad: function unpad(data) { // Get number of padding bytes from last byte var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding data.sigBytes -= nPaddingBytes; } }; return CryptoJS.pad.Ansix923; }); /***/ }), /* 77 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/pad-iso10126.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * ISO 10126 padding strategy. */ CryptoJS.pad.Iso10126 = { pad: function pad(data, blockSize) { // Shortcut var blockSizeBytes = blockSize * 4; // Count padding bytes var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; // Pad data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); }, unpad: function unpad(data) { // Get number of padding bytes from last byte var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding data.sigBytes -= nPaddingBytes; } }; return CryptoJS.pad.Iso10126; }); /***/ }), /* 78 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/pad-iso97971.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * ISO/IEC 9797-1 Padding Method 2. */ CryptoJS.pad.Iso97971 = { pad: function pad(data, blockSize) { // Add 0x80 byte data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); // Zero pad the rest CryptoJS.pad.ZeroPadding.pad(data, blockSize); }, unpad: function unpad(data) { // Remove zero padding CryptoJS.pad.ZeroPadding.unpad(data); // Remove one more byte -- the 0x80 byte data.sigBytes--; } }; return CryptoJS.pad.Iso97971; }); /***/ }), /* 79 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/pad-zeropadding.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * Zero padding strategy. */ CryptoJS.pad.ZeroPadding = { pad: function pad(data, blockSize) { // Shortcut var blockSizeBytes = blockSize * 4; // Pad data.clamp(); data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes); }, unpad: function unpad(data) { // Shortcut var dataWords = data.words; // Unpad var i = data.sigBytes - 1; for (var i = data.sigBytes - 1; i >= 0; i--) { if (dataWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff) { data.sigBytes = i + 1; break; } } } }; return CryptoJS.pad.ZeroPadding; }); /***/ }), /* 80 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/pad-nopadding.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { /** * A noop padding strategy. */ CryptoJS.pad.NoPadding = { pad: function pad() {}, unpad: function unpad() {} }; return CryptoJS.pad.NoPadding; }); /***/ }), /* 81 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/format-hex.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function (undefined) { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var CipherParams = C_lib.CipherParams; var C_enc = C.enc; var Hex = C_enc.Hex; var C_format = C.format; var HexFormatter = C_format.Hex = { /** * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. * * @param {CipherParams} cipherParams The cipher params object. * * @return {string} The hexadecimally encoded string. * * @static * * @example * * var hexString = CryptoJS.format.Hex.stringify(cipherParams); */ stringify: function stringify(cipherParams) { return cipherParams.ciphertext.toString(Hex); }, /** * Converts a hexadecimally encoded ciphertext string to a cipher params object. * * @param {string} input The hexadecimally encoded string. * * @return {CipherParams} The cipher params object. * * @static * * @example * * var cipherParams = CryptoJS.format.Hex.parse(hexString); */ parse: function parse(input) { var ciphertext = Hex.parse(input); return CipherParams.create({ ciphertext: ciphertext }); } }; })(); return CryptoJS.format.Hex; }); /***/ }), /* 82 */ /*!**************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/aes.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var BlockCipher = C_lib.BlockCipher; var C_algo = C.algo; // Lookup tables var SBOX = []; var INV_SBOX = []; var SUB_MIX_0 = []; var SUB_MIX_1 = []; var SUB_MIX_2 = []; var SUB_MIX_3 = []; var INV_SUB_MIX_0 = []; var INV_SUB_MIX_1 = []; var INV_SUB_MIX_2 = []; var INV_SUB_MIX_3 = []; // Compute lookup tables (function () { // Compute double table var d = []; for (var i = 0; i < 256; i++) { if (i < 128) { d[i] = i << 1; } else { d[i] = i << 1 ^ 0x11b; } } // Walk GF(2^8) var x = 0; var xi = 0; for (var i = 0; i < 256; i++) { // Compute sbox var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4; sx = sx >>> 8 ^ sx & 0xff ^ 0x63; SBOX[x] = sx; INV_SBOX[sx] = x; // Compute multiplication var x2 = d[x]; var x4 = d[x2]; var x8 = d[x4]; // Compute sub bytes, mix columns tables var t = d[sx] * 0x101 ^ sx * 0x1010100; SUB_MIX_0[x] = t << 24 | t >>> 8; SUB_MIX_1[x] = t << 16 | t >>> 16; SUB_MIX_2[x] = t << 8 | t >>> 24; SUB_MIX_3[x] = t; // Compute inv sub bytes, inv mix columns tables var t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100; INV_SUB_MIX_0[sx] = t << 24 | t >>> 8; INV_SUB_MIX_1[sx] = t << 16 | t >>> 16; INV_SUB_MIX_2[sx] = t << 8 | t >>> 24; INV_SUB_MIX_3[sx] = t; // Compute next counter if (!x) { x = xi = 1; } else { x = x2 ^ d[d[d[x8 ^ x2]]]; xi ^= d[d[xi]]; } } })(); // Precomputed Rcon lookup var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; /** * AES block cipher algorithm. */ var AES = C_algo.AES = BlockCipher.extend({ _doReset: function _doReset() { var t; // Skip reset of nRounds has been set before and key did not change if (this._nRounds && this._keyPriorReset === this._key) { return; } // Shortcuts var key = this._keyPriorReset = this._key; var keyWords = key.words; var keySize = key.sigBytes / 4; // Compute number of rounds var nRounds = this._nRounds = keySize + 6; // Compute number of key schedule rows var ksRows = (nRounds + 1) * 4; // Compute key schedule var keySchedule = this._keySchedule = []; for (var ksRow = 0; ksRow < ksRows; ksRow++) { if (ksRow < keySize) { keySchedule[ksRow] = keyWords[ksRow]; } else { t = keySchedule[ksRow - 1]; if (!(ksRow % keySize)) { // Rot word t = t << 8 | t >>> 24; // Sub word t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff]; // Mix Rcon t ^= RCON[ksRow / keySize | 0] << 24; } else if (keySize > 6 && ksRow % keySize == 4) { // Sub word t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff]; } keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; } } // Compute inv key schedule var invKeySchedule = this._invKeySchedule = []; for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { var ksRow = ksRows - invKsRow; if (invKsRow % 4) { var t = keySchedule[ksRow]; } else { var t = keySchedule[ksRow - 4]; } if (invKsRow < 4 || ksRow <= 4) { invKeySchedule[invKsRow] = t; } else { invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 0xff]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; } } }, encryptBlock: function encryptBlock(M, offset) { this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); }, decryptBlock: function decryptBlock(M, offset) { // Swap 2nd and 4th rows var t = M[offset + 1]; M[offset + 1] = M[offset + 3]; M[offset + 3] = t; this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); // Inv swap 2nd and 4th rows var t = M[offset + 1]; M[offset + 1] = M[offset + 3]; M[offset + 3] = t; }, _doCryptBlock: function _doCryptBlock(M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { // Shortcut var nRounds = this._nRounds; // Get input, add round key var s0 = M[offset] ^ keySchedule[0]; var s1 = M[offset + 1] ^ keySchedule[1]; var s2 = M[offset + 2] ^ keySchedule[2]; var s3 = M[offset + 3] ^ keySchedule[3]; // Key schedule row counter var ksRow = 4; // Rounds for (var round = 1; round < nRounds; round++) { // Shift rows, sub bytes, mix columns, add round key var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[s1 >>> 16 & 0xff] ^ SUB_MIX_2[s2 >>> 8 & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[s2 >>> 16 & 0xff] ^ SUB_MIX_2[s3 >>> 8 & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[s3 >>> 16 & 0xff] ^ SUB_MIX_2[s0 >>> 8 & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[s0 >>> 16 & 0xff] ^ SUB_MIX_2[s1 >>> 8 & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; // Update state s0 = t0; s1 = t1; s2 = t2; s3 = t3; } // Shift rows, sub bytes, add round key var t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; var t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; var t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; var t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; // Set output M[offset] = t0; M[offset + 1] = t1; M[offset + 2] = t2; M[offset + 3] = t3; }, keySize: 256 / 32 }); /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); */ C.AES = BlockCipher._createHelper(AES); })(); return CryptoJS.AES; }); /***/ }), /* 83 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/tripledes.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var WordArray = C_lib.WordArray; var BlockCipher = C_lib.BlockCipher; var C_algo = C.algo; // Permuted Choice 1 constants var PC1 = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4]; // Permuted Choice 2 constants var PC2 = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32]; // Cumulative bit shift constants var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; // SBOXes and round permutation constants var SBOX_P = [{ 0x0: 0x808200, 0x10000000: 0x8000, 0x20000000: 0x808002, 0x30000000: 0x2, 0x40000000: 0x200, 0x50000000: 0x808202, 0x60000000: 0x800202, 0x70000000: 0x800000, 0x80000000: 0x202, 0x90000000: 0x800200, 0xa0000000: 0x8200, 0xb0000000: 0x808000, 0xc0000000: 0x8002, 0xd0000000: 0x800002, 0xe0000000: 0x0, 0xf0000000: 0x8202, 0x8000000: 0x0, 0x18000000: 0x808202, 0x28000000: 0x8202, 0x38000000: 0x8000, 0x48000000: 0x808200, 0x58000000: 0x200, 0x68000000: 0x808002, 0x78000000: 0x2, 0x88000000: 0x800200, 0x98000000: 0x8200, 0xa8000000: 0x808000, 0xb8000000: 0x800202, 0xc8000000: 0x800002, 0xd8000000: 0x8002, 0xe8000000: 0x202, 0xf8000000: 0x800000, 0x1: 0x8000, 0x10000001: 0x2, 0x20000001: 0x808200, 0x30000001: 0x800000, 0x40000001: 0x808002, 0x50000001: 0x8200, 0x60000001: 0x200, 0x70000001: 0x800202, 0x80000001: 0x808202, 0x90000001: 0x808000, 0xa0000001: 0x800002, 0xb0000001: 0x8202, 0xc0000001: 0x202, 0xd0000001: 0x800200, 0xe0000001: 0x8002, 0xf0000001: 0x0, 0x8000001: 0x808202, 0x18000001: 0x808000, 0x28000001: 0x800000, 0x38000001: 0x200, 0x48000001: 0x8000, 0x58000001: 0x800002, 0x68000001: 0x2, 0x78000001: 0x8202, 0x88000001: 0x8002, 0x98000001: 0x800202, 0xa8000001: 0x202, 0xb8000001: 0x808200, 0xc8000001: 0x800200, 0xd8000001: 0x0, 0xe8000001: 0x8200, 0xf8000001: 0x808002 }, { 0x0: 0x40084010, 0x1000000: 0x4000, 0x2000000: 0x80000, 0x3000000: 0x40080010, 0x4000000: 0x40000010, 0x5000000: 0x40084000, 0x6000000: 0x40004000, 0x7000000: 0x10, 0x8000000: 0x84000, 0x9000000: 0x40004010, 0xa000000: 0x40000000, 0xb000000: 0x84010, 0xc000000: 0x80010, 0xd000000: 0x0, 0xe000000: 0x4010, 0xf000000: 0x40080000, 0x800000: 0x40004000, 0x1800000: 0x84010, 0x2800000: 0x10, 0x3800000: 0x40004010, 0x4800000: 0x40084010, 0x5800000: 0x40000000, 0x6800000: 0x80000, 0x7800000: 0x40080010, 0x8800000: 0x80010, 0x9800000: 0x0, 0xa800000: 0x4000, 0xb800000: 0x40080000, 0xc800000: 0x40000010, 0xd800000: 0x84000, 0xe800000: 0x40084000, 0xf800000: 0x4010, 0x10000000: 0x0, 0x11000000: 0x40080010, 0x12000000: 0x40004010, 0x13000000: 0x40084000, 0x14000000: 0x40080000, 0x15000000: 0x10, 0x16000000: 0x84010, 0x17000000: 0x4000, 0x18000000: 0x4010, 0x19000000: 0x80000, 0x1a000000: 0x80010, 0x1b000000: 0x40000010, 0x1c000000: 0x84000, 0x1d000000: 0x40004000, 0x1e000000: 0x40000000, 0x1f000000: 0x40084010, 0x10800000: 0x84010, 0x11800000: 0x80000, 0x12800000: 0x40080000, 0x13800000: 0x4000, 0x14800000: 0x40004000, 0x15800000: 0x40084010, 0x16800000: 0x10, 0x17800000: 0x40000000, 0x18800000: 0x40084000, 0x19800000: 0x40000010, 0x1a800000: 0x40004010, 0x1b800000: 0x80010, 0x1c800000: 0x0, 0x1d800000: 0x4010, 0x1e800000: 0x40080010, 0x1f800000: 0x84000 }, { 0x0: 0x104, 0x100000: 0x0, 0x200000: 0x4000100, 0x300000: 0x10104, 0x400000: 0x10004, 0x500000: 0x4000004, 0x600000: 0x4010104, 0x700000: 0x4010000, 0x800000: 0x4000000, 0x900000: 0x4010100, 0xa00000: 0x10100, 0xb00000: 0x4010004, 0xc00000: 0x4000104, 0xd00000: 0x10000, 0xe00000: 0x4, 0xf00000: 0x100, 0x80000: 0x4010100, 0x180000: 0x4010004, 0x280000: 0x0, 0x380000: 0x4000100, 0x480000: 0x4000004, 0x580000: 0x10000, 0x680000: 0x10004, 0x780000: 0x104, 0x880000: 0x4, 0x980000: 0x100, 0xa80000: 0x4010000, 0xb80000: 0x10104, 0xc80000: 0x10100, 0xd80000: 0x4000104, 0xe80000: 0x4010104, 0xf80000: 0x4000000, 0x1000000: 0x4010100, 0x1100000: 0x10004, 0x1200000: 0x10000, 0x1300000: 0x4000100, 0x1400000: 0x100, 0x1500000: 0x4010104, 0x1600000: 0x4000004, 0x1700000: 0x0, 0x1800000: 0x4000104, 0x1900000: 0x4000000, 0x1a00000: 0x4, 0x1b00000: 0x10100, 0x1c00000: 0x4010000, 0x1d00000: 0x104, 0x1e00000: 0x10104, 0x1f00000: 0x4010004, 0x1080000: 0x4000000, 0x1180000: 0x104, 0x1280000: 0x4010100, 0x1380000: 0x0, 0x1480000: 0x10004, 0x1580000: 0x4000100, 0x1680000: 0x100, 0x1780000: 0x4010004, 0x1880000: 0x10000, 0x1980000: 0x4010104, 0x1a80000: 0x10104, 0x1b80000: 0x4000004, 0x1c80000: 0x4000104, 0x1d80000: 0x4010000, 0x1e80000: 0x4, 0x1f80000: 0x10100 }, { 0x0: 0x80401000, 0x10000: 0x80001040, 0x20000: 0x401040, 0x30000: 0x80400000, 0x40000: 0x0, 0x50000: 0x401000, 0x60000: 0x80000040, 0x70000: 0x400040, 0x80000: 0x80000000, 0x90000: 0x400000, 0xa0000: 0x40, 0xb0000: 0x80001000, 0xc0000: 0x80400040, 0xd0000: 0x1040, 0xe0000: 0x1000, 0xf0000: 0x80401040, 0x8000: 0x80001040, 0x18000: 0x40, 0x28000: 0x80400040, 0x38000: 0x80001000, 0x48000: 0x401000, 0x58000: 0x80401040, 0x68000: 0x0, 0x78000: 0x80400000, 0x88000: 0x1000, 0x98000: 0x80401000, 0xa8000: 0x400000, 0xb8000: 0x1040, 0xc8000: 0x80000000, 0xd8000: 0x400040, 0xe8000: 0x401040, 0xf8000: 0x80000040, 0x100000: 0x400040, 0x110000: 0x401000, 0x120000: 0x80000040, 0x130000: 0x0, 0x140000: 0x1040, 0x150000: 0x80400040, 0x160000: 0x80401000, 0x170000: 0x80001040, 0x180000: 0x80401040, 0x190000: 0x80000000, 0x1a0000: 0x80400000, 0x1b0000: 0x401040, 0x1c0000: 0x80001000, 0x1d0000: 0x400000, 0x1e0000: 0x40, 0x1f0000: 0x1000, 0x108000: 0x80400000, 0x118000: 0x80401040, 0x128000: 0x0, 0x138000: 0x401000, 0x148000: 0x400040, 0x158000: 0x80000000, 0x168000: 0x80001040, 0x178000: 0x40, 0x188000: 0x80000040, 0x198000: 0x1000, 0x1a8000: 0x80001000, 0x1b8000: 0x80400040, 0x1c8000: 0x1040, 0x1d8000: 0x80401000, 0x1e8000: 0x400000, 0x1f8000: 0x401040 }, { 0x0: 0x80, 0x1000: 0x1040000, 0x2000: 0x40000, 0x3000: 0x20000000, 0x4000: 0x20040080, 0x5000: 0x1000080, 0x6000: 0x21000080, 0x7000: 0x40080, 0x8000: 0x1000000, 0x9000: 0x20040000, 0xa000: 0x20000080, 0xb000: 0x21040080, 0xc000: 0x21040000, 0xd000: 0x0, 0xe000: 0x1040080, 0xf000: 0x21000000, 0x800: 0x1040080, 0x1800: 0x21000080, 0x2800: 0x80, 0x3800: 0x1040000, 0x4800: 0x40000, 0x5800: 0x20040080, 0x6800: 0x21040000, 0x7800: 0x20000000, 0x8800: 0x20040000, 0x9800: 0x0, 0xa800: 0x21040080, 0xb800: 0x1000080, 0xc800: 0x20000080, 0xd800: 0x21000000, 0xe800: 0x1000000, 0xf800: 0x40080, 0x10000: 0x40000, 0x11000: 0x80, 0x12000: 0x20000000, 0x13000: 0x21000080, 0x14000: 0x1000080, 0x15000: 0x21040000, 0x16000: 0x20040080, 0x17000: 0x1000000, 0x18000: 0x21040080, 0x19000: 0x21000000, 0x1a000: 0x1040000, 0x1b000: 0x20040000, 0x1c000: 0x40080, 0x1d000: 0x20000080, 0x1e000: 0x0, 0x1f000: 0x1040080, 0x10800: 0x21000080, 0x11800: 0x1000000, 0x12800: 0x1040000, 0x13800: 0x20040080, 0x14800: 0x20000000, 0x15800: 0x1040080, 0x16800: 0x80, 0x17800: 0x21040000, 0x18800: 0x40080, 0x19800: 0x21040080, 0x1a800: 0x0, 0x1b800: 0x21000000, 0x1c800: 0x1000080, 0x1d800: 0x40000, 0x1e800: 0x20040000, 0x1f800: 0x20000080 }, { 0x0: 0x10000008, 0x100: 0x2000, 0x200: 0x10200000, 0x300: 0x10202008, 0x400: 0x10002000, 0x500: 0x200000, 0x600: 0x200008, 0x700: 0x10000000, 0x800: 0x0, 0x900: 0x10002008, 0xa00: 0x202000, 0xb00: 0x8, 0xc00: 0x10200008, 0xd00: 0x202008, 0xe00: 0x2008, 0xf00: 0x10202000, 0x80: 0x10200000, 0x180: 0x10202008, 0x280: 0x8, 0x380: 0x200000, 0x480: 0x202008, 0x580: 0x10000008, 0x680: 0x10002000, 0x780: 0x2008, 0x880: 0x200008, 0x980: 0x2000, 0xa80: 0x10002008, 0xb80: 0x10200008, 0xc80: 0x0, 0xd80: 0x10202000, 0xe80: 0x202000, 0xf80: 0x10000000, 0x1000: 0x10002000, 0x1100: 0x10200008, 0x1200: 0x10202008, 0x1300: 0x2008, 0x1400: 0x200000, 0x1500: 0x10000000, 0x1600: 0x10000008, 0x1700: 0x202000, 0x1800: 0x202008, 0x1900: 0x0, 0x1a00: 0x8, 0x1b00: 0x10200000, 0x1c00: 0x2000, 0x1d00: 0x10002008, 0x1e00: 0x10202000, 0x1f00: 0x200008, 0x1080: 0x8, 0x1180: 0x202000, 0x1280: 0x200000, 0x1380: 0x10000008, 0x1480: 0x10002000, 0x1580: 0x2008, 0x1680: 0x10202008, 0x1780: 0x10200000, 0x1880: 0x10202000, 0x1980: 0x10200008, 0x1a80: 0x2000, 0x1b80: 0x202008, 0x1c80: 0x200008, 0x1d80: 0x0, 0x1e80: 0x10000000, 0x1f80: 0x10002008 }, { 0x0: 0x100000, 0x10: 0x2000401, 0x20: 0x400, 0x30: 0x100401, 0x40: 0x2100401, 0x50: 0x0, 0x60: 0x1, 0x70: 0x2100001, 0x80: 0x2000400, 0x90: 0x100001, 0xa0: 0x2000001, 0xb0: 0x2100400, 0xc0: 0x2100000, 0xd0: 0x401, 0xe0: 0x100400, 0xf0: 0x2000000, 0x8: 0x2100001, 0x18: 0x0, 0x28: 0x2000401, 0x38: 0x2100400, 0x48: 0x100000, 0x58: 0x2000001, 0x68: 0x2000000, 0x78: 0x401, 0x88: 0x100401, 0x98: 0x2000400, 0xa8: 0x2100000, 0xb8: 0x100001, 0xc8: 0x400, 0xd8: 0x2100401, 0xe8: 0x1, 0xf8: 0x100400, 0x100: 0x2000000, 0x110: 0x100000, 0x120: 0x2000401, 0x130: 0x2100001, 0x140: 0x100001, 0x150: 0x2000400, 0x160: 0x2100400, 0x170: 0x100401, 0x180: 0x401, 0x190: 0x2100401, 0x1a0: 0x100400, 0x1b0: 0x1, 0x1c0: 0x0, 0x1d0: 0x2100000, 0x1e0: 0x2000001, 0x1f0: 0x400, 0x108: 0x100400, 0x118: 0x2000401, 0x128: 0x2100001, 0x138: 0x1, 0x148: 0x2000000, 0x158: 0x100000, 0x168: 0x401, 0x178: 0x2100400, 0x188: 0x2000001, 0x198: 0x2100000, 0x1a8: 0x0, 0x1b8: 0x2100401, 0x1c8: 0x100401, 0x1d8: 0x400, 0x1e8: 0x2000400, 0x1f8: 0x100001 }, { 0x0: 0x8000820, 0x1: 0x20000, 0x2: 0x8000000, 0x3: 0x20, 0x4: 0x20020, 0x5: 0x8020820, 0x6: 0x8020800, 0x7: 0x800, 0x8: 0x8020000, 0x9: 0x8000800, 0xa: 0x20800, 0xb: 0x8020020, 0xc: 0x820, 0xd: 0x0, 0xe: 0x8000020, 0xf: 0x20820, 0x80000000: 0x800, 0x80000001: 0x8020820, 0x80000002: 0x8000820, 0x80000003: 0x8000000, 0x80000004: 0x8020000, 0x80000005: 0x20800, 0x80000006: 0x20820, 0x80000007: 0x20, 0x80000008: 0x8000020, 0x80000009: 0x820, 0x8000000a: 0x20020, 0x8000000b: 0x8020800, 0x8000000c: 0x0, 0x8000000d: 0x8020020, 0x8000000e: 0x8000800, 0x8000000f: 0x20000, 0x10: 0x20820, 0x11: 0x8020800, 0x12: 0x20, 0x13: 0x800, 0x14: 0x8000800, 0x15: 0x8000020, 0x16: 0x8020020, 0x17: 0x20000, 0x18: 0x0, 0x19: 0x20020, 0x1a: 0x8020000, 0x1b: 0x8000820, 0x1c: 0x8020820, 0x1d: 0x20800, 0x1e: 0x820, 0x1f: 0x8000000, 0x80000010: 0x20000, 0x80000011: 0x800, 0x80000012: 0x8020020, 0x80000013: 0x20820, 0x80000014: 0x20, 0x80000015: 0x8020000, 0x80000016: 0x8000000, 0x80000017: 0x8000820, 0x80000018: 0x8020820, 0x80000019: 0x8000020, 0x8000001a: 0x8000800, 0x8000001b: 0x0, 0x8000001c: 0x20800, 0x8000001d: 0x820, 0x8000001e: 0x20020, 0x8000001f: 0x8020800 }]; // Masks that select the SBOX input var SBOX_MASK = [0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f]; /** * DES block cipher algorithm. */ var DES = C_algo.DES = BlockCipher.extend({ _doReset: function _doReset() { // Shortcuts var key = this._key; var keyWords = key.words; // Select 56 bits according to PC1 var keyBits = []; for (var i = 0; i < 56; i++) { var keyBitPos = PC1[i] - 1; keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1; } // Assemble 16 subkeys var subKeys = this._subKeys = []; for (var nSubKey = 0; nSubKey < 16; nSubKey++) { // Create subkey var subKey = subKeys[nSubKey] = []; // Shortcut var bitShift = BIT_SHIFTS[nSubKey]; // Select 48 bits according to PC2 for (var i = 0; i < 24; i++) { // Select from the left 28 key bits subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6; // Select from the right 28 key bits subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6; } // Since each subkey is applied to an expanded 32-bit input, // the subkey can be broken into 8 values scaled to 32-bits, // which allows the key to be used without expansion subKey[0] = subKey[0] << 1 | subKey[0] >>> 31; for (var i = 1; i < 7; i++) { subKey[i] = subKey[i] >>> (i - 1) * 4 + 3; } subKey[7] = subKey[7] << 5 | subKey[7] >>> 27; } // Compute inverse subkeys var invSubKeys = this._invSubKeys = []; for (var i = 0; i < 16; i++) { invSubKeys[i] = subKeys[15 - i]; } }, encryptBlock: function encryptBlock(M, offset) { this._doCryptBlock(M, offset, this._subKeys); }, decryptBlock: function decryptBlock(M, offset) { this._doCryptBlock(M, offset, this._invSubKeys); }, _doCryptBlock: function _doCryptBlock(M, offset, subKeys) { // Get input this._lBlock = M[offset]; this._rBlock = M[offset + 1]; // Initial permutation exchangeLR.call(this, 4, 0x0f0f0f0f); exchangeLR.call(this, 16, 0x0000ffff); exchangeRL.call(this, 2, 0x33333333); exchangeRL.call(this, 8, 0x00ff00ff); exchangeLR.call(this, 1, 0x55555555); // Rounds for (var round = 0; round < 16; round++) { // Shortcuts var subKey = subKeys[round]; var lBlock = this._lBlock; var rBlock = this._rBlock; // Feistel function var f = 0; for (var i = 0; i < 8; i++) { f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; } this._lBlock = rBlock; this._rBlock = lBlock ^ f; } // Undo swap from last round var t = this._lBlock; this._lBlock = this._rBlock; this._rBlock = t; // Final permutation exchangeLR.call(this, 1, 0x55555555); exchangeRL.call(this, 8, 0x00ff00ff); exchangeRL.call(this, 2, 0x33333333); exchangeLR.call(this, 16, 0x0000ffff); exchangeLR.call(this, 4, 0x0f0f0f0f); // Set output M[offset] = this._lBlock; M[offset + 1] = this._rBlock; }, keySize: 64 / 32, ivSize: 64 / 32, blockSize: 64 / 32 }); // Swap bits across the left and right words function exchangeLR(offset, mask) { var t = (this._lBlock >>> offset ^ this._rBlock) & mask; this._rBlock ^= t; this._lBlock ^= t << offset; } function exchangeRL(offset, mask) { var t = (this._rBlock >>> offset ^ this._lBlock) & mask; this._lBlock ^= t; this._rBlock ^= t << offset; } /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); */ C.DES = BlockCipher._createHelper(DES); /** * Triple-DES block cipher algorithm. */ var TripleDES = C_algo.TripleDES = BlockCipher.extend({ _doReset: function _doReset() { // Shortcuts var key = this._key; var keyWords = key.words; // Make sure the key length is valid (64, 128 or >= 192 bit) if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); } // Extend the key according to the keying options defined in 3DES standard var key1 = keyWords.slice(0, 2); var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); // Create DES instances this._des1 = DES.createEncryptor(WordArray.create(key1)); this._des2 = DES.createEncryptor(WordArray.create(key2)); this._des3 = DES.createEncryptor(WordArray.create(key3)); }, encryptBlock: function encryptBlock(M, offset) { this._des1.encryptBlock(M, offset); this._des2.decryptBlock(M, offset); this._des3.encryptBlock(M, offset); }, decryptBlock: function decryptBlock(M, offset) { this._des3.decryptBlock(M, offset); this._des2.encryptBlock(M, offset); this._des1.decryptBlock(M, offset); }, keySize: 192 / 32, ivSize: 64 / 32, blockSize: 64 / 32 }); /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); */ C.TripleDES = BlockCipher._createHelper(TripleDES); })(); return CryptoJS.TripleDES; }); /***/ }), /* 84 */ /*!**************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/rc4.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var StreamCipher = C_lib.StreamCipher; var C_algo = C.algo; /** * RC4 stream cipher algorithm. */ var RC4 = C_algo.RC4 = StreamCipher.extend({ _doReset: function _doReset() { // Shortcuts var key = this._key; var keyWords = key.words; var keySigBytes = key.sigBytes; // Init sbox var S = this._S = []; for (var i = 0; i < 256; i++) { S[i] = i; } // Key setup for (var i = 0, j = 0; i < 256; i++) { var keyByteIndex = i % keySigBytes; var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 0xff; j = (j + S[i] + keyByte) % 256; // Swap var t = S[i]; S[i] = S[j]; S[j] = t; } // Counters this._i = this._j = 0; }, _doProcessBlock: function _doProcessBlock(M, offset) { M[offset] ^= generateKeystreamWord.call(this); }, keySize: 256 / 32, ivSize: 0 }); function generateKeystreamWord() { // Shortcuts var S = this._S; var i = this._i; var j = this._j; // Generate keystream word var keystreamWord = 0; for (var n = 0; n < 4; n++) { i = (i + 1) % 256; j = (j + S[i]) % 256; // Swap var t = S[i]; S[i] = S[j]; S[j] = t; keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8; } // Update counters this._i = i; this._j = j; return keystreamWord; } /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); */ C.RC4 = StreamCipher._createHelper(RC4); /** * Modified RC4 stream cipher algorithm. */ var RC4Drop = C_algo.RC4Drop = RC4.extend({ /** * Configuration options. * * @property {number} drop The number of keystream words to drop. Default 192 */ cfg: RC4.cfg.extend({ drop: 192 }), _doReset: function _doReset() { RC4._doReset.call(this); // Drop for (var i = this.cfg.drop; i > 0; i--) { generateKeystreamWord.call(this); } } }); /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); */ C.RC4Drop = StreamCipher._createHelper(RC4Drop); })(); return CryptoJS.RC4; }); /***/ }), /* 85 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/rabbit.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var StreamCipher = C_lib.StreamCipher; var C_algo = C.algo; // Reusable objects var S = []; var C_ = []; var G = []; /** * Rabbit stream cipher algorithm */ var Rabbit = C_algo.Rabbit = StreamCipher.extend({ _doReset: function _doReset() { // Shortcuts var K = this._key.words; var iv = this.cfg.iv; // Swap endian for (var i = 0; i < 4; i++) { K[i] = (K[i] << 8 | K[i] >>> 24) & 0x00ff00ff | (K[i] << 24 | K[i] >>> 8) & 0xff00ff00; } // Generate initial state values var X = this._X = [K[0], K[3] << 16 | K[2] >>> 16, K[1], K[0] << 16 | K[3] >>> 16, K[2], K[1] << 16 | K[0] >>> 16, K[3], K[2] << 16 | K[1] >>> 16]; // Generate initial counter values var C = this._C = [K[2] << 16 | K[2] >>> 16, K[0] & 0xffff0000 | K[1] & 0x0000ffff, K[3] << 16 | K[3] >>> 16, K[1] & 0xffff0000 | K[2] & 0x0000ffff, K[0] << 16 | K[0] >>> 16, K[2] & 0xffff0000 | K[3] & 0x0000ffff, K[1] << 16 | K[1] >>> 16, K[3] & 0xffff0000 | K[0] & 0x0000ffff]; // Carry bit this._b = 0; // Iterate the system four times for (var i = 0; i < 4; i++) { nextState.call(this); } // Modify the counters for (var i = 0; i < 8; i++) { C[i] ^= X[i + 4 & 7]; } // IV setup if (iv) { // Shortcuts var IV = iv.words; var IV_0 = IV[0]; var IV_1 = IV[1]; // Generate four subvectors var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00; var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00; var i1 = i0 >>> 16 | i2 & 0xffff0000; var i3 = i2 << 16 | i0 & 0x0000ffff; // Modify counter values C[0] ^= i0; C[1] ^= i1; C[2] ^= i2; C[3] ^= i3; C[4] ^= i0; C[5] ^= i1; C[6] ^= i2; C[7] ^= i3; // Iterate the system four times for (var i = 0; i < 4; i++) { nextState.call(this); } } }, _doProcessBlock: function _doProcessBlock(M, offset) { // Shortcut var X = this._X; // Iterate the system nextState.call(this); // Generate four keystream words S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16; S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16; S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16; S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16; for (var i = 0; i < 4; i++) { // Swap endian S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00; // Encrypt M[offset + i] ^= S[i]; } }, blockSize: 128 / 32, ivSize: 64 / 32 }); function nextState() { // Shortcuts var X = this._X; var C = this._C; // Save old counter values for (var i = 0; i < 8; i++) { C_[i] = C[i]; } // Calculate new counter values C[0] = C[0] + 0x4d34d34d + this._b | 0; C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0; C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0; C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0; C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0; C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0; C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0; C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0; this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; // Calculate the g-values for (var i = 0; i < 8; i++) { var gx = X[i] + C[i]; // Construct high and low argument for squaring var ga = gx & 0xffff; var gb = gx >>> 16; // Calculate high and low result of squaring var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb; var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0); // High XOR low G[i] = gh ^ gl; } // Calculate new state values X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0; X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0; X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0; X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0; X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0; X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0; X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0; X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0; } /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); */ C.Rabbit = StreamCipher._createHelper(Rabbit); })(); return CryptoJS.Rabbit; }); /***/ }), /* 86 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/rabbit-legacy.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var StreamCipher = C_lib.StreamCipher; var C_algo = C.algo; // Reusable objects var S = []; var C_ = []; var G = []; /** * Rabbit stream cipher algorithm. * * This is a legacy version that neglected to convert the key to little-endian. * This error doesn't affect the cipher's security, * but it does affect its compatibility with other implementations. */ var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ _doReset: function _doReset() { // Shortcuts var K = this._key.words; var iv = this.cfg.iv; // Generate initial state values var X = this._X = [K[0], K[3] << 16 | K[2] >>> 16, K[1], K[0] << 16 | K[3] >>> 16, K[2], K[1] << 16 | K[0] >>> 16, K[3], K[2] << 16 | K[1] >>> 16]; // Generate initial counter values var C = this._C = [K[2] << 16 | K[2] >>> 16, K[0] & 0xffff0000 | K[1] & 0x0000ffff, K[3] << 16 | K[3] >>> 16, K[1] & 0xffff0000 | K[2] & 0x0000ffff, K[0] << 16 | K[0] >>> 16, K[2] & 0xffff0000 | K[3] & 0x0000ffff, K[1] << 16 | K[1] >>> 16, K[3] & 0xffff0000 | K[0] & 0x0000ffff]; // Carry bit this._b = 0; // Iterate the system four times for (var i = 0; i < 4; i++) { nextState.call(this); } // Modify the counters for (var i = 0; i < 8; i++) { C[i] ^= X[i + 4 & 7]; } // IV setup if (iv) { // Shortcuts var IV = iv.words; var IV_0 = IV[0]; var IV_1 = IV[1]; // Generate four subvectors var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00; var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00; var i1 = i0 >>> 16 | i2 & 0xffff0000; var i3 = i2 << 16 | i0 & 0x0000ffff; // Modify counter values C[0] ^= i0; C[1] ^= i1; C[2] ^= i2; C[3] ^= i3; C[4] ^= i0; C[5] ^= i1; C[6] ^= i2; C[7] ^= i3; // Iterate the system four times for (var i = 0; i < 4; i++) { nextState.call(this); } } }, _doProcessBlock: function _doProcessBlock(M, offset) { // Shortcut var X = this._X; // Iterate the system nextState.call(this); // Generate four keystream words S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16; S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16; S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16; S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16; for (var i = 0; i < 4; i++) { // Swap endian S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00; // Encrypt M[offset + i] ^= S[i]; } }, blockSize: 128 / 32, ivSize: 64 / 32 }); function nextState() { // Shortcuts var X = this._X; var C = this._C; // Save old counter values for (var i = 0; i < 8; i++) { C_[i] = C[i]; } // Calculate new counter values C[0] = C[0] + 0x4d34d34d + this._b | 0; C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0; C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0; C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0; C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0; C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0; C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0; C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0; this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; // Calculate the g-values for (var i = 0; i < 8; i++) { var gx = X[i] + C[i]; // Construct high and low argument for squaring var ga = gx & 0xffff; var gb = gx >>> 16; // Calculate high and low result of squaring var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb; var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0); // High XOR low G[i] = gh ^ gl; } // Calculate new state values X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0; X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0; X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0; X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0; X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0; X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0; X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0; X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0; } /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); */ C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); })(); return CryptoJS.RabbitLegacy; }); /***/ }), /* 87 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/crypto-js/blowfish.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); ; (function (root, factory, undef) { if (( false ? undefined : _typeof(exports)) === "object") { // CommonJS module.exports = exports = factory(__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)); } else if (true) { // AMD !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ./core */ 50), __webpack_require__(/*! ./enc-base64 */ 57), __webpack_require__(/*! ./md5 */ 59), __webpack_require__(/*! ./evpkdf */ 69), __webpack_require__(/*! ./cipher-core */ 70)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} })(this, function (CryptoJS) { (function () { // Shortcuts var C = CryptoJS; var C_lib = C.lib; var BlockCipher = C_lib.BlockCipher; var C_algo = C.algo; var N = 16; //Origin pbox and sbox, derived from PI var ORIG_P = [0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, 0x9216D5D9, 0x8979FB1B]; var ORIG_S = [[0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A], [0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7], [0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0], [0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6]]; var BLOWFISH_CTX = { pbox: [], sbox: [] }; function F(ctx, x) { var a = x >> 24 & 0xFF; var b = x >> 16 & 0xFF; var c = x >> 8 & 0xFF; var d = x & 0xFF; var y = ctx.sbox[0][a] + ctx.sbox[1][b]; y = y ^ ctx.sbox[2][c]; y = y + ctx.sbox[3][d]; return y; } function BlowFish_Encrypt(ctx, left, right) { var Xl = left; var Xr = right; var temp; for (var i = 0; i < N; ++i) { Xl = Xl ^ ctx.pbox[i]; Xr = F(ctx, Xl) ^ Xr; temp = Xl; Xl = Xr; Xr = temp; } temp = Xl; Xl = Xr; Xr = temp; Xr = Xr ^ ctx.pbox[N]; Xl = Xl ^ ctx.pbox[N + 1]; return { left: Xl, right: Xr }; } function BlowFish_Decrypt(ctx, left, right) { var Xl = left; var Xr = right; var temp; for (var i = N + 1; i > 1; --i) { Xl = Xl ^ ctx.pbox[i]; Xr = F(ctx, Xl) ^ Xr; temp = Xl; Xl = Xr; Xr = temp; } temp = Xl; Xl = Xr; Xr = temp; Xr = Xr ^ ctx.pbox[1]; Xl = Xl ^ ctx.pbox[0]; return { left: Xl, right: Xr }; } /** * Initialization ctx's pbox and sbox. * * @param {Object} ctx The object has pbox and sbox. * @param {Array} key An array of 32-bit words. * @param {int} keysize The length of the key. * * @example * * BlowFishInit(BLOWFISH_CTX, key, 128/32); */ function BlowFishInit(ctx, key, keysize) { for (var Row = 0; Row < 4; Row++) { ctx.sbox[Row] = []; for (var Col = 0; Col < 256; Col++) { ctx.sbox[Row][Col] = ORIG_S[Row][Col]; } } var keyIndex = 0; for (var index = 0; index < N + 2; index++) { ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex]; keyIndex++; if (keyIndex >= keysize) { keyIndex = 0; } } var Data1 = 0; var Data2 = 0; var res = 0; for (var i = 0; i < N + 2; i += 2) { res = BlowFish_Encrypt(ctx, Data1, Data2); Data1 = res.left; Data2 = res.right; ctx.pbox[i] = Data1; ctx.pbox[i + 1] = Data2; } for (var _i = 0; _i < 4; _i++) { for (var j = 0; j < 256; j += 2) { res = BlowFish_Encrypt(ctx, Data1, Data2); Data1 = res.left; Data2 = res.right; ctx.sbox[_i][j] = Data1; ctx.sbox[_i][j + 1] = Data2; } } return true; } /** * Blowfish block cipher algorithm. */ var Blowfish = C_algo.Blowfish = BlockCipher.extend({ _doReset: function _doReset() { // Skip reset of nRounds has been set before and key did not change if (this._keyPriorReset === this._key) { return; } // Shortcuts var key = this._keyPriorReset = this._key; var keyWords = key.words; var keySize = key.sigBytes / 4; //Initialization pbox and sbox BlowFishInit(BLOWFISH_CTX, keyWords, keySize); }, encryptBlock: function encryptBlock(M, offset) { var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); M[offset] = res.left; M[offset + 1] = res.right; }, decryptBlock: function decryptBlock(M, offset) { var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); M[offset] = res.left; M[offset + 1] = res.right; }, blockSize: 64 / 32, keySize: 128 / 32, ivSize: 64 / 32 }); /** * Shortcut functions to the cipher's object interface. * * @example * * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg); * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg); */ C.Blowfish = BlockCipher._createHelper(Blowfish); })(); return CryptoJS.Blowfish; }); /***/ }), /* 88 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/xcrw/index.vue?mpType=page ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=4c239b7c&scoped=true&mpType=page */ 89);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 167);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"4c239b7c\",\n null,\n false,\n _index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/xcrw/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUk7QUFDekk7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ21LO0FBQ25LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSx1R0FBTTtBQUNSLEVBQUUsZ0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiODguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YzIzOWI3YyZzY29wZWQ9dHJ1ZSZtcFR5cGU9cGFnZVwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiNGMyMzliN2NcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMveGNydy9pbmRleC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///88\n"); /***/ }), /* 89 */ /*!***********************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/xcrw/index.vue?vue&type=template&id=4c239b7c&scoped=true&mpType=page ***! \***********************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=4c239b7c&scoped=true&mpType=page */ 90); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_4c239b7c_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 90 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/xcrw/index.vue?vue&type=template&id=4c239b7c&scoped=true&mpType=page ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uStatusBar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue */ 91) .default, uNavbar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-navbar/u-navbar.vue */ 97) .default, uIcon: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-icon/u-icon.vue */ 100) .default, uDatetimePicker: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue */ 110) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { style: _vm._$s(0, "s", { height: "100vh", overflow: "hidden" }), attrs: { _i: 0 }, }, [ _c("u-status-bar", { attrs: { _i: 1 } }), _c("u-navbar", { attrs: { title: "巡查任务", autoBack: true, titleStyle: { fontSize: "18px", }, height: 44, safeAreaInsetTop: true, leftIconSize: "20", leftIconColor: "rgb(153, 153, 153)", _i: 2, }, }), _c( "view", [ _c( "view", { staticClass: _vm._$s(4, "sc", "time-ranger"), attrs: { _i: 4 } }, [ _c( "view", { staticClass: _vm._$s(5, "sc", "start-time"), attrs: { _i: 5 }, }, [ _c("text"), _c( "text", { attrs: { _i: 7 }, on: { click: function ($event) { _vm.showTime = true }, }, }, [_vm._v(_vm._$s(7, "t0-0", _vm._s(_vm.stm)))] ), ] ), _c( "view", { staticClass: _vm._$s(8, "sc", "end-time"), attrs: { _i: 8 } }, [ _c("text"), _c( "text", { attrs: { _i: 10 }, on: { click: function ($event) { _vm.showTime1 = true }, }, }, [_vm._v(_vm._$s(10, "t0-0", _vm._s(_vm.etm)))] ), _c("view", { staticClass: _vm._$s(11, "sc", "search-btn"), attrs: { _i: 11 }, on: { click: _vm.searchHandle }, }), ] ), ] ), _vm._l( _vm._$s(12, "f", { forItems: _vm.list }), function (item, i, $20, $30) { return _c( "view", { key: _vm._$s(12, "f", { forIndex: $20, key: i }) }, [ _c( "view", { staticClass: _vm._$s("13-" + $30, "sc", "item"), attrs: { _i: "13-" + $30 }, }, [ _c( "view", { staticClass: _vm._$s("14-" + $30, "sc", "title"), attrs: { _i: "14-" + $30 }, }, [ _vm._v( _vm._$s("14-" + $30, "t0-0", _vm._s(item.taskTitle)) ), ] ), _c( "view", { staticClass: _vm._$s("15-" + $30, "sc", "titleRight"), attrs: { _i: "15-" + $30 }, on: { click: function ($event) { return _vm.toDetail(item) }, }, }, [ _c( "view", { staticClass: _vm._$s("16-" + $30, "sc", "border"), attrs: { _i: "16-" + $30 }, }, [ _vm._v( _vm._$s( "16-" + $30, "t0-0", _vm._s( item.status == 1 ? "继续任务" : "开始任务" ) ) ), ] ), _c("u-icon", { attrs: { name: "arrow-right", size: "20", _i: "17-" + $30, }, }), ], 1 ), ] ), _c( "view", { staticClass: _vm._$s("18-" + $30, "sc", "contentItem"), attrs: { _i: "18-" + $30 }, }, [ _c( "view", { staticClass: _vm._$s("19-" + $30, "sc", "itemC"), attrs: { _i: "19-" + $30 }, }, [ _c("text"), _c("text", [ _vm._v( _vm._$s( "21-" + $30, "t0-0", _vm._s(item.startDate) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s("22-" + $30, "sc", "itemC"), attrs: { _i: "22-" + $30 }, }, [ _c("text"), _c("text", [ _vm._v( _vm._$s("24-" + $30, "t0-0", _vm._s(item.endDate)) ), ]), ] ), ] ), ] ) } ), ], 2 ), _c("u-datetime-picker", { attrs: { show: _vm.showTime, mode: "datetime", _i: 25 }, on: { confirm: _vm.handleStartTime, cancel: function ($event) { _vm.showTime = false }, }, model: { value: _vm._$s(25, "v-model", _vm.startTime), callback: function ($$v) { _vm.startTime = $$v }, expression: "startTime", }, }), _c("u-datetime-picker", { attrs: { show: _vm.showTime1, mode: "datetime", _i: 26 }, on: { confirm: _vm.handleEndTime, cancel: function ($event) { _vm.showTime1 = false }, }, model: { value: _vm._$s(26, "v-model", _vm.endTime), callback: function ($$v) { _vm.endTime = $$v }, expression: "endTime", }, }), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 91 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-status-bar.vue?vue&type=template&id=124d52a9&scoped=true& */ 92);\n/* harmony import */ var _u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-status-bar.vue?vue&type=script&lang=js& */ 94);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_status_bar_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 _u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"124d52a9\",\n null,\n false,\n _u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBcUk7QUFDckk7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSxtR0FBTTtBQUNSLEVBQUUsNEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsdUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiOTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3Utc3RhdHVzLWJhci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MTI0ZDUyYTkmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91LXN0YXR1cy1iYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91LXN0YXR1cy1iYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMTI0ZDUyYTlcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXN0YXR1cy1iYXIvdS1zdGF0dXMtYmFyLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///91\n"); /***/ }), /* 92 */ /*!*****************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue?vue&type=template&id=124d52a9&scoped=true& ***! \*****************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-status-bar.vue?vue&type=template&id=124d52a9&scoped=true& */ 93); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_template_id_124d52a9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 93 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue?vue&type=template&id=124d52a9&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "u-status-bar"), style: _vm._$s(0, "s", [_vm.style]), attrs: { _i: 0 }, }, [_vm._t("default", null, { _i: 1 })], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 94 */ /*!***********************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-status-bar.vue?vue&type=script&lang=js& */ 95);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_status_bar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdrQixDQUFnQixra0JBQUcsRUFBQyIsImZpbGUiOiI5NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3Utc3RhdHVzLWJhci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3Utc3RhdHVzLWJhci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///94\n"); /***/ }), /* 95 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 96));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * StatbusBar 状态栏占位\n * @description 本组件主要用于状态填充,比如在自定导航栏的时候,它会自动适配一个恰当的状态栏高度。\n * @tutorial https://uviewui.com/components/statusBar.html\n * @property {String}\t\t\tbgColor\t\t\t背景色 (默认 'transparent' )\n * @property {String | Object}\tcustomStyle\t\t自定义样式 \n * @example \n */\nvar _default = {\n name: 'u-status-bar',\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {};\n },\n computed: {\n style: function style() {\n var style = {};\n // 状态栏高度,由于某些安卓和微信开发工具无法识别css的顶部状态栏变量,所以使用js获取的方式\n style.height = uni.$u.addUnit(uni.$u.sys().statusBarHeight, 'px');\n style.backgroundColor = this.bgColor;\n return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXN0YXR1cy1iYXIvdS1zdGF0dXMtYmFyLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwibWl4aW5zIiwiZGF0YSIsImNvbXB1dGVkIiwic3R5bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFVQTs7Ozs7Ozs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQSxlQVFBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0EsUUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFDQTtNQUNBQTtNQUNBQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiOTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXdcclxuXHQgICAgOnN0eWxlPVwiW3N0eWxlXVwiXHJcblx0ICAgIGNsYXNzPVwidS1zdGF0dXMtYmFyXCJcclxuXHQ+XHJcblx0XHQ8c2xvdCAvPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHByb3BzIGZyb20gJy4vcHJvcHMuanMnO1xyXG5cdC8qKlxyXG5cdCAqIFN0YXRidXNCYXIg54q25oCB5qCP5Y2g5L2NXHJcblx0ICogQGRlc2NyaXB0aW9uIOacrOe7hOS7tuS4u+imgeeUqOS6jueKtuaAgeWhq+WFhe+8jOavlOWmguWcqOiHquWumuWvvOiIquagj+eahOaXtuWAme+8jOWug+S8muiHquWKqOmAgumFjeS4gOS4quaBsOW9k+eahOeKtuaAgeagj+mrmOW6puOAglxyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL3V2aWV3dWkuY29tL2NvbXBvbmVudHMvc3RhdHVzQmFyLmh0bWxcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRiZ0NvbG9yXHRcdFx06IOM5pmv6ImyICjpu5jorqQgJ3RyYW5zcGFyZW50JyApXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBPYmplY3R9XHRjdXN0b21TdHlsZVx0XHToh6rlrprkuYnmoLflvI8gXHJcblx0ICogQGV4YW1wbGUgPHUtc3RhdHVzLWJhcj48L3Utc3RhdHVzLWJhcj5cclxuXHQgKi9cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiAndS1zdGF0dXMtYmFyJyxcclxuXHRcdG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4sIHByb3BzXSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHRzdHlsZSgpIHtcclxuXHRcdFx0XHRjb25zdCBzdHlsZSA9IHt9XHJcblx0XHRcdFx0Ly8g54q25oCB5qCP6auY5bqm77yM55Sx5LqO5p+Q5Lqb5a6J5Y2T5ZKM5b6u5L+h5byA5Y+R5bel5YW35peg5rOV6K+G5YirY3Nz55qE6aG26YOo54q25oCB5qCP5Y+Y6YeP77yM5omA5Lul5L2/55SoanPojrflj5bnmoTmlrnlvI9cclxuXHRcdFx0XHRzdHlsZS5oZWlnaHQgPSB1bmkuJHUuYWRkVW5pdCh1bmkuJHUuc3lzKCkuc3RhdHVzQmFySGVpZ2h0LCAncHgnKVxyXG5cdFx0XHRcdHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuYmdDb2xvclxyXG5cdFx0XHRcdHJldHVybiB1bmkuJHUuZGVlcE1lcmdlKHN0eWxlLCB1bmkuJHUuYWRkU3R5bGUodGhpcy5jdXN0b21TdHlsZSkpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuXHQudS1zdGF0dXMtYmFyIHtcclxuXHRcdC8vIG52dWXkvJrpu5jorqQxMDAl77yM5aaC5p6cbnZ1ZeS4i++8jOaYvuW8j+WGmTEwMCXnmoTor53vvIzkvJrlr7zoh7Tlrr3luqbkuI3kuLoxMDAl6ICM5byC5bi4XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///95\n"); /***/ }), /* 96 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-status-bar/props.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n bgColor: {\n type: String,\n default: uni.$u.props.statusBar.bgColor\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXN0YXR1cy1iYXIvcHJvcHMuanMiXSwibmFtZXMiOlsicHJvcHMiLCJiZ0NvbG9yIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHQiLCJ1bmkiLCIkdSIsInN0YXR1c0JhciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQWU7RUFDWEEsS0FBSyxFQUFFO0lBQ0hDLE9BQU8sRUFBRTtNQUNMQyxJQUFJLEVBQUVDLE1BQU07TUFDWkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxTQUFTLENBQUNOO0lBQ3BDO0VBQ0o7QUFDSixDQUFDO0FBQUEiLCJmaWxlIjoiOTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBwcm9wczoge1xyXG4gICAgICAgIGJnQ29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuc3RhdHVzQmFyLmJnQ29sb3JcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96\n"); /***/ }), /* 97 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-navbar/u-navbar.vue ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-navbar.vue?vue&type=template&id=95dec1ae&scoped=true& */ 98);\n/* harmony import */ var _u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-navbar.vue?vue&type=script&lang=js& */ 107);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_navbar_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 _u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"95dec1ae\",\n null,\n false,\n _u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-navbar/u-navbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiOTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucywgcmVjeWNsYWJsZVJlbmRlciwgY29tcG9uZW50cyB9IGZyb20gXCIuL3UtbmF2YmFyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD05NWRlYzFhZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3UtbmF2YmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdS1uYXZiYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiOTVkZWMxYWVcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LW5hdmJhci91LW5hdmJhci52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///97\n"); /***/ }), /* 98 */ /*!*********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-navbar/u-navbar.vue?vue&type=template&id=95dec1ae&scoped=true& ***! \*********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-navbar.vue?vue&type=template&id=95dec1ae&scoped=true& */ 99); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_template_id_95dec1ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 99 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-navbar/u-navbar.vue?vue&type=template&id=95dec1ae&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uStatusBar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue */ 91) .default, uIcon: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-icon/u-icon.vue */ 100) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "u-navbar"), attrs: { _i: 0 } }, [ _vm._$s(1, "i", _vm.fixed && _vm.placeholder) ? _c("view", { staticClass: _vm._$s(1, "sc", "u-navbar__placeholder"), style: _vm._$s(1, "s", { height: _vm.$u.addUnit( _vm.$u.getPx(_vm.height) + _vm.$u.sys().statusBarHeight, "px" ), }), attrs: { _i: 1 }, }) : _vm._e(), _c( "view", { class: _vm._$s(2, "c", [_vm.fixed && "u-navbar--fixed"]), attrs: { _i: 2 }, }, [ _vm._$s(3, "i", _vm.safeAreaInsetTop) ? _c("u-status-bar", { attrs: { bgColor: _vm.bgColor, _i: 3 } }) : _vm._e(), _c( "view", { staticClass: _vm._$s(4, "sc", "u-navbar__content"), class: _vm._$s(4, "c", [_vm.border && "u-border-bottom"]), style: _vm._$s(4, "s", { height: _vm.$u.addUnit(_vm.height), backgroundColor: _vm.bgColor, }), attrs: { _i: 4 }, }, [ _c( "view", { staticClass: _vm._$s(5, "sc", "u-navbar__content__left"), attrs: { _i: 5 }, on: { click: _vm.leftClick }, }, [ _vm._t( "left", [ _vm._$s(7, "i", _vm.leftIcon) ? _c("u-icon", { attrs: { name: _vm.leftIcon, size: _vm.leftIconSize, color: _vm.leftIconColor, _i: 7, }, }) : _vm._e(), _vm._$s(8, "i", _vm.leftText) ? _c( "text", { staticClass: _vm._$s( 8, "sc", "u-navbar__content__left__text" ), style: _vm._$s(8, "s", { color: _vm.leftIconColor, }), attrs: { _i: 8 }, }, [_vm._v(_vm._$s(8, "t0-0", _vm._s(_vm.leftText)))] ) : _vm._e(), ], { _i: 6 } ), ], 2 ), _vm._t( "center", [ _c( "text", { staticClass: _vm._$s( 10, "sc", "u-line-1 u-navbar__content__title" ), style: _vm._$s(10, "s", [ { width: _vm.$u.addUnit(_vm.titleWidth), }, _vm.$u.addStyle(_vm.titleStyle), ]), attrs: { _i: 10 }, }, [_vm._v(_vm._$s(10, "t0-0", _vm._s(_vm.title)))] ), ], { _i: 9 } ), _vm._$s( 11, "i", _vm.$slots.right || _vm.rightIcon || _vm.rightText ) ? _c( "view", { staticClass: _vm._$s( 11, "sc", "u-navbar__content__right" ), attrs: { _i: 11 }, on: { click: _vm.rightClick }, }, [ _vm._t( "right", [ _vm._$s(13, "i", _vm.rightIcon) ? _c("u-icon", { attrs: { name: _vm.rightIcon, size: "20", _i: 13, }, }) : _vm._e(), _vm._$s(14, "i", _vm.rightText) ? _c( "text", { staticClass: _vm._$s( 14, "sc", "u-navbar__content__right__text" ), attrs: { _i: 14 }, }, [ _vm._v( _vm._$s(14, "t0-0", _vm._s(_vm.rightText)) ), ] ) : _vm._e(), ], { _i: 12 } ), ], 2 ) : _vm._e(), ], 2 ), ], 1 ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 100 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-icon/u-icon.vue ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-icon.vue?vue&type=template&id=2ee87dc9&scoped=true& */ 101);\n/* harmony import */ var _u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-icon.vue?vue&type=script&lang=js& */ 103);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_icon_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 _u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"2ee87dc9\",\n null,\n false,\n _u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-icon/u-icon.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBK0g7QUFDL0g7QUFDMEQ7QUFDTDs7O0FBR3JEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDRFQUFNO0FBQ1IsRUFBRSw2RkFBTTtBQUNSLEVBQUUsc0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsaUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTAwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LWljb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTJlZTg3ZGM5JnNjb3BlZD10cnVlJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdS1pY29uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdS1pY29uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjJlZTg3ZGM5XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1pY29uL3UtaWNvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///100\n"); /***/ }), /* 101 */ /*!*****************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-icon/u-icon.vue?vue&type=template&id=2ee87dc9&scoped=true& ***! \*****************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-icon.vue?vue&type=template&id=2ee87dc9&scoped=true& */ 102); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_template_id_2ee87dc9_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 102 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-icon/u-icon.vue?vue&type=template&id=2ee87dc9&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "u-icon"), class: _vm._$s(0, "c", ["u-icon--" + _vm.labelPos]), attrs: { _i: 0 }, on: { click: _vm.clickHandler }, }, [ _vm._$s(1, "i", _vm.isImg) ? _c("image", { staticClass: _vm._$s(1, "sc", "u-icon__img"), style: _vm._$s(1, "s", [ _vm.imgStyle, _vm.$u.addStyle(_vm.customStyle), ]), attrs: { src: _vm._$s(1, "a-src", _vm.name), mode: _vm._$s(1, "a-mode", _vm.imgMode), _i: 1, }, }) : _c( "text", { staticClass: _vm._$s(2, "sc", "u-icon__icon"), class: _vm._$s(2, "c", _vm.uClasses), style: _vm._$s(2, "s", [ _vm.iconStyle, _vm.$u.addStyle(_vm.customStyle), ]), attrs: { "hover-class": _vm._$s(2, "a-hover-class", _vm.hoverClass), _i: 2, }, }, [_vm._v(_vm._$s(2, "t0-0", _vm._s(_vm.icon)))] ), _vm._$s(3, "i", _vm.label !== "") ? _c( "text", { staticClass: _vm._$s(3, "sc", "u-icon__label"), style: _vm._$s(3, "s", { color: _vm.labelColor, fontSize: _vm.$u.addUnit(_vm.labelSize), marginLeft: _vm.labelPos == "right" ? _vm.$u.addUnit(_vm.space) : 0, marginTop: _vm.labelPos == "bottom" ? _vm.$u.addUnit(_vm.space) : 0, marginRight: _vm.labelPos == "left" ? _vm.$u.addUnit(_vm.space) : 0, marginBottom: _vm.labelPos == "top" ? _vm.$u.addUnit(_vm.space) : 0, }), attrs: { _i: 3 }, }, [_vm._v(_vm._$s(3, "t0-0", _vm._s(_vm.label)))] ) : _vm._e(), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 103 */ /*!***********************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-icon/u-icon.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-icon.vue?vue&type=script&lang=js& */ 104);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTBqQixDQUFnQiw0akJBQUcsRUFBQyIsImZpbGUiOiIxMDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LWljb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LWljb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///103\n"); /***/ }), /* 104 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-icon/u-icon.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _icons = _interopRequireDefault(__webpack_require__(/*! ./icons */ 105));\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 106));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n// 引入图标名称,已经对应的unicode\n\n;\n\n/**\n * icon 图标\n * @description 基于字体的图标集,包含了大多数常见场景的图标。\n * @tutorial https://www.uviewui.com/components/icon.html\n * @property {String}\t\t\tname\t\t\t图标名称,见示例图标集\n * @property {String}\t\t\tcolor\t\t\t图标颜色,可接受主题色 (默认 color['u-content-color'] )\n * @property {String | Number}\tsize\t\t\t图标字体大小,单位px (默认 '16px' )\n * @property {Boolean}\t\t\tbold\t\t\t是否显示粗体 (默认 false )\n * @property {String | Number}\tindex\t\t\t点击图标的时候传递事件出去的index(用于区分点击了哪一个)\n * @property {String}\t\t\thoverClass\t\t图标按下去的样式类,用法同uni的view组件的hoverClass参数,详情见官网\n * @property {String}\t\t\tcustomPrefix\t自定义扩展前缀,方便用户扩展自己的图标库 (默认 'uicon' )\n * @property {String | Number}\tlabel\t\t\t图标右侧的label文字\n * @property {String}\t\t\tlabelPos\t\tlabel相对于图标的位置,只能right或bottom (默认 'right' )\n * @property {String | Number}\tlabelSize\t\tlabel字体大小,单位px (默认 '15px' )\n * @property {String}\t\t\tlabelColor\t\t图标右侧的label文字颜色 ( 默认 color['u-content-color'] )\n * @property {String | Number}\tspace\t\t\tlabel与图标的距离,单位px (默认 '3px' )\n * @property {String}\t\t\timgMode\t\t\t图片的mode\n * @property {String | Number}\twidth\t\t\t显示图片小图标时的宽度\n * @property {String | Number}\theight\t\t\t显示图片小图标时的高度\n * @property {String | Number}\ttop\t\t\t\t图标在垂直方向上的定位 用于解决某些情况下,让图标垂直居中的用途 (默认 0 )\n * @property {Boolean}\t\t\tstop\t\t\t是否阻止事件传播 (默认 false )\n * @property {Object}\t\t\tcustomStyle\t\ticon的样式,对象形式\n * @event {Function} click 点击图标时触发\n * @event {Function} touchstart 事件触摸时触发\n * @example \n */\nvar _default = {\n name: 'u-icon',\n data: function data() {\n return {};\n },\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n computed: {\n uClasses: function uClasses() {\n var classes = [];\n classes.push(this.customPrefix + '-' + this.name);\n // // uView的自定义图标类名为u-iconfont\n // if (this.customPrefix == 'uicon') {\n // \tclasses.push('u-iconfont')\n // } else {\n // \tclasses.push(this.customPrefix)\n // }\n // 主题色,通过类配置\n if (this.color && uni.$u.config.type.includes(this.color)) classes.push('u-icon__icon--' + this.color);\n // 阿里,头条,百度小程序通过数组绑定类名时,无法直接使用[a, b, c]的形式,否则无法识别\n // 故需将其拆成一个字符串的形式,通过空格隔开各个类名\n\n return classes;\n },\n iconStyle: function iconStyle() {\n var style = {};\n style = {\n fontSize: uni.$u.addUnit(this.size),\n lineHeight: uni.$u.addUnit(this.size),\n fontWeight: this.bold ? 'bold' : 'normal',\n // 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中\n top: uni.$u.addUnit(this.top)\n };\n // 非主题色值时,才当作颜色值\n if (this.color && !uni.$u.config.type.includes(this.color)) style.color = this.color;\n return style;\n },\n // 判断传入的name属性,是否图片路径,只要带有\"/\"均认为是图片形式\n isImg: function isImg() {\n return this.name.indexOf('/') !== -1;\n },\n imgStyle: function imgStyle() {\n var style = {};\n // 如果设置width和height属性,则优先使用,否则使用size属性\n style.width = this.width ? uni.$u.addUnit(this.width) : uni.$u.addUnit(this.size);\n style.height = this.height ? uni.$u.addUnit(this.height) : uni.$u.addUnit(this.size);\n return style;\n },\n // 通过图标名,查找对应的图标\n icon: function icon() {\n // 如果内置的图标中找不到对应的图标,就直接返回name值,因为用户可能传入的是unicode代码\n return _icons.default['uicon-' + this.name] || this.name;\n }\n },\n methods: {\n clickHandler: function clickHandler(e) {\n this.$emit('click', this.index);\n // 是否阻止事件冒泡\n this.stop && this.preventEvent(e);\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LWljb24vdS1pY29uLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwiZGF0YSIsIm1peGlucyIsImNvbXB1dGVkIiwidUNsYXNzZXMiLCJjbGFzc2VzIiwiaWNvblN0eWxlIiwic3R5bGUiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJmb250V2VpZ2h0IiwidG9wIiwiaXNJbWciLCJpbWdTdHlsZSIsImljb24iLCJtZXRob2RzIiwiY2xpY2tIYW5kbGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBaURBO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSEE7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXpCQSxlQTBCQTtFQUNBQTtFQUNBQztJQUNBLFFBRUE7RUFDQTtFQUNBQztFQUNBQztJQUNBQztNQUNBO01BQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7O01BSUE7SUFDQTtJQUNBQztNQUNBO01BQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0E7UUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFFQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBTjtNQUNBQTtNQUNBO0lBQ0E7SUFDQTtJQUNBTztNQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3XHJcblx0ICAgIGNsYXNzPVwidS1pY29uXCJcclxuXHQgICAgQHRhcD1cImNsaWNrSGFuZGxlclwiXHJcblx0ICAgIDpjbGFzcz1cIlsndS1pY29uLS0nICsgbGFiZWxQb3NdXCJcclxuXHQ+XHJcblx0XHQ8aW1hZ2VcclxuXHRcdCAgICBjbGFzcz1cInUtaWNvbl9faW1nXCJcclxuXHRcdCAgICB2LWlmPVwiaXNJbWdcIlxyXG5cdFx0ICAgIDpzcmM9XCJuYW1lXCJcclxuXHRcdCAgICA6bW9kZT1cImltZ01vZGVcIlxyXG5cdFx0ICAgIDpzdHlsZT1cIltpbWdTdHlsZSwgJHUuYWRkU3R5bGUoY3VzdG9tU3R5bGUpXVwiXHJcblx0XHQ+PC9pbWFnZT5cclxuXHRcdDx0ZXh0XHJcblx0XHQgICAgdi1lbHNlXHJcblx0XHQgICAgY2xhc3M9XCJ1LWljb25fX2ljb25cIlxyXG5cdFx0ICAgIDpjbGFzcz1cInVDbGFzc2VzXCJcclxuXHRcdCAgICA6c3R5bGU9XCJbaWNvblN0eWxlLCAkdS5hZGRTdHlsZShjdXN0b21TdHlsZSldXCJcclxuXHRcdCAgICA6aG92ZXItY2xhc3M9XCJob3ZlckNsYXNzXCJcclxuXHRcdD57e2ljb259fTwvdGV4dD5cclxuXHRcdDwhLS0g6L+Z6YeM6L+b6KGM56m65a2X56ym5Liy5Yik5pat77yM5aaC5p6c5LuF5LuF5pivdi1pZj1cImxhYmVsXCLvvIzlj6/og73kvJrlh7rnjrDkvKDpgJIw55qE5pe25YCZ77yM57uT5p6c5Lmf5peg5rOV5pi+56S6IC0tPlxyXG5cdFx0PHRleHRcclxuXHRcdCAgICB2LWlmPVwibGFiZWwgIT09ICcnXCIgXHJcblx0XHQgICAgY2xhc3M9XCJ1LWljb25fX2xhYmVsXCJcclxuXHRcdCAgICA6c3R5bGU9XCJ7XHJcblx0XHRcdGNvbG9yOiBsYWJlbENvbG9yLFxyXG5cdFx0XHRmb250U2l6ZTogJHUuYWRkVW5pdChsYWJlbFNpemUpLFxyXG5cdFx0XHRtYXJnaW5MZWZ0OiBsYWJlbFBvcyA9PSAncmlnaHQnID8gJHUuYWRkVW5pdChzcGFjZSkgOiAwLFxyXG5cdFx0XHRtYXJnaW5Ub3A6IGxhYmVsUG9zID09ICdib3R0b20nID8gJHUuYWRkVW5pdChzcGFjZSkgOiAwLFxyXG5cdFx0XHRtYXJnaW5SaWdodDogbGFiZWxQb3MgPT0gJ2xlZnQnID8gJHUuYWRkVW5pdChzcGFjZSkgOiAwLFxyXG5cdFx0XHRtYXJnaW5Cb3R0b206IGxhYmVsUG9zID09ICd0b3AnID8gJHUuYWRkVW5pdChzcGFjZSkgOiAwLFxyXG5cdFx0fVwiXHJcblx0XHQ+e3sgbGFiZWwgfX08L3RleHQ+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHQvLyAjaWZkZWYgQVBQLU5WVUVcclxuXHQvLyBudnVl6YCa6L+Hd2VleOeahGRvbeaooeWdl+W8leWFpeWtl+S9k++8jOebuOWFs+aWh+aho+WcsOWdgOWmguS4i++8mlxyXG5cdC8vIGh0dHBzOi8vd2VleC5hcGFjaGUub3JnL3poL2RvY3MvbW9kdWxlcy9kb20uaHRtbCNhZGRydWxlXHJcblx0Y29uc3QgZm9udFVybCA9ICdodHRwczovL2F0LmFsaWNkbi5jb20vdC9mb250XzIyMjUxNzFfOGtkY3drNHBvMjQudHRmJ1xyXG5cdGNvbnN0IGRvbU1vZHVsZSA9IHdlZXgucmVxdWlyZU1vZHVsZSgnZG9tJylcclxuXHRkb21Nb2R1bGUuYWRkUnVsZSgnZm9udEZhY2UnLCB7XHJcblx0XHQnZm9udEZhbWlseSc6IFwidWljb24taWNvbmZvbnRcIixcclxuXHRcdCdzcmMnOiBgdXJsKCcke2ZvbnRVcmx9JylgXHJcblx0fSlcclxuXHQvLyAjZW5kaWZcclxuXHJcblx0Ly8g5byV5YWl5Zu+5qCH5ZCN56ew77yM5bey57uP5a+55bqU55qEdW5pY29kZVxyXG5cdGltcG9ydCBpY29ucyBmcm9tICcuL2ljb25zJ1xyXG5cdFxyXG5cdGltcG9ydCBwcm9wcyBmcm9tICcuL3Byb3BzLmpzJzs7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGljb24g5Zu+5qCHXHJcblx0ICogQGRlc2NyaXB0aW9uIOWfuuS6juWtl+S9k+eahOWbvuagh+mbhu+8jOWMheWQq+S6huWkp+WkmuaVsOW4uOingeWcuuaZr+eahOWbvuagh+OAglxyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL3d3dy51dmlld3VpLmNvbS9jb21wb25lbnRzL2ljb24uaHRtbFxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdG5hbWVcdFx0XHTlm77moIflkI3np7DvvIzop4HnpLrkvovlm77moIfpm4ZcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRjb2xvclx0XHRcdOWbvuagh+minOiJsizlj6/mjqXlj5fkuLvpopjoibIg77yI6buY6K6kIGNvbG9yWyd1LWNvbnRlbnQtY29sb3InXSDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdHNpemVcdFx0XHTlm77moIflrZfkvZPlpKflsI/vvIzljZXkvY1weCDvvIjpu5jorqQgJzE2cHgnIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRib2xkXHRcdFx05piv5ZCm5pi+56S657KX5L2TIO+8iOm7mOiupCBmYWxzZSDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdGluZGV4XHRcdFx054K55Ye75Zu+5qCH55qE5pe25YCZ5Lyg6YCS5LqL5Lu25Ye65Y6755qEaW5kZXjvvIjnlKjkuo7ljLrliIbngrnlh7vkuoblk6rkuIDkuKrvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRob3ZlckNsYXNzXHRcdOWbvuagh+aMieS4i+WOu+eahOagt+W8j+exu++8jOeUqOazleWQjHVuaeeahHZpZXfnu4Tku7bnmoRob3ZlckNsYXNz5Y+C5pWw77yM6K+m5oOF6KeB5a6Y572RXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0Y3VzdG9tUHJlZml4XHToh6rlrprkuYnmianlsZXliY3nvIDvvIzmlrnkvr/nlKjmiLfmianlsZXoh6rlt7HnmoTlm77moIflupMg77yI6buY6K6kICd1aWNvbicg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRsYWJlbFx0XHRcdOWbvuagh+WPs+S+p+eahGxhYmVs5paH5a2XXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0bGFiZWxQb3NcdFx0bGFiZWznm7jlr7nkuo7lm77moIfnmoTkvY3nva7vvIzlj6rog71yaWdodOaIlmJvdHRvbSDvvIjpu5jorqQgJ3JpZ2h0JyDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdGxhYmVsU2l6ZVx0XHRsYWJlbOWtl+S9k+Wkp+Wwj++8jOWNleS9jXB4IO+8iOm7mOiupCAnMTVweCcg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0bGFiZWxDb2xvclx0XHTlm77moIflj7PkvqfnmoRsYWJlbOaWh+Wtl+minOiJsiDvvIgg6buY6K6kIGNvbG9yWyd1LWNvbnRlbnQtY29sb3InXSDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdHNwYWNlXHRcdFx0bGFiZWzkuI7lm77moIfnmoTot53nprvvvIzljZXkvY1weCDvvIjpu5jorqQgJzNweCcg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0aW1nTW9kZVx0XHRcdOWbvueJh+eahG1vZGVcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdHdpZHRoXHRcdFx05pi+56S65Zu+54mH5bCP5Zu+5qCH5pe255qE5a695bqmXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRoZWlnaHRcdFx0XHTmmL7npLrlm77niYflsI/lm77moIfml7bnmoTpq5jluqZcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdHRvcFx0XHRcdFx05Zu+5qCH5Zyo5Z6C55u05pa55ZCR5LiK55qE5a6a5L2NIOeUqOS6juino+WGs+afkOS6m+aDheWGteS4i++8jOiuqeWbvuagh+WeguebtOWxheS4reeahOeUqOmAlCAg77yI6buY6K6kIDAg77yJXHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdHN0b3BcdFx0XHTmmK/lkKbpmLvmraLkuovku7bkvKDmkq0g77yI6buY6K6kIGZhbHNlIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7T2JqZWN0fVx0XHRcdGN1c3RvbVN0eWxlXHRcdGljb27nmoTmoLflvI/vvIzlr7nosaHlvaLlvI9cclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBjbGljayDngrnlh7vlm77moIfml7bop6blj5FcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSB0b3VjaHN0YXJ0IOS6i+S7tuinpuaRuOaXtuinpuWPkVxyXG5cdCAqIEBleGFtcGxlIDx1LWljb24gbmFtZT1cInBob3RvXCIgY29sb3I9XCIjMjk3OWZmXCIgc2l6ZT1cIjI4XCI+PC91LWljb24+XHJcblx0ICovXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3UtaWNvbicsXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4scHJvcHNdLFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0dUNsYXNzZXMoKSB7XHJcblx0XHRcdFx0bGV0IGNsYXNzZXMgPSBbXVxyXG5cdFx0XHRcdGNsYXNzZXMucHVzaCh0aGlzLmN1c3RvbVByZWZpeCArICctJyArIHRoaXMubmFtZSlcclxuXHRcdFx0XHQvLyAvLyB1Vmlld+eahOiHquWumuS5ieWbvuagh+exu+WQjeS4unUtaWNvbmZvbnRcclxuXHRcdFx0XHQvLyBpZiAodGhpcy5jdXN0b21QcmVmaXggPT0gJ3VpY29uJykge1xyXG5cdFx0XHRcdC8vIFx0Y2xhc3Nlcy5wdXNoKCd1LWljb25mb250JylcclxuXHRcdFx0XHQvLyB9IGVsc2Uge1xyXG5cdFx0XHRcdC8vIFx0Y2xhc3Nlcy5wdXNoKHRoaXMuY3VzdG9tUHJlZml4KVxyXG5cdFx0XHRcdC8vIH1cclxuXHRcdFx0XHQvLyDkuLvpopjoibLvvIzpgJrov4fnsbvphY3nva5cclxuXHRcdFx0XHRpZiAodGhpcy5jb2xvciAmJiB1bmkuJHUuY29uZmlnLnR5cGUuaW5jbHVkZXModGhpcy5jb2xvcikpIGNsYXNzZXMucHVzaCgndS1pY29uX19pY29uLS0nICsgdGhpcy5jb2xvcilcclxuXHRcdFx0XHQvLyDpmL/ph4zvvIzlpLTmnaHvvIznmb7luqblsI/nqIvluo/pgJrov4fmlbDnu4Tnu5HlrprnsbvlkI3ml7bvvIzml6Dms5Xnm7TmjqXkvb/nlKhbYSwgYiwgY13nmoTlvaLlvI/vvIzlkKbliJnml6Dms5Xor4bliKtcclxuXHRcdFx0XHQvLyDmlYXpnIDlsIblhbbmi4bmiJDkuIDkuKrlrZfnrKbkuLLnmoTlvaLlvI/vvIzpgJrov4fnqbrmoLzpmpTlvIDlkITkuKrnsbvlkI1cclxuXHRcdFx0XHQvLyNpZmRlZiBNUC1BTElQQVkgfHwgTVAtVE9VVElBTyB8fCBNUC1CQUlEVVxyXG5cdFx0XHRcdGNsYXNzZXMgPSBjbGFzc2VzLmpvaW4oJyAnKVxyXG5cdFx0XHRcdC8vI2VuZGlmXHJcblx0XHRcdFx0cmV0dXJuIGNsYXNzZXNcclxuXHRcdFx0fSxcclxuXHRcdFx0aWNvblN0eWxlKCkge1xyXG5cdFx0XHRcdGxldCBzdHlsZSA9IHt9XHJcblx0XHRcdFx0c3R5bGUgPSB7XHJcblx0XHRcdFx0XHRmb250U2l6ZTogdW5pLiR1LmFkZFVuaXQodGhpcy5zaXplKSxcclxuXHRcdFx0XHRcdGxpbmVIZWlnaHQ6IHVuaS4kdS5hZGRVbml0KHRoaXMuc2l6ZSksXHJcblx0XHRcdFx0XHRmb250V2VpZ2h0OiB0aGlzLmJvbGQgPyAnYm9sZCcgOiAnbm9ybWFsJyxcclxuXHRcdFx0XHRcdC8vIOafkOS6m+eJueauiuaDheWGtemcgOimgeiuvue9ruS4gOS4quWIsOmhtumDqOeahOi3neemu++8jOaJjeiDveabtOWlveeahOWeguebtOWxheS4rVxyXG5cdFx0XHRcdFx0dG9wOiB1bmkuJHUuYWRkVW5pdCh0aGlzLnRvcClcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8g6Z2e5Li76aKY6Imy5YC85pe277yM5omN5b2T5L2c6aKc6Imy5YC8XHJcblx0XHRcdFx0aWYgKHRoaXMuY29sb3IgJiYgIXVuaS4kdS5jb25maWcudHlwZS5pbmNsdWRlcyh0aGlzLmNvbG9yKSkgc3R5bGUuY29sb3IgPSB0aGlzLmNvbG9yXHJcblxyXG5cdFx0XHRcdHJldHVybiBzdHlsZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDliKTmlq3kvKDlhaXnmoRuYW1l5bGe5oCn77yM5piv5ZCm5Zu+54mH6Lev5b6E77yM5Y+q6KaB5bim5pyJXCIvXCLlnYforqTkuLrmmK/lm77niYflvaLlvI9cclxuXHRcdFx0aXNJbWcoKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMubmFtZS5pbmRleE9mKCcvJykgIT09IC0xXHJcblx0XHRcdH0sXHJcblx0XHRcdGltZ1N0eWxlKCkge1xyXG5cdFx0XHRcdGxldCBzdHlsZSA9IHt9XHJcblx0XHRcdFx0Ly8g5aaC5p6c6K6+572ud2lkdGjlkoxoZWlnaHTlsZ7mgKfvvIzliJnkvJjlhYjkvb/nlKjvvIzlkKbliJnkvb/nlKhzaXpl5bGe5oCnXHJcblx0XHRcdFx0c3R5bGUud2lkdGggPSB0aGlzLndpZHRoID8gdW5pLiR1LmFkZFVuaXQodGhpcy53aWR0aCkgOiB1bmkuJHUuYWRkVW5pdCh0aGlzLnNpemUpXHJcblx0XHRcdFx0c3R5bGUuaGVpZ2h0ID0gdGhpcy5oZWlnaHQgPyB1bmkuJHUuYWRkVW5pdCh0aGlzLmhlaWdodCkgOiB1bmkuJHUuYWRkVW5pdCh0aGlzLnNpemUpXHJcblx0XHRcdFx0cmV0dXJuIHN0eWxlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOmAmui/h+Wbvuagh+WQje+8jOafpeaJvuWvueW6lOeahOWbvuagh1xyXG5cdFx0XHRpY29uKCkge1xyXG5cdFx0XHRcdC8vIOWmguaenOWGhee9rueahOWbvuagh+S4reaJvuS4jeWIsOWvueW6lOeahOWbvuagh++8jOWwseebtOaOpei/lOWbnm5hbWXlgLzvvIzlm6DkuLrnlKjmiLflj6/og73kvKDlhaXnmoTmmK91bmljb2Rl5Luj56CBXHJcblx0XHRcdFx0cmV0dXJuIGljb25zWyd1aWNvbi0nICsgdGhpcy5uYW1lXSB8fCB0aGlzLm5hbWVcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0Y2xpY2tIYW5kbGVyKGUpIHtcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdjbGljaycsIHRoaXMuaW5kZXgpXHJcblx0XHRcdFx0Ly8g5piv5ZCm6Zi75q2i5LqL5Lu25YaS5rOhXHJcblx0XHRcdFx0dGhpcy5zdG9wICYmIHRoaXMucHJldmVudEV2ZW50KGUpXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdEBpbXBvcnQgXCIuLi8uLi9saWJzL2Nzcy9jb21wb25lbnRzLnNjc3NcIjtcclxuXHJcblx0Ly8g5Y+Y6YeP5a6a5LmJXHJcblx0JHUtaWNvbi1wcmltYXJ5OiAkdS1wcmltYXJ5ICFkZWZhdWx0O1xyXG5cdCR1LWljb24tc3VjY2VzczogJHUtc3VjY2VzcyAhZGVmYXVsdDtcclxuXHQkdS1pY29uLWluZm86ICR1LWluZm8gIWRlZmF1bHQ7XHJcblx0JHUtaWNvbi13YXJuaW5nOiAkdS13YXJuaW5nICFkZWZhdWx0O1xyXG5cdCR1LWljb24tZXJyb3I6ICR1LWVycm9yICFkZWZhdWx0O1xyXG5cdCR1LWljb24tbGFiZWwtbGluZS1oZWlnaHQ6MSAhZGVmYXVsdDtcclxuXHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdC8vIOmdnm52dWXkuIvliqDovb3lrZfkvZNcclxuXHRAZm9udC1mYWNlIHtcclxuXHRcdGZvbnQtZmFtaWx5OiAndWljb24taWNvbmZvbnQnO1xyXG5cdFx0c3JjOiB1cmwoJ2h0dHBzOi8vYXQuYWxpY2RuLmNvbS90L2ZvbnRfMjIyNTE3MV84a2Rjd2s0cG8yNC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcblx0fVxyXG5cclxuXHQvKiAjZW5kaWYgKi9cclxuXHJcblx0LnUtaWNvbiB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuXHRcdCYtLWxlZnQge1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji0tcmlnaHQge1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYtLXRvcCB7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji0tYm90dG9tIHtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9faWNvbiB7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiB1aWNvbi1pY29uZm9udDtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRAaW5jbHVkZSBmbGV4O1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuXHRcdFx0Ji0tcHJpbWFyeSB7XHJcblx0XHRcdFx0Y29sb3I6ICR1LWljb24tcHJpbWFyeTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji0tc3VjY2VzcyB7XHJcblx0XHRcdFx0Y29sb3I6ICR1LWljb24tc3VjY2VzcztcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji0tZXJyb3Ige1xyXG5cdFx0XHRcdGNvbG9yOiAkdS1pY29uLWVycm9yO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS13YXJuaW5nIHtcclxuXHRcdFx0XHRjb2xvcjogJHUtaWNvbi13YXJuaW5nO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS1pbmZvIHtcclxuXHRcdFx0XHRjb2xvcjogJHUtaWNvbi1pbmZvO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9faW1nIHtcclxuXHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRcdHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2xhYmVsIHtcclxuXHRcdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRsaW5lLWhlaWdodDogJHUtaWNvbi1sYWJlbC1saW5lLWhlaWdodDtcclxuXHRcdFx0LyogI2VuZGlmICovXHJcblx0XHR9XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///104\n"); /***/ }), /* 105 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-icon/icons.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n 'uicon-level': \"\\uE693\",\n 'uicon-column-line': \"\\uE68E\",\n 'uicon-checkbox-mark': \"\\uE807\",\n 'uicon-folder': \"\\uE7F5\",\n 'uicon-movie': \"\\uE7F6\",\n 'uicon-star-fill': \"\\uE669\",\n 'uicon-star': \"\\uE65F\",\n 'uicon-phone-fill': \"\\uE64F\",\n 'uicon-phone': \"\\uE622\",\n 'uicon-apple-fill': \"\\uE881\",\n 'uicon-chrome-circle-fill': \"\\uE885\",\n 'uicon-backspace': \"\\uE67B\",\n 'uicon-attach': \"\\uE632\",\n 'uicon-cut': \"\\uE948\",\n 'uicon-empty-car': \"\\uE602\",\n 'uicon-empty-coupon': \"\\uE682\",\n 'uicon-empty-address': \"\\uE646\",\n 'uicon-empty-favor': \"\\uE67C\",\n 'uicon-empty-permission': \"\\uE686\",\n 'uicon-empty-news': \"\\uE687\",\n 'uicon-empty-search': \"\\uE664\",\n 'uicon-github-circle-fill': \"\\uE887\",\n 'uicon-rmb': \"\\uE608\",\n 'uicon-person-delete-fill': \"\\uE66A\",\n 'uicon-reload': \"\\uE788\",\n 'uicon-order': \"\\uE68F\",\n 'uicon-server-man': \"\\uE6BC\",\n 'uicon-search': \"\\uE62A\",\n 'uicon-fingerprint': \"\\uE955\",\n 'uicon-more-dot-fill': \"\\uE630\",\n 'uicon-scan': \"\\uE662\",\n 'uicon-share-square': \"\\uE60B\",\n 'uicon-map': \"\\uE61D\",\n 'uicon-map-fill': \"\\uE64E\",\n 'uicon-tags': \"\\uE629\",\n 'uicon-tags-fill': \"\\uE651\",\n 'uicon-bookmark-fill': \"\\uE63B\",\n 'uicon-bookmark': \"\\uE60A\",\n 'uicon-eye': \"\\uE613\",\n 'uicon-eye-fill': \"\\uE641\",\n 'uicon-mic': \"\\uE64A\",\n 'uicon-mic-off': \"\\uE649\",\n 'uicon-calendar': \"\\uE66E\",\n 'uicon-calendar-fill': \"\\uE634\",\n 'uicon-trash': \"\\uE623\",\n 'uicon-trash-fill': \"\\uE658\",\n 'uicon-play-left': \"\\uE66D\",\n 'uicon-play-right': \"\\uE610\",\n 'uicon-minus': \"\\uE618\",\n 'uicon-plus': \"\\uE62D\",\n 'uicon-info': \"\\uE653\",\n 'uicon-info-circle': \"\\uE7D2\",\n 'uicon-info-circle-fill': \"\\uE64B\",\n 'uicon-question': \"\\uE715\",\n 'uicon-error': \"\\uE6D3\",\n 'uicon-close': \"\\uE685\",\n 'uicon-checkmark': \"\\uE6A8\",\n 'uicon-android-circle-fill': \"\\uE67E\",\n 'uicon-android-fill': \"\\uE67D\",\n 'uicon-ie': \"\\uE87B\",\n 'uicon-IE-circle-fill': \"\\uE889\",\n 'uicon-google': \"\\uE87A\",\n 'uicon-google-circle-fill': \"\\uE88A\",\n 'uicon-setting-fill': \"\\uE872\",\n 'uicon-setting': \"\\uE61F\",\n 'uicon-minus-square-fill': \"\\uE855\",\n 'uicon-plus-square-fill': \"\\uE856\",\n 'uicon-heart': \"\\uE7DF\",\n 'uicon-heart-fill': \"\\uE851\",\n 'uicon-camera': \"\\uE7D7\",\n 'uicon-camera-fill': \"\\uE870\",\n 'uicon-more-circle': \"\\uE63E\",\n 'uicon-more-circle-fill': \"\\uE645\",\n 'uicon-chat': \"\\uE620\",\n 'uicon-chat-fill': \"\\uE61E\",\n 'uicon-bag-fill': \"\\uE617\",\n 'uicon-bag': \"\\uE619\",\n 'uicon-error-circle-fill': \"\\uE62C\",\n 'uicon-error-circle': \"\\uE624\",\n 'uicon-close-circle': \"\\uE63F\",\n 'uicon-close-circle-fill': \"\\uE637\",\n 'uicon-checkmark-circle': \"\\uE63D\",\n 'uicon-checkmark-circle-fill': \"\\uE635\",\n 'uicon-question-circle-fill': \"\\uE666\",\n 'uicon-question-circle': \"\\uE625\",\n 'uicon-share': \"\\uE631\",\n 'uicon-share-fill': \"\\uE65E\",\n 'uicon-shopping-cart': \"\\uE621\",\n 'uicon-shopping-cart-fill': \"\\uE65D\",\n 'uicon-bell': \"\\uE609\",\n 'uicon-bell-fill': \"\\uE640\",\n 'uicon-list': \"\\uE650\",\n 'uicon-list-dot': \"\\uE616\",\n 'uicon-zhihu': \"\\uE6BA\",\n 'uicon-zhihu-circle-fill': \"\\uE709\",\n 'uicon-zhifubao': \"\\uE6B9\",\n 'uicon-zhifubao-circle-fill': \"\\uE6B8\",\n 'uicon-weixin-circle-fill': \"\\uE6B1\",\n 'uicon-weixin-fill': \"\\uE6B2\",\n 'uicon-twitter-circle-fill': \"\\uE6AB\",\n 'uicon-twitter': \"\\uE6AA\",\n 'uicon-taobao-circle-fill': \"\\uE6A7\",\n 'uicon-taobao': \"\\uE6A6\",\n 'uicon-weibo-circle-fill': \"\\uE6A5\",\n 'uicon-weibo': \"\\uE6A4\",\n 'uicon-qq-fill': \"\\uE6A1\",\n 'uicon-qq-circle-fill': \"\\uE6A0\",\n 'uicon-moments-circel-fill': \"\\uE69A\",\n 'uicon-moments': \"\\uE69B\",\n 'uicon-qzone': \"\\uE695\",\n 'uicon-qzone-circle-fill': \"\\uE696\",\n 'uicon-baidu-circle-fill': \"\\uE680\",\n 'uicon-baidu': \"\\uE681\",\n 'uicon-facebook-circle-fill': \"\\uE68A\",\n 'uicon-facebook': \"\\uE689\",\n 'uicon-car': \"\\uE60C\",\n 'uicon-car-fill': \"\\uE636\",\n 'uicon-warning-fill': \"\\uE64D\",\n 'uicon-warning': \"\\uE694\",\n 'uicon-clock-fill': \"\\uE638\",\n 'uicon-clock': \"\\uE60F\",\n 'uicon-edit-pen': \"\\uE612\",\n 'uicon-edit-pen-fill': \"\\uE66B\",\n 'uicon-email': \"\\uE611\",\n 'uicon-email-fill': \"\\uE642\",\n 'uicon-minus-circle': \"\\uE61B\",\n 'uicon-minus-circle-fill': \"\\uE652\",\n 'uicon-plus-circle': \"\\uE62E\",\n 'uicon-plus-circle-fill': \"\\uE661\",\n 'uicon-file-text': \"\\uE663\",\n 'uicon-file-text-fill': \"\\uE665\",\n 'uicon-pushpin': \"\\uE7E3\",\n 'uicon-pushpin-fill': \"\\uE86E\",\n 'uicon-grid': \"\\uE673\",\n 'uicon-grid-fill': \"\\uE678\",\n 'uicon-play-circle': \"\\uE647\",\n 'uicon-play-circle-fill': \"\\uE655\",\n 'uicon-pause-circle-fill': \"\\uE654\",\n 'uicon-pause': \"\\uE8FA\",\n 'uicon-pause-circle': \"\\uE643\",\n 'uicon-eye-off': \"\\uE648\",\n 'uicon-eye-off-outline': \"\\uE62B\",\n 'uicon-gift-fill': \"\\uE65C\",\n 'uicon-gift': \"\\uE65B\",\n 'uicon-rmb-circle-fill': \"\\uE657\",\n 'uicon-rmb-circle': \"\\uE677\",\n 'uicon-kefu-ermai': \"\\uE656\",\n 'uicon-server-fill': \"\\uE751\",\n 'uicon-coupon-fill': \"\\uE8C4\",\n 'uicon-coupon': \"\\uE8AE\",\n 'uicon-integral': \"\\uE704\",\n 'uicon-integral-fill': \"\\uE703\",\n 'uicon-home-fill': \"\\uE964\",\n 'uicon-home': \"\\uE965\",\n 'uicon-hourglass-half-fill': \"\\uE966\",\n 'uicon-hourglass': \"\\uE967\",\n 'uicon-account': \"\\uE628\",\n 'uicon-plus-people-fill': \"\\uE626\",\n 'uicon-minus-people-fill': \"\\uE615\",\n 'uicon-account-fill': \"\\uE614\",\n 'uicon-thumb-down-fill': \"\\uE726\",\n 'uicon-thumb-down': \"\\uE727\",\n 'uicon-thumb-up': \"\\uE733\",\n 'uicon-thumb-up-fill': \"\\uE72F\",\n 'uicon-lock-fill': \"\\uE979\",\n 'uicon-lock-open': \"\\uE973\",\n 'uicon-lock-opened-fill': \"\\uE974\",\n 'uicon-lock': \"\\uE97A\",\n 'uicon-red-packet-fill': \"\\uE690\",\n 'uicon-photo-fill': \"\\uE98B\",\n 'uicon-photo': \"\\uE98D\",\n 'uicon-volume-off-fill': \"\\uE659\",\n 'uicon-volume-off': \"\\uE644\",\n 'uicon-volume-fill': \"\\uE670\",\n 'uicon-volume': \"\\uE633\",\n 'uicon-red-packet': \"\\uE691\",\n 'uicon-download': \"\\uE63C\",\n 'uicon-arrow-up-fill': \"\\uE6B0\",\n 'uicon-arrow-down-fill': \"\\uE600\",\n 'uicon-play-left-fill': \"\\uE675\",\n 'uicon-play-right-fill': \"\\uE676\",\n 'uicon-rewind-left-fill': \"\\uE679\",\n 'uicon-rewind-right-fill': \"\\uE67A\",\n 'uicon-arrow-downward': \"\\uE604\",\n 'uicon-arrow-leftward': \"\\uE601\",\n 'uicon-arrow-rightward': \"\\uE603\",\n 'uicon-arrow-upward': \"\\uE607\",\n 'uicon-arrow-down': \"\\uE60D\",\n 'uicon-arrow-right': \"\\uE605\",\n 'uicon-arrow-left': \"\\uE60E\",\n 'uicon-arrow-up': \"\\uE606\",\n 'uicon-skip-back-left': \"\\uE674\",\n 'uicon-skip-forward-right': \"\\uE672\",\n 'uicon-rewind-right': \"\\uE66F\",\n 'uicon-rewind-left': \"\\uE671\",\n 'uicon-arrow-right-double': \"\\uE68D\",\n 'uicon-arrow-left-double': \"\\uE68C\",\n 'uicon-wifi-off': \"\\uE668\",\n 'uicon-wifi': \"\\uE667\",\n 'uicon-empty-data': \"\\uE62F\",\n 'uicon-empty-history': \"\\uE684\",\n 'uicon-empty-list': \"\\uE68B\",\n 'uicon-empty-page': \"\\uE627\",\n 'uicon-empty-order': \"\\uE639\",\n 'uicon-man': \"\\uE697\",\n 'uicon-woman': \"\\uE69C\",\n 'uicon-man-add': \"\\uE61C\",\n 'uicon-man-add-fill': \"\\uE64C\",\n 'uicon-man-delete': \"\\uE61A\",\n 'uicon-man-delete-fill': \"\\uE66A\",\n 'uicon-zh': \"\\uE70A\",\n 'uicon-en': \"\\uE692\"\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LWljb24vaWNvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQWU7RUFDWCxhQUFhLEVBQUUsUUFBUTtFQUN2QixtQkFBbUIsRUFBRSxRQUFRO0VBQzdCLHFCQUFxQixFQUFFLFFBQVE7RUFDL0IsY0FBYyxFQUFFLFFBQVE7RUFDeEIsYUFBYSxFQUFFLFFBQVE7RUFDdkIsaUJBQWlCLEVBQUUsUUFBUTtFQUMzQixZQUFZLEVBQUUsUUFBUTtFQUN0QixrQkFBa0IsRUFBRSxRQUFRO0VBQzVCLGFBQWEsRUFBRSxRQUFRO0VBQ3ZCLGtCQUFrQixFQUFFLFFBQVE7RUFDNUIsMEJBQTBCLEVBQUUsUUFBUTtFQUNwQyxpQkFBaUIsRUFBRSxRQUFRO0VBQzNCLGNBQWMsRUFBRSxRQUFRO0VBQ3hCLFdBQVcsRUFBRSxRQUFRO0VBQ3JCLGlCQUFpQixFQUFFLFFBQVE7RUFDM0Isb0JBQW9CLEVBQUUsUUFBUTtFQUM5QixxQkFBcUIsRUFBRSxRQUFRO0VBQy9CLG1CQUFtQixFQUFFLFFBQVE7RUFDN0Isd0JBQXdCLEVBQUUsUUFBUTtFQUNsQyxrQkFBa0IsRUFBRSxRQUFRO0VBQzVCLG9CQUFvQixFQUFFLFFBQVE7RUFDOUIsMEJBQTBCLEVBQUUsUUFBUTtFQUNwQyxXQUFXLEVBQUUsUUFBUTtFQUNyQiwwQkFBMEIsRUFBRSxRQUFRO0VBQ3BDLGNBQWMsRUFBRSxRQUFRO0VBQ3hCLGFBQWEsRUFBRSxRQUFRO0VBQ3ZCLGtCQUFrQixFQUFFLFFBQVE7RUFDNUIsY0FBYyxFQUFFLFFBQVE7RUFDeEIsbUJBQW1CLEVBQUUsUUFBUTtFQUM3QixxQkFBcUIsRUFBRSxRQUFRO0VBQy9CLFlBQVksRUFBRSxRQUFRO0VBQ3RCLG9CQUFvQixFQUFFLFFBQVE7RUFDOUIsV0FBVyxFQUFFLFFBQVE7RUFDckIsZ0JBQWdCLEVBQUUsUUFBUTtFQUMxQixZQUFZLEVBQUUsUUFBUTtFQUN0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QUEwQixFQUFFLFFBQVE7RUFDcEMseUJBQXlCLEVBQUUsUUFBUTtFQUNuQyxnQkFBZ0IsRUFBRSxRQUFRO0VBQzFCLFlBQVksRUFBRSxRQUFRO0VBQ3RCLGtCQUFrQixFQUFFLFFBQVE7RUFDNUIscUJBQXFCLEVBQUUsUUFBUTtFQUMvQixrQkFBa0IsRUFBRSxRQUFRO0VBQzVCLGtCQUFrQixFQUFFLFFBQVE7RUFDNUIsbUJBQW1CLEVBQUUsUUFBUTtFQUM3QixXQUFXLEVBQUUsUUFBUTtFQUNyQixhQUFhLEVBQUUsUUFBUTtFQUN2QixlQUFlLEVBQUUsUUFBUTtFQUN6QixvQkFBb0IsRUFBRSxRQUFRO0VBQzlCLGtCQUFrQixFQUFFLFFBQVE7RUFDNUIsdUJBQXVCLEVBQUUsUUFBUTtFQUNqQyxVQUFVLEVBQUUsUUFBUTtFQUNwQixVQUFVLEVBQUU7QUFDaEIsQ0FBQztBQUFBIiwiZmlsZSI6IjEwNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICAgICd1aWNvbi1sZXZlbCc6ICdcXHVlNjkzJyxcclxuICAgICd1aWNvbi1jb2x1bW4tbGluZSc6ICdcXHVlNjhlJyxcclxuICAgICd1aWNvbi1jaGVja2JveC1tYXJrJzogJ1xcdWU4MDcnLFxyXG4gICAgJ3VpY29uLWZvbGRlcic6ICdcXHVlN2Y1JyxcclxuICAgICd1aWNvbi1tb3ZpZSc6ICdcXHVlN2Y2JyxcclxuICAgICd1aWNvbi1zdGFyLWZpbGwnOiAnXFx1ZTY2OScsXHJcbiAgICAndWljb24tc3Rhcic6ICdcXHVlNjVmJyxcclxuICAgICd1aWNvbi1waG9uZS1maWxsJzogJ1xcdWU2NGYnLFxyXG4gICAgJ3VpY29uLXBob25lJzogJ1xcdWU2MjInLFxyXG4gICAgJ3VpY29uLWFwcGxlLWZpbGwnOiAnXFx1ZTg4MScsXHJcbiAgICAndWljb24tY2hyb21lLWNpcmNsZS1maWxsJzogJ1xcdWU4ODUnLFxyXG4gICAgJ3VpY29uLWJhY2tzcGFjZSc6ICdcXHVlNjdiJyxcclxuICAgICd1aWNvbi1hdHRhY2gnOiAnXFx1ZTYzMicsXHJcbiAgICAndWljb24tY3V0JzogJ1xcdWU5NDgnLFxyXG4gICAgJ3VpY29uLWVtcHR5LWNhcic6ICdcXHVlNjAyJyxcclxuICAgICd1aWNvbi1lbXB0eS1jb3Vwb24nOiAnXFx1ZTY4MicsXHJcbiAgICAndWljb24tZW1wdHktYWRkcmVzcyc6ICdcXHVlNjQ2JyxcclxuICAgICd1aWNvbi1lbXB0eS1mYXZvcic6ICdcXHVlNjdjJyxcclxuICAgICd1aWNvbi1lbXB0eS1wZXJtaXNzaW9uJzogJ1xcdWU2ODYnLFxyXG4gICAgJ3VpY29uLWVtcHR5LW5ld3MnOiAnXFx1ZTY4NycsXHJcbiAgICAndWljb24tZW1wdHktc2VhcmNoJzogJ1xcdWU2NjQnLFxyXG4gICAgJ3VpY29uLWdpdGh1Yi1jaXJjbGUtZmlsbCc6ICdcXHVlODg3JyxcclxuICAgICd1aWNvbi1ybWInOiAnXFx1ZTYwOCcsXHJcbiAgICAndWljb24tcGVyc29uLWRlbGV0ZS1maWxsJzogJ1xcdWU2NmEnLFxyXG4gICAgJ3VpY29uLXJlbG9hZCc6ICdcXHVlNzg4JyxcclxuICAgICd1aWNvbi1vcmRlcic6ICdcXHVlNjhmJyxcclxuICAgICd1aWNvbi1zZXJ2ZXItbWFuJzogJ1xcdWU2YmMnLFxyXG4gICAgJ3VpY29uLXNlYXJjaCc6ICdcXHVlNjJhJyxcclxuICAgICd1aWNvbi1maW5nZXJwcmludCc6ICdcXHVlOTU1JyxcclxuICAgICd1aWNvbi1tb3JlLWRvdC1maWxsJzogJ1xcdWU2MzAnLFxyXG4gICAgJ3VpY29uLXNjYW4nOiAnXFx1ZTY2MicsXHJcbiAgICAndWljb24tc2hhcmUtc3F1YXJlJzogJ1xcdWU2MGInLFxyXG4gICAgJ3VpY29uLW1hcCc6ICdcXHVlNjFkJyxcclxuICAgICd1aWNvbi1tYXAtZmlsbCc6ICdcXHVlNjRlJyxcclxuICAgICd1aWNvbi10YWdzJzogJ1xcdWU2MjknLFxyXG4gICAgJ3VpY29uLXRhZ3MtZmlsbCc6ICdcXHVlNjUxJyxcclxuICAgICd1aWNvbi1ib29rbWFyay1maWxsJzogJ1xcdWU2M2InLFxyXG4gICAgJ3VpY29uLWJvb2ttYXJrJzogJ1xcdWU2MGEnLFxyXG4gICAgJ3VpY29uLWV5ZSc6ICdcXHVlNjEzJyxcclxuICAgICd1aWNvbi1leWUtZmlsbCc6ICdcXHVlNjQxJyxcclxuICAgICd1aWNvbi1taWMnOiAnXFx1ZTY0YScsXHJcbiAgICAndWljb24tbWljLW9mZic6ICdcXHVlNjQ5JyxcclxuICAgICd1aWNvbi1jYWxlbmRhcic6ICdcXHVlNjZlJyxcclxuICAgICd1aWNvbi1jYWxlbmRhci1maWxsJzogJ1xcdWU2MzQnLFxyXG4gICAgJ3VpY29uLXRyYXNoJzogJ1xcdWU2MjMnLFxyXG4gICAgJ3VpY29uLXRyYXNoLWZpbGwnOiAnXFx1ZTY1OCcsXHJcbiAgICAndWljb24tcGxheS1sZWZ0JzogJ1xcdWU2NmQnLFxyXG4gICAgJ3VpY29uLXBsYXktcmlnaHQnOiAnXFx1ZTYxMCcsXHJcbiAgICAndWljb24tbWludXMnOiAnXFx1ZTYxOCcsXHJcbiAgICAndWljb24tcGx1cyc6ICdcXHVlNjJkJyxcclxuICAgICd1aWNvbi1pbmZvJzogJ1xcdWU2NTMnLFxyXG4gICAgJ3VpY29uLWluZm8tY2lyY2xlJzogJ1xcdWU3ZDInLFxyXG4gICAgJ3VpY29uLWluZm8tY2lyY2xlLWZpbGwnOiAnXFx1ZTY0YicsXHJcbiAgICAndWljb24tcXVlc3Rpb24nOiAnXFx1ZTcxNScsXHJcbiAgICAndWljb24tZXJyb3InOiAnXFx1ZTZkMycsXHJcbiAgICAndWljb24tY2xvc2UnOiAnXFx1ZTY4NScsXHJcbiAgICAndWljb24tY2hlY2ttYXJrJzogJ1xcdWU2YTgnLFxyXG4gICAgJ3VpY29uLWFuZHJvaWQtY2lyY2xlLWZpbGwnOiAnXFx1ZTY3ZScsXHJcbiAgICAndWljb24tYW5kcm9pZC1maWxsJzogJ1xcdWU2N2QnLFxyXG4gICAgJ3VpY29uLWllJzogJ1xcdWU4N2InLFxyXG4gICAgJ3VpY29uLUlFLWNpcmNsZS1maWxsJzogJ1xcdWU4ODknLFxyXG4gICAgJ3VpY29uLWdvb2dsZSc6ICdcXHVlODdhJyxcclxuICAgICd1aWNvbi1nb29nbGUtY2lyY2xlLWZpbGwnOiAnXFx1ZTg4YScsXHJcbiAgICAndWljb24tc2V0dGluZy1maWxsJzogJ1xcdWU4NzInLFxyXG4gICAgJ3VpY29uLXNldHRpbmcnOiAnXFx1ZTYxZicsXHJcbiAgICAndWljb24tbWludXMtc3F1YXJlLWZpbGwnOiAnXFx1ZTg1NScsXHJcbiAgICAndWljb24tcGx1cy1zcXVhcmUtZmlsbCc6ICdcXHVlODU2JyxcclxuICAgICd1aWNvbi1oZWFydCc6ICdcXHVlN2RmJyxcclxuICAgICd1aWNvbi1oZWFydC1maWxsJzogJ1xcdWU4NTEnLFxyXG4gICAgJ3VpY29uLWNhbWVyYSc6ICdcXHVlN2Q3JyxcclxuICAgICd1aWNvbi1jYW1lcmEtZmlsbCc6ICdcXHVlODcwJyxcclxuICAgICd1aWNvbi1tb3JlLWNpcmNsZSc6ICdcXHVlNjNlJyxcclxuICAgICd1aWNvbi1tb3JlLWNpcmNsZS1maWxsJzogJ1xcdWU2NDUnLFxyXG4gICAgJ3VpY29uLWNoYXQnOiAnXFx1ZTYyMCcsXHJcbiAgICAndWljb24tY2hhdC1maWxsJzogJ1xcdWU2MWUnLFxyXG4gICAgJ3VpY29uLWJhZy1maWxsJzogJ1xcdWU2MTcnLFxyXG4gICAgJ3VpY29uLWJhZyc6ICdcXHVlNjE5JyxcclxuICAgICd1aWNvbi1lcnJvci1jaXJjbGUtZmlsbCc6ICdcXHVlNjJjJyxcclxuICAgICd1aWNvbi1lcnJvci1jaXJjbGUnOiAnXFx1ZTYyNCcsXHJcbiAgICAndWljb24tY2xvc2UtY2lyY2xlJzogJ1xcdWU2M2YnLFxyXG4gICAgJ3VpY29uLWNsb3NlLWNpcmNsZS1maWxsJzogJ1xcdWU2MzcnLFxyXG4gICAgJ3VpY29uLWNoZWNrbWFyay1jaXJjbGUnOiAnXFx1ZTYzZCcsXHJcbiAgICAndWljb24tY2hlY2ttYXJrLWNpcmNsZS1maWxsJzogJ1xcdWU2MzUnLFxyXG4gICAgJ3VpY29uLXF1ZXN0aW9uLWNpcmNsZS1maWxsJzogJ1xcdWU2NjYnLFxyXG4gICAgJ3VpY29uLXF1ZXN0aW9uLWNpcmNsZSc6ICdcXHVlNjI1JyxcclxuICAgICd1aWNvbi1zaGFyZSc6ICdcXHVlNjMxJyxcclxuICAgICd1aWNvbi1zaGFyZS1maWxsJzogJ1xcdWU2NWUnLFxyXG4gICAgJ3VpY29uLXNob3BwaW5nLWNhcnQnOiAnXFx1ZTYyMScsXHJcbiAgICAndWljb24tc2hvcHBpbmctY2FydC1maWxsJzogJ1xcdWU2NWQnLFxyXG4gICAgJ3VpY29uLWJlbGwnOiAnXFx1ZTYwOScsXHJcbiAgICAndWljb24tYmVsbC1maWxsJzogJ1xcdWU2NDAnLFxyXG4gICAgJ3VpY29uLWxpc3QnOiAnXFx1ZTY1MCcsXHJcbiAgICAndWljb24tbGlzdC1kb3QnOiAnXFx1ZTYxNicsXHJcbiAgICAndWljb24temhpaHUnOiAnXFx1ZTZiYScsXHJcbiAgICAndWljb24temhpaHUtY2lyY2xlLWZpbGwnOiAnXFx1ZTcwOScsXHJcbiAgICAndWljb24temhpZnViYW8nOiAnXFx1ZTZiOScsXHJcbiAgICAndWljb24temhpZnViYW8tY2lyY2xlLWZpbGwnOiAnXFx1ZTZiOCcsXHJcbiAgICAndWljb24td2VpeGluLWNpcmNsZS1maWxsJzogJ1xcdWU2YjEnLFxyXG4gICAgJ3VpY29uLXdlaXhpbi1maWxsJzogJ1xcdWU2YjInLFxyXG4gICAgJ3VpY29uLXR3aXR0ZXItY2lyY2xlLWZpbGwnOiAnXFx1ZTZhYicsXHJcbiAgICAndWljb24tdHdpdHRlcic6ICdcXHVlNmFhJyxcclxuICAgICd1aWNvbi10YW9iYW8tY2lyY2xlLWZpbGwnOiAnXFx1ZTZhNycsXHJcbiAgICAndWljb24tdGFvYmFvJzogJ1xcdWU2YTYnLFxyXG4gICAgJ3VpY29uLXdlaWJvLWNpcmNsZS1maWxsJzogJ1xcdWU2YTUnLFxyXG4gICAgJ3VpY29uLXdlaWJvJzogJ1xcdWU2YTQnLFxyXG4gICAgJ3VpY29uLXFxLWZpbGwnOiAnXFx1ZTZhMScsXHJcbiAgICAndWljb24tcXEtY2lyY2xlLWZpbGwnOiAnXFx1ZTZhMCcsXHJcbiAgICAndWljb24tbW9tZW50cy1jaXJjZWwtZmlsbCc6ICdcXHVlNjlhJyxcclxuICAgICd1aWNvbi1tb21lbnRzJzogJ1xcdWU2OWInLFxyXG4gICAgJ3VpY29uLXF6b25lJzogJ1xcdWU2OTUnLFxyXG4gICAgJ3VpY29uLXF6b25lLWNpcmNsZS1maWxsJzogJ1xcdWU2OTYnLFxyXG4gICAgJ3VpY29uLWJhaWR1LWNpcmNsZS1maWxsJzogJ1xcdWU2ODAnLFxyXG4gICAgJ3VpY29uLWJhaWR1JzogJ1xcdWU2ODEnLFxyXG4gICAgJ3VpY29uLWZhY2Vib29rLWNpcmNsZS1maWxsJzogJ1xcdWU2OGEnLFxyXG4gICAgJ3VpY29uLWZhY2Vib29rJzogJ1xcdWU2ODknLFxyXG4gICAgJ3VpY29uLWNhcic6ICdcXHVlNjBjJyxcclxuICAgICd1aWNvbi1jYXItZmlsbCc6ICdcXHVlNjM2JyxcclxuICAgICd1aWNvbi13YXJuaW5nLWZpbGwnOiAnXFx1ZTY0ZCcsXHJcbiAgICAndWljb24td2FybmluZyc6ICdcXHVlNjk0JyxcclxuICAgICd1aWNvbi1jbG9jay1maWxsJzogJ1xcdWU2MzgnLFxyXG4gICAgJ3VpY29uLWNsb2NrJzogJ1xcdWU2MGYnLFxyXG4gICAgJ3VpY29uLWVkaXQtcGVuJzogJ1xcdWU2MTInLFxyXG4gICAgJ3VpY29uLWVkaXQtcGVuLWZpbGwnOiAnXFx1ZTY2YicsXHJcbiAgICAndWljb24tZW1haWwnOiAnXFx1ZTYxMScsXHJcbiAgICAndWljb24tZW1haWwtZmlsbCc6ICdcXHVlNjQyJyxcclxuICAgICd1aWNvbi1taW51cy1jaXJjbGUnOiAnXFx1ZTYxYicsXHJcbiAgICAndWljb24tbWludXMtY2lyY2xlLWZpbGwnOiAnXFx1ZTY1MicsXHJcbiAgICAndWljb24tcGx1cy1jaXJjbGUnOiAnXFx1ZTYyZScsXHJcbiAgICAndWljb24tcGx1cy1jaXJjbGUtZmlsbCc6ICdcXHVlNjYxJyxcclxuICAgICd1aWNvbi1maWxlLXRleHQnOiAnXFx1ZTY2MycsXHJcbiAgICAndWljb24tZmlsZS10ZXh0LWZpbGwnOiAnXFx1ZTY2NScsXHJcbiAgICAndWljb24tcHVzaHBpbic6ICdcXHVlN2UzJyxcclxuICAgICd1aWNvbi1wdXNocGluLWZpbGwnOiAnXFx1ZTg2ZScsXHJcbiAgICAndWljb24tZ3JpZCc6ICdcXHVlNjczJyxcclxuICAgICd1aWNvbi1ncmlkLWZpbGwnOiAnXFx1ZTY3OCcsXHJcbiAgICAndWljb24tcGxheS1jaXJjbGUnOiAnXFx1ZTY0NycsXHJcbiAgICAndWljb24tcGxheS1jaXJjbGUtZmlsbCc6ICdcXHVlNjU1JyxcclxuICAgICd1aWNvbi1wYXVzZS1jaXJjbGUtZmlsbCc6ICdcXHVlNjU0JyxcclxuICAgICd1aWNvbi1wYXVzZSc6ICdcXHVlOGZhJyxcclxuICAgICd1aWNvbi1wYXVzZS1jaXJjbGUnOiAnXFx1ZTY0MycsXHJcbiAgICAndWljb24tZXllLW9mZic6ICdcXHVlNjQ4JyxcclxuICAgICd1aWNvbi1leWUtb2ZmLW91dGxpbmUnOiAnXFx1ZTYyYicsXHJcbiAgICAndWljb24tZ2lmdC1maWxsJzogJ1xcdWU2NWMnLFxyXG4gICAgJ3VpY29uLWdpZnQnOiAnXFx1ZTY1YicsXHJcbiAgICAndWljb24tcm1iLWNpcmNsZS1maWxsJzogJ1xcdWU2NTcnLFxyXG4gICAgJ3VpY29uLXJtYi1jaXJjbGUnOiAnXFx1ZTY3NycsXHJcbiAgICAndWljb24ta2VmdS1lcm1haSc6ICdcXHVlNjU2JyxcclxuICAgICd1aWNvbi1zZXJ2ZXItZmlsbCc6ICdcXHVlNzUxJyxcclxuICAgICd1aWNvbi1jb3Vwb24tZmlsbCc6ICdcXHVlOGM0JyxcclxuICAgICd1aWNvbi1jb3Vwb24nOiAnXFx1ZThhZScsXHJcbiAgICAndWljb24taW50ZWdyYWwnOiAnXFx1ZTcwNCcsXHJcbiAgICAndWljb24taW50ZWdyYWwtZmlsbCc6ICdcXHVlNzAzJyxcclxuICAgICd1aWNvbi1ob21lLWZpbGwnOiAnXFx1ZTk2NCcsXHJcbiAgICAndWljb24taG9tZSc6ICdcXHVlOTY1JyxcclxuICAgICd1aWNvbi1ob3VyZ2xhc3MtaGFsZi1maWxsJzogJ1xcdWU5NjYnLFxyXG4gICAgJ3VpY29uLWhvdXJnbGFzcyc6ICdcXHVlOTY3JyxcclxuICAgICd1aWNvbi1hY2NvdW50JzogJ1xcdWU2MjgnLFxyXG4gICAgJ3VpY29uLXBsdXMtcGVvcGxlLWZpbGwnOiAnXFx1ZTYyNicsXHJcbiAgICAndWljb24tbWludXMtcGVvcGxlLWZpbGwnOiAnXFx1ZTYxNScsXHJcbiAgICAndWljb24tYWNjb3VudC1maWxsJzogJ1xcdWU2MTQnLFxyXG4gICAgJ3VpY29uLXRodW1iLWRvd24tZmlsbCc6ICdcXHVlNzI2JyxcclxuICAgICd1aWNvbi10aHVtYi1kb3duJzogJ1xcdWU3MjcnLFxyXG4gICAgJ3VpY29uLXRodW1iLXVwJzogJ1xcdWU3MzMnLFxyXG4gICAgJ3VpY29uLXRodW1iLXVwLWZpbGwnOiAnXFx1ZTcyZicsXHJcbiAgICAndWljb24tbG9jay1maWxsJzogJ1xcdWU5NzknLFxyXG4gICAgJ3VpY29uLWxvY2stb3Blbic6ICdcXHVlOTczJyxcclxuICAgICd1aWNvbi1sb2NrLW9wZW5lZC1maWxsJzogJ1xcdWU5NzQnLFxyXG4gICAgJ3VpY29uLWxvY2snOiAnXFx1ZTk3YScsXHJcbiAgICAndWljb24tcmVkLXBhY2tldC1maWxsJzogJ1xcdWU2OTAnLFxyXG4gICAgJ3VpY29uLXBob3RvLWZpbGwnOiAnXFx1ZTk4YicsXHJcbiAgICAndWljb24tcGhvdG8nOiAnXFx1ZTk4ZCcsXHJcbiAgICAndWljb24tdm9sdW1lLW9mZi1maWxsJzogJ1xcdWU2NTknLFxyXG4gICAgJ3VpY29uLXZvbHVtZS1vZmYnOiAnXFx1ZTY0NCcsXHJcbiAgICAndWljb24tdm9sdW1lLWZpbGwnOiAnXFx1ZTY3MCcsXHJcbiAgICAndWljb24tdm9sdW1lJzogJ1xcdWU2MzMnLFxyXG4gICAgJ3VpY29uLXJlZC1wYWNrZXQnOiAnXFx1ZTY5MScsXHJcbiAgICAndWljb24tZG93bmxvYWQnOiAnXFx1ZTYzYycsXHJcbiAgICAndWljb24tYXJyb3ctdXAtZmlsbCc6ICdcXHVlNmIwJyxcclxuICAgICd1aWNvbi1hcnJvdy1kb3duLWZpbGwnOiAnXFx1ZTYwMCcsXHJcbiAgICAndWljb24tcGxheS1sZWZ0LWZpbGwnOiAnXFx1ZTY3NScsXHJcbiAgICAndWljb24tcGxheS1yaWdodC1maWxsJzogJ1xcdWU2NzYnLFxyXG4gICAgJ3VpY29uLXJld2luZC1sZWZ0LWZpbGwnOiAnXFx1ZTY3OScsXHJcbiAgICAndWljb24tcmV3aW5kLXJpZ2h0LWZpbGwnOiAnXFx1ZTY3YScsXHJcbiAgICAndWljb24tYXJyb3ctZG93bndhcmQnOiAnXFx1ZTYwNCcsXHJcbiAgICAndWljb24tYXJyb3ctbGVmdHdhcmQnOiAnXFx1ZTYwMScsXHJcbiAgICAndWljb24tYXJyb3ctcmlnaHR3YXJkJzogJ1xcdWU2MDMnLFxyXG4gICAgJ3VpY29uLWFycm93LXVwd2FyZCc6ICdcXHVlNjA3JyxcclxuICAgICd1aWNvbi1hcnJvdy1kb3duJzogJ1xcdWU2MGQnLFxyXG4gICAgJ3VpY29uLWFycm93LXJpZ2h0JzogJ1xcdWU2MDUnLFxyXG4gICAgJ3VpY29uLWFycm93LWxlZnQnOiAnXFx1ZTYwZScsXHJcbiAgICAndWljb24tYXJyb3ctdXAnOiAnXFx1ZTYwNicsXHJcbiAgICAndWljb24tc2tpcC1iYWNrLWxlZnQnOiAnXFx1ZTY3NCcsXHJcbiAgICAndWljb24tc2tpcC1mb3J3YXJkLXJpZ2h0JzogJ1xcdWU2NzInLFxyXG4gICAgJ3VpY29uLXJld2luZC1yaWdodCc6ICdcXHVlNjZmJyxcclxuICAgICd1aWNvbi1yZXdpbmQtbGVmdCc6ICdcXHVlNjcxJyxcclxuICAgICd1aWNvbi1hcnJvdy1yaWdodC1kb3VibGUnOiAnXFx1ZTY4ZCcsXHJcbiAgICAndWljb24tYXJyb3ctbGVmdC1kb3VibGUnOiAnXFx1ZTY4YycsXHJcbiAgICAndWljb24td2lmaS1vZmYnOiAnXFx1ZTY2OCcsXHJcbiAgICAndWljb24td2lmaSc6ICdcXHVlNjY3JyxcclxuICAgICd1aWNvbi1lbXB0eS1kYXRhJzogJ1xcdWU2MmYnLFxyXG4gICAgJ3VpY29uLWVtcHR5LWhpc3RvcnknOiAnXFx1ZTY4NCcsXHJcbiAgICAndWljb24tZW1wdHktbGlzdCc6ICdcXHVlNjhiJyxcclxuICAgICd1aWNvbi1lbXB0eS1wYWdlJzogJ1xcdWU2MjcnLFxyXG4gICAgJ3VpY29uLWVtcHR5LW9yZGVyJzogJ1xcdWU2MzknLFxyXG4gICAgJ3VpY29uLW1hbic6ICdcXHVlNjk3JyxcclxuICAgICd1aWNvbi13b21hbic6ICdcXHVlNjljJyxcclxuICAgICd1aWNvbi1tYW4tYWRkJzogJ1xcdWU2MWMnLFxyXG4gICAgJ3VpY29uLW1hbi1hZGQtZmlsbCc6ICdcXHVlNjRjJyxcclxuICAgICd1aWNvbi1tYW4tZGVsZXRlJzogJ1xcdWU2MWEnLFxyXG4gICAgJ3VpY29uLW1hbi1kZWxldGUtZmlsbCc6ICdcXHVlNjZhJyxcclxuICAgICd1aWNvbi16aCc6ICdcXHVlNzBhJyxcclxuICAgICd1aWNvbi1lbic6ICdcXHVlNjkyJ1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///105\n"); /***/ }), /* 106 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-icon/props.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 图标类名\n name: {\n type: String,\n default: uni.$u.props.icon.name\n },\n // 图标颜色,可接受主题色\n color: {\n type: String,\n default: uni.$u.props.icon.color\n },\n // 字体大小,单位px\n size: {\n type: [String, Number],\n default: uni.$u.props.icon.size\n },\n // 是否显示粗体\n bold: {\n type: Boolean,\n default: uni.$u.props.icon.bold\n },\n // 点击图标的时候传递事件出去的index(用于区分点击了哪一个)\n index: {\n type: [String, Number],\n default: uni.$u.props.icon.index\n },\n // 触摸图标时的类名\n hoverClass: {\n type: String,\n default: uni.$u.props.icon.hoverClass\n },\n // 自定义扩展前缀,方便用户扩展自己的图标库\n customPrefix: {\n type: String,\n default: uni.$u.props.icon.customPrefix\n },\n // 图标右边或者下面的文字\n label: {\n type: [String, Number],\n default: uni.$u.props.icon.label\n },\n // label的位置,只能右边或者下边\n labelPos: {\n type: String,\n default: uni.$u.props.icon.labelPos\n },\n // label的大小\n labelSize: {\n type: [String, Number],\n default: uni.$u.props.icon.labelSize\n },\n // label的颜色\n labelColor: {\n type: String,\n default: uni.$u.props.icon.labelColor\n },\n // label与图标的距离\n space: {\n type: [String, Number],\n default: uni.$u.props.icon.space\n },\n // 图片的mode\n imgMode: {\n type: String,\n default: uni.$u.props.icon.imgMode\n },\n // 用于显示图片小图标时,图片的宽度\n width: {\n type: [String, Number],\n default: uni.$u.props.icon.width\n },\n // 用于显示图片小图标时,图片的高度\n height: {\n type: [String, Number],\n default: uni.$u.props.icon.height\n },\n // 用于解决某些情况下,让图标垂直居中的用途\n top: {\n type: [String, Number],\n default: uni.$u.props.icon.top\n },\n // 是否阻止事件传播\n stop: {\n type: Boolean,\n default: uni.$u.props.icon.stop\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LWljb24vcHJvcHMuanMiXSwibmFtZXMiOlsicHJvcHMiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHQiLCJ1bmkiLCIkdSIsImljb24iLCJjb2xvciIsInNpemUiLCJOdW1iZXIiLCJib2xkIiwiQm9vbGVhbiIsImluZGV4IiwiaG92ZXJDbGFzcyIsImN1c3RvbVByZWZpeCIsImxhYmVsIiwibGFiZWxQb3MiLCJsYWJlbFNpemUiLCJsYWJlbENvbG9yIiwic3BhY2UiLCJpbWdNb2RlIiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJzdG9wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNYQSxLQUFLLEVBQUU7SUFDSDtJQUNBQyxJQUFJLEVBQUU7TUFDRkMsSUFBSSxFQUFFQyxNQUFNO01BQ1pDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sSUFBSSxDQUFDTjtJQUMvQixDQUFDO0lBQ0Q7SUFDQU8sS0FBSyxFQUFFO01BQ0hOLElBQUksRUFBRUMsTUFBTTtNQUNaQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ0M7SUFDL0IsQ0FBQztJQUNEO0lBQ0FDLElBQUksRUFBRTtNQUNGUCxJQUFJLEVBQUUsQ0FBQ0MsTUFBTSxFQUFFTyxNQUFNLENBQUM7TUFDdEJOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sSUFBSSxDQUFDRTtJQUMvQixDQUFDO0lBQ0Q7SUFDQUUsSUFBSSxFQUFFO01BQ0ZULElBQUksRUFBRVUsT0FBTztNQUNiUixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ0k7SUFDL0IsQ0FBQztJQUNEO0lBQ0FFLEtBQUssRUFBRTtNQUNIWCxJQUFJLEVBQUUsQ0FBQ0MsTUFBTSxFQUFFTyxNQUFNLENBQUM7TUFDdEJOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sSUFBSSxDQUFDTTtJQUMvQixDQUFDO0lBQ0Q7SUFDQUMsVUFBVSxFQUFFO01BQ1JaLElBQUksRUFBRUMsTUFBTTtNQUNaQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ087SUFDL0IsQ0FBQztJQUNEO0lBQ0FDLFlBQVksRUFBRTtNQUNWYixJQUFJLEVBQUVDLE1BQU07TUFDWkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxJQUFJLENBQUNRO0lBQy9CLENBQUM7SUFDRDtJQUNBQyxLQUFLLEVBQUU7TUFDSGQsSUFBSSxFQUFFLENBQUNDLE1BQU0sRUFBRU8sTUFBTSxDQUFDO01BQ3RCTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ1M7SUFDL0IsQ0FBQztJQUNEO0lBQ0FDLFFBQVEsRUFBRTtNQUNOZixJQUFJLEVBQUVDLE1BQU07TUFDWkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxJQUFJLENBQUNVO0lBQy9CLENBQUM7SUFDRDtJQUNBQyxTQUFTLEVBQUU7TUFDUGhCLElBQUksRUFBRSxDQUFDQyxNQUFNLEVBQUVPLE1BQU0sQ0FBQztNQUN0Qk4sT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxJQUFJLENBQUNXO0lBQy9CLENBQUM7SUFDRDtJQUNBQyxVQUFVLEVBQUU7TUFDUmpCLElBQUksRUFBRUMsTUFBTTtNQUNaQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ1k7SUFDL0IsQ0FBQztJQUNEO0lBQ0FDLEtBQUssRUFBRTtNQUNIbEIsSUFBSSxFQUFFLENBQUNDLE1BQU0sRUFBRU8sTUFBTSxDQUFDO01BQ3RCTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ2E7SUFDL0IsQ0FBQztJQUNEO0lBQ0FDLE9BQU8sRUFBRTtNQUNMbkIsSUFBSSxFQUFFQyxNQUFNO01BQ1pDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sSUFBSSxDQUFDYztJQUMvQixDQUFDO0lBQ0Q7SUFDQUMsS0FBSyxFQUFFO01BQ0hwQixJQUFJLEVBQUUsQ0FBQ0MsTUFBTSxFQUFFTyxNQUFNLENBQUM7TUFDdEJOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sSUFBSSxDQUFDZTtJQUMvQixDQUFDO0lBQ0Q7SUFDQUMsTUFBTSxFQUFFO01BQ0pyQixJQUFJLEVBQUUsQ0FBQ0MsTUFBTSxFQUFFTyxNQUFNLENBQUM7TUFDdEJOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sSUFBSSxDQUFDZ0I7SUFDL0IsQ0FBQztJQUNEO0lBQ0FDLEdBQUcsRUFBRTtNQUNEdEIsSUFBSSxFQUFFLENBQUNDLE1BQU0sRUFBRU8sTUFBTSxDQUFDO01BQ3RCTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ2lCO0lBQy9CLENBQUM7SUFDRDtJQUNBQyxJQUFJLEVBQUU7TUFDRnZCLElBQUksRUFBRVUsT0FBTztNQUNiUixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLElBQUksQ0FBQ2tCO0lBQy9CO0VBQ0o7QUFDSixDQUFDO0FBQUEiLCJmaWxlIjoiMTA2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgcHJvcHM6IHtcclxuICAgICAgICAvLyDlm77moIfnsbvlkI1cclxuICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmljb24ubmFtZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Zu+5qCH6aKc6Imy77yM5Y+v5o6l5Y+X5Li76aKY6ImyXHJcbiAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuaWNvbi5jb2xvclxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5a2X5L2T5aSn5bCP77yM5Y2V5L2NcHhcclxuICAgICAgICBzaXplOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5pY29uLnNpemVcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaYr+WQpuaYvuekuueyl+S9k1xyXG4gICAgICAgIGJvbGQ6IHtcclxuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmljb24uYm9sZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g54K55Ye75Zu+5qCH55qE5pe25YCZ5Lyg6YCS5LqL5Lu25Ye65Y6755qEaW5kZXjvvIjnlKjkuo7ljLrliIbngrnlh7vkuoblk6rkuIDkuKrvvIlcclxuICAgICAgICBpbmRleDoge1xyXG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuaWNvbi5pbmRleFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g6Kem5pG45Zu+5qCH5pe255qE57G75ZCNXHJcbiAgICAgICAgaG92ZXJDbGFzczoge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5pY29uLmhvdmVyQ2xhc3NcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOiHquWumuS5ieaJqeWxleWJjee8gO+8jOaWueS+v+eUqOaIt+aJqeWxleiHquW3seeahOWbvuagh+W6k1xyXG4gICAgICAgIGN1c3RvbVByZWZpeDoge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5pY29uLmN1c3RvbVByZWZpeFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Zu+5qCH5Y+z6L655oiW6ICF5LiL6Z2i55qE5paH5a2XXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmljb24ubGFiZWxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGxhYmVs55qE5L2N572u77yM5Y+q6IO95Y+z6L655oiW6ICF5LiL6L65XHJcbiAgICAgICAgbGFiZWxQb3M6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuaWNvbi5sYWJlbFBvc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gbGFiZWznmoTlpKflsI9cclxuICAgICAgICBsYWJlbFNpemU6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmljb24ubGFiZWxTaXplXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBsYWJlbOeahOminOiJslxyXG4gICAgICAgIGxhYmVsQ29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuaWNvbi5sYWJlbENvbG9yXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBsYWJlbOS4juWbvuagh+eahOi3neemu1xyXG4gICAgICAgIHNwYWNlOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5pY29uLnNwYWNlXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlm77niYfnmoRtb2RlXHJcbiAgICAgICAgaW1nTW9kZToge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5pY29uLmltZ01vZGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOeUqOS6juaYvuekuuWbvueJh+Wwj+Wbvuagh+aXtu+8jOWbvueJh+eahOWuveW6plxyXG4gICAgICAgIHdpZHRoOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5pY29uLndpZHRoXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDnlKjkuo7mmL7npLrlm77niYflsI/lm77moIfml7bvvIzlm77niYfnmoTpq5jluqZcclxuICAgICAgICBoZWlnaHQ6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmljb24uaGVpZ2h0XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDnlKjkuo7op6PlhrPmn5Dkupvmg4XlhrXkuIvvvIzorqnlm77moIflnoLnm7TlsYXkuK3nmoTnlKjpgJRcclxuICAgICAgICB0b3A6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmljb24udG9wXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmmK/lkKbpmLvmraLkuovku7bkvKDmkq1cclxuICAgICAgICBzdG9wOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5pY29uLnN0b3BcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///106\n"); /***/ }), /* 107 */ /*!***************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-navbar/u-navbar.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-navbar.vue?vue&type=script&lang=js& */ 108);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRqQixDQUFnQiw4akJBQUcsRUFBQyIsImZpbGUiOiIxMDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LW5hdmJhci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3UtbmF2YmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///107\n"); /***/ }), /* 108 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-navbar/u-navbar.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 109));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * Navbar 自定义导航栏\n * @description 此组件一般用于在特殊情况下,需要自定义导航栏的时候用到,一般建议使用uni-app带的导航栏。\n * @tutorial https://www.uviewui.com/components/navbar.html\n * @property {Boolean}\t\t\tsafeAreaInsetTop\t是否开启顶部安全区适配 (默认 true )\n * @property {Boolean}\t\t\tplaceholder\t\t\t固定在顶部时,是否生成一个等高元素,以防止塌陷 (默认 false )\n * @property {Boolean}\t\t\tfixed\t\t\t\t导航栏是否固定在顶部 (默认 false )\n * @property {Boolean}\t\t\tborder\t\t\t\t导航栏底部是否显示下边框 (默认 false )\n * @property {String}\t\t\tleftIcon\t\t\t左边返回图标的名称,只能为uView自带的图标 (默认 'arrow-left' )\n * @property {String}\t\t\tleftText\t\t\t左边的提示文字\n * @property {String}\t\t\trightText\t\t\t右边的提示文字\n * @property {String}\t\t\trightIcon\t\t\t右边返回图标的名称,只能为uView自带的图标\n * @property {String}\t\t\ttitle\t\t\t\t导航栏标题,如设置为空字符,将会隐藏标题占位区域\n * @property {String}\t\t\tbgColor\t\t\t\t导航栏背景设置 (默认 '#ffffff' )\n * @property {String | Number}\ttitleWidth\t\t\t导航栏标题的最大宽度,内容超出会以省略号隐藏 (默认 '400rpx' )\n * @property {String | Number}\theight\t\t\t\t导航栏高度(不包括状态栏高度在内,内部自动加上)(默认 '44px' )\n * @property {String | Number}\tleftIconSize\t\t左侧返回图标的大小(默认 20px )\n * @property {String | Number}\tleftIconColor\t\t左侧返回图标的颜色(默认 #303133 )\n * @property {Boolean}\t autoBack\t\t\t点击左侧区域(返回图标),是否自动返回上一页(默认 false )\n * @property {Object | String}\ttitleStyle\t\t\t标题的样式,对象或字符串\n * @event {Function} leftClick\t\t点击左侧区域\n * @event {Function} rightClick\t\t点击右侧区域\n * @example \n */\nvar _default = {\n name: 'u-navbar',\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {};\n },\n methods: {\n // 点击左侧区域\n leftClick: function leftClick() {\n // 如果配置了autoBack,自动返回上一页\n this.$emit('leftClick');\n if (this.autoBack) {\n uni.navigateBack();\n }\n },\n // 点击右侧区域\n rightClick: function rightClick() {\n this.$emit('rightClick');\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LW5hdmJhci91LW5hdmJhci52dWUiXSwibmFtZXMiOlsibmFtZSIsIm1peGlucyIsImRhdGEiLCJtZXRob2RzIiwibGVmdENsaWNrIiwidW5pIiwicmlnaHRDbGljayJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQTJFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdkJBLGVBd0JBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBIiwiZmlsZSI6IjEwOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlldyBjbGFzcz1cInUtbmF2YmFyXCI+XHJcblx0XHQ8dmlld1xyXG5cdFx0XHRjbGFzcz1cInUtbmF2YmFyX19wbGFjZWhvbGRlclwiXHJcblx0XHRcdHYtaWY9XCJmaXhlZCAmJiBwbGFjZWhvbGRlclwiXHJcblx0XHRcdDpzdHlsZT1cIntcclxuXHRcdFx0XHRoZWlnaHQ6ICR1LmFkZFVuaXQoJHUuZ2V0UHgoaGVpZ2h0KSArICR1LnN5cygpLnN0YXR1c0JhckhlaWdodCwncHgnKSxcclxuXHRcdFx0fVwiXHJcblx0XHQ+PC92aWV3PlxyXG5cdFx0PHZpZXcgOmNsYXNzPVwiW2ZpeGVkICYmICd1LW5hdmJhci0tZml4ZWQnXVwiPlxyXG5cdFx0XHQ8dS1zdGF0dXMtYmFyXHJcblx0XHRcdFx0di1pZj1cInNhZmVBcmVhSW5zZXRUb3BcIlxyXG5cdFx0XHRcdDpiZ0NvbG9yPVwiYmdDb2xvclwiXHJcblx0XHRcdD48L3Utc3RhdHVzLWJhcj5cclxuXHRcdFx0PHZpZXdcclxuXHRcdFx0XHRjbGFzcz1cInUtbmF2YmFyX19jb250ZW50XCJcclxuXHRcdFx0XHQ6Y2xhc3M9XCJbYm9yZGVyICYmICd1LWJvcmRlci1ib3R0b20nXVwiXHJcblx0XHRcdFx0OnN0eWxlPVwie1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAkdS5hZGRVbml0KGhlaWdodCksXHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IGJnQ29sb3IsXHJcblx0XHRcdFx0fVwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0Y2xhc3M9XCJ1LW5hdmJhcl9fY29udGVudF9fbGVmdFwiXHJcblx0XHRcdFx0XHRob3Zlci1jbGFzcz1cInUtbmF2YmFyX19jb250ZW50X19sZWZ0LS1ob3ZlclwiXHJcblx0XHRcdFx0XHRob3Zlci1zdGFydC10aW1lPVwiMTUwXCJcclxuXHRcdFx0XHRcdEB0YXA9XCJsZWZ0Q2xpY2tcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxzbG90IG5hbWU9XCJsZWZ0XCI+XHJcblx0XHRcdFx0XHRcdDx1LWljb25cclxuXHRcdFx0XHRcdFx0XHR2LWlmPVwibGVmdEljb25cIlxyXG5cdFx0XHRcdFx0XHRcdDpuYW1lPVwibGVmdEljb25cIlxyXG5cdFx0XHRcdFx0XHRcdDpzaXplPVwibGVmdEljb25TaXplXCJcclxuXHRcdFx0XHRcdFx0XHQ6Y29sb3I9XCJsZWZ0SWNvbkNvbG9yXCJcclxuXHRcdFx0XHRcdFx0PjwvdS1pY29uPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dFxyXG5cdFx0XHRcdFx0XHRcdHYtaWY9XCJsZWZ0VGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0OnN0eWxlPVwie1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I6IGxlZnRJY29uQ29sb3JcclxuXHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cInUtbmF2YmFyX19jb250ZW50X19sZWZ0X190ZXh0XCJcclxuXHRcdFx0XHRcdFx0Pnt7IGxlZnRUZXh0IH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0PC9zbG90PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8c2xvdCBuYW1lPVwiY2VudGVyXCI+XHJcblx0XHRcdFx0XHQ8dGV4dFxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInUtbGluZS0xIHUtbmF2YmFyX19jb250ZW50X190aXRsZVwiXHJcblx0XHRcdFx0XHRcdDpzdHlsZT1cIlt7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6ICR1LmFkZFVuaXQodGl0bGVXaWR0aCksXHJcblx0XHRcdFx0XHRcdH0sICR1LmFkZFN0eWxlKHRpdGxlU3R5bGUpXVwiXHJcblx0XHRcdFx0XHQ+e3sgdGl0bGUgfX08L3RleHQ+XHJcblx0XHRcdFx0PC9zbG90PlxyXG5cdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHRjbGFzcz1cInUtbmF2YmFyX19jb250ZW50X19yaWdodFwiXHJcblx0XHRcdFx0XHR2LWlmPVwiJHNsb3RzLnJpZ2h0IHx8IHJpZ2h0SWNvbiB8fCByaWdodFRleHRcIlxyXG5cdFx0XHRcdFx0QHRhcD1cInJpZ2h0Q2xpY2tcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDxzbG90IG5hbWU9XCJyaWdodFwiPlxyXG5cdFx0XHRcdFx0XHQ8dS1pY29uXHJcblx0XHRcdFx0XHRcdFx0di1pZj1cInJpZ2h0SWNvblwiXHJcblx0XHRcdFx0XHRcdFx0Om5hbWU9XCJyaWdodEljb25cIlxyXG5cdFx0XHRcdFx0XHRcdHNpemU9XCIyMFwiXHJcblx0XHRcdFx0XHRcdD48L3UtaWNvbj5cclxuXHRcdFx0XHRcdFx0PHRleHRcclxuXHRcdFx0XHRcdFx0XHR2LWlmPVwicmlnaHRUZXh0XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cInUtbmF2YmFyX19jb250ZW50X19yaWdodF9fdGV4dFwiXHJcblx0XHRcdFx0XHRcdD57eyByaWdodFRleHQgfX08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3Nsb3Q+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcHJvcHMgZnJvbSAnLi9wcm9wcy5qcyc7XHJcblx0LyoqXHJcblx0ICogTmF2YmFyIOiHquWumuS5ieWvvOiIquagj1xyXG5cdCAqIEBkZXNjcmlwdGlvbiDmraTnu4Tku7bkuIDoiKznlKjkuo7lnKjnibnmrormg4XlhrXkuIvvvIzpnIDopoHoh6rlrprkuYnlr7zoiKrmoI/nmoTml7blgJnnlKjliLDvvIzkuIDoiKzlu7rorq7kvb/nlKh1bmktYXBw5bim55qE5a+86Iiq5qCP44CCXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vd3d3LnV2aWV3dWkuY29tL2NvbXBvbmVudHMvbmF2YmFyLmh0bWxcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59XHRcdFx0c2FmZUFyZWFJbnNldFRvcFx05piv5ZCm5byA5ZCv6aG26YOo5a6J5YWo5Yy66YCC6YWNICDvvIjpu5jorqQgdHJ1ZSDvvIlcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59XHRcdFx0cGxhY2Vob2xkZXJcdFx0XHTlm7rlrprlnKjpobbpg6jml7bvvIzmmK/lkKbnlJ/miJDkuIDkuKrnrYnpq5jlhYPntKDvvIzku6XpmLLmraLloYzpmbcg77yI6buY6K6kIGZhbHNlIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRmaXhlZFx0XHRcdFx05a+86Iiq5qCP5piv5ZCm5Zu65a6a5Zyo6aG26YOoIO+8iOm7mOiupCBmYWxzZSDvvIlcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59XHRcdFx0Ym9yZGVyXHRcdFx0XHTlr7zoiKrmoI/lupXpg6jmmK/lkKbmmL7npLrkuIvovrnmoYYg77yI6buY6K6kIGZhbHNlIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdGxlZnRJY29uXHRcdFx05bem6L656L+U5Zue5Zu+5qCH55qE5ZCN56ew77yM5Y+q6IO95Li6dVZpZXfoh6rluKbnmoTlm77moIcg77yI6buY6K6kICdhcnJvdy1sZWZ0JyDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRsZWZ0VGV4dFx0XHRcdOW3pui+ueeahOaPkOekuuaWh+Wtl1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdHJpZ2h0VGV4dFx0XHRcdOWPs+i+ueeahOaPkOekuuaWh+Wtl1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdHJpZ2h0SWNvblx0XHRcdOWPs+i+uei/lOWbnuWbvuagh+eahOWQjeensO+8jOWPquiDveS4unVWaWV36Ieq5bim55qE5Zu+5qCHXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0dGl0bGVcdFx0XHRcdOWvvOiIquagj+agh+mimO+8jOWmguiuvue9ruS4uuepuuWtl+espu+8jOWwhuS8mumakOiXj+agh+mimOWNoOS9jeWMuuWfn1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdGJnQ29sb3JcdFx0XHRcdOWvvOiIquagj+iDjOaZr+iuvue9riDvvIjpu5jorqQgJyNmZmZmZmYnIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nIHwgTnVtYmVyfVx0dGl0bGVXaWR0aFx0XHRcdOWvvOiIquagj+agh+mimOeahOacgOWkp+WuveW6pu+8jOWGheWuuei2heWHuuS8muS7peecgeeVpeWPt+makOiXjyDvvIjpu5jorqQgJzQwMHJweCcg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRoZWlnaHRcdFx0XHRcdOWvvOiIquagj+mrmOW6pijkuI3ljIXmi6znirbmgIHmoI/pq5jluqblnKjlhoXvvIzlhoXpg6joh6rliqjliqDkuIop77yI6buY6K6kICc0NHB4JyDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdGxlZnRJY29uU2l6ZVx0XHTlt6bkvqfov5Tlm57lm77moIfnmoTlpKflsI/vvIjpu5jorqQgMjBweCDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdGxlZnRJY29uQ29sb3JcdFx05bem5L6n6L+U5Zue5Zu+5qCH55qE6aKc6Imy77yI6buY6K6kICMzMDMxMzMg77yJXHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufVx0ICAgICAgICBhdXRvQmFja1x0XHRcdOeCueWHu+W3puS+p+WMuuWfnyjov5Tlm57lm77moIcp77yM5piv5ZCm6Ieq5Yqo6L+U5Zue5LiK5LiA6aG177yI6buY6K6kIGZhbHNlIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7T2JqZWN0IHwgU3RyaW5nfVx0dGl0bGVTdHlsZVx0XHRcdOagh+mimOeahOagt+W8j++8jOWvueixoeaIluWtl+espuS4slxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGxlZnRDbGlja1x0XHTngrnlh7vlt6bkvqfljLrln59cclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSByaWdodENsaWNrXHRcdOeCueWHu+WPs+S+p+WMuuWfn1xyXG5cdCAqIEBleGFtcGxlIDx1LW5hdmJhciB0aXRsZT1cIuWJkeacqumFjeWmpe+8jOWHuumXqOW3suaYr+axn+a5llwiIGxlZnQtdGV4dD1cIui/lOWbnlwiIHJpZ2h0LXRleHQ9XCLluK7liqlcIiBAY2xpY2stbGVmdD1cIm9uQ2xpY2tCYWNrXCIgQGNsaWNrLXJpZ2h0PVwib25DbGlja1JpZ2h0XCI+PC91LW5hdmJhcj5cclxuXHQgKi9cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiAndS1uYXZiYXInLFxyXG5cdFx0bWl4aW5zOiBbdW5pLiR1Lm1wTWl4aW4sIHVuaS4kdS5taXhpbiwgcHJvcHNdLFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8vIOeCueWHu+W3puS+p+WMuuWfn1xyXG5cdFx0XHRsZWZ0Q2xpY2soKSB7XHJcblx0XHRcdFx0Ly8g5aaC5p6c6YWN572u5LqGYXV0b0JhY2vvvIzoh6rliqjov5Tlm57kuIrkuIDpobVcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdsZWZ0Q2xpY2snKVxyXG5cdFx0XHRcdGlmKHRoaXMuYXV0b0JhY2spIHtcclxuXHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g54K55Ye75Y+z5L6n5Yy65Z+fXHJcblx0XHRcdHJpZ2h0Q2xpY2soKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgncmlnaHRDbGljaycpXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuXHRAaW1wb3J0IFwiLi4vLi4vbGlicy9jc3MvY29tcG9uZW50cy5zY3NzXCI7XHJcblxyXG5cdC51LW5hdmJhciB7XHJcblxyXG5cdFx0Ji0tZml4ZWQge1xyXG5cdFx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHRcdHotaW5kZXg6IDExO1xyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2NvbnRlbnQge1xyXG5cdFx0XHRAaW5jbHVkZSBmbGV4KHJvdyk7XHJcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdGhlaWdodDogNDRweDtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzlhY2FmYztcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcblx0XHRcdCZfX2xlZnQsXHJcblx0XHRcdCZfX3JpZ2h0IHtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDEzcHg7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRib3R0b206IDA7XHJcblx0XHRcdFx0QGluY2x1ZGUgZmxleChyb3cpO1xyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCZfX2xlZnQge1xyXG5cdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji0taG92ZXIge1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMC43O1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Jl9fdGV4dCB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDE1cHg7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogM3B4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jl9fdGl0bGUge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRcdFx0Y29sb3I6ICR1LW1haW4tY29sb3I7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCZfX3JpZ2h0IHtcclxuXHRcdFx0XHRyaWdodDogMDtcclxuXHJcblx0XHRcdFx0Jl9fdGV4dCB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDE1cHg7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogM3B4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///108\n"); /***/ }), /* 109 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-navbar/props.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否开启顶部安全区适配\n safeAreaInsetTop: {\n type: Boolean,\n default: uni.$u.props.navbar.safeAreaInsetTop\n },\n // 固定在顶部时,是否生成一个等高元素,以防止塌陷\n placeholder: {\n type: Boolean,\n default: uni.$u.props.navbar.placeholder\n },\n // 是否固定在顶部\n fixed: {\n type: Boolean,\n default: uni.$u.props.navbar.fixed\n },\n // 是否显示下边框\n border: {\n type: Boolean,\n default: uni.$u.props.navbar.border\n },\n // 左边的图标\n leftIcon: {\n type: String,\n default: uni.$u.props.navbar.leftIcon\n },\n // 左边的提示文字\n leftText: {\n type: String,\n default: uni.$u.props.navbar.leftText\n },\n // 左右的提示文字\n rightText: {\n type: String,\n default: uni.$u.props.navbar.rightText\n },\n // 右边的图标\n rightIcon: {\n type: String,\n default: uni.$u.props.navbar.rightIcon\n },\n // 标题\n title: {\n type: [String, Number],\n default: uni.$u.props.navbar.title\n },\n // 背景颜色\n bgColor: {\n type: String,\n default: uni.$u.props.navbar.bgColor\n },\n // 标题的宽度\n titleWidth: {\n type: [String, Number],\n default: uni.$u.props.navbar.titleWidth\n },\n // 导航栏高度\n height: {\n type: [String, Number],\n default: uni.$u.props.navbar.height\n },\n // 左侧返回图标的大小\n leftIconSize: {\n type: [String, Number],\n default: uni.$u.props.navbar.leftIconSize\n },\n // 左侧返回图标的颜色\n leftIconColor: {\n type: String,\n default: uni.$u.props.navbar.leftIconColor\n },\n // 点击左侧区域(返回图标),是否自动返回上一页\n autoBack: {\n type: Boolean,\n default: uni.$u.props.navbar.autoBack\n },\n // 标题的样式,对象或字符串\n titleStyle: {\n type: [String, Object],\n default: uni.$u.props.navbar.titleStyle\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LW5hdmJhci9wcm9wcy5qcyJdLCJuYW1lcyI6WyJwcm9wcyIsInNhZmVBcmVhSW5zZXRUb3AiLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHQiLCJ1bmkiLCIkdSIsIm5hdmJhciIsInBsYWNlaG9sZGVyIiwiZml4ZWQiLCJib3JkZXIiLCJsZWZ0SWNvbiIsIlN0cmluZyIsImxlZnRUZXh0IiwicmlnaHRUZXh0IiwicmlnaHRJY29uIiwidGl0bGUiLCJOdW1iZXIiLCJiZ0NvbG9yIiwidGl0bGVXaWR0aCIsImhlaWdodCIsImxlZnRJY29uU2l6ZSIsImxlZnRJY29uQ29sb3IiLCJhdXRvQmFjayIsInRpdGxlU3R5bGUiLCJPYmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0VBQ2RBLEtBQUssRUFBRTtJQUNOO0lBQ0FDLGdCQUFnQixFQUFFO01BQ2pCQyxJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNOO0lBQzlCLENBQUM7SUFDRDtJQUNBTyxXQUFXLEVBQUU7TUFDWk4sSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDQztJQUM5QixDQUFDO0lBQ0Q7SUFDQUMsS0FBSyxFQUFFO01BQ05QLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ0U7SUFDOUIsQ0FBQztJQUNEO0lBQ0FDLE1BQU0sRUFBRTtNQUNQUixJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNHO0lBQzlCLENBQUM7SUFDRDtJQUNBQyxRQUFRLEVBQUU7TUFDVFQsSUFBSSxFQUFFVSxNQUFNO01BQ1pSLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDSTtJQUM5QixDQUFDO0lBQ0Q7SUFDQUUsUUFBUSxFQUFFO01BQ1RYLElBQUksRUFBRVUsTUFBTTtNQUNaUixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ007SUFDOUIsQ0FBQztJQUNEO0lBQ0FDLFNBQVMsRUFBRTtNQUNWWixJQUFJLEVBQUVVLE1BQU07TUFDWlIsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNPO0lBQzlCLENBQUM7SUFDRDtJQUNBQyxTQUFTLEVBQUU7TUFDVmIsSUFBSSxFQUFFVSxNQUFNO01BQ1pSLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDUTtJQUM5QixDQUFDO0lBQ0Q7SUFDQUMsS0FBSyxFQUFFO01BQ05kLElBQUksRUFBRSxDQUFDVSxNQUFNLEVBQUVLLE1BQU0sQ0FBQztNQUN0QmIsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNTO0lBQzlCLENBQUM7SUFDRDtJQUNBRSxPQUFPLEVBQUU7TUFDUmhCLElBQUksRUFBRVUsTUFBTTtNQUNaUixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ1c7SUFDOUIsQ0FBQztJQUNEO0lBQ0FDLFVBQVUsRUFBRTtNQUNYakIsSUFBSSxFQUFFLENBQUNVLE1BQU0sRUFBRUssTUFBTSxDQUFDO01BQ3RCYixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ1k7SUFDOUIsQ0FBQztJQUNEO0lBQ0FDLE1BQU0sRUFBRTtNQUNQbEIsSUFBSSxFQUFFLENBQUNVLE1BQU0sRUFBRUssTUFBTSxDQUFDO01BQ3RCYixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ2E7SUFDOUIsQ0FBQztJQUNEO0lBQ0FDLFlBQVksRUFBRTtNQUNibkIsSUFBSSxFQUFFLENBQUNVLE1BQU0sRUFBRUssTUFBTSxDQUFDO01BQ3RCYixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ2M7SUFDOUIsQ0FBQztJQUNEO0lBQ0FDLGFBQWEsRUFBRTtNQUNkcEIsSUFBSSxFQUFFVSxNQUFNO01BQ1pSLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDZTtJQUM5QixDQUFDO0lBQ0Q7SUFDQUMsUUFBUSxFQUFFO01BQ1RyQixJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNnQjtJQUM5QixDQUFDO0lBQ0Q7SUFDQUMsVUFBVSxFQUFFO01BQ1h0QixJQUFJLEVBQUUsQ0FBQ1UsTUFBTSxFQUFFYSxNQUFNLENBQUM7TUFDdEJyQixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ2lCO0lBQzlCO0VBQ0Q7QUFDRCxDQUFDO0FBQUEiLCJmaWxlIjoiMTA5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG5cdHByb3BzOiB7XHJcblx0XHQvLyDmmK/lkKblvIDlkK/pobbpg6jlronlhajljLrpgILphY1cclxuXHRcdHNhZmVBcmVhSW5zZXRUb3A6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLm5hdmJhci5zYWZlQXJlYUluc2V0VG9wXHJcblx0XHR9LFxyXG5cdFx0Ly8g5Zu65a6a5Zyo6aG26YOo5pe277yM5piv5ZCm55Sf5oiQ5LiA5Liq562J6auY5YWD57Sg77yM5Lul6Ziy5q2i5aGM6Zm3XHJcblx0XHRwbGFjZWhvbGRlcjoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB1bmkuJHUucHJvcHMubmF2YmFyLnBsYWNlaG9sZGVyXHJcblx0XHR9LFxyXG5cdFx0Ly8g5piv5ZCm5Zu65a6a5Zyo6aG26YOoXHJcblx0XHRmaXhlZDoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB1bmkuJHUucHJvcHMubmF2YmFyLmZpeGVkXHJcblx0XHR9LFxyXG5cdFx0Ly8g5piv5ZCm5pi+56S65LiL6L655qGGXHJcblx0XHRib3JkZXI6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLm5hdmJhci5ib3JkZXJcclxuXHRcdH0sXHJcblx0XHQvLyDlt6bovrnnmoTlm77moIdcclxuXHRcdGxlZnRJY29uOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLm5hdmJhci5sZWZ0SWNvblxyXG5cdFx0fSxcclxuXHRcdC8vIOW3pui+ueeahOaPkOekuuaWh+Wtl1xyXG5cdFx0bGVmdFRleHQ6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiB1bmkuJHUucHJvcHMubmF2YmFyLmxlZnRUZXh0XHJcblx0XHR9LFxyXG5cdFx0Ly8g5bem5Y+z55qE5o+Q56S65paH5a2XXHJcblx0XHRyaWdodFRleHQ6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiB1bmkuJHUucHJvcHMubmF2YmFyLnJpZ2h0VGV4dFxyXG5cdFx0fSxcclxuXHRcdC8vIOWPs+i+ueeahOWbvuagh1xyXG5cdFx0cmlnaHRJY29uOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLm5hdmJhci5yaWdodEljb25cclxuXHRcdH0sXHJcblx0XHQvLyDmoIfpophcclxuXHRcdHRpdGxlOiB7XHJcblx0XHRcdHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcblx0XHRcdGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5uYXZiYXIudGl0bGVcclxuXHRcdH0sXHJcblx0XHQvLyDog4zmma/popzoibJcclxuXHRcdGJnQ29sb3I6IHtcclxuXHRcdFx0dHlwZTogU3RyaW5nLFxyXG5cdFx0XHRkZWZhdWx0OiB1bmkuJHUucHJvcHMubmF2YmFyLmJnQ29sb3JcclxuXHRcdH0sXHJcblx0XHQvLyDmoIfpopjnmoTlrr3luqZcclxuXHRcdHRpdGxlV2lkdGg6IHtcclxuXHRcdFx0dHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLm5hdmJhci50aXRsZVdpZHRoXHJcblx0XHR9LFxyXG5cdFx0Ly8g5a+86Iiq5qCP6auY5bqmXHJcblx0XHRoZWlnaHQ6IHtcclxuXHRcdFx0dHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLm5hdmJhci5oZWlnaHRcclxuXHRcdH0sXHJcblx0XHQvLyDlt6bkvqfov5Tlm57lm77moIfnmoTlpKflsI9cclxuXHRcdGxlZnRJY29uU2l6ZToge1xyXG5cdFx0XHR0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG5cdFx0XHRkZWZhdWx0OiB1bmkuJHUucHJvcHMubmF2YmFyLmxlZnRJY29uU2l6ZVxyXG5cdFx0fSxcclxuXHRcdC8vIOW3puS+p+i/lOWbnuWbvuagh+eahOminOiJslxyXG5cdFx0bGVmdEljb25Db2xvcjoge1xyXG5cdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5uYXZiYXIubGVmdEljb25Db2xvclxyXG5cdFx0fSxcclxuXHRcdC8vIOeCueWHu+W3puS+p+WMuuWfnyjov5Tlm57lm77moIcp77yM5piv5ZCm6Ieq5Yqo6L+U5Zue5LiK5LiA6aG1XHJcblx0XHRhdXRvQmFjazoge1xyXG5cdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRkZWZhdWx0OiB1bmkuJHUucHJvcHMubmF2YmFyLmF1dG9CYWNrXHJcblx0XHR9LFxyXG5cdFx0Ly8g5qCH6aKY55qE5qC35byP77yM5a+56LGh5oiW5a2X56ym5LiyXHJcblx0XHR0aXRsZVN0eWxlOiB7XHJcblx0XHRcdHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXHJcblx0XHRcdGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5uYXZiYXIudGl0bGVTdHlsZVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///109\n"); /***/ }), /* 110 */ /*!********************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue ***! \********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-datetime-picker.vue?vue&type=template&id=fbda4e8a&scoped=true& */ 111);\n/* harmony import */ var _u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-datetime-picker.vue?vue&type=script&lang=js& */ 157);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_datetime_picker_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 _u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"fbda4e8a\",\n null,\n false,\n _u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMEk7QUFDMUk7QUFDcUU7QUFDTDs7O0FBR2hFO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLHVGQUFNO0FBQ1IsRUFBRSx3R0FBTTtBQUNSLEVBQUUsaUhBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNEdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTEwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LWRhdGV0aW1lLXBpY2tlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZmJkYTRlOGEmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91LWRhdGV0aW1lLXBpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3UtZGF0ZXRpbWUtcGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImZiZGE0ZThhXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1kYXRldGltZS1waWNrZXIvdS1kYXRldGltZS1waWNrZXIudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///110\n"); /***/ }), /* 111 */ /*!***************************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue?vue&type=template&id=fbda4e8a&scoped=true& ***! \***************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-datetime-picker.vue?vue&type=template&id=fbda4e8a&scoped=true& */ 112); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_template_id_fbda4e8a_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 112 */ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue?vue&type=template&id=fbda4e8a&scoped=true& ***! \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uPicker: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-picker/u-picker.vue */ 113) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("u-picker", { ref: "picker", attrs: { show: _vm.show, closeOnClickOverlay: _vm.closeOnClickOverlay, columns: _vm.columns, title: _vm.title, itemHeight: _vm.itemHeight, showToolbar: _vm.showToolbar, visibleItemCount: _vm.visibleItemCount, defaultIndex: _vm.innerDefaultIndex, cancelText: _vm.cancelText, confirmText: _vm.confirmText, cancelColor: _vm.cancelColor, confirmColor: _vm.confirmColor, _i: 0, }, on: { close: _vm.close, cancel: _vm.cancel, confirm: _vm.confirm, change: _vm.change, }, }) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 113 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-picker/u-picker.vue ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-picker.vue?vue&type=template&id=f45a262e&scoped=true& */ 114);\n/* harmony import */ var _u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-picker.vue?vue&type=script&lang=js& */ 154);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_picker_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 _u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"f45a262e\",\n null,\n false,\n _u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-picker/u-picker.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTEzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LXBpY2tlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZjQ1YTI2MmUmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91LXBpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3UtcGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImY0NWEyNjJlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1waWNrZXIvdS1waWNrZXIudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///113\n"); /***/ }), /* 114 */ /*!*********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-picker/u-picker.vue?vue&type=template&id=f45a262e&scoped=true& ***! \*********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-picker.vue?vue&type=template&id=f45a262e&scoped=true& */ 115); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_template_id_f45a262e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 115 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-picker/u-picker.vue?vue&type=template&id=f45a262e&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uPopup: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-popup/u-popup.vue */ 116) .default, uToolbar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue */ 142) .default, uLoadingIcon: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue */ 148) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "u-popup", { attrs: { show: _vm.show, _i: 0 }, on: { close: _vm.closeHandler } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "u-picker"), attrs: { _i: 1 } }, [ _vm._$s(2, "i", _vm.showToolbar) ? _c("u-toolbar", { attrs: { cancelColor: _vm.cancelColor, confirmColor: _vm.confirmColor, cancelText: _vm.cancelText, confirmText: _vm.confirmText, title: _vm.title, _i: 2, }, on: { cancel: _vm.cancel, confirm: _vm.confirm }, }) : _vm._e(), _c( "picker-view", { staticClass: _vm._$s(3, "sc", "u-picker__view"), style: _vm._$s(3, "s", { height: "" + _vm.$u.addUnit(_vm.visibleItemCount * _vm.itemHeight), }), attrs: { indicatorStyle: _vm._$s( 3, "a-indicatorStyle", "height: " + _vm.$u.addUnit(_vm.itemHeight) ), value: _vm._$s(3, "a-value", _vm.innerIndex), immediateChange: _vm._$s( 3, "a-immediateChange", _vm.immediateChange ), _i: 3, }, on: { change: _vm.changeHandler }, }, _vm._l( _vm._$s(4, "f", { forItems: _vm.innerColumns }), function (item, index, $20, $30) { return _c( "picker-view-column", { key: _vm._$s(4, "f", { forIndex: $20, key: index }), staticClass: _vm._$s( "4-" + $30, "sc", "u-picker__view__column" ), attrs: { _i: "4-" + $30 }, }, _vm._l( _vm._$s(5 + "-" + $30, "f", { forItems: item }), function (item1, index1, $21, $31) { return _vm._$s( "5-" + $30 + "-" + $31, "i", _vm.$u.test.array(item) ) ? _c( "text", { key: _vm._$s(5 + "-" + $30, "f", { forIndex: $21, key: index1, }), staticClass: _vm._$s( "5-" + $30 + "-" + $31, "sc", "u-picker__view__column__item u-line-1" ), style: _vm._$s("5-" + $30 + "-" + $31, "s", { height: _vm.$u.addUnit(_vm.itemHeight), lineHeight: _vm.$u.addUnit(_vm.itemHeight), fontWeight: index1 === _vm.innerIndex[index] ? "bold" : "normal", display: "block", }), attrs: { _i: "5-" + $30 + "-" + $31 }, }, [ _vm._v( _vm._$s( "5-" + $30 + "-" + $31, "t0-0", _vm._s(_vm.getItemText(item1)) ) ), ] ) : _vm._e() } ), 0 ) } ), 0 ), _vm._$s(6, "i", _vm.loading) ? _c( "view", { staticClass: _vm._$s(6, "sc", "u-picker--loading"), attrs: { _i: 6 }, }, [_c("u-loading-icon", { attrs: { mode: "circle", _i: 7 } })], 1 ) : _vm._e(), ], 1 ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 116 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-popup/u-popup.vue ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-popup.vue?vue&type=template&id=3a231fda&scoped=true& */ 117);\n/* harmony import */ var _u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-popup.vue?vue&type=script&lang=js& */ 139);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_popup_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 _u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"3a231fda\",\n null,\n false,\n _u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-popup/u-popup.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBZ0k7QUFDaEk7QUFDMkQ7QUFDTDs7O0FBR3REO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDZFQUFNO0FBQ1IsRUFBRSw4RkFBTTtBQUNSLEVBQUUsdUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsa0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTE2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LXBvcHVwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zYTIzMWZkYSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3UtcG9wdXAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91LXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjNhMjMxZmRhXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1wb3B1cC91LXBvcHVwLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///116\n"); /***/ }), /* 117 */ /*!*******************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-popup/u-popup.vue?vue&type=template&id=3a231fda&scoped=true& ***! \*******************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-popup.vue?vue&type=template&id=3a231fda&scoped=true& */ 118); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_template_id_3a231fda_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 118 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-popup/u-popup.vue?vue&type=template&id=3a231fda&scoped=true& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uOverlay: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-overlay/u-overlay.vue */ 119) .default, uTransition: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-transition/u-transition.vue */ 122) .default, uStatusBar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue */ 91) .default, uIcon: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-icon/u-icon.vue */ 100) .default, uSafeBottom: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue */ 133) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "u-popup"), attrs: { _i: 0 } }, [ _vm._$s(1, "i", _vm.overlay) ? _c("u-overlay", { attrs: { show: _vm.show, duration: _vm.overlayDuration, customStyle: _vm.overlayStyle, opacity: _vm.overlayOpacity, _i: 1, }, on: { click: _vm.overlayClick }, }) : _vm._e(), _c( "u-transition", { attrs: { show: _vm.show, customStyle: _vm.transitionStyle, mode: _vm.position, duration: _vm.duration, _i: 2, }, on: { afterEnter: _vm.afterEnter, click: _vm.clickHandler }, }, [ _c( "view", { staticClass: _vm._$s(3, "sc", "u-popup__content"), style: _vm._$s(3, "s", [_vm.contentStyle]), attrs: { _i: 3 }, on: { click: function ($event) { $event.stopPropagation() return _vm.noop($event) }, }, }, [ _vm._$s(4, "i", _vm.safeAreaInsetTop) ? _c("u-status-bar", { attrs: { _i: 4 } }) : _vm._e(), _vm._t("default", null, { _i: 5 }), _vm._$s(6, "i", _vm.closeable) ? _c( "view", { staticClass: _vm._$s(6, "sc", "u-popup__content__close"), class: _vm._$s(6, "c", [ "u-popup__content__close--" + _vm.closeIconPos, ]), attrs: { _i: 6 }, on: { click: function ($event) { $event.stopPropagation() return _vm.close($event) }, }, }, [ _c("u-icon", { attrs: { name: "close", color: "#909399", size: "18", bold: true, _i: 7, }, }), ], 1 ) : _vm._e(), _vm._$s(8, "i", _vm.safeAreaInsetBottom) ? _c("u-safe-bottom", { attrs: { _i: 8 } }) : _vm._e(), ], 2 ), ] ), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 119 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-overlay/u-overlay.vue ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-overlay.vue?vue&type=template&id=1625041b&scoped=true& */ 120);\n/* harmony import */ var _u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-overlay.vue?vue&type=script&lang=js& */ 130);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_overlay_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 _u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"1625041b\",\n null,\n false,\n _u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-overlay/u-overlay.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0k7QUFDbEk7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxnR0FBTTtBQUNSLEVBQUUseUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsb0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTE5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LW92ZXJsYXkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTE2MjUwNDFiJnNjb3BlZD10cnVlJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdS1vdmVybGF5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdS1vdmVybGF5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjE2MjUwNDFiXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1vdmVybGF5L3Utb3ZlcmxheS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///119\n"); /***/ }), /* 120 */ /*!***********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-overlay/u-overlay.vue?vue&type=template&id=1625041b&scoped=true& ***! \***********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-overlay.vue?vue&type=template&id=1625041b&scoped=true& */ 121); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_template_id_1625041b_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 121 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-overlay/u-overlay.vue?vue&type=template&id=1625041b&scoped=true& ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uTransition: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-transition/u-transition.vue */ 122) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "u-transition", { attrs: { show: _vm.show, "custom-class": "u-overlay", duration: _vm.duration, "custom-style": _vm.overlayStyle, _i: 0, }, on: { click: _vm.clickHandler }, }, [_vm._t("default", null, { _i: 1 })], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 122 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/u-transition.vue ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-transition.vue?vue&type=template&id=8e60ec6e&scoped=true& */ 123);\n/* harmony import */ var _u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-transition.vue?vue&type=script&lang=js& */ 125);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_transition_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 _u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"8e60ec6e\",\n null,\n false,\n _u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-transition/u-transition.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBcUk7QUFDckk7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSxtR0FBTTtBQUNSLEVBQUUsNEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsdUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPThlNjBlYzZlJnNjb3BlZD10cnVlJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdS10cmFuc2l0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjhlNjBlYzZlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS10cmFuc2l0aW9uL3UtdHJhbnNpdGlvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///122\n"); /***/ }), /* 123 */ /*!*****************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/u-transition.vue?vue&type=template&id=8e60ec6e&scoped=true& ***! \*****************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-transition.vue?vue&type=template&id=8e60ec6e&scoped=true& */ 124); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_template_id_8e60ec6e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 124 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/u-transition.vue?vue&type=template&id=8e60ec6e&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _vm._$s(0, "i", _vm.inited) ? _c( "view", { ref: "u-transition", staticClass: _vm._$s(0, "sc", "u-transition"), class: _vm._$s(0, "c", _vm.classes), style: _vm._$s(0, "s", [_vm.mergeStyle]), attrs: { _i: 0 }, on: { touchmove: _vm.noop, click: _vm.clickHandler }, }, [_vm._t("default", null, { _i: 1 })], 2 ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 125 */ /*!***********************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/u-transition.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-transition.vue?vue&type=script&lang=js& */ 126);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_transition_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdrQixDQUFnQixra0JBQUcsRUFBQyIsImZpbGUiOiIxMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXRyYW5zaXRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///125\n"); /***/ }), /* 126 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/u-transition.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 127));\nvar _transition = _interopRequireDefault(__webpack_require__(/*! ./transition.js */ 128));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n/**\r\n * transition 动画组件\r\n * @description\r\n * @tutorial\r\n * @property {String}\t\t\tshow\t\t\t是否展示组件 (默认 false )\r\n * @property {String}\t\t\tmode\t\t\t使用的动画模式 (默认 'fade' )\r\n * @property {String | Number}\tduration\t\t动画的执行时间,单位ms (默认 '300' )\r\n * @property {String}\t\t\ttimingFunction\t使用的动画过渡函数 (默认 'ease-out' )\r\n * @property {Object}\t\t\tcustomStyle\t\t自定义样式\r\n * @event {Function} before-enter\t进入前触发\r\n * @event {Function} enter\t\t\t进入中触发\r\n * @event {Function} after-enter\t进入后触发\r\n * @event {Function} before-leave\t离开前触发\r\n * @event {Function} leave\t\t\t离开中触发\r\n * @event {Function} after-leave\t离开后触发\r\n * @example\r\n */\nvar _default = {\n name: 'u-transition',\n data: function data() {\n return {\n inited: false,\n // 是否显示/隐藏组件\n viewStyle: {},\n // 组件内部的样式\n status: '',\n // 记录组件动画的状态\n transitionEnded: false,\n // 组件是否结束的标记\n display: false,\n // 组件是否展示\n classes: '' // 应用的类名\n };\n },\n\n computed: {\n mergeStyle: function mergeStyle() {\n var viewStyle = this.viewStyle,\n customStyle = this.customStyle;\n return _objectSpread(_objectSpread({\n transitionDuration: \"\".concat(this.duration, \"ms\"),\n // display: `${this.display ? '' : 'none'}`,\n transitionTimingFunction: this.timingFunction\n }, uni.$u.addStyle(customStyle)), viewStyle);\n }\n },\n // 将mixin挂在到组件中,uni.$u.mixin实际上为一个vue格式对象\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _transition.default, _props.default],\n watch: {\n show: {\n handler: function handler(newVal) {\n // vue和nvue分别执行不同的方法\n\n newVal ? this.vueEnter() : this.vueLeave();\n },\n // 表示同时监听初始化时的props的show的意思\n immediate: true\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXRyYW5zaXRpb24vdS10cmFuc2l0aW9uLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwiZGF0YSIsImluaXRlZCIsInZpZXdTdHlsZSIsInN0YXR1cyIsInRyYW5zaXRpb25FbmRlZCIsImRpc3BsYXkiLCJjbGFzc2VzIiwiY29tcHV0ZWQiLCJtZXJnZVN0eWxlIiwiY3VzdG9tU3R5bGUiLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJ0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCJ1bmkiLCJtaXhpbnMiLCJ3YXRjaCIsInNob3ciLCJoYW5kbGVyIiwibmV3VmFsIiwiaW1tZWRpYXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWVBO0FBRUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQSxlQWlCQTtFQUNBQTtFQUNBQztJQUNBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFBQTtNQUNBQztJQUNBO0VBQ0E7O0VBQ0FDO0lBQ0FDO01BQ0E7UUFBQUM7TUFDQTtRQUVBQztRQUNBO1FBQ0FDO01BQUEsR0FHQUMsK0JBQ0FWO0lBRUE7RUFDQTtFQUNBO0VBQ0FXO0VBQ0FDO0lBQ0FDO01BQ0FDO1FBQ0E7O1FBS0FDO01BRUE7TUFDQTtNQUNBQztJQUNBO0VBQ0E7QUFDQTtBQUFBIiwiZmlsZSI6IjEyNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlld1xyXG5cdFx0di1pZj1cImluaXRlZFwiXHJcblx0XHRjbGFzcz1cInUtdHJhbnNpdGlvblwiXHJcblx0XHRyZWY9XCJ1LXRyYW5zaXRpb25cIlxyXG5cdFx0QHRhcD1cImNsaWNrSGFuZGxlclwiXHJcblx0XHQ6Y2xhc3M9XCJjbGFzc2VzXCJcclxuXHRcdDpzdHlsZT1cIlttZXJnZVN0eWxlXVwiXHJcblx0XHRAdG91Y2htb3ZlPVwibm9vcFwiXHJcblx0PlxyXG5cdFx0PHNsb3QgLz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgcHJvcHMgZnJvbSAnLi9wcm9wcy5qcyc7XHJcbi8vIOe7hOS7tueahG1ldGhvZHPmlrnms5XvvIznlLHkuo7lhoXlrrnovoPplb/vvIzlhpnlnKjlpJbpg6jmlofku7bkuK3pgJrov4dtaXhpbuW8leWFpVxyXG5pbXBvcnQgdHJhbnNpdGlvbiBmcm9tIFwiLi90cmFuc2l0aW9uLmpzXCI7XHJcbi8qKlxyXG4gKiB0cmFuc2l0aW9uICDliqjnlLvnu4Tku7ZcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEB0dXRvcmlhbFxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRzaG93XHRcdFx05piv5ZCm5bGV56S657uE5Lu2IO+8iOm7mOiupCBmYWxzZSDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0bW9kZVx0XHRcdOS9v+eUqOeahOWKqOeUu+aooeW8jyDvvIjpu5jorqQgJ2ZhZGUnIO+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdGR1cmF0aW9uXHRcdOWKqOeUu+eahOaJp+ihjOaXtumXtO+8jOWNleS9jW1zIO+8iOm7mOiupCAnMzAwJyDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0dGltaW5nRnVuY3Rpb25cdOS9v+eUqOeahOWKqOeUu+i/h+a4oeWHveaVsCDvvIjpu5jorqQgJ2Vhc2Utb3V0JyDvvIlcclxuICogQHByb3BlcnR5IHtPYmplY3R9XHRcdFx0Y3VzdG9tU3R5bGVcdFx06Ieq5a6a5LmJ5qC35byPXHJcbiAqIEBldmVudCB7RnVuY3Rpb259IGJlZm9yZS1lbnRlclx06L+b5YWl5YmN6Kem5Y+RXHJcbiAqIEBldmVudCB7RnVuY3Rpb259IGVudGVyXHRcdFx06L+b5YWl5Lit6Kem5Y+RXHJcbiAqIEBldmVudCB7RnVuY3Rpb259IGFmdGVyLWVudGVyXHTov5vlhaXlkI7op6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gYmVmb3JlLWxlYXZlXHTnprvlvIDliY3op6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gbGVhdmVcdFx0XHTnprvlvIDkuK3op6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gYWZ0ZXItbGVhdmVcdOemu+W8gOWQjuinpuWPkVxyXG4gKiBAZXhhbXBsZVxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdG5hbWU6ICd1LXRyYW5zaXRpb24nLFxyXG5cdGRhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRpbml0ZWQ6IGZhbHNlLCAvLyDmmK/lkKbmmL7npLov6ZqQ6JeP57uE5Lu2XHJcblx0XHRcdHZpZXdTdHlsZToge30sIC8vIOe7hOS7tuWGhemDqOeahOagt+W8j1xyXG5cdFx0XHRzdGF0dXM6ICcnLCAvLyDorrDlvZXnu4Tku7bliqjnlLvnmoTnirbmgIFcclxuXHRcdFx0dHJhbnNpdGlvbkVuZGVkOiBmYWxzZSwgLy8g57uE5Lu25piv5ZCm57uT5p2f55qE5qCH6K6wXHJcblx0XHRcdGRpc3BsYXk6IGZhbHNlLCAvLyDnu4Tku7bmmK/lkKblsZXnpLpcclxuXHRcdFx0Y2xhc3NlczogJycsIC8vIOW6lOeUqOeahOexu+WQjVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0Y29tcHV0ZWQ6IHtcclxuXHQgICAgbWVyZ2VTdHlsZSgpIHtcclxuXHQgICAgICAgIGNvbnN0IHsgdmlld1N0eWxlLCBjdXN0b21TdHlsZSB9ID0gdGhpc1xyXG5cdCAgICAgICAgcmV0dXJuIHtcclxuXHQgICAgICAgICAgICAvLyAjaWZuZGVmIEFQUC1OVlVFXHJcblx0ICAgICAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uOiBgJHt0aGlzLmR1cmF0aW9ufW1zYCxcclxuXHQgICAgICAgICAgICAvLyBkaXNwbGF5OiBgJHt0aGlzLmRpc3BsYXkgPyAnJyA6ICdub25lJ31gLFxyXG5cdFx0XHRcdHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjogdGhpcy50aW1pbmdGdW5jdGlvbixcclxuXHQgICAgICAgICAgICAvLyAjZW5kaWZcclxuXHRcdFx0XHQvLyDpgb/lhY3oh6rlrprkuYnmoLflvI/lvbHlk43liLDliqjnlLvlsZ7mgKfvvIzmiYDku6XlhpnlnKh2aWV3U3R5bGXliY3pnaJcclxuXHQgICAgICAgICAgICAuLi51bmkuJHUuYWRkU3R5bGUoY3VzdG9tU3R5bGUpLFxyXG5cdCAgICAgICAgICAgIC4uLnZpZXdTdHlsZVxyXG5cdCAgICAgICAgfVxyXG5cdCAgICB9XHJcblx0fSxcclxuXHQvLyDlsIZtaXhpbuaMguWcqOWIsOe7hOS7tuS4re+8jHVuaS4kdS5taXhpbuWunumZheS4iuS4uuS4gOS4qnZ1ZeagvOW8j+WvueixoVxyXG5cdG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4sIHRyYW5zaXRpb24sIHByb3BzXSxcclxuXHR3YXRjaDoge1xyXG5cdFx0c2hvdzoge1xyXG5cdFx0XHRoYW5kbGVyKG5ld1ZhbCkge1xyXG5cdFx0XHRcdC8vIHZ1ZeWSjG52dWXliIbliKvmiafooYzkuI3lkIznmoTmlrnms5VcclxuXHRcdFx0XHQvLyAjaWZkZWYgQVBQLU5WVUVcclxuXHRcdFx0XHRuZXdWYWwgPyB0aGlzLm52dWVFbnRlcigpIDogdGhpcy5udnVlTGVhdmUoKVxyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcdC8vICNpZm5kZWYgQVBQLU5WVUVcclxuXHRcdFx0XHRuZXdWYWwgPyB0aGlzLnZ1ZUVudGVyKCkgOiB0aGlzLnZ1ZUxlYXZlKClcclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6KGo56S65ZCM5pe255uR5ZCs5Yid5aeL5YyW5pe255qEcHJvcHPnmoRzaG9355qE5oSP5oCdXHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCAnLi4vLi4vbGlicy9jc3MvY29tcG9uZW50cy5zY3NzJztcclxuXHJcbi8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuLy8gdnVl54mI5pys5Yqo55S755u45YWz55qE5qC35byP5oq956a75Zyo5aSW6YOo5paH5Lu2XHJcbkBpbXBvcnQgJy4vdnVlLmFuaS1zdHlsZS5zY3NzJztcclxuLyogI2VuZGlmICovXHJcblxyXG4udS10cmFuc2l0aW9uIHt9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///126\n"); /***/ }), /* 127 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/props.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否展示组件\n show: {\n type: Boolean,\n default: uni.$u.props.transition.show\n },\n // 使用的动画模式\n mode: {\n type: String,\n default: uni.$u.props.transition.mode\n },\n // 动画的执行时间,单位ms\n duration: {\n type: [String, Number],\n default: uni.$u.props.transition.duration\n },\n // 使用的动画过渡函数\n timingFunction: {\n type: String,\n default: uni.$u.props.transition.timingFunction\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXRyYW5zaXRpb24vcHJvcHMuanMiXSwibmFtZXMiOlsicHJvcHMiLCJzaG93IiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0IiwidW5pIiwiJHUiLCJ0cmFuc2l0aW9uIiwibW9kZSIsIlN0cmluZyIsImR1cmF0aW9uIiwiTnVtYmVyIiwidGltaW5nRnVuY3Rpb24iXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0VBQ1hBLEtBQUssRUFBRTtJQUNIO0lBQ0FDLElBQUksRUFBRTtNQUNGQyxJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxVQUFVLENBQUNOO0lBQ3JDLENBQUM7SUFDRDtJQUNBTyxJQUFJLEVBQUU7TUFDRk4sSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sVUFBVSxDQUFDQztJQUNyQyxDQUFDO0lBQ0Q7SUFDQUUsUUFBUSxFQUFFO01BQ05SLElBQUksRUFBRSxDQUFDTyxNQUFNLEVBQUVFLE1BQU0sQ0FBQztNQUN0QlAsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxVQUFVLENBQUNHO0lBQ3JDLENBQUM7SUFDRDtJQUNBRSxjQUFjLEVBQUU7TUFDWlYsSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sVUFBVSxDQUFDSztJQUNyQztFQUNKO0FBQ0osQ0FBQztBQUFBIiwiZmlsZSI6IjEyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICAgIHByb3BzOiB7XHJcbiAgICAgICAgLy8g5piv5ZCm5bGV56S657uE5Lu2XHJcbiAgICAgICAgc2hvdzoge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMudHJhbnNpdGlvbi5zaG93XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDkvb/nlKjnmoTliqjnlLvmqKHlvI9cclxuICAgICAgICBtb2RlOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnRyYW5zaXRpb24ubW9kZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Yqo55S755qE5omn6KGM5pe26Ze077yM5Y2V5L2NbXNcclxuICAgICAgICBkdXJhdGlvbjoge1xyXG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMudHJhbnNpdGlvbi5kdXJhdGlvblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5L2/55So55qE5Yqo55S76L+H5rih5Ye95pWwXHJcbiAgICAgICAgdGltaW5nRnVuY3Rpb246IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMudHJhbnNpdGlvbi50aW1pbmdGdW5jdGlvblxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///127\n"); /***/ }), /* 128 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/transition.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _nvueAniMap = _interopRequireDefault(__webpack_require__(/*! ./nvue.ani-map.js */ 129));\n// 定义一个一定时间后自动成功的promise,让调用nextTick方法处,进入下一个then方法\nvar nextTick = function nextTick() {\n return new Promise(function (resolve) {\n return setTimeout(resolve, 1000 / 50);\n });\n};\n// nvue动画模块实现细节抽离在外部文件\n\n// 定义类名,通过给元素动态切换类名,赋予元素一定的css动画样式\nvar getClassNames = function getClassNames(name) {\n return {\n enter: \"u-\".concat(name, \"-enter u-\").concat(name, \"-enter-active\"),\n 'enter-to': \"u-\".concat(name, \"-enter-to u-\").concat(name, \"-enter-active\"),\n leave: \"u-\".concat(name, \"-leave u-\").concat(name, \"-leave-active\"),\n 'leave-to': \"u-\".concat(name, \"-leave-to u-\").concat(name, \"-leave-active\")\n };\n};\nvar _default = {\n methods: {\n // 组件被点击发出事件\n clickHandler: function clickHandler() {\n this.$emit('click');\n },\n // vue版本的组件进场处理\n vueEnter: function vueEnter() {\n var _this = this;\n // 动画进入时的类名\n var classNames = getClassNames(this.mode);\n // 定义状态和发出动画进入前事件\n this.status = 'enter';\n this.$emit('beforeEnter');\n this.inited = true;\n this.display = true;\n this.classes = classNames.enter;\n this.$nextTick( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n // 标识动画尚未结束\n _this.$emit('enter');\n _this.transitionEnded = false;\n // 组件动画进入后触发的事件\n _this.$emit('afterEnter');\n // 赋予组件enter-to类名\n _this.classes = classNames['enter-to'];\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n },\n // 动画离场处理\n vueLeave: function vueLeave() {\n var _this2 = this;\n // 如果不是展示状态,无需执行逻辑\n if (!this.display) return;\n var classNames = getClassNames(this.mode);\n // 标记离开状态和发出事件\n this.status = 'leave';\n this.$emit('beforeLeave');\n // 获得类名\n this.classes = classNames.leave;\n this.$nextTick(function () {\n // 动画正在离场的状态\n _this2.transitionEnded = false;\n _this2.$emit('leave');\n // 组件执行动画,到了执行的执行时间后,执行一些额外处理\n setTimeout(_this2.onTransitionEnd, _this2.duration);\n _this2.classes = classNames['leave-to'];\n });\n },\n // 完成过渡后触发\n onTransitionEnd: function onTransitionEnd() {\n // 如果已经是结束的状态,无需再处理\n if (this.transitionEnded) return;\n this.transitionEnded = true;\n // 发出组件动画执行后的事件\n this.$emit(this.status === 'leave' ? 'afterLeave' : 'afterEnter');\n if (!this.show && this.display) {\n this.display = false;\n this.inited = false;\n }\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXRyYW5zaXRpb24vdHJhbnNpdGlvbi5qcyJdLCJuYW1lcyI6WyJuZXh0VGljayIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImdldENsYXNzTmFtZXMiLCJuYW1lIiwiZW50ZXIiLCJsZWF2ZSIsIm1ldGhvZHMiLCJjbGlja0hhbmRsZXIiLCIkZW1pdCIsInZ1ZUVudGVyIiwiY2xhc3NOYW1lcyIsIm1vZGUiLCJzdGF0dXMiLCJpbml0ZWQiLCJkaXNwbGF5IiwiY2xhc3NlcyIsIiRuZXh0VGljayIsInRyYW5zaXRpb25FbmRlZCIsInZ1ZUxlYXZlIiwib25UcmFuc2l0aW9uRW5kIiwiZHVyYXRpb24iLCJzaG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTtBQUhBO0FBQ0EsSUFBTUEsUUFBUSxHQUFHLFNBQVhBLFFBQVE7RUFBQSxPQUFTLElBQUlDLE9BQU8sQ0FBQyxVQUFBQyxPQUFPO0lBQUEsT0FBSUMsVUFBVSxDQUFDRCxPQUFPLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztFQUFBLEVBQUM7QUFBQTtBQUM3RTs7QUFJQTtBQUNBLElBQU1FLGFBQWEsR0FBRyxTQUFoQkEsYUFBYSxDQUFJQyxJQUFJO0VBQUEsT0FBTTtJQUM3QkMsS0FBSyxjQUFPRCxJQUFJLHNCQUFZQSxJQUFJLGtCQUFlO0lBQy9DLFVBQVUsY0FBT0EsSUFBSSx5QkFBZUEsSUFBSSxrQkFBZTtJQUN2REUsS0FBSyxjQUFPRixJQUFJLHNCQUFZQSxJQUFJLGtCQUFlO0lBQy9DLFVBQVUsY0FBT0EsSUFBSSx5QkFBZUEsSUFBSTtFQUM1QyxDQUFDO0FBQUEsQ0FBQztBQUFBLGVBVWE7RUFDWEcsT0FBTyxFQUFFO0lBQ0w7SUFDQUMsWUFBWSwwQkFBRztNQUNYLElBQUksQ0FBQ0MsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQ7SUFDQ0MsUUFBUSxzQkFBRztNQUFBO01BQ1I7TUFDQSxJQUFNQyxVQUFVLEdBQUdSLGFBQWEsQ0FBQyxJQUFJLENBQUNTLElBQUksQ0FBQztNQUMzQztNQUNBLElBQUksQ0FBQ0MsTUFBTSxHQUFHLE9BQU87TUFDckIsSUFBSSxDQUFDSixLQUFLLENBQUMsYUFBYSxDQUFDO01BQ3pCLElBQUksQ0FBQ0ssTUFBTSxHQUFHLElBQUk7TUFDbEIsSUFBSSxDQUFDQyxPQUFPLEdBQUcsSUFBSTtNQUNuQixJQUFJLENBQUNDLE9BQU8sR0FBR0wsVUFBVSxDQUFDTixLQUFLO01BQy9CLElBQUksQ0FBQ1ksU0FBUyx1RkFBQztRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUlYO2dCQUNBLEtBQUksQ0FBQ1IsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsS0FBSSxDQUFDUyxlQUFlLEdBQUcsS0FBSztnQkFDeEM7Z0JBQ1ksS0FBSSxDQUFDVCxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUN4QjtnQkFDQSxLQUFJLENBQUNPLE9BQU8sR0FBR0wsVUFBVSxDQUFDLFVBQVUsQ0FBQztjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQSxDQUN4QyxHQUFDO0lBQ04sQ0FBQztJQUNEO0lBQ0FRLFFBQVEsc0JBQUc7TUFBQTtNQUNQO01BQ0EsSUFBSSxDQUFDLElBQUksQ0FBQ0osT0FBTyxFQUFFO01BQ25CLElBQU1KLFVBQVUsR0FBR1IsYUFBYSxDQUFDLElBQUksQ0FBQ1MsSUFBSSxDQUFDO01BQzNDO01BQ0EsSUFBSSxDQUFDQyxNQUFNLEdBQUcsT0FBTztNQUNyQixJQUFJLENBQUNKLEtBQUssQ0FBQyxhQUFhLENBQUM7TUFDekI7TUFDQSxJQUFJLENBQUNPLE9BQU8sR0FBR0wsVUFBVSxDQUFDTCxLQUFLO01BRS9CLElBQUksQ0FBQ1csU0FBUyxDQUFDLFlBQU07UUFDbEI7UUFDQSxNQUFJLENBQUNDLGVBQWUsR0FBRyxLQUFLO1FBQzVCLE1BQUksQ0FBQ1QsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNsQjtRQUNBUCxVQUFVLENBQUMsTUFBSSxDQUFDa0IsZUFBZSxFQUFFLE1BQUksQ0FBQ0MsUUFBUSxDQUFDO1FBQy9DLE1BQUksQ0FBQ0wsT0FBTyxHQUFHTCxVQUFVLENBQUMsVUFBVSxDQUFDO01BQ3pDLENBQUMsQ0FBQztJQUNOLENBQUM7SUF3RUQ7SUFDQVMsZUFBZSw2QkFBRztNQUNkO01BQ0EsSUFBSSxJQUFJLENBQUNGLGVBQWUsRUFBRTtNQUMxQixJQUFJLENBQUNBLGVBQWUsR0FBRyxJQUFJO01BQzNCO01BQ0EsSUFBSSxDQUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDSSxNQUFNLEtBQUssT0FBTyxHQUFHLFlBQVksR0FBRyxZQUFZLENBQUM7TUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQ1MsSUFBSSxJQUFJLElBQUksQ0FBQ1AsT0FBTyxFQUFFO1FBQzVCLElBQUksQ0FBQ0EsT0FBTyxHQUFHLEtBQUs7UUFDcEIsSUFBSSxDQUFDRCxNQUFNLEdBQUcsS0FBSztNQUN2QjtJQUNKO0VBQ0o7QUFDSixDQUFDO0FBQUEiLCJmaWxlIjoiMTI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8g5a6a5LmJ5LiA5Liq5LiA5a6a5pe26Ze05ZCO6Ieq5Yqo5oiQ5Yqf55qEcHJvbWlzZe+8jOiuqeiwg+eUqG5leHRUaWNr5pa55rOV5aSE77yM6L+b5YWl5LiL5LiA5LiqdGhlbuaWueazlVxyXG5jb25zdCBuZXh0VGljayA9ICgpID0+IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwIC8gNTApKVxyXG4vLyBudnVl5Yqo55S75qih5Z2X5a6e546w57uG6IqC5oq956a75Zyo5aSW6YOo5paH5Lu2XHJcbmltcG9ydCBhbmltYXRpb25NYXAgZnJvbSAnLi9udnVlLmFuaS1tYXAuanMnXHJcblxyXG5cclxuLy8g5a6a5LmJ57G75ZCN77yM6YCa6L+H57uZ5YWD57Sg5Yqo5oCB5YiH5o2i57G75ZCN77yM6LWL5LqI5YWD57Sg5LiA5a6a55qEY3Nz5Yqo55S75qC35byPXHJcbmNvbnN0IGdldENsYXNzTmFtZXMgPSAobmFtZSkgPT4gKHtcclxuICAgIGVudGVyOiBgdS0ke25hbWV9LWVudGVyIHUtJHtuYW1lfS1lbnRlci1hY3RpdmVgLFxyXG4gICAgJ2VudGVyLXRvJzogYHUtJHtuYW1lfS1lbnRlci10byB1LSR7bmFtZX0tZW50ZXItYWN0aXZlYCxcclxuICAgIGxlYXZlOiBgdS0ke25hbWV9LWxlYXZlIHUtJHtuYW1lfS1sZWF2ZS1hY3RpdmVgLFxyXG4gICAgJ2xlYXZlLXRvJzogYHUtJHtuYW1lfS1sZWF2ZS10byB1LSR7bmFtZX0tbGVhdmUtYWN0aXZlYFxyXG59KVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgICBtZXRob2RzOiB7XHJcbiAgICAgICAgLy8g57uE5Lu26KKr54K55Ye75Y+R5Ye65LqL5Lu2XHJcbiAgICAgICAgY2xpY2tIYW5kbGVyKCkge1xyXG4gICAgICAgICAgICB0aGlzLiRlbWl0KCdjbGljaycpXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgLy8gdnVl54mI5pys55qE57uE5Lu26L+b5Zy65aSE55CGXHJcbiAgICAgICAgIHZ1ZUVudGVyKCkge1xyXG4gICAgICAgICAgICAvLyDliqjnlLvov5vlhaXml7bnmoTnsbvlkI1cclxuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lcyA9IGdldENsYXNzTmFtZXModGhpcy5tb2RlKVxyXG4gICAgICAgICAgICAvLyDlrprkuYnnirbmgIHlkozlj5Hlh7rliqjnlLvov5vlhaXliY3kuovku7ZcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSAnZW50ZXInXHJcbiAgICAgICAgICAgIHRoaXMuJGVtaXQoJ2JlZm9yZUVudGVyJylcclxuICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheSA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jbGFzc2VzID0gY2xhc3NOYW1lcy5lbnRlclxyXG4gICAgICAgICAgICB0aGlzLiRuZXh0VGljayhhc3luYyAoKSA9PiB7XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmoIfor4bliqjnlLvlsJrmnKrnu5PmnZ9cclxuICAgICAgICAgICAgICAgIHRoaXMuJGVtaXQoJ2VudGVyJylcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbkVuZGVkID0gZmFsc2VcclxuXHRcdFx0XHQvLyDnu4Tku7bliqjnlLvov5vlhaXlkI7op6blj5HnmoTkuovku7ZcclxuICAgICAgICAgICAgICAgIHRoaXMuJGVtaXQoJ2FmdGVyRW50ZXInKVxyXG4gICAgICAgICAgICAgICAgLy8g6LWL5LqI57uE5Lu2ZW50ZXItdG/nsbvlkI1cclxuICAgICAgICAgICAgICAgIHRoaXMuY2xhc3NlcyA9IGNsYXNzTmFtZXNbJ2VudGVyLXRvJ11cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWKqOeUu+emu+WcuuWkhOeQhlxyXG4gICAgICAgIHZ1ZUxlYXZlKCkge1xyXG4gICAgICAgICAgICAvLyDlpoLmnpzkuI3mmK/lsZXnpLrnirbmgIHvvIzml6DpnIDmiafooYzpgLvovpFcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmRpc3BsYXkpIHJldHVyblxyXG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWVzID0gZ2V0Q2xhc3NOYW1lcyh0aGlzLm1vZGUpXHJcbiAgICAgICAgICAgIC8vIOagh+iusOemu+W8gOeKtuaAgeWSjOWPkeWHuuS6i+S7tlxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9ICdsZWF2ZSdcclxuICAgICAgICAgICAgdGhpcy4kZW1pdCgnYmVmb3JlTGVhdmUnKVxyXG4gICAgICAgICAgICAvLyDojrflvpfnsbvlkI1cclxuICAgICAgICAgICAgdGhpcy5jbGFzc2VzID0gY2xhc3NOYW1lcy5sZWF2ZVxyXG5cclxuICAgICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAvLyDliqjnlLvmraPlnKjnprvlnLrnmoTnirbmgIFcclxuICAgICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uRW5kZWQgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdsZWF2ZScpXHJcbiAgICAgICAgICAgICAgICAvLyDnu4Tku7bmiafooYzliqjnlLvvvIzliLDkuobmiafooYznmoTmiafooYzml7bpl7TlkI7vvIzmiafooYzkuIDkupvpop3lpJblpITnkIZcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodGhpcy5vblRyYW5zaXRpb25FbmQsIHRoaXMuZHVyYXRpb24pXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsYXNzZXMgPSBjbGFzc05hbWVzWydsZWF2ZS10byddXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSxcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgIC8vIOWujOaIkOi/h+a4oeWQjuinpuWPkVxyXG4gICAgICAgIG9uVHJhbnNpdGlvbkVuZCgpIHtcclxuICAgICAgICAgICAgLy8g5aaC5p6c5bey57uP5piv57uT5p2f55qE54q25oCB77yM5peg6ZyA5YaN5aSE55CGXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zaXRpb25FbmRlZCkgcmV0dXJuXHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbkVuZGVkID0gdHJ1ZVxyXG4gICAgICAgICAgICAvLyDlj5Hlh7rnu4Tku7bliqjnlLvmiafooYzlkI7nmoTkuovku7ZcclxuICAgICAgICAgICAgdGhpcy4kZW1pdCh0aGlzLnN0YXR1cyA9PT0gJ2xlYXZlJyA/ICdhZnRlckxlYXZlJyA6ICdhZnRlckVudGVyJylcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3cgJiYgdGhpcy5kaXNwbGF5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///128\n"); /***/ }), /* 129 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-transition/nvue.ani-map.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n fade: {\n enter: {\n opacity: 0\n },\n 'enter-to': {\n opacity: 1\n },\n leave: {\n opacity: 1\n },\n 'leave-to': {\n opacity: 0\n }\n },\n 'fade-up': {\n enter: {\n opacity: 0,\n transform: 'translateY(100%)'\n },\n 'enter-to': {\n opacity: 1,\n transform: 'translateY(0)'\n },\n leave: {\n opacity: 1,\n transform: 'translateY(0)'\n },\n 'leave-to': {\n opacity: 0,\n transform: 'translateY(100%)'\n }\n },\n 'fade-down': {\n enter: {\n opacity: 0,\n transform: 'translateY(-100%)'\n },\n 'enter-to': {\n opacity: 1,\n transform: 'translateY(0)'\n },\n leave: {\n opacity: 1,\n transform: 'translateY(0)'\n },\n 'leave-to': {\n opacity: 0,\n transform: 'translateY(-100%)'\n }\n },\n 'fade-left': {\n enter: {\n opacity: 0,\n transform: 'translateX(-100%)'\n },\n 'enter-to': {\n opacity: 1,\n transform: 'translateY(0)'\n },\n leave: {\n opacity: 1,\n transform: 'translateY(0)'\n },\n 'leave-to': {\n opacity: 0,\n transform: 'translateX(-100%)'\n }\n },\n 'fade-right': {\n enter: {\n opacity: 0,\n transform: 'translateX(100%)'\n },\n 'enter-to': {\n opacity: 1,\n transform: 'translateY(0)'\n },\n leave: {\n opacity: 1,\n transform: 'translateY(0)'\n },\n 'leave-to': {\n opacity: 0,\n transform: 'translateX(100%)'\n }\n },\n 'slide-up': {\n enter: {\n transform: 'translateY(100%)'\n },\n 'enter-to': {\n transform: 'translateY(0)'\n },\n leave: {\n transform: 'translateY(0)'\n },\n 'leave-to': {\n transform: 'translateY(100%)'\n }\n },\n 'slide-down': {\n enter: {\n transform: 'translateY(-100%)'\n },\n 'enter-to': {\n transform: 'translateY(0)'\n },\n leave: {\n transform: 'translateY(0)'\n },\n 'leave-to': {\n transform: 'translateY(-100%)'\n }\n },\n 'slide-left': {\n enter: {\n transform: 'translateX(-100%)'\n },\n 'enter-to': {\n transform: 'translateY(0)'\n },\n leave: {\n transform: 'translateY(0)'\n },\n 'leave-to': {\n transform: 'translateX(-100%)'\n }\n },\n 'slide-right': {\n enter: {\n transform: 'translateX(100%)'\n },\n 'enter-to': {\n transform: 'translateY(0)'\n },\n leave: {\n transform: 'translateY(0)'\n },\n 'leave-to': {\n transform: 'translateX(100%)'\n }\n },\n zoom: {\n enter: {\n transform: 'scale(0.95)'\n },\n 'enter-to': {\n transform: 'scale(1)'\n },\n leave: {\n transform: 'scale(1)'\n },\n 'leave-to': {\n transform: 'scale(0.95)'\n }\n },\n 'fade-zoom': {\n enter: {\n opacity: 0,\n transform: 'scale(0.95)'\n },\n 'enter-to': {\n opacity: 1,\n transform: 'scale(1)'\n },\n leave: {\n opacity: 1,\n transform: 'scale(1)'\n },\n 'leave-to': {\n opacity: 0,\n transform: 'scale(0.95)'\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXRyYW5zaXRpb24vbnZ1ZS5hbmktbWFwLmpzIl0sIm5hbWVzIjpbImZhZGUiLCJlbnRlciIsIm9wYWNpdHkiLCJsZWF2ZSIsInRyYW5zZm9ybSIsInpvb20iXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0VBQ1hBLElBQUksRUFBRTtJQUNGQyxLQUFLLEVBQUU7TUFBRUMsT0FBTyxFQUFFO0lBQUUsQ0FBQztJQUNyQixVQUFVLEVBQUU7TUFBRUEsT0FBTyxFQUFFO0lBQUUsQ0FBQztJQUMxQkMsS0FBSyxFQUFFO01BQUVELE9BQU8sRUFBRTtJQUFFLENBQUM7SUFDckIsVUFBVSxFQUFFO01BQUVBLE9BQU8sRUFBRTtJQUFFO0VBQzdCLENBQUM7RUFDRCxTQUFTLEVBQUU7SUFDUEQsS0FBSyxFQUFFO01BQUVDLE9BQU8sRUFBRSxDQUFDO01BQUVFLFNBQVMsRUFBRTtJQUFtQixDQUFDO0lBQ3BELFVBQVUsRUFBRTtNQUFFRixPQUFPLEVBQUUsQ0FBQztNQUFFRSxTQUFTLEVBQUU7SUFBZ0IsQ0FBQztJQUN0REQsS0FBSyxFQUFFO01BQUVELE9BQU8sRUFBRSxDQUFDO01BQUVFLFNBQVMsRUFBRTtJQUFnQixDQUFDO0lBQ2pELFVBQVUsRUFBRTtNQUFFRixPQUFPLEVBQUUsQ0FBQztNQUFFRSxTQUFTLEVBQUU7SUFBbUI7RUFDNUQsQ0FBQztFQUNELFdBQVcsRUFBRTtJQUNUSCxLQUFLLEVBQUU7TUFBRUMsT0FBTyxFQUFFLENBQUM7TUFBRUUsU0FBUyxFQUFFO0lBQW9CLENBQUM7SUFDckQsVUFBVSxFQUFFO01BQUVGLE9BQU8sRUFBRSxDQUFDO01BQUVFLFNBQVMsRUFBRTtJQUFnQixDQUFDO0lBQ3RERCxLQUFLLEVBQUU7TUFBRUQsT0FBTyxFQUFFLENBQUM7TUFBRUUsU0FBUyxFQUFFO0lBQWdCLENBQUM7SUFDakQsVUFBVSxFQUFFO01BQUVGLE9BQU8sRUFBRSxDQUFDO01B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RSxTQUFTLEVBQUU7SUFBYztFQUN2RDtBQUNKLENBQUM7QUFBQSIsImZpbGUiOiIxMjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBmYWRlOiB7XHJcbiAgICAgICAgZW50ZXI6IHsgb3BhY2l0eTogMCB9LFxyXG4gICAgICAgICdlbnRlci10byc6IHsgb3BhY2l0eTogMSB9LFxyXG4gICAgICAgIGxlYXZlOiB7IG9wYWNpdHk6IDEgfSxcclxuICAgICAgICAnbGVhdmUtdG8nOiB7IG9wYWNpdHk6IDAgfVxyXG4gICAgfSxcclxuICAgICdmYWRlLXVwJzoge1xyXG4gICAgICAgIGVudGVyOiB7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknIH0sXHJcbiAgICAgICAgJ2VudGVyLXRvJzogeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9LFxyXG4gICAgICAgIGxlYXZlOiB7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sXHJcbiAgICAgICAgJ2xlYXZlLXRvJzogeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEwMCUpJyB9XHJcbiAgICB9LFxyXG4gICAgJ2ZhZGUtZG93bic6IHtcclxuICAgICAgICBlbnRlcjogeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMDAlKScgfSxcclxuICAgICAgICAnZW50ZXItdG8nOiB7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sXHJcbiAgICAgICAgbGVhdmU6IHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSxcclxuICAgICAgICAnbGVhdmUtdG8nOiB7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJyB9XHJcbiAgICB9LFxyXG4gICAgJ2ZhZGUtbGVmdCc6IHtcclxuICAgICAgICBlbnRlcjogeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0xMDAlKScgfSxcclxuICAgICAgICAnZW50ZXItdG8nOiB7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sXHJcbiAgICAgICAgbGVhdmU6IHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSxcclxuICAgICAgICAnbGVhdmUtdG8nOiB7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEwMCUpJyB9XHJcbiAgICB9LFxyXG4gICAgJ2ZhZGUtcmlnaHQnOiB7XHJcbiAgICAgICAgZW50ZXI6IHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSxcclxuICAgICAgICAnZW50ZXItdG8nOiB7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sXHJcbiAgICAgICAgbGVhdmU6IHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSxcclxuICAgICAgICAnbGVhdmUtdG8nOiB7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH1cclxuICAgIH0sXHJcbiAgICAnc2xpZGUtdXAnOiB7XHJcbiAgICAgICAgZW50ZXI6IHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgxMDAlKScgfSxcclxuICAgICAgICAnZW50ZXItdG8nOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sXHJcbiAgICAgICAgbGVhdmU6IHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSxcclxuICAgICAgICAnbGVhdmUtdG8nOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknIH1cclxuICAgIH0sXHJcbiAgICAnc2xpZGUtZG93bic6IHtcclxuICAgICAgICBlbnRlcjogeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMDAlKScgfSxcclxuICAgICAgICAnZW50ZXItdG8nOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sXHJcbiAgICAgICAgbGVhdmU6IHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSxcclxuICAgICAgICAnbGVhdmUtdG8nOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJyB9XHJcbiAgICB9LFxyXG4gICAgJ3NsaWRlLWxlZnQnOiB7XHJcbiAgICAgICAgZW50ZXI6IHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0sXHJcbiAgICAgICAgJ2VudGVyLXRvJzogeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9LFxyXG4gICAgICAgIGxlYXZlOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0sXHJcbiAgICAgICAgJ2xlYXZlLXRvJzogeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0xMDAlKScgfVxyXG4gICAgfSxcclxuICAgICdzbGlkZS1yaWdodCc6IHtcclxuICAgICAgICBlbnRlcjogeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9LFxyXG4gICAgICAgICdlbnRlci10byc6IHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSxcclxuICAgICAgICBsZWF2ZTogeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9LFxyXG4gICAgICAgICdsZWF2ZS10byc6IHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfVxyXG4gICAgfSxcclxuICAgIHpvb206IHtcclxuICAgICAgICBlbnRlcjogeyB0cmFuc2Zvcm06ICdzY2FsZSgwLjk1KScgfSxcclxuICAgICAgICAnZW50ZXItdG8nOiB7IHRyYW5zZm9ybTogJ3NjYWxlKDEpJyB9LFxyXG4gICAgICAgIGxlYXZlOiB7IHRyYW5zZm9ybTogJ3NjYWxlKDEpJyB9LFxyXG4gICAgICAgICdsZWF2ZS10byc6IHsgdHJhbnNmb3JtOiAnc2NhbGUoMC45NSknIH1cclxuICAgIH0sXHJcbiAgICAnZmFkZS16b29tJzoge1xyXG4gICAgICAgIGVudGVyOiB7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAuOTUpJyB9LFxyXG4gICAgICAgICdlbnRlci10byc6IHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknIH0sXHJcbiAgICAgICAgbGVhdmU6IHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknIH0sXHJcbiAgICAgICAgJ2xlYXZlLXRvJzogeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSgwLjk1KScgfVxyXG4gICAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///129\n"); /***/ }), /* 130 */ /*!*****************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-overlay/u-overlay.vue?vue&type=script&lang=js& ***! \*****************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-overlay.vue?vue&type=script&lang=js& */ 131);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_overlay_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZqQixDQUFnQiwrakJBQUcsRUFBQyIsImZpbGUiOiIxMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LW92ZXJsYXkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LW92ZXJsYXkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///130\n"); /***/ }), /* 131 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-overlay/u-overlay.vue?vue&type=script&lang=js& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 132));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * overlay 遮罩\n * @description 创建一个遮罩层,用于强调特定的页面元素,并阻止用户对遮罩下层的内容进行操作,一般用于弹窗场景\n * @tutorial https://www.uviewui.com/components/overlay.html\n * @property {Boolean}\t\t\tshow\t\t是否显示遮罩(默认 false )\n * @property {String | Number}\tzIndex\t\tzIndex 层级(默认 10070 )\n * @property {String | Number}\tduration\t动画时长,单位毫秒(默认 300 )\n * @property {String | Number}\topacity\t\t不透明度值,当做rgba的第四个参数 (默认 0.5 )\n * @property {Object}\t\t\tcustomStyle\t定义需要用到的外部样式\n * @event {Function} click 点击遮罩发送事件\n * @example \n */\nvar _default = {\n name: \"u-overlay\",\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n computed: {\n overlayStyle: function overlayStyle() {\n var style = {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n zIndex: this.zIndex,\n bottom: 0,\n 'background-color': \"rgba(0, 0, 0, \".concat(this.opacity, \")\")\n };\n return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));\n }\n },\n methods: {\n clickHandler: function clickHandler() {\n this.$emit('click');\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LW92ZXJsYXkvdS1vdmVybGF5LnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwibWl4aW5zIiwiY29tcHV0ZWQiLCJvdmVybGF5U3R5bGUiLCJwb3NpdGlvbiIsInRvcCIsImxlZnQiLCJyaWdodCIsInpJbmRleCIsImJvdHRvbSIsIm1ldGhvZHMiLCJjbGlja0hhbmRsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFhQTs7Ozs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBLGVBWUE7RUFDQUE7RUFDQUM7RUFDQUM7SUFDQUM7TUFDQTtRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBO01BQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBIiwiZmlsZSI6IjEzMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dS10cmFuc2l0aW9uXHJcblx0ICAgIDpzaG93PVwic2hvd1wiXHJcblx0ICAgIGN1c3RvbS1jbGFzcz1cInUtb3ZlcmxheVwiXHJcblx0ICAgIDpkdXJhdGlvbj1cImR1cmF0aW9uXCJcclxuXHQgICAgOmN1c3RvbS1zdHlsZT1cIm92ZXJsYXlTdHlsZVwiXHJcblx0ICAgIEBjbGljaz1cImNsaWNrSGFuZGxlclwiXHJcblx0PlxyXG5cdFx0PHNsb3QgLz5cclxuXHQ8L3UtdHJhbnNpdGlvbj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHByb3BzIGZyb20gJy4vcHJvcHMuanMnO1xyXG5cclxuXHQvKipcclxuXHQgKiBvdmVybGF5IOmBrue9qVxyXG5cdCAqIEBkZXNjcmlwdGlvbiDliJvlu7rkuIDkuKrpga7nvanlsYLvvIznlKjkuo7lvLrosIPnibnlrprnmoTpobXpnaLlhYPntKDvvIzlubbpmLvmraLnlKjmiLflr7npga7nvankuIvlsYLnmoTlhoXlrrnov5vooYzmk43kvZzvvIzkuIDoiKznlKjkuo7lvLnnqpflnLrmma9cclxuXHQgKiBAdHV0b3JpYWwgaHR0cHM6Ly93d3cudXZpZXd1aS5jb20vY29tcG9uZW50cy9vdmVybGF5Lmh0bWxcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59XHRcdFx0c2hvd1x0XHTmmK/lkKbmmL7npLrpga7nvanvvIjpu5jorqQgZmFsc2Ug77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHR6SW5kZXhcdFx0ekluZGV4IOWxgue6p++8iOm7mOiupCAxMDA3MCDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdGR1cmF0aW9uXHTliqjnlLvml7bplb/vvIzljZXkvY3mr6vnp5LvvIjpu5jorqQgMzAwIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nIHwgTnVtYmVyfVx0b3BhY2l0eVx0XHTkuI3pgI/mmI7luqblgLzvvIzlvZPlgZpyZ2Jh55qE56ys5Zub5Liq5Y+C5pWwIO+8iOm7mOiupCAwLjUg77yJXHJcblx0ICogQHByb3BlcnR5IHtPYmplY3R9XHRcdFx0Y3VzdG9tU3R5bGVcdOWumuS5iemcgOimgeeUqOWIsOeahOWklumDqOagt+W8j1xyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNsaWNrIOeCueWHu+mBrue9qeWPkemAgeS6i+S7tlxyXG5cdCAqIEBleGFtcGxlIDx1LW92ZXJsYXkgOnNob3c9XCJzaG93XCIgQGNsaWNrPVwic2hvdyA9IGZhbHNlXCI+PC91LW92ZXJsYXk+XHJcblx0ICovXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogXCJ1LW92ZXJsYXlcIixcclxuXHRcdG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4scHJvcHNdLFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0b3ZlcmxheVN0eWxlKCkge1xyXG5cdFx0XHRcdGNvbnN0IHN0eWxlID0ge1xyXG5cdFx0XHRcdFx0cG9zaXRpb246ICdmaXhlZCcsXHJcblx0XHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0XHR6SW5kZXg6IHRoaXMuekluZGV4LFxyXG5cdFx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdFx0J2JhY2tncm91bmQtY29sb3InOiBgcmdiYSgwLCAwLCAwLCAke3RoaXMub3BhY2l0eX0pYFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gdW5pLiR1LmRlZXBNZXJnZShzdHlsZSwgdW5pLiR1LmFkZFN0eWxlKHRoaXMuY3VzdG9tU3R5bGUpKVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRjbGlja0hhbmRsZXIoKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xpY2snKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuXHRAaW1wb3J0IFwiLi4vLi4vbGlicy9jc3MvY29tcG9uZW50cy5zY3NzXCI7XHJcbiAgICAgJHUtb3ZlcmxheS10b3A6MCAhZGVmYXVsdDtcclxuICAgICAkdS1vdmVybGF5LWxlZnQ6MCAhZGVmYXVsdDtcclxuICAgICAkdS1vdmVybGF5LXdpZHRoOjEwMCUgIWRlZmF1bHQ7XHJcbiAgICAgJHUtb3ZlcmxheS1oZWlnaHQ6MTAwJSAhZGVmYXVsdDtcclxuICAgICAkdS1vdmVybGF5LWJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAuNykgIWRlZmF1bHQ7XHJcblx0LnUtb3ZlcmxheSB7XHJcblx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHR0b3A6JHUtb3ZlcmxheS10b3A7XHJcblx0XHRsZWZ0OiR1LW92ZXJsYXktbGVmdDtcclxuXHRcdHdpZHRoOiAkdS1vdmVybGF5LXdpZHRoO1xyXG5cdFx0aGVpZ2h0OiR1LW92ZXJsYXktaGVpZ2h0O1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjokdS1vdmVybGF5LWJhY2tncm91bmQtY29sb3I7XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///131\n"); /***/ }), /* 132 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-overlay/props.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否显示遮罩\n show: {\n type: Boolean,\n default: uni.$u.props.overlay.show\n },\n // 层级z-index\n zIndex: {\n type: [String, Number],\n default: uni.$u.props.overlay.zIndex\n },\n // 遮罩的过渡时间,单位为ms\n duration: {\n type: [String, Number],\n default: uni.$u.props.overlay.duration\n },\n // 不透明度值,当做rgba的第四个参数\n opacity: {\n type: [String, Number],\n default: uni.$u.props.overlay.opacity\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LW92ZXJsYXkvcHJvcHMuanMiXSwibmFtZXMiOlsicHJvcHMiLCJzaG93IiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0IiwidW5pIiwiJHUiLCJvdmVybGF5IiwiekluZGV4IiwiU3RyaW5nIiwiTnVtYmVyIiwiZHVyYXRpb24iLCJvcGFjaXR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNYQSxLQUFLLEVBQUU7SUFDSDtJQUNBQyxJQUFJLEVBQUU7TUFDRkMsSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sT0FBTyxDQUFDTjtJQUNsQyxDQUFDO0lBQ0Q7SUFDQU8sTUFBTSxFQUFFO01BQ0pOLElBQUksRUFBRSxDQUFDTyxNQUFNLEVBQUVDLE1BQU0sQ0FBQztNQUN0Qk4sT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxPQUFPLENBQUNDO0lBQ2xDLENBQUM7SUFDRDtJQUNBRyxRQUFRLEVBQUU7TUFDTlQsSUFBSSxFQUFFLENBQUNPLE1BQU0sRUFBRUMsTUFBTSxDQUFDO01BQ3RCTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE9BQU8sQ0FBQ0k7SUFDbEMsQ0FBQztJQUNEO0lBQ0FDLE9BQU8sRUFBRTtNQUNMVixJQUFJLEVBQUUsQ0FBQ08sTUFBTSxFQUFFQyxNQUFNLENBQUM7TUFDdEJOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sT0FBTyxDQUFDSztJQUNsQztFQUNKO0FBQ0osQ0FBQztBQUFBIiwiZmlsZSI6IjEzMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICAgIHByb3BzOiB7XHJcbiAgICAgICAgLy8g5piv5ZCm5pi+56S66YGu572pXHJcbiAgICAgICAgc2hvdzoge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMub3ZlcmxheS5zaG93XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlsYLnuqd6LWluZGV4XHJcbiAgICAgICAgekluZGV4OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5vdmVybGF5LnpJbmRleFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g6YGu572p55qE6L+H5rih5pe26Ze077yM5Y2V5L2N5Li6bXNcclxuICAgICAgICBkdXJhdGlvbjoge1xyXG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMub3ZlcmxheS5kdXJhdGlvblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5LiN6YCP5piO5bqm5YC877yM5b2T5YGacmdiYeeahOesrOWbm+S4quWPguaVsFxyXG4gICAgICAgIG9wYWNpdHk6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLm92ZXJsYXkub3BhY2l0eVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///132\n"); /***/ }), /* 133 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-safe-bottom.vue?vue&type=template&id=40b3d0de&scoped=true& */ 134);\n/* harmony import */ var _u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-safe-bottom.vue?vue&type=script&lang=js& */ 136);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_safe_bottom_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 _u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"40b3d0de\",\n null,\n false,\n _u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0k7QUFDdEk7QUFDaUU7QUFDTDs7O0FBRzVEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLG1GQUFNO0FBQ1IsRUFBRSxvR0FBTTtBQUNSLEVBQUUsNkdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsd0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LXNhZmUtYm90dG9tLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00MGIzZDBkZSZzY29wZWQ9dHJ1ZSZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3Utc2FmZS1ib3R0b20udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi91LXNhZmUtYm90dG9tLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjQwYjNkMGRlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1zYWZlLWJvdHRvbS91LXNhZmUtYm90dG9tLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///133\n"); /***/ }), /* 134 */ /*!*******************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue?vue&type=template&id=40b3d0de&scoped=true& ***! \*******************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-safe-bottom.vue?vue&type=template&id=40b3d0de&scoped=true& */ 135); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_template_id_40b3d0de_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 135 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue?vue&type=template&id=40b3d0de&scoped=true& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("view", { staticClass: _vm._$s(0, "sc", "u-safe-bottom"), class: _vm._$s(0, "c", [!_vm.isNvue && "u-safe-area-inset-bottom"]), style: _vm._$s(0, "s", [_vm.style]), attrs: { _i: 0 }, }) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 136 */ /*!*************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-safe-bottom.vue?vue&type=script&lang=js& */ 137);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_safe_bottom_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWlrQixDQUFnQixta0JBQUcsRUFBQyIsImZpbGUiOiIxMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXNhZmUtYm90dG9tLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdS1zYWZlLWJvdHRvbS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///136\n"); /***/ }), /* 137 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 138));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * SafeBottom 底部安全区\n * @description 这个适配,主要是针对IPhone X等一些底部带指示条的机型,指示条的操作区域与页面底部存在重合,容易导致用户误操作,因此我们需要针对这些机型进行底部安全区适配。\n * @tutorial https://www.uviewui.com/components/safeAreaInset.html\n * @property {type}\t\tprop_name\n * @property {Object}\tcustomStyle\t定义需要用到的外部样式\n *\n * @event {Function()}\n * @example \n */\nvar _default = {\n name: \"u-safe-bottom\",\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {\n safeAreaBottomHeight: 0,\n isNvue: false\n };\n },\n computed: {\n style: function style() {\n var style = {};\n return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));\n }\n },\n mounted: function mounted() {}\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXNhZmUtYm90dG9tL3Utc2FmZS1ib3R0b20udnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJtaXhpbnMiLCJkYXRhIiwic2FmZUFyZWFCb3R0b21IZWlnaHQiLCJpc052dWUiLCJjb21wdXRlZCIsInN0eWxlIiwibW91bnRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVVBOzs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQSxlQVVBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFLQTtJQUNBO0VBQ0E7RUFDQUMsNkJBS0E7QUFDQTtBQUFBIiwiZmlsZSI6IjEzNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlld1xyXG5cdFx0Y2xhc3M9XCJ1LXNhZmUtYm90dG9tXCJcclxuXHRcdDpzdHlsZT1cIltzdHlsZV1cIlxyXG5cdFx0OmNsYXNzPVwiWyFpc052dWUgJiYgJ3Utc2FmZS1hcmVhLWluc2V0LWJvdHRvbSddXCJcclxuXHQ+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgcHJvcHMgZnJvbSBcIi4vcHJvcHMuanNcIjtcclxuXHQvKipcclxuXHQgKiBTYWZlQm90dG9tIOW6lemDqOWuieWFqOWMulxyXG5cdCAqIEBkZXNjcmlwdGlvbiDov5nkuKrpgILphY3vvIzkuLvopoHmmK/pkojlr7lJUGhvbmUgWOetieS4gOS6m+W6lemDqOW4puaMh+ekuuadoeeahOacuuWei++8jOaMh+ekuuadoeeahOaTjeS9nOWMuuWfn+S4jumhtemdouW6lemDqOWtmOWcqOmHjeWQiO+8jOWuueaYk+WvvOiHtOeUqOaIt+ivr+aTjeS9nO+8jOWboOatpOaIkeS7rOmcgOimgemSiOWvuei/meS6m+acuuWei+i/m+ihjOW6lemDqOWuieWFqOWMuumAgumFjeOAglxyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL3d3dy51dmlld3VpLmNvbS9jb21wb25lbnRzL3NhZmVBcmVhSW5zZXQuaHRtbFxyXG5cdCAqIEBwcm9wZXJ0eSB7dHlwZX1cdFx0cHJvcF9uYW1lXHJcblx0ICogQHByb3BlcnR5IHtPYmplY3R9XHRjdXN0b21TdHlsZVx05a6a5LmJ6ZyA6KaB55So5Yiw55qE5aSW6YOo5qC35byPXHJcblx0ICpcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9uKCl9XHJcblx0ICogQGV4YW1wbGUgPHUtc3RhdHVzLWJhcj48L3Utc3RhdHVzLWJhcj5cclxuXHQgKi9cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiBcInUtc2FmZS1ib3R0b21cIixcclxuXHRcdG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4sIHByb3BzXSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0c2FmZUFyZWFCb3R0b21IZWlnaHQ6IDAsXHJcblx0XHRcdFx0aXNOdnVlOiBmYWxzZSxcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHRzdHlsZSgpIHtcclxuXHRcdFx0XHRjb25zdCBzdHlsZSA9IHt9O1xyXG5cdFx0XHRcdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdFx0XHRcdC8vIG52dWXkuIvvvIzpq5jluqbkvb/nlKhqc+iuoeeul+Whq+WFhVxyXG5cdFx0XHRcdHN0eWxlLmhlaWdodCA9IHVuaS4kdS5hZGRVbml0KHVuaS4kdS5zeXMoKS5zYWZlQXJlYUluc2V0cy5ib3R0b20sICdweCcpO1xyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcdHJldHVybiB1bmkuJHUuZGVlcE1lcmdlKHN0eWxlLCB1bmkuJHUuYWRkU3R5bGUodGhpcy5jdXN0b21TdHlsZSkpO1xyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdFx0XHQvLyDmoIfor4bkuLrmmK/lkKZudnVlXHJcblx0XHRcdHRoaXMuaXNOdnVlID0gdHJ1ZTtcclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHR9LFxyXG5cdH07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdC51LXNhZmUtYm90dG9tIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///137\n"); /***/ }), /* 138 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-safe-bottom/props.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {}\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXNhZmUtYm90dG9tL3Byb3BzLmpzIl0sIm5hbWVzIjpbInByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNYQSxLQUFLLEVBQUUsQ0FFUDtBQUNKLENBQUM7QUFBQSIsImZpbGUiOiIxMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBwcm9wczoge1xyXG5cclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///138\n"); /***/ }), /* 139 */ /*!*************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-popup/u-popup.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-popup.vue?vue&type=script&lang=js& */ 140);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_popup_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTJqQixDQUFnQiw2akJBQUcsRUFBQyIsImZpbGUiOiIxMzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXBvcHVwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vdS1wb3B1cC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///139\n"); /***/ }), /* 140 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-popup/u-popup.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 141));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * popup 弹窗\n * @description 弹出层容器,用于展示弹窗、信息提示等内容,支持上、下、左、右和中部弹出。组件只提供容器,内部内容由用户自定义\n * @tutorial https://www.uviewui.com/components/popup.html\n * @property {Boolean}\t\t\tshow\t\t\t\t是否展示弹窗 (默认 false )\n * @property {Boolean}\t\t\toverlay\t\t\t\t是否显示遮罩 (默认 true )\n * @property {String}\t\t\tmode\t\t\t\t弹出方向(默认 'bottom' )\n * @property {String | Number}\tduration\t\t\t动画时长,单位ms (默认 300 )\n * @property {String | Number}\toverlayDuration\t\t\t遮罩层动画时长,单位ms (默认 350 )\n * @property {Boolean}\t\t\tcloseable\t\t\t是否显示关闭图标(默认 false )\n * @property {Object | String}\toverlayStyle\t\t自定义遮罩的样式\n * @property {String | Number}\toverlayOpacity\t\t遮罩透明度,0-1之间(默认 0.5)\n * @property {Boolean}\t\t\tcloseOnClickOverlay\t点击遮罩是否关闭弹窗 (默认 true )\n * @property {String | Number}\tzIndex\t\t\t\t层级 (默认 10075 )\n * @property {Boolean}\t\t\tsafeAreaInsetBottom\t是否为iPhoneX留出底部安全距离 (默认 true )\n * @property {Boolean}\t\t\tsafeAreaInsetTop\t是否留出顶部安全距离(状态栏高度) (默认 false )\n * @property {String}\t\t\tcloseIconPos\t\t自定义关闭图标位置(默认 'top-right' )\n * @property {String | Number}\tround\t\t\t\t圆角值(默认 0)\n * @property {Boolean}\t\t\tzoom\t\t\t\t当mode=center时 是否开启缩放(默认 true )\n * @property {Object}\t\t\tcustomStyle\t\t\t组件的样式,对象形式\n * @event {Function} open 弹出层打开\n * @event {Function} close 弹出层收起\n * @example 出淤泥而不染,濯清涟而不妖\n */\nvar _default = {\n name: 'u-popup',\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {\n overlayDuration: this.duration + 50\n };\n },\n watch: {\n show: function show(newValue, oldValue) {\n if (newValue === true) {}\n }\n },\n computed: {\n transitionStyle: function transitionStyle() {\n var style = {\n zIndex: this.zIndex,\n position: 'fixed',\n display: 'flex'\n };\n style[this.mode] = 0;\n if (this.mode === 'left') {\n return uni.$u.deepMerge(style, {\n bottom: 0,\n top: 0\n });\n } else if (this.mode === 'right') {\n return uni.$u.deepMerge(style, {\n bottom: 0,\n top: 0\n });\n } else if (this.mode === 'top') {\n return uni.$u.deepMerge(style, {\n left: 0,\n right: 0\n });\n } else if (this.mode === 'bottom') {\n return uni.$u.deepMerge(style, {\n left: 0,\n right: 0\n });\n } else if (this.mode === 'center') {\n return uni.$u.deepMerge(style, {\n alignItems: 'center',\n 'justify-content': 'center',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n });\n }\n },\n contentStyle: function contentStyle() {\n var style = {};\n // 通过设备信息的safeAreaInsets值来判断是否需要预留顶部状态栏和底部安全局的位置\n // 不使用css方案,是因为nvue不支持css的iPhoneX安全区查询属性\n var _uni$$u$sys = uni.$u.sys(),\n safeAreaInsets = _uni$$u$sys.safeAreaInsets;\n if (this.mode !== 'center') {\n style.flex = 1;\n }\n // 背景色,一般用于设置为transparent,去除默认的白色背景\n if (this.bgColor) {\n style.backgroundColor = this.bgColor;\n }\n if (this.round) {\n var value = uni.$u.addUnit(this.round);\n if (this.mode === 'top') {\n style.borderBottomLeftRadius = value;\n style.borderBottomRightRadius = value;\n } else if (this.mode === 'bottom') {\n style.borderTopLeftRadius = value;\n style.borderTopRightRadius = value;\n } else if (this.mode === 'center') {\n style.borderRadius = value;\n }\n }\n return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle));\n },\n position: function position() {\n if (this.mode === 'center') {\n return this.zoom ? 'fade-zoom' : 'fade';\n }\n if (this.mode === 'left') {\n return 'slide-left';\n }\n if (this.mode === 'right') {\n return 'slide-right';\n }\n if (this.mode === 'bottom') {\n return 'slide-up';\n }\n if (this.mode === 'top') {\n return 'slide-down';\n }\n }\n },\n methods: {\n // 点击遮罩\n overlayClick: function overlayClick() {\n if (this.closeOnClickOverlay) {\n this.$emit('close');\n }\n },\n close: function close(e) {\n this.$emit('close');\n },\n afterEnter: function afterEnter() {\n this.$emit('open');\n },\n clickHandler: function clickHandler() {\n // 由于中部弹出时,其u-transition占据了整个页面相当于遮罩,此时需要发出遮罩点击事件,是否无法通过点击遮罩关闭弹窗\n if (this.mode === 'center') {\n this.overlayClick();\n }\n this.$emit('click');\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXBvcHVwL3UtcG9wdXAudnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJtaXhpbnMiLCJkYXRhIiwib3ZlcmxheUR1cmF0aW9uIiwid2F0Y2giLCJzaG93IiwiY29tcHV0ZWQiLCJ0cmFuc2l0aW9uU3R5bGUiLCJ6SW5kZXgiLCJwb3NpdGlvbiIsImRpc3BsYXkiLCJzdHlsZSIsImJvdHRvbSIsInRvcCIsImxlZnQiLCJyaWdodCIsImFsaWduSXRlbXMiLCJjb250ZW50U3R5bGUiLCJ1bmkiLCJzYWZlQXJlYUluc2V0cyIsIm1ldGhvZHMiLCJvdmVybGF5Q2xpY2siLCJjbG9zZSIsImFmdGVyRW50ZXIiLCJjbGlja0hhbmRsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUErQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdkJBLGVBd0JBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0E7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0Esd0JBS0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUNBO1FBQ0E7VUFDQUM7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFDQUQ7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFDQUM7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFDQUQ7VUFDQUM7UUFDQTtNQUNBO1FBQ0E7VUFDQUM7VUFDQTtVQUNBSDtVQUNBQztVQUNBQztVQUNBSDtRQUNBO01BQ0E7SUFDQTtJQUNBSztNQUNBO01BQ0E7TUFDQTtNQUNBLGtCQUVBQztRQURBQztNQUVBO1FBQ0FSO01BQ0E7TUFDQTtNQUNBO1FBQ0FBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7VUFDQUE7VUFDQUE7UUFDQTtVQUNBQTtVQUNBQTtRQUNBO1VBQ0FBO1FBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUY7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FXO0lBQ0E7SUFDQUM7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0VBNEJBO0FBQ0E7QUFBQSIsImZpbGUiOiIxNDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJ1LXBvcHVwXCI+XHJcblx0XHQ8dS1vdmVybGF5XHJcblx0XHRcdDpzaG93PVwic2hvd1wiXHJcblx0XHRcdEBjbGljaz1cIm92ZXJsYXlDbGlja1wiXHJcblx0XHRcdHYtaWY9XCJvdmVybGF5XCJcclxuXHRcdFx0OmR1cmF0aW9uPVwib3ZlcmxheUR1cmF0aW9uXCJcclxuXHRcdFx0OmN1c3RvbVN0eWxlPVwib3ZlcmxheVN0eWxlXCJcclxuXHRcdFx0Om9wYWNpdHk9XCJvdmVybGF5T3BhY2l0eVwiXHJcblx0XHQ+PC91LW92ZXJsYXk+XHJcblx0XHQ8dS10cmFuc2l0aW9uXHJcblx0XHRcdDpzaG93PVwic2hvd1wiXHJcblx0XHRcdDpjdXN0b21TdHlsZT1cInRyYW5zaXRpb25TdHlsZVwiXHJcblx0XHRcdDptb2RlPVwicG9zaXRpb25cIlxyXG5cdFx0XHQ6ZHVyYXRpb249XCJkdXJhdGlvblwiXHJcblx0XHRcdEBhZnRlckVudGVyPVwiYWZ0ZXJFbnRlclwiXHJcblx0XHRcdEBjbGljaz1cImNsaWNrSGFuZGxlclwiXHJcblx0XHQ+XHJcblx0XHRcdDx2aWV3XHJcblx0XHRcdFx0Y2xhc3M9XCJ1LXBvcHVwX19jb250ZW50XCJcclxuXHRcdFx0XHQ6c3R5bGU9XCJbY29udGVudFN0eWxlXVwiXHJcblx0XHRcdFx0QHRhcC5zdG9wPVwibm9vcFwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8dS1zdGF0dXMtYmFyIHYtaWY9XCJzYWZlQXJlYUluc2V0VG9wXCI+PC91LXN0YXR1cy1iYXI+XHJcblx0XHRcdFx0PHNsb3Q+PC9zbG90PlxyXG5cdFx0XHRcdDx2aWV3XHJcblx0XHRcdFx0XHR2LWlmPVwiY2xvc2VhYmxlXCJcclxuXHRcdFx0XHRcdEB0YXAuc3RvcD1cImNsb3NlXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwidS1wb3B1cF9fY29udGVudF9fY2xvc2VcIlxyXG5cdFx0XHRcdFx0OmNsYXNzPVwiWyd1LXBvcHVwX19jb250ZW50X19jbG9zZS0tJyArIGNsb3NlSWNvblBvc11cIlxyXG5cdFx0XHRcdFx0aG92ZXItY2xhc3M9XCJ1LXBvcHVwX19jb250ZW50X19jbG9zZS0taG92ZXJcIlxyXG5cdFx0XHRcdFx0aG92ZXItc3RheS10aW1lPVwiMTUwXCJcclxuXHRcdFx0XHQ+XHJcblx0XHRcdFx0XHQ8dS1pY29uXHJcblx0XHRcdFx0XHRcdG5hbWU9XCJjbG9zZVwiXHJcblx0XHRcdFx0XHRcdGNvbG9yPVwiIzkwOTM5OVwiXHJcblx0XHRcdFx0XHRcdHNpemU9XCIxOFwiXHJcblx0XHRcdFx0XHRcdGJvbGRcclxuXHRcdFx0XHRcdD48L3UtaWNvbj5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PHUtc2FmZS1ib3R0b20gdi1pZj1cInNhZmVBcmVhSW5zZXRCb3R0b21cIj48L3Utc2FmZS1ib3R0b20+XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdS10cmFuc2l0aW9uPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHByb3BzIGZyb20gJy4vcHJvcHMuanMnO1xyXG5cclxuXHQvKipcclxuXHQgKiBwb3B1cCDlvLnnqpdcclxuXHQgKiBAZGVzY3JpcHRpb24g5by55Ye65bGC5a655Zmo77yM55So5LqO5bGV56S65by556qX44CB5L+h5oGv5o+Q56S6562J5YaF5a6577yM5pSv5oyB5LiK44CB5LiL44CB5bem44CB5Y+z5ZKM5Lit6YOo5by55Ye644CC57uE5Lu25Y+q5o+Q5L6b5a655Zmo77yM5YaF6YOo5YaF5a6555Sx55So5oi36Ieq5a6a5LmJXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vd3d3LnV2aWV3dWkuY29tL2NvbXBvbmVudHMvcG9wdXAuaHRtbFxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRzaG93XHRcdFx0XHTmmK/lkKblsZXnpLrlvLnnqpcgKOm7mOiupCBmYWxzZSApXHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdG92ZXJsYXlcdFx0XHRcdOaYr+WQpuaYvuekuumBrue9qSDvvIjpu5jorqQgdHJ1ZSDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRtb2RlXHRcdFx0XHTlvLnlh7rmlrnlkJHvvIjpu5jorqQgJ2JvdHRvbScg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRkdXJhdGlvblx0XHRcdOWKqOeUu+aXtumVv++8jOWNleS9jW1zIO+8iOm7mOiupCAzMDAg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRvdmVybGF5RHVyYXRpb25cdFx0XHTpga7nvanlsYLliqjnlLvml7bplb/vvIzljZXkvY1tcyDvvIjpu5jorqQgMzUwIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRjbG9zZWFibGVcdFx0XHTmmK/lkKbmmL7npLrlhbPpl63lm77moIfvvIjpu5jorqQgZmFsc2Ug77yJXHJcblx0ICogQHByb3BlcnR5IHtPYmplY3QgfCBTdHJpbmd9XHRvdmVybGF5U3R5bGVcdFx06Ieq5a6a5LmJ6YGu572p55qE5qC35byPXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRvdmVybGF5T3BhY2l0eVx0XHTpga7nvanpgI/mmI7luqbvvIwwLTHkuYvpl7TvvIjpu5jorqQgMC4177yJXHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdGNsb3NlT25DbGlja092ZXJsYXlcdOeCueWHu+mBrue9qeaYr+WQpuWFs+mXreW8ueeqlyDvvIjpu5jorqQgIHRydWUg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHR6SW5kZXhcdFx0XHRcdOWxgue6pyDvvIjpu5jorqQgMTAwNzUg77yJXHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdHNhZmVBcmVhSW5zZXRCb3R0b21cdOaYr+WQpuS4umlQaG9uZVjnlZnlh7rlupXpg6jlronlhajot53nprsg77yI6buY6K6kIHRydWUg77yJXHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdHNhZmVBcmVhSW5zZXRUb3BcdOaYr+WQpueVmeWHuumhtumDqOWuieWFqOi3neemu++8iOeKtuaAgeagj+mrmOW6pu+8iSDvvIjpu5jorqQgZmFsc2Ug77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0Y2xvc2VJY29uUG9zXHRcdOiHquWumuS5ieWFs+mXreWbvuagh+S9jee9ru+8iOm7mOiupCAndG9wLXJpZ2h0JyDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdHJvdW5kXHRcdFx0XHTlnIbop5LlgLzvvIjpu5jorqQgMO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHR6b29tXHRcdFx0XHTlvZNtb2RlPWNlbnRlcuaXtiDmmK/lkKblvIDlkK/nvKnmlL7vvIjpu5jorqQgdHJ1ZSDvvIlcclxuXHQgKiBAcHJvcGVydHkge09iamVjdH1cdFx0XHRjdXN0b21TdHlsZVx0XHRcdOe7hOS7tueahOagt+W8j++8jOWvueixoeW9ouW8j1xyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IG9wZW4g5by55Ye65bGC5omT5byAXHJcblx0ICogQGV2ZW50IHtGdW5jdGlvbn0gY2xvc2Ug5by55Ye65bGC5pS26LW3XHJcblx0ICogQGV4YW1wbGUgPHUtcG9wdXAgdi1tb2RlbD1cInNob3dcIj48dGV4dD7lh7rmt6Tms6XogIzkuI3mn5PvvIzmv6/muIXmtp/ogIzkuI3lppY8L3RleHQ+PC91LXBvcHVwPlxyXG5cdCAqL1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICd1LXBvcHVwJyxcclxuXHRcdG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4sIHByb3BzXSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0b3ZlcmxheUR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uICsgNTBcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdHNob3cobmV3VmFsdWUsIG9sZFZhbHVlKSB7XHJcblx0XHRcdFx0aWYgKG5ld1ZhbHVlID09PSB0cnVlKSB7XHJcblx0XHRcdFx0XHQvLyAjaWZkZWYgTVAtV0VJWElOXHJcblx0XHRcdFx0XHRjb25zdCBjaGlsZHJlbiA9IHRoaXMuJGNoaWxkcmVuXHJcblx0XHRcdFx0XHR0aGlzLnJldHJ5Q29tcHV0ZWRDb21wb25lbnRSZWN0KGNoaWxkcmVuKVxyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Y29tcHV0ZWQ6IHtcclxuXHRcdFx0dHJhbnNpdGlvblN0eWxlKCkge1xyXG5cdFx0XHRcdGNvbnN0IHN0eWxlID0ge1xyXG5cdFx0XHRcdFx0ekluZGV4OiB0aGlzLnpJbmRleCxcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxyXG5cdFx0XHRcdFx0ZGlzcGxheTogJ2ZsZXgnLFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRzdHlsZVt0aGlzLm1vZGVdID0gMFxyXG5cdFx0XHRcdGlmICh0aGlzLm1vZGUgPT09ICdsZWZ0Jykge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHVuaS4kdS5kZWVwTWVyZ2Uoc3R5bGUsIHtcclxuXHRcdFx0XHRcdFx0Ym90dG9tOiAwLFxyXG5cdFx0XHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSAncmlnaHQnKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gdW5pLiR1LmRlZXBNZXJnZShzdHlsZSwge1xyXG5cdFx0XHRcdFx0XHRib3R0b206IDAsXHJcblx0XHRcdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICd0b3AnKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gdW5pLiR1LmRlZXBNZXJnZShzdHlsZSwge1xyXG5cdFx0XHRcdFx0XHRsZWZ0OiAwLFxyXG5cdFx0XHRcdFx0XHRyaWdodDogMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ2JvdHRvbScpIHtcclxuXHRcdFx0XHRcdHJldHVybiB1bmkuJHUuZGVlcE1lcmdlKHN0eWxlLCB7XHJcblx0XHRcdFx0XHRcdGxlZnQ6IDAsXHJcblx0XHRcdFx0XHRcdHJpZ2h0OiAwLFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ2NlbnRlcicpIHtcclxuXHRcdFx0XHRcdHJldHVybiB1bmkuJHUuZGVlcE1lcmdlKHN0eWxlLCB7XHJcblx0XHRcdFx0XHRcdGFsaWduSXRlbXM6ICdjZW50ZXInLFxyXG5cdFx0XHRcdFx0XHQnanVzdGlmeS1jb250ZW50JzogJ2NlbnRlcicsXHJcblx0XHRcdFx0XHRcdHRvcDogMCxcclxuXHRcdFx0XHRcdFx0bGVmdDogMCxcclxuXHRcdFx0XHRcdFx0cmlnaHQ6IDAsXHJcblx0XHRcdFx0XHRcdGJvdHRvbTogMFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNvbnRlbnRTdHlsZSgpIHtcclxuXHRcdFx0XHRjb25zdCBzdHlsZSA9IHt9XHJcblx0XHRcdFx0Ly8g6YCa6L+H6K6+5aSH5L+h5oGv55qEc2FmZUFyZWFJbnNldHPlgLzmnaXliKTmlq3mmK/lkKbpnIDopoHpooTnlZnpobbpg6jnirbmgIHmoI/lkozlupXpg6jlronlhajlsYDnmoTkvY3nva5cclxuXHRcdFx0XHQvLyDkuI3kvb/nlKhjc3PmlrnmoYjvvIzmmK/lm6DkuLpudnVl5LiN5pSv5oyBY3Nz55qEaVBob25lWOWuieWFqOWMuuafpeivouWxnuaAp1xyXG5cdFx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRcdHNhZmVBcmVhSW5zZXRzXHJcblx0XHRcdFx0fSA9IHVuaS4kdS5zeXMoKVxyXG5cdFx0XHRcdGlmICh0aGlzLm1vZGUgIT09ICdjZW50ZXInKSB7XHJcblx0XHRcdFx0XHRzdHlsZS5mbGV4ID0gMVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyDog4zmma/oibLvvIzkuIDoiKznlKjkuo7orr7nva7kuLp0cmFuc3BhcmVudO+8jOWOu+mZpOm7mOiupOeahOeZveiJsuiDjOaZr1xyXG5cdFx0XHRcdGlmICh0aGlzLmJnQ29sb3IpIHtcclxuXHRcdFx0XHRcdHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuYmdDb2xvclxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZih0aGlzLnJvdW5kKSB7XHJcblx0XHRcdFx0XHRjb25zdCB2YWx1ZSA9IHVuaS4kdS5hZGRVbml0KHRoaXMucm91bmQpXHJcblx0XHRcdFx0XHRpZih0aGlzLm1vZGUgPT09ICd0b3AnKSB7XHJcblx0XHRcdFx0XHRcdHN0eWxlLmJvcmRlckJvdHRvbUxlZnRSYWRpdXMgPSB2YWx1ZVxyXG5cdFx0XHRcdFx0XHRzdHlsZS5ib3JkZXJCb3R0b21SaWdodFJhZGl1cyA9IHZhbHVlXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYodGhpcy5tb2RlID09PSAnYm90dG9tJykge1xyXG5cdFx0XHRcdFx0XHRzdHlsZS5ib3JkZXJUb3BMZWZ0UmFkaXVzID0gdmFsdWVcclxuXHRcdFx0XHRcdFx0c3R5bGUuYm9yZGVyVG9wUmlnaHRSYWRpdXMgPSB2YWx1ZVxyXG5cdFx0XHRcdFx0fSBlbHNlIGlmKHRoaXMubW9kZSA9PT0gJ2NlbnRlcicpIHtcclxuXHRcdFx0XHRcdFx0c3R5bGUuYm9yZGVyUmFkaXVzID0gdmFsdWVcclxuXHRcdFx0XHRcdH0gXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiB1bmkuJHUuZGVlcE1lcmdlKHN0eWxlLCB1bmkuJHUuYWRkU3R5bGUodGhpcy5jdXN0b21TdHlsZSkpXHJcblx0XHRcdH0sXHJcblx0XHRcdHBvc2l0aW9uKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLm1vZGUgPT09ICdjZW50ZXInKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy56b29tID8gJ2ZhZGUtem9vbScgOiAnZmFkZSdcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHRoaXMubW9kZSA9PT0gJ2xlZnQnKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gJ3NsaWRlLWxlZnQnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm1vZGUgPT09ICdyaWdodCcpIHtcclxuXHRcdFx0XHRcdHJldHVybiAnc2xpZGUtcmlnaHQnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmICh0aGlzLm1vZGUgPT09ICdib3R0b20nKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gJ3NsaWRlLXVwJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAndG9wJykge1xyXG5cdFx0XHRcdFx0cmV0dXJuICdzbGlkZS1kb3duJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8vIOeCueWHu+mBrue9qVxyXG5cdFx0XHRvdmVybGF5Q2xpY2soKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuY2xvc2VPbkNsaWNrT3ZlcmxheSkge1xyXG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnY2xvc2UnKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Y2xvc2UoZSkge1xyXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2Nsb3NlJylcclxuXHRcdFx0fSxcclxuXHRcdFx0YWZ0ZXJFbnRlcigpIHtcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdvcGVuJylcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2xpY2tIYW5kbGVyKCkge1xyXG5cdFx0XHRcdC8vIOeUseS6juS4remDqOW8ueWHuuaXtu+8jOWFtnUtdHJhbnNpdGlvbuWNoOaNruS6huaVtOS4qumhtemdouebuOW9k+S6jumBrue9qe+8jOatpOaXtumcgOimgeWPkeWHuumBrue9qeeCueWHu+S6i+S7tu+8jOaYr+WQpuaXoOazlemAmui/h+eCueWHu+mBrue9qeWFs+mXreW8ueeql1xyXG5cdFx0XHRcdGlmKHRoaXMubW9kZSA9PT0gJ2NlbnRlcicpIHtcclxuXHRcdFx0XHRcdHRoaXMub3ZlcmxheUNsaWNrKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xpY2snKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyAjaWZkZWYgTVAtV0VJWElOXHJcblx0XHRcdHJldHJ5Q29tcHV0ZWRDb21wb25lbnRSZWN0KGNoaWxkcmVuKSB7XHJcblx0XHRcdFx0Ly8g57uE5Lu25YaF6YOo6ZyA6KaB6K6h566X6IqC54K555qE57uE5Lu2XHJcblx0XHRcdFx0Y29uc3QgbmFtZXMgPSBbJ3UtY2FsZW5kYXItbW9udGgnLCAndS1hbGJ1bScsICd1LWNvbGxhcHNlLWl0ZW0nLCAndS1kcm9wZG93bicsICd1LWluZGV4LWl0ZW0nLCAndS1pbmRleC1saXN0JyxcclxuXHRcdFx0XHRcdCd1LWxpbmUtcHJvZ3Jlc3MnLCAndS1saXN0LWl0ZW0nLCAndS1yYXRlJywgJ3UtcmVhZC1tb3JlJywgJ3Utcm93JywgJ3Utcm93LW5vdGljZScsICd1LXNjcm9sbC1saXN0JyxcclxuXHRcdFx0XHRcdCd1LXNrZWxldG9uJywgJ3Utc2xpZGVyJywgJ3Utc3RlcHMtaXRlbScsICd1LXN0aWNreScsICd1LXN1YnNlY3Rpb24nLCAndS1zd2lwZS1hY3Rpb24taXRlbScsICd1LXRhYmJhcicsXHJcblx0XHRcdFx0XHQndS10YWJzJywgJ3UtdG9vbHRpcCdcclxuXHRcdFx0XHRdXHJcblx0XHRcdFx0Ly8g5Y6G6YGN5omA5pyJ55qE5a2Q57uE5Lu26IqC54K5XHJcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0Y29uc3QgY2hpbGQgPSBjaGlsZHJlbltpXVxyXG5cdFx0XHRcdFx0Ly8g5ou/5Yiw5a2Q57uE5Lu255qE5a2Q57uE5Lu2XHJcblx0XHRcdFx0XHRjb25zdCBncmFuZENoaWxkID0gY2hpbGQuJGNoaWxkcmVuXHJcblx0XHRcdFx0XHQvLyDliKTmlq3lpoLmnpzlnKjpnIDopoHph43mlrDliJ3lp4vljJbnmoTnu4Tku7bmlbDnu4TkuK3lkI3kuK3vvIzlubbkuJTlrZjlnKhpbml05pa55rOV55qE6K+d77yM5YiZ5omn6KGMXHJcblx0XHRcdFx0XHRpZiAobmFtZXMuaW5jbHVkZXMoY2hpbGQuJG9wdGlvbnMubmFtZSkgJiYgdHlwZW9mIGNoaWxkPy5pbml0ID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRcdC8vIOmcgOimgei/m+ihjOS4gOWumueahOW7tuaXtu+8jOWboOS4uuWIneWni+WMlumhtemdoumcgOimgeaXtumXtFxyXG5cdFx0XHRcdFx0XHR1bmkuJHUuc2xlZXAoNTApLnRoZW4oKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGNoaWxkLmluaXQoKVxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ly8g5aaC5p6c5a2Q57uE5Lu26L+Y5pyJ5a2Z57uE5Lu277yM6L+b6KGM6YCS5b2S5Y6G6YGNXHJcblx0XHRcdFx0XHRpZiAoZ3JhbmRDaGlsZC5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZXRyeUNvbXB1dGVkQ29tcG9uZW50UmVjdChncmFuZENoaWxkKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdEBpbXBvcnQgXCIuLi8uLi9saWJzL2Nzcy9jb21wb25lbnRzLnNjc3NcIjtcclxuXHQkdS1wb3B1cC1mbGV4OjEgIWRlZmF1bHQ7XHJcblx0JHUtcG9wdXAtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xyXG5cclxuXHQudS1wb3B1cCB7XHJcblx0XHRmbGV4OiAkdS1wb3B1cC1mbGV4O1xyXG5cclxuXHRcdCZfX2NvbnRlbnQge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdS1wb3B1cC1jb250ZW50LWJhY2tncm91bmQtY29sb3I7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdCYtLXJvdW5kLXRvcCB7XHJcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4O1xyXG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS1yb3VuZC1sZWZ0IHtcclxuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xyXG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLXJvdW5kLXJpZ2h0IHtcclxuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xyXG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xyXG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLXJvdW5kLWJvdHRvbSB7XHJcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweDtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xyXG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS1yb3VuZC1jZW50ZXIge1xyXG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHg7XHJcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jl9fY2xvc2Uge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblx0XHRcdFx0Ji0taG92ZXIge1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMC40O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jl9fY2xvc2UtLXRvcC1sZWZ0IHtcclxuXHRcdFx0XHR0b3A6IDE1cHg7XHJcblx0XHRcdFx0bGVmdDogMTVweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jl9fY2xvc2UtLXRvcC1yaWdodCB7XHJcblx0XHRcdFx0dG9wOiAxNXB4O1xyXG5cdFx0XHRcdHJpZ2h0OiAxNXB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmX19jbG9zZS0tYm90dG9tLWxlZnQge1xyXG5cdFx0XHRcdGJvdHRvbTogMTVweDtcclxuXHRcdFx0XHRsZWZ0OiAxNXB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmX19jbG9zZS0tYm90dG9tLXJpZ2h0IHtcclxuXHRcdFx0XHRyaWdodDogMTVweDtcclxuXHRcdFx0XHRib3R0b206IDE1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///140\n"); /***/ }), /* 141 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-popup/props.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否展示弹窗\n show: {\n type: Boolean,\n default: uni.$u.props.popup.show\n },\n // 是否显示遮罩\n overlay: {\n type: Boolean,\n default: uni.$u.props.popup.overlay\n },\n // 弹出的方向,可选值为 top bottom right left center\n mode: {\n type: String,\n default: uni.$u.props.popup.mode\n },\n // 动画时长,单位ms\n duration: {\n type: [String, Number],\n default: uni.$u.props.popup.duration\n },\n // 是否显示关闭图标\n closeable: {\n type: Boolean,\n default: uni.$u.props.popup.closeable\n },\n // 自定义遮罩的样式\n overlayStyle: {\n type: [Object, String],\n default: uni.$u.props.popup.overlayStyle\n },\n // 点击遮罩是否关闭弹窗\n closeOnClickOverlay: {\n type: Boolean,\n default: uni.$u.props.popup.closeOnClickOverlay\n },\n // 层级\n zIndex: {\n type: [String, Number],\n default: uni.$u.props.popup.zIndex\n },\n // 是否为iPhoneX留出底部安全距离\n safeAreaInsetBottom: {\n type: Boolean,\n default: uni.$u.props.popup.safeAreaInsetBottom\n },\n // 是否留出顶部安全距离(状态栏高度)\n safeAreaInsetTop: {\n type: Boolean,\n default: uni.$u.props.popup.safeAreaInsetTop\n },\n // 自定义关闭图标位置,top-left为左上角,top-right为右上角,bottom-left为左下角,bottom-right为右下角\n closeIconPos: {\n type: String,\n default: uni.$u.props.popup.closeIconPos\n },\n // 是否显示圆角\n round: {\n type: [Boolean, String, Number],\n default: uni.$u.props.popup.round\n },\n // mode=center,也即中部弹出时,是否使用缩放模式\n zoom: {\n type: Boolean,\n default: uni.$u.props.popup.zoom\n },\n // 弹窗背景色,设置为transparent可去除白色背景\n bgColor: {\n type: String,\n default: uni.$u.props.popup.bgColor\n },\n // 遮罩的透明度,0-1之间\n overlayOpacity: {\n type: [Number, String],\n default: uni.$u.props.popup.overlayOpacity\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXBvcHVwL3Byb3BzLmpzIl0sIm5hbWVzIjpbInByb3BzIiwic2hvdyIsInR5cGUiLCJCb29sZWFuIiwiZGVmYXVsdCIsInVuaSIsIiR1IiwicG9wdXAiLCJvdmVybGF5IiwibW9kZSIsIlN0cmluZyIsImR1cmF0aW9uIiwiTnVtYmVyIiwiY2xvc2VhYmxlIiwib3ZlcmxheVN0eWxlIiwiT2JqZWN0IiwiY2xvc2VPbkNsaWNrT3ZlcmxheSIsInpJbmRleCIsInNhZmVBcmVhSW5zZXRCb3R0b20iLCJzYWZlQXJlYUluc2V0VG9wIiwiY2xvc2VJY29uUG9zIiwicm91bmQiLCJ6b29tIiwiYmdDb2xvciIsIm92ZXJsYXlPcGFjaXR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNYQSxLQUFLLEVBQUU7SUFDSDtJQUNBQyxJQUFJLEVBQUU7TUFDRkMsSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sS0FBSyxDQUFDTjtJQUNoQyxDQUFDO0lBQ0Q7SUFDQU8sT0FBTyxFQUFFO01BQ0xOLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLEtBQUssQ0FBQ0M7SUFDaEMsQ0FBQztJQUNEO0lBQ0FDLElBQUksRUFBRTtNQUNGUCxJQUFJLEVBQUVRLE1BQU07TUFDWk4sT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxLQUFLLENBQUNFO0lBQ2hDLENBQUM7SUFDRDtJQUNBRSxRQUFRLEVBQUU7TUFDTlQsSUFBSSxFQUFFLENBQUNRLE1BQU0sRUFBRUUsTUFBTSxDQUFDO01BQ3RCUixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLEtBQUssQ0FBQ0k7SUFDaEMsQ0FBQztJQUNEO0lBQ0FFLFNBQVMsRUFBRTtNQUNQWCxJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxLQUFLLENBQUNNO0lBQ2hDLENBQUM7SUFDRDtJQUNBQyxZQUFZLEVBQUU7TUFDVlosSUFBSSxFQUFFLENBQUNhLE1BQU0sRUFBRUwsTUFBTSxDQUFDO01BQ3RCTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLEtBQUssQ0FBQ087SUFDaEMsQ0FBQztJQUNEO0lBQ0FFLG1CQUFtQixFQUFFO01BQ2pCZCxJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxLQUFLLENBQUNTO0lBQ2hDLENBQUM7SUFDRDtJQUNBQyxNQUFNLEVBQUU7TUFDSmYsSUFBSSxFQUFFLENBQUNRLE1BQU0sRUFBRUUsTUFBTSxDQUFDO01BQ3RCUixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLEtBQUssQ0FBQ1U7SUFDaEMsQ0FBQztJQUNEO0lBQ0FDLG1CQUFtQixFQUFFO01BQ2pCaEIsSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sS0FBSyxDQUFDVztJQUNoQyxDQUFDO0lBQ0Q7SUFDQUMsZ0JBQWdCLEVBQUU7TUFDZGpCLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLEtBQUssQ0FBQ1k7SUFDaEMsQ0FBQztJQUNEO0lBQ0FDLFlBQVksRUFBRTtNQUNWbEIsSUFBSSxFQUFFUSxNQUFNO01BQ1pOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sS0FBSyxDQUFDYTtJQUNoQyxDQUFDO0lBQ0Q7SUFDQUMsS0FBSyxFQUFFO01BQ0huQixJQUFJLEVBQUUsQ0FBQ0MsT0FBTyxFQUFFTyxNQUFNLEVBQUVFLE1BQU0sQ0FBQztNQUMvQlIsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxLQUFLLENBQUNjO0lBQ2hDLENBQUM7SUFDRDtJQUNBQyxJQUFJLEVBQUU7TUFDRnBCLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLEtBQUssQ0FBQ2U7SUFDaEMsQ0FBQztJQUNEO0lBQ0FDLE9BQU8sRUFBRTtNQUNMckIsSUFBSSxFQUFFUSxNQUFNO01BQ1pOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sS0FBSyxDQUFDZ0I7SUFDaEMsQ0FBQztJQUNEO0lBQ0FDLGNBQWMsRUFBRTtNQUNadEIsSUFBSSxFQUFFLENBQUNVLE1BQU0sRUFBRUYsTUFBTSxDQUFDO01BQ3RCTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLEtBQUssQ0FBQ2lCO0lBQ2hDO0VBQ0o7QUFDSixDQUFDO0FBQUEiLCJmaWxlIjoiMTQxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgcHJvcHM6IHtcclxuICAgICAgICAvLyDmmK/lkKblsZXnpLrlvLnnqpdcclxuICAgICAgICBzaG93OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5wb3B1cC5zaG93XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmmK/lkKbmmL7npLrpga7nvalcclxuICAgICAgICBvdmVybGF5OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5wb3B1cC5vdmVybGF5XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlvLnlh7rnmoTmlrnlkJHvvIzlj6/pgInlgLzkuLogdG9wIGJvdHRvbSByaWdodCBsZWZ0IGNlbnRlclxyXG4gICAgICAgIG1vZGU6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucG9wdXAubW9kZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Yqo55S75pe26ZW/77yM5Y2V5L2NbXNcclxuICAgICAgICBkdXJhdGlvbjoge1xyXG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucG9wdXAuZHVyYXRpb25cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaYr+WQpuaYvuekuuWFs+mXreWbvuagh1xyXG4gICAgICAgIGNsb3NlYWJsZToge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucG9wdXAuY2xvc2VhYmxlXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDoh6rlrprkuYnpga7nvannmoTmoLflvI9cclxuICAgICAgICBvdmVybGF5U3R5bGU6IHtcclxuICAgICAgICAgICAgdHlwZTogW09iamVjdCwgU3RyaW5nXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBvcHVwLm92ZXJsYXlTdHlsZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g54K55Ye76YGu572p5piv5ZCm5YWz6Zet5by556qXXHJcbiAgICAgICAgY2xvc2VPbkNsaWNrT3ZlcmxheToge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucG9wdXAuY2xvc2VPbkNsaWNrT3ZlcmxheVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5bGC57qnXHJcbiAgICAgICAgekluZGV4OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5wb3B1cC56SW5kZXhcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaYr+WQpuS4umlQaG9uZVjnlZnlh7rlupXpg6jlronlhajot53nprtcclxuICAgICAgICBzYWZlQXJlYUluc2V0Qm90dG9tOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5wb3B1cC5zYWZlQXJlYUluc2V0Qm90dG9tXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmmK/lkKbnlZnlh7rpobbpg6jlronlhajot53nprvvvIjnirbmgIHmoI/pq5jluqbvvIlcclxuICAgICAgICBzYWZlQXJlYUluc2V0VG9wOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5wb3B1cC5zYWZlQXJlYUluc2V0VG9wXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDoh6rlrprkuYnlhbPpl63lm77moIfkvY3nva7vvIx0b3AtbGVmdOS4uuW3puS4iuinku+8jHRvcC1yaWdodOS4uuWPs+S4iuinku+8jGJvdHRvbS1sZWZ05Li65bem5LiL6KeS77yMYm90dG9tLXJpZ2h05Li65Y+z5LiL6KeSXHJcbiAgICAgICAgY2xvc2VJY29uUG9zOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBvcHVwLmNsb3NlSWNvblBvc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5piv5ZCm5pi+56S65ZyG6KeSXHJcbiAgICAgICAgcm91bmQ6IHtcclxuICAgICAgICAgICAgdHlwZTogW0Jvb2xlYW4sIFN0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBvcHVwLnJvdW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBtb2RlPWNlbnRlcu+8jOS5n+WNs+S4remDqOW8ueWHuuaXtu+8jOaYr+WQpuS9v+eUqOe8qeaUvuaooeW8j1xyXG4gICAgICAgIHpvb206IHtcclxuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBvcHVwLnpvb21cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOW8ueeql+iDjOaZr+iJsu+8jOiuvue9ruS4unRyYW5zcGFyZW505Y+v5Y676Zmk55m96Imy6IOM5pmvXHJcbiAgICAgICAgYmdDb2xvcjoge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5wb3B1cC5iZ0NvbG9yXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDpga7nvannmoTpgI/mmI7luqbvvIwwLTHkuYvpl7RcclxuICAgICAgICBvdmVybGF5T3BhY2l0eToge1xyXG4gICAgICAgICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucG9wdXAub3ZlcmxheU9wYWNpdHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///141\n"); /***/ }), /* 142 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-toolbar.vue?vue&type=template&id=55c89db1&scoped=true& */ 143);\n/* harmony import */ var _u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-toolbar.vue?vue&type=script&lang=js& */ 145);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_toolbar_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 _u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"55c89db1\",\n null,\n false,\n _u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0k7QUFDbEk7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxnR0FBTTtBQUNSLEVBQUUseUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsb0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LXRvb2xiYXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTU1Yzg5ZGIxJnNjb3BlZD10cnVlJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdS10b29sYmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdS10b29sYmFyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjU1Yzg5ZGIxXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS10b29sYmFyL3UtdG9vbGJhci52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///142\n"); /***/ }), /* 143 */ /*!***********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue?vue&type=template&id=55c89db1&scoped=true& ***! \***********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-toolbar.vue?vue&type=template&id=55c89db1&scoped=true& */ 144); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_template_id_55c89db1_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 144 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue?vue&type=template&id=55c89db1&scoped=true& ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _vm._$s(0, "i", _vm.show) ? _c( "view", { staticClass: _vm._$s(0, "sc", "u-toolbar"), attrs: { _i: 0 }, on: { touchmove: function ($event) { $event.stopPropagation() $event.preventDefault() return _vm.noop($event) }, }, }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "u-toolbar__cancel__wrapper"), attrs: { _i: 1 }, }, [ _c( "text", { staticClass: _vm._$s(2, "sc", "u-toolbar__wrapper__cancel"), style: _vm._$s(2, "s", { color: _vm.cancelColor, }), attrs: { _i: 2 }, on: { click: _vm.cancel }, }, [_vm._v(_vm._$s(2, "t0-0", _vm._s(_vm.cancelText)))] ), ] ), _vm._$s(3, "i", _vm.title) ? _c( "text", { staticClass: _vm._$s(3, "sc", "u-toolbar__title u-line-1"), attrs: { _i: 3 }, }, [_vm._v(_vm._$s(3, "t0-0", _vm._s(_vm.title)))] ) : _vm._e(), _c( "view", { staticClass: _vm._$s(4, "sc", "u-toolbar__confirm__wrapper"), attrs: { _i: 4 }, }, [ _c( "text", { staticClass: _vm._$s(5, "sc", "u-toolbar__wrapper__confirm"), style: _vm._$s(5, "s", { color: _vm.confirmColor, }), attrs: { _i: 5 }, on: { click: _vm.confirm }, }, [_vm._v(_vm._$s(5, "t0-0", _vm._s(_vm.confirmText)))] ), ] ), ] ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 145 */ /*!*****************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue?vue&type=script&lang=js& ***! \*****************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-toolbar.vue?vue&type=script&lang=js& */ 146);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_toolbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTZqQixDQUFnQiwrakJBQUcsRUFBQyIsImZpbGUiOiIxNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXRvb2xiYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXRvb2xiYXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n"); /***/ }), /* 146 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue?vue&type=script&lang=js& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 147));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * Toolbar 工具条\n * @description \n * @tutorial https://www.uviewui.com/components/toolbar.html\n * @property {Boolean}\tshow\t\t\t是否展示工具条(默认 true )\n * @property {String}\tcancelText\t\t取消按钮的文字(默认 '取消' )\n * @property {String}\tconfirmText\t\t确认按钮的文字(默认 '确认' )\n * @property {String}\tcancelColor\t\t取消按钮的颜色(默认 '#909193' )\n * @property {String}\tconfirmColor\t确认按钮的颜色(默认 '#3c9cff' )\n * @property {String}\ttitle\t\t\t标题文字\n * @event {Function} \n * @example \n */\nvar _default = {\n name: 'u-toolbar',\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n methods: {\n // 点击取消按钮\n cancel: function cancel() {\n this.$emit('cancel');\n },\n // 点击确定按钮\n confirm: function confirm() {\n this.$emit('confirm');\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXRvb2xiYXIvdS10b29sYmFyLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwibWl4aW5zIiwibWV0aG9kcyIsImNhbmNlbCIsImNvbmZpcm0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFzQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQSxlQWFBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBIiwiZmlsZSI6IjE0Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dmlld1xyXG5cdFx0Y2xhc3M9XCJ1LXRvb2xiYXJcIlxyXG5cdFx0QHRvdWNobW92ZS5zdG9wLnByZXZlbnQ9XCJub29wXCJcclxuXHRcdHYtaWY9XCJzaG93XCJcclxuXHQ+XHJcblx0XHQ8dmlld1xyXG5cdFx0XHRjbGFzcz1cInUtdG9vbGJhcl9fY2FuY2VsX193cmFwcGVyXCJcclxuXHRcdFx0aG92ZXItY2xhc3M9XCJ1LWhvdmVyLWNsYXNzXCJcclxuXHRcdD5cclxuXHRcdFx0PHRleHRcclxuXHRcdFx0XHRjbGFzcz1cInUtdG9vbGJhcl9fd3JhcHBlcl9fY2FuY2VsXCJcclxuXHRcdFx0XHRAdGFwPVwiY2FuY2VsXCJcclxuXHRcdFx0XHQ6c3R5bGU9XCJ7XHJcblx0XHRcdFx0XHRjb2xvcjogY2FuY2VsQ29sb3JcclxuXHRcdFx0XHR9XCJcclxuXHRcdFx0Pnt7IGNhbmNlbFRleHQgfX08L3RleHQ+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dGV4dFxyXG5cdFx0XHRjbGFzcz1cInUtdG9vbGJhcl9fdGl0bGUgdS1saW5lLTFcIlxyXG5cdFx0XHR2LWlmPVwidGl0bGVcIlxyXG5cdFx0Pnt7IHRpdGxlIH19PC90ZXh0PlxyXG5cdFx0PHZpZXdcclxuXHRcdFx0Y2xhc3M9XCJ1LXRvb2xiYXJfX2NvbmZpcm1fX3dyYXBwZXJcIlxyXG5cdFx0XHRob3Zlci1jbGFzcz1cInUtaG92ZXItY2xhc3NcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8dGV4dFxyXG5cdFx0XHRcdGNsYXNzPVwidS10b29sYmFyX193cmFwcGVyX19jb25maXJtXCJcclxuXHRcdFx0XHRAdGFwPVwiY29uZmlybVwiXHJcblx0XHRcdFx0OnN0eWxlPVwie1xyXG5cdFx0XHRcdGNvbG9yOiBjb25maXJtQ29sb3JcclxuXHRcdFx0fVwiXHJcblx0XHRcdD57eyBjb25maXJtVGV4dCB9fTwvdGV4dD5cclxuXHRcdDwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGltcG9ydCBwcm9wcyBmcm9tICcuL3Byb3BzLmpzJztcclxuXHQvKipcclxuXHQgKiBUb29sYmFyIOW3peWFt+adoVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBcclxuXHQgKiBAdHV0b3JpYWwgaHR0cHM6Ly93d3cudXZpZXd1aS5jb20vY29tcG9uZW50cy90b29sYmFyLmh0bWxcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59XHRzaG93XHRcdFx05piv5ZCm5bGV56S65bel5YW35p2h77yI6buY6K6kIHRydWUg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRjYW5jZWxUZXh0XHRcdOWPlua2iOaMiemSrueahOaWh+Wtl++8iOm7mOiupCAn5Y+W5raIJyDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdGNvbmZpcm1UZXh0XHRcdOehruiupOaMiemSrueahOaWh+Wtl++8iOm7mOiupCAn56Gu6K6kJyDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdGNhbmNlbENvbG9yXHRcdOWPlua2iOaMiemSrueahOminOiJsu+8iOm7mOiupCAnIzkwOTE5Mycg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRjb25maXJtQ29sb3JcdOehruiupOaMiemSrueahOminOiJsu+8iOm7mOiupCAnIzNjOWNmZicg77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHR0aXRsZVx0XHRcdOagh+mimOaWh+Wtl1xyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IFxyXG5cdCAqIEBleGFtcGxlIFxyXG5cdCAqL1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICd1LXRvb2xiYXInLFxyXG5cdFx0bWl4aW5zOiBbdW5pLiR1Lm1wTWl4aW4sIHVuaS4kdS5taXhpbixwcm9wc10sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8vIOeCueWHu+WPlua2iOaMiemSrlxyXG5cdFx0XHRjYW5jZWwoKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2FuY2VsJylcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g54K55Ye756Gu5a6a5oyJ6ZKuXHJcblx0XHRcdGNvbmZpcm0oKSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY29uZmlybScpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuXHRAaW1wb3J0IFwiLi4vLi4vbGlicy9jc3MvY29tcG9uZW50cy5zY3NzXCI7XHJcblxyXG5cdC51LXRvb2xiYXIge1xyXG5cdFx0aGVpZ2h0OiA0MnB4O1xyXG5cdFx0QGluY2x1ZGUgZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdFx0Jl9fd3JhcHBlciB7XHJcblx0XHRcdCZfX2NhbmNlbCB7XHJcblx0XHRcdFx0Y29sb3I6ICR1LXRpcHMtY29sb3I7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xyXG5cdFx0XHRcdHBhZGRpbmc6IDAgMTVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3RpdGxlIHtcclxuXHRcdFx0Y29sb3I6ICR1LW1haW4tY29sb3I7XHJcblx0XHRcdHBhZGRpbmc6IDAgNjBycHg7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdFx0ZmxleDogMTtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3dyYXBwZXIge1xyXG5cdFx0XHQmX19jb25maXJtIHtcclxuXHRcdFx0XHRjb2xvcjogJHUtcHJpbWFyeTtcclxuXHRcdFx0XHRmb250LXNpemU6IDE1cHg7XHJcblx0XHRcdFx0cGFkZGluZzogMCAxNXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///146\n"); /***/ }), /* 147 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-toolbar/props.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否展示工具条\n show: {\n type: Boolean,\n default: uni.$u.props.toolbar.show\n },\n // 取消按钮的文字\n cancelText: {\n type: String,\n default: uni.$u.props.toolbar.cancelText\n },\n // 确认按钮的文字\n confirmText: {\n type: String,\n default: uni.$u.props.toolbar.confirmText\n },\n // 取消按钮的颜色\n cancelColor: {\n type: String,\n default: uni.$u.props.toolbar.cancelColor\n },\n // 确认按钮的颜色\n confirmColor: {\n type: String,\n default: uni.$u.props.toolbar.confirmColor\n },\n // 标题文字\n title: {\n type: String,\n default: uni.$u.props.toolbar.title\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXRvb2xiYXIvcHJvcHMuanMiXSwibmFtZXMiOlsicHJvcHMiLCJzaG93IiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0IiwidW5pIiwiJHUiLCJ0b29sYmFyIiwiY2FuY2VsVGV4dCIsIlN0cmluZyIsImNvbmZpcm1UZXh0IiwiY2FuY2VsQ29sb3IiLCJjb25maXJtQ29sb3IiLCJ0aXRsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQWU7RUFDWEEsS0FBSyxFQUFFO0lBQ0g7SUFDQUMsSUFBSSxFQUFFO01BQ0ZDLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE9BQU8sQ0FBQ047SUFDbEMsQ0FBQztJQUNEO0lBQ0FPLFVBQVUsRUFBRTtNQUNSTixJQUFJLEVBQUVPLE1BQU07TUFDWkwsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxPQUFPLENBQUNDO0lBQ2xDLENBQUM7SUFDRDtJQUNBRSxXQUFXLEVBQUU7TUFDVFIsSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sT0FBTyxDQUFDRztJQUNsQyxDQUFDO0lBQ0Q7SUFDQUMsV0FBVyxFQUFFO01BQ1RULElBQUksRUFBRU8sTUFBTTtNQUNaTCxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE9BQU8sQ0FBQ0k7SUFDbEMsQ0FBQztJQUNEO0lBQ0FDLFlBQVksRUFBRTtNQUNWVixJQUFJLEVBQUVPLE1BQU07TUFDWkwsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxPQUFPLENBQUNLO0lBQ2xDLENBQUM7SUFDRDtJQUNBQyxLQUFLLEVBQUU7TUFDSFgsSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sT0FBTyxDQUFDTTtJQUNsQztFQUNKO0FBQ0osQ0FBQztBQUFBIiwiZmlsZSI6IjE0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICAgIHByb3BzOiB7XHJcbiAgICAgICAgLy8g5piv5ZCm5bGV56S65bel5YW35p2hXHJcbiAgICAgICAgc2hvdzoge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMudG9vbGJhci5zaG93XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlj5bmtojmjInpkq7nmoTmloflrZdcclxuICAgICAgICBjYW5jZWxUZXh0OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnRvb2xiYXIuY2FuY2VsVGV4dFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g56Gu6K6k5oyJ6ZKu55qE5paH5a2XXHJcbiAgICAgICAgY29uZmlybVRleHQ6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMudG9vbGJhci5jb25maXJtVGV4dFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Y+W5raI5oyJ6ZKu55qE6aKc6ImyXHJcbiAgICAgICAgY2FuY2VsQ29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMudG9vbGJhci5jYW5jZWxDb2xvclxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g56Gu6K6k5oyJ6ZKu55qE6aKc6ImyXHJcbiAgICAgICAgY29uZmlybUNvbG9yOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnRvb2xiYXIuY29uZmlybUNvbG9yXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmoIfpopjmloflrZdcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy50b29sYmFyLnRpdGxlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///147\n"); /***/ }), /* 148 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-loading-icon.vue?vue&type=template&id=0fe228ae&scoped=true& */ 149);\n/* harmony import */ var _u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-loading-icon.vue?vue&type=script&lang=js& */ 151);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_loading_icon_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 _u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"0fe228ae\",\n null,\n false,\n _u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUk7QUFDdkk7QUFDa0U7QUFDTDs7O0FBRzdEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLG9GQUFNO0FBQ1IsRUFBRSxxR0FBTTtBQUNSLEVBQUUsOEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTQ4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LWxvYWRpbmctaWNvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MGZlMjI4YWUmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91LWxvYWRpbmctaWNvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3UtbG9hZGluZy1pY29uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjBmZTIyOGFlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1sb2FkaW5nLWljb24vdS1sb2FkaW5nLWljb24udnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///148\n"); /***/ }), /* 149 */ /*!*********************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue?vue&type=template&id=0fe228ae&scoped=true& ***! \*********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-loading-icon.vue?vue&type=template&id=0fe228ae&scoped=true& */ 150); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_template_id_0fe228ae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 150 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue?vue&type=template&id=0fe228ae&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _vm._$s(0, "i", _vm.show) ? _c( "view", { staticClass: _vm._$s(0, "sc", "u-loading-icon"), class: _vm._$s(0, "c", [_vm.vertical && "u-loading-icon--vertical"]), style: _vm._$s(0, "s", [_vm.$u.addStyle(_vm.customStyle)]), attrs: { _i: 0 }, }, [ _vm._$s(1, "i", !_vm.webviewHide) ? _c( "view", { ref: "ani", staticClass: _vm._$s(1, "sc", "u-loading-icon__spinner"), class: _vm._$s(1, "c", [ "u-loading-icon__spinner--" + _vm.mode, ]), style: _vm._$s(1, "s", { color: _vm.color, width: _vm.$u.addUnit(_vm.size), height: _vm.$u.addUnit(_vm.size), borderTopColor: _vm.color, borderBottomColor: _vm.otherBorderColor, borderLeftColor: _vm.otherBorderColor, borderRightColor: _vm.otherBorderColor, "animation-duration": _vm.duration + "ms", "animation-timing-function": _vm.mode === "semicircle" || _vm.mode === "circle" ? _vm.timingFunction : "", }), attrs: { _i: 1 }, }, [ _vm._$s(2, "i", _vm.mode === "spinner") ? _vm._l( _vm._$s(3, "f", { forItems: _vm.array12 }), function (item, index, $20, $30) { return _c("view", { key: _vm._$s(3, "f", { forIndex: $20, key: index }), staticClass: _vm._$s( "3-" + $30, "sc", "u-loading-icon__dot" ), attrs: { _i: "3-" + $30 }, }) } ) : _vm._e(), ], 2 ) : _vm._e(), _vm._$s(4, "i", _vm.text) ? _c( "text", { staticClass: _vm._$s(4, "sc", "u-loading-icon__text"), style: _vm._$s(4, "s", { fontSize: _vm.$u.addUnit(_vm.textSize), color: _vm.textColor, }), attrs: { _i: 4 }, }, [_vm._v(_vm._$s(4, "t0-0", _vm._s(_vm.text)))] ) : _vm._e(), ] ) : _vm._e() } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 151 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-loading-icon.vue?vue&type=script&lang=js& */ 152);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_loading_icon_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWtrQixDQUFnQixva0JBQUcsRUFBQyIsImZpbGUiOiIxNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LWxvYWRpbmctaWNvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3UtbG9hZGluZy1pY29uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///151\n"); /***/ }), /* 152 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 153));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * loading 加载动画\n * @description 警此组件为一个小动画,目前用在uView的loadmore加载更多和switch开关等组件的正在加载状态场景。\n * @tutorial https://www.uviewui.com/components/loading.html\n * @property {Boolean}\t\t\tshow\t\t\t是否显示组件 (默认 true)\n * @property {String}\t\t\tcolor\t\t\t动画活动区域的颜色,只对 mode = flower 模式有效(默认color['u-tips-color'])\n * @property {String}\t\t\ttextColor\t\t提示文本的颜色(默认color['u-tips-color'])\n * @property {Boolean}\t\t\tvertical\t\t文字和图标是否垂直排列 (默认 false )\n * @property {String}\t\t\tmode\t\t\t模式选择,见官网说明(默认 'circle' )\n * @property {String | Number}\tsize\t\t\t加载图标的大小,单位px (默认 24 )\n * @property {String | Number}\ttextSize\t\t文字大小(默认 15 )\n * @property {String | Number}\ttext\t\t\t文字内容 \n * @property {String}\t\t\ttimingFunction\t动画模式 (默认 'ease-in-out' )\n * @property {String | Number}\tduration\t\t动画执行周期时间(默认 1200)\n * @property {String}\t\t\tinactiveColor\tmode=circle时的暗边颜色 \n * @property {Object}\t\t\tcustomStyle\t\t定义需要用到的外部样式\n * @example \n */\nvar _default = {\n name: 'u-loading-icon',\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {\n // Array.form可以通过一个伪数组对象创建指定长度的数组\n // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from\n array12: Array.from({\n length: 12\n }),\n // 这里需要设置默认值为360,否则在安卓nvue上,会延迟一个duration周期后才执行\n // 在iOS nvue上,则会一开始默认执行两个周期的动画\n aniAngel: 360,\n // 动画旋转角度\n webviewHide: false,\n // 监听webview的状态,如果隐藏了页面,则停止动画,以免性能消耗\n loading: false // 是否运行中,针对nvue使用\n };\n },\n\n computed: {\n // 当为circle类型时,给其另外三边设置一个更轻一些的颜色\n // 之所以需要这么做的原因是,比如父组件传了color为红色,那么需要另外的三个边为浅红色\n // 而不能是固定的某一个其他颜色(因为这个固定的颜色可能浅蓝,导致效果没有那么细腻良好)\n otherBorderColor: function otherBorderColor() {\n var lightColor = uni.$u.colorGradient(this.color, '#ffffff', 100)[80];\n if (this.mode === 'circle') {\n return this.inactiveColor ? this.inactiveColor : lightColor;\n } else {\n return 'transparent';\n }\n // return this.mode === 'circle' ? this.inactiveColor ? this.inactiveColor : lightColor : 'transparent'\n }\n },\n\n watch: {\n show: function show(n) {\n // nvue中,show为true,且为非loading状态,就重新执行动画模块\n }\n },\n mounted: function mounted() {\n this.init();\n },\n methods: {\n init: function init() {\n var _this = this;\n setTimeout(function () {\n _this.show && _this.addEventListenerToWebview();\n }, 20);\n },\n // 监听webview的显示与隐藏\n addEventListenerToWebview: function addEventListenerToWebview() {\n var _this2 = this;\n // webview的堆栈\n var pages = getCurrentPages();\n // 当前页面\n var page = pages[pages.length - 1];\n // 当前页面的webview实例\n var currentWebview = page.$getAppWebview();\n // 监听webview的显示与隐藏,从而停止或者开始动画(为了性能)\n currentWebview.addEventListener('hide', function () {\n _this2.webviewHide = true;\n });\n currentWebview.addEventListener('show', function () {\n _this2.webviewHide = false;\n });\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LWxvYWRpbmctaWNvbi91LWxvYWRpbmctaWNvbi52dWUiXSwibmFtZXMiOlsibmFtZSIsIm1peGlucyIsImRhdGEiLCJhcnJheTEyIiwibGVuZ3RoIiwiYW5pQW5nZWwiLCJ3ZWJ2aWV3SGlkZSIsImxvYWRpbmciLCJjb21wdXRlZCIsIm90aGVyQm9yZGVyQ29sb3IiLCJ3YXRjaCIsInNob3ciLCJtb3VudGVkIiwibWV0aG9kcyIsImluaXQiLCJzZXRUaW1lb3V0IiwiYWRkRXZlbnRMaXN0ZW5lclRvV2VidmlldyIsImN1cnJlbnRXZWJ2aWV3Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBNERBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkEsZUFrQkE7RUFDQUE7RUFDQUM7RUFDQUM7SUFDQTtNQUNBO01BQ0E7TUFDQUM7UUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO0lBQ0E7RUFDQTs7RUFDQUM7SUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0VBQ0E7O0VBQ0FDO0lBQ0FDO01BQ0E7SUFBQTtFQVNBO0VBQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUFBO01BQ0FDO1FBS0E7TUFFQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0FDO1FBQ0E7TUFDQTtNQUNBQTtRQUNBO01BQ0E7SUFDQTtFQThCQTtBQUNBO0FBQUEiLCJmaWxlIjoiMTUyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3XHJcblx0XHRjbGFzcz1cInUtbG9hZGluZy1pY29uXCJcclxuXHRcdDpzdHlsZT1cIlskdS5hZGRTdHlsZShjdXN0b21TdHlsZSldXCJcclxuXHRcdDpjbGFzcz1cIlt2ZXJ0aWNhbCAmJiAndS1sb2FkaW5nLWljb24tLXZlcnRpY2FsJ11cIlxyXG5cdFx0di1pZj1cInNob3dcIlxyXG5cdD5cclxuXHRcdDx2aWV3XHJcblx0XHRcdHYtaWY9XCIhd2Vidmlld0hpZGVcIlxyXG5cdFx0XHRjbGFzcz1cInUtbG9hZGluZy1pY29uX19zcGlubmVyXCJcclxuXHRcdFx0OmNsYXNzPVwiW2B1LWxvYWRpbmctaWNvbl9fc3Bpbm5lci0tJHttb2RlfWBdXCJcclxuXHRcdFx0cmVmPVwiYW5pXCJcclxuXHRcdFx0OnN0eWxlPVwie1xyXG5cdFx0XHRcdGNvbG9yOiBjb2xvcixcclxuXHRcdFx0XHR3aWR0aDogJHUuYWRkVW5pdChzaXplKSxcclxuXHRcdFx0XHRoZWlnaHQ6ICR1LmFkZFVuaXQoc2l6ZSksXHJcblx0XHRcdFx0Ym9yZGVyVG9wQ29sb3I6IGNvbG9yLFxyXG5cdFx0XHRcdGJvcmRlckJvdHRvbUNvbG9yOiBvdGhlckJvcmRlckNvbG9yLFxyXG5cdFx0XHRcdGJvcmRlckxlZnRDb2xvcjogb3RoZXJCb3JkZXJDb2xvcixcclxuXHRcdFx0XHRib3JkZXJSaWdodENvbG9yOiBvdGhlckJvcmRlckNvbG9yLFxyXG5cdFx0XHRcdCdhbmltYXRpb24tZHVyYXRpb24nOiBgJHtkdXJhdGlvbn1tc2AsXHJcblx0XHRcdFx0J2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24nOiBtb2RlID09PSAnc2VtaWNpcmNsZScgfHwgbW9kZSA9PT0gJ2NpcmNsZScgPyB0aW1pbmdGdW5jdGlvbiA6ICcnXHJcblx0XHRcdH1cIlxyXG5cdFx0PlxyXG5cdFx0XHQ8YmxvY2sgdi1pZj1cIm1vZGUgPT09ICdzcGlubmVyJ1wiPlxyXG5cdFx0XHRcdDwhLS0gI2lmbmRlZiBBUFAtTlZVRSAtLT5cclxuXHRcdFx0XHQ8dmlld1xyXG5cdFx0XHRcdFx0di1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGFycmF5MTJcIlxyXG5cdFx0XHRcdFx0OmtleT1cImluZGV4XCJcclxuXHRcdFx0XHRcdGNsYXNzPVwidS1sb2FkaW5nLWljb25fX2RvdFwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8IS0tICNlbmRpZiAtLT5cclxuXHRcdFx0XHQ8IS0tICNpZmRlZiBBUFAtTlZVRSAtLT5cclxuXHRcdFx0XHQ8IS0tIOatpOe7hOS7tuWGhemDqOWbvuagh+mDqOWIhuaXoOazleiuvue9ruWuvemrmO+8jOWNs+S9v+mAmui/h3dpZHRo5ZKMaGVpZ2h06YWN572u5LqG5Lmf5peg5pWIIC0tPlxyXG5cdFx0XHRcdDxsb2FkaW5nLWluZGljYXRvclxyXG5cdFx0XHRcdFx0di1pZj1cIiF3ZWJ2aWV3SGlkZVwiXHJcblx0XHRcdFx0XHRjbGFzcz1cInUtbG9hZGluZy1pbmRpY2F0b3JcIlxyXG5cdFx0XHRcdFx0OmFuaW1hdGluZz1cInRydWVcIlxyXG5cdFx0XHRcdFx0OnN0eWxlPVwie1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogY29sb3IsXHJcblx0XHRcdFx0XHRcdHdpZHRoOiAkdS5hZGRVbml0KHNpemUpLFxyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6ICR1LmFkZFVuaXQoc2l6ZSlcclxuXHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdC8+XHJcblx0XHRcdFx0PCEtLSAjZW5kaWYgLS0+XHJcblx0XHRcdDwvYmxvY2s+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dGV4dFxyXG5cdFx0XHR2LWlmPVwidGV4dFwiXHJcblx0XHRcdGNsYXNzPVwidS1sb2FkaW5nLWljb25fX3RleHRcIlxyXG5cdFx0XHQ6c3R5bGU9XCJ7XHJcblx0XHRcdFx0Zm9udFNpemU6ICR1LmFkZFVuaXQodGV4dFNpemUpLFxyXG5cdFx0XHRcdGNvbG9yOiB0ZXh0Q29sb3IsXHJcblx0XHRcdH1cIlxyXG5cdFx0Pnt7dGV4dH19PC90ZXh0PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHByb3BzIGZyb20gJy4vcHJvcHMuanMnO1xyXG5cdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdGNvbnN0IGFuaW1hdGlvbiA9IHdlZXgucmVxdWlyZU1vZHVsZSgnYW5pbWF0aW9uJyk7XHJcblx0Ly8gI2VuZGlmXHJcblx0LyoqXHJcblx0ICogbG9hZGluZyDliqDovb3liqjnlLtcclxuXHQgKiBAZGVzY3JpcHRpb24g6K2m5q2k57uE5Lu25Li65LiA5Liq5bCP5Yqo55S777yM55uu5YmN55So5ZyodVZpZXfnmoRsb2FkbW9yZeWKoOi9veabtOWkmuWSjHN3aXRjaOW8gOWFs+etiee7hOS7tueahOato+WcqOWKoOi9veeKtuaAgeWcuuaZr+OAglxyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL3d3dy51dmlld3VpLmNvbS9jb21wb25lbnRzL2xvYWRpbmcuaHRtbFxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRzaG93XHRcdFx05piv5ZCm5pi+56S657uE5Lu2ICAo6buY6K6kIHRydWUpXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0Y29sb3JcdFx0XHTliqjnlLvmtLvliqjljLrln5/nmoTpopzoibLvvIzlj6rlr7kgbW9kZSA9IGZsb3dlciDmqKHlvI/mnInmlYjvvIjpu5jorqRjb2xvclsndS10aXBzLWNvbG9yJ13vvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHR0ZXh0Q29sb3JcdFx05o+Q56S65paH5pys55qE6aKc6Imy77yI6buY6K6kY29sb3JbJ3UtdGlwcy1jb2xvcidd77yJXHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdHZlcnRpY2FsXHRcdOaWh+Wtl+WSjOWbvuagh+aYr+WQpuWeguebtOaOkuWIlyAo6buY6K6kIGZhbHNlIClcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRtb2RlXHRcdFx05qih5byP6YCJ5oup77yM6KeB5a6Y572R6K+05piO77yI6buY6K6kICdjaXJjbGUnIO+8iVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nIHwgTnVtYmVyfVx0c2l6ZVx0XHRcdOWKoOi9veWbvuagh+eahOWkp+Wwj++8jOWNleS9jXB4IO+8iOm7mOiupCAyNCDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdHRleHRTaXplXHRcdOaWh+Wtl+Wkp+Wwj++8iOm7mOiupCAxNSDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdHRleHRcdFx0XHTmloflrZflhoXlrrkgXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0dGltaW5nRnVuY3Rpb25cdOWKqOeUu+aooeW8jyDvvIjpu5jorqQgJ2Vhc2UtaW4tb3V0JyDvvIlcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZyB8IE51bWJlcn1cdGR1cmF0aW9uXHRcdOWKqOeUu+aJp+ihjOWRqOacn+aXtumXtO+8iOm7mOiupCAxMjAw77yJXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0aW5hY3RpdmVDb2xvclx0bW9kZT1jaXJjbGXml7bnmoTmmpfovrnpopzoibIgXHJcblx0ICogQHByb3BlcnR5IHtPYmplY3R9XHRcdFx0Y3VzdG9tU3R5bGVcdFx05a6a5LmJ6ZyA6KaB55So5Yiw55qE5aSW6YOo5qC35byPXHJcblx0ICogQGV4YW1wbGUgPHUtbG9hZGluZyBtb2RlPVwiY2lyY2xlXCI+PC91LWxvYWRpbmc+XHJcblx0ICovXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ3UtbG9hZGluZy1pY29uJyxcclxuXHRcdG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4sIHByb3BzXSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Ly8gQXJyYXkuZm9ybeWPr+S7pemAmui/h+S4gOS4quS8quaVsOe7hOWvueixoeWIm+W7uuaMh+WumumVv+W6pueahOaVsOe7hFxyXG5cdFx0XHRcdC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL3poLUNOL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2Zyb21cclxuXHRcdFx0XHRhcnJheTEyOiBBcnJheS5mcm9tKHtcclxuXHRcdFx0XHRcdGxlbmd0aDogMTJcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHQvLyDov5nph4zpnIDopoHorr7nva7pu5jorqTlgLzkuLozNjDvvIzlkKbliJnlnKjlronljZNudnVl5LiK77yM5Lya5bu26L+f5LiA5LiqZHVyYXRpb27lkajmnJ/lkI7miY3miafooYxcclxuXHRcdFx0XHQvLyDlnKhpT1MgbnZ1ZeS4iu+8jOWImeS8muS4gOW8gOWni+m7mOiupOaJp+ihjOS4pOS4quWRqOacn+eahOWKqOeUu1xyXG5cdFx0XHRcdGFuaUFuZ2VsOiAzNjAsIC8vIOWKqOeUu+aXi+i9rOinkuW6plxyXG5cdFx0XHRcdHdlYnZpZXdIaWRlOiBmYWxzZSwgLy8g55uR5ZCsd2Vidmlld+eahOeKtuaAge+8jOWmguaenOmakOiXj+S6humhtemdou+8jOWImeWBnOatouWKqOeUu++8jOS7peWFjeaAp+iDvea2iOiAl1xyXG5cdFx0XHRcdGxvYWRpbmc6IGZhbHNlLCAvLyDmmK/lkKbov5DooYzkuK3vvIzpkojlr7ludnVl5L2/55SoXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHQvLyDlvZPkuLpjaXJjbGXnsbvlnovml7bvvIznu5nlhbblj6blpJbkuInovrnorr7nva7kuIDkuKrmm7TovbvkuIDkupvnmoTpopzoibJcclxuXHRcdFx0Ly8g5LmL5omA5Lul6ZyA6KaB6L+Z5LmI5YGa55qE5Y6f5Zug5piv77yM5q+U5aaC54i257uE5Lu25Lyg5LqGY29sb3LkuLrnuqLoibLvvIzpgqPkuYjpnIDopoHlj6blpJbnmoTkuInkuKrovrnkuLrmtYXnuqLoibJcclxuXHRcdFx0Ly8g6ICM5LiN6IO95piv5Zu65a6a55qE5p+Q5LiA5Liq5YW25LuW6aKc6ImyKOWboOS4uui/meS4quWbuuWumueahOminOiJsuWPr+iDvea1heiTne+8jOWvvOiHtOaViOaenOayoeaciemCo+S5iOe7huiFu+iJr+WlvSlcclxuXHRcdFx0b3RoZXJCb3JkZXJDb2xvcigpIHtcclxuXHRcdFx0XHRjb25zdCBsaWdodENvbG9yID0gdW5pLiR1LmNvbG9yR3JhZGllbnQodGhpcy5jb2xvciwgJyNmZmZmZmYnLCAxMDApWzgwXVxyXG5cdFx0XHRcdGlmICh0aGlzLm1vZGUgPT09ICdjaXJjbGUnKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5pbmFjdGl2ZUNvbG9yID8gdGhpcy5pbmFjdGl2ZUNvbG9yIDogbGlnaHRDb2xvclxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gJ3RyYW5zcGFyZW50J1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyByZXR1cm4gdGhpcy5tb2RlID09PSAnY2lyY2xlJyA/IHRoaXMuaW5hY3RpdmVDb2xvciA/IHRoaXMuaW5hY3RpdmVDb2xvciA6IGxpZ2h0Q29sb3IgOiAndHJhbnNwYXJlbnQnXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHR3YXRjaDoge1xyXG5cdFx0XHRzaG93KG4pIHtcclxuXHRcdFx0XHQvLyBudnVl5Lit77yMc2hvd+S4unRydWXvvIzkuJTkuLrpnZ5sb2FkaW5n54q25oCB77yM5bCx6YeN5paw5omn6KGM5Yqo55S75qih5Z2XXHJcblx0XHRcdFx0Ly8gI2lmZGVmIEFQUC1OVlVFXHJcblx0XHRcdFx0aWYgKG4gJiYgIXRoaXMubG9hZGluZykge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RhcnRBbmltYXRlKClcclxuXHRcdFx0XHRcdH0sIDMwKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdHRoaXMuaW5pdCgpXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRpbml0KCkge1xyXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0Ly8gI2lmZGVmIEFQUC1OVlVFXHJcblx0XHRcdFx0XHR0aGlzLnNob3cgJiYgdGhpcy5udnVlQW5pbWF0ZSgpXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBBUFAtUExVUyBcclxuXHRcdFx0XHRcdHRoaXMuc2hvdyAmJiB0aGlzLmFkZEV2ZW50TGlzdGVuZXJUb1dlYnZpZXcoKVxyXG5cdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0fSwgMjApXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOebkeWQrHdlYnZpZXfnmoTmmL7npLrkuI7pmpDol49cclxuXHRcdFx0YWRkRXZlbnRMaXN0ZW5lclRvV2VidmlldygpIHtcclxuXHRcdFx0XHQvLyB3ZWJ2aWV355qE5aCG5qCIXHJcblx0XHRcdFx0Y29uc3QgcGFnZXMgPSBnZXRDdXJyZW50UGFnZXMoKVxyXG5cdFx0XHRcdC8vIOW9k+WJjemhtemdolxyXG5cdFx0XHRcdGNvbnN0IHBhZ2UgPSBwYWdlc1twYWdlcy5sZW5ndGggLSAxXVxyXG5cdFx0XHRcdC8vIOW9k+WJjemhtemdoueahHdlYnZpZXflrp7kvotcclxuXHRcdFx0XHRjb25zdCBjdXJyZW50V2VidmlldyA9IHBhZ2UuJGdldEFwcFdlYnZpZXcoKVxyXG5cdFx0XHRcdC8vIOebkeWQrHdlYnZpZXfnmoTmmL7npLrkuI7pmpDol4/vvIzku47ogIzlgZzmraLmiJbogIXlvIDlp4vliqjnlLso5Li65LqG5oCn6IO9KVxyXG5cdFx0XHRcdGN1cnJlbnRXZWJ2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ2hpZGUnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLndlYnZpZXdIaWRlID0gdHJ1ZVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0Y3VycmVudFdlYnZpZXcuYWRkRXZlbnRMaXN0ZW5lcignc2hvdycsICgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMud2Vidmlld0hpZGUgPSBmYWxzZVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdFx0XHRudnVlQW5pbWF0ZSgpIHtcclxuXHRcdFx0XHQvLyBudnVl5LiL77yM6Z2ec3Bpbm5lcuexu+Wei+aXtuaJjemcgOimgeaXi+i9rO+8jOWboOS4um52dWXnmoRzcGlubmVy57G75Z6L77yM5L2/55So5LqGd2VleOeahFxyXG5cdFx0XHRcdC8vIGxvYWRpbmctaW5kaWNhdG9y57uE5Lu277yM6Ieq5bim5peL6L2s5Yqf6IO9XHJcblx0XHRcdFx0dGhpcy5tb2RlICE9PSAnc3Bpbm5lcicgJiYgdGhpcy5zdGFydEFuaW1hdGUoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmiafooYxudnVl55qEYW5pbWF0ZeaooeWdl+WKqOeUu1xyXG5cdFx0XHRzdGFydEFuaW1hdGUoKSB7XHJcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZVxyXG5cdFx0XHRcdGNvbnN0IGFuaSA9IHRoaXMuJHJlZnMuYW5pXHJcblx0XHRcdFx0aWYgKCFhbmkpIHJldHVyblxyXG5cdFx0XHRcdGFuaW1hdGlvbi50cmFuc2l0aW9uKGFuaSwge1xyXG5cdFx0XHRcdFx0Ly8g6L+b6KGM6KeS5bqm5peL6L2sXHJcblx0XHRcdFx0XHRzdHlsZXM6IHtcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiBgcm90YXRlKCR7dGhpcy5hbmlBbmdlbH1kZWcpYCxcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtT3JpZ2luOiAnY2VudGVyIGNlbnRlcidcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcclxuXHRcdFx0XHRcdHRpbWluZ0Z1bmN0aW9uOiB0aGlzLnRpbWluZ0Z1bmN0aW9uLFxyXG5cdFx0XHRcdFx0Ly8gZGVsYXk6IDEwXHJcblx0XHRcdFx0fSwgKCkgPT4ge1xyXG5cdFx0XHRcdFx0Ly8g5q+P5qyh5aKe5YqgMzYwZGVn77yM5Li65LqG6K6p5YW26YeN5paw5peL6L2s5LiA5ZGoXHJcblx0XHRcdFx0XHR0aGlzLmFuaUFuZ2VsICs9IDM2MFxyXG5cdFx0XHRcdFx0Ly8g5Yqo55S757uT5p2f5ZCO77yM57un57ut5b6q546v5omn6KGM5Yqo55S777yM6ZyA6KaB5ZCM5pe25Yik5patd2Vidmlld0hpZGXlj5jph49cclxuXHRcdFx0XHRcdC8vIG52dWXlronljZPvvIzpobXpnaLpmpDol4/lkI7kvp3nhLbkvJrnu6fnu63miafooYxzdGFydEFuaW1hdGXmlrnms5VcclxuXHRcdFx0XHRcdHRoaXMuc2hvdyAmJiAhdGhpcy53ZWJ2aWV3SGlkZSA/IHRoaXMuc3RhcnRBbmltYXRlKCkgOiB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gI2VuZGlmXHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuXHRAaW1wb3J0IFwiLi4vLi4vbGlicy9jc3MvY29tcG9uZW50cy5zY3NzXCI7XHJcblx0JHUtbG9hZGluZy1pY29uLWNvbG9yOiAjYzhjOWNjICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi10ZXh0LW1hcmdpbi1sZWZ0OjRweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWljb24tdGV4dC1jb2xvcjokdS1jb250ZW50LWNvbG9yICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi10ZXh0LWZvbnQtc2l6ZToxNHB4ICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi10ZXh0LWxpbmUtaGVpZ2h0OjIwcHggIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy13aWR0aDozMHB4ICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaGVpZ2h0OjMwcHggIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy1tYXgtd2lkdGg6MTAwJSAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLW1heC1oZWlnaHQ6MTAwJSAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLXNlbWljaXJjbGUtYm9yZGVyLXdpZHRoOiAycHggIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy1zZW1pY2lyY2xlLWJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLXNlbWljaXJjbGUtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwMHB4ICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctc2VtaWNpcmNsZS1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDBweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLXNlbWljaXJjbGUtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTAwcHggIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy1zZW1pY2lyY2xlLWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXU6IDEwMHB4ICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctc2VtaWNpcmNsZS1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctY2lyY2xlLWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMDBweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDBweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMDBweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1OiAxMDBweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItd2lkdGg6MnB4ICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctY2lyY2xlLWJvcmRlci10b3AtY29sb3I6I2U1ZTVlNSAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItcmlnaHQtY29sb3I6JHUtbG9hZGluZy1jaXJjbGUtYm9yZGVyLXRvcC1jb2xvciAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItYm90dG9tLWNvbG9yOiR1LWxvYWRpbmctY2lyY2xlLWJvcmRlci10b3AtY29sb3IgIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy1jaXJjbGUtYm9yZGVyLWxlZnQtY29sb3I6JHUtbG9hZGluZy1jaXJjbGUtYm9yZGVyLXRvcC1jb2xvciAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItc3R5bGU6c29saWQgIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy1pY29uLWhvc3QtZm9udC1zaXplOjBweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWljb24taG9zdC1saW5lLWhlaWdodDoxICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi12ZXJ0aWNhbC1tYXJnaW46NnB4IDAgMCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWljb24tZG90LXRvcDowICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi1kb3QtbGVmdDowICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi1kb3Qtd2lkdGg6MTAwJSAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWljb24tZG90LWhlaWdodDoxMDAlICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi1kb3QtYmVmb3JlLXdpZHRoOjJweCAhZGVmYXVsdDtcclxuXHQkdS1sb2FkaW5nLWljb24tZG90LWJlZm9yZS1oZWlnaHQ6MjUlICFkZWZhdWx0O1xyXG5cdCR1LWxvYWRpbmctaWNvbi1kb3QtYmVmb3JlLW1hcmdpbjowIGF1dG8gIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy1pY29uLWRvdC1iZWZvcmUtYmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XHJcblx0JHUtbG9hZGluZy1pY29uLWRvdC1iZWZvcmUtYm9yZGVyLXJhZGl1czo0MCUgIWRlZmF1bHQ7XHJcblxyXG5cdC51LWxvYWRpbmctaWNvbiB7XHJcblx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHQvLyBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuXHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGNvbG9yOiAkdS1sb2FkaW5nLWljb24tY29sb3I7XHJcblxyXG5cdFx0Jl9fdGV4dCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAkdS1sb2FkaW5nLWljb24tdGV4dC1tYXJnaW4tbGVmdDtcclxuXHRcdFx0Y29sb3I6ICR1LWxvYWRpbmctaWNvbi10ZXh0LWNvbG9yO1xyXG5cdFx0XHRmb250LXNpemU6ICR1LWxvYWRpbmctaWNvbi10ZXh0LWZvbnQtc2l6ZTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICR1LWxvYWRpbmctaWNvbi10ZXh0LWxpbmUtaGVpZ2h0O1xyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3NwaW5uZXIge1xyXG5cdFx0XHR3aWR0aDogJHUtbG9hZGluZy13aWR0aDtcclxuXHRcdFx0aGVpZ2h0OiAkdS1sb2FkaW5nLWhlaWdodDtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdG1heC13aWR0aDogJHUtbG9hZGluZy1tYXgtd2lkdGg7XHJcblx0XHRcdG1heC1oZWlnaHQ6ICR1LWxvYWRpbmctbWF4LWhlaWdodDtcclxuXHRcdFx0YW5pbWF0aW9uOiB1LXJvdGF0ZSAxcyBsaW5lYXIgaW5maW5pdGU7XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3NwaW5uZXItLXNlbWljaXJjbGUge1xyXG5cdFx0XHRib3JkZXItd2lkdGg6ICR1LWxvYWRpbmctc2VtaWNpcmNsZS1ib3JkZXItd2lkdGg7XHJcblx0XHRcdGJvcmRlci1jb2xvcjogJHUtbG9hZGluZy1zZW1pY2lyY2xlLWJvcmRlci1jb2xvcjtcclxuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICR1LWxvYWRpbmctc2VtaWNpcmNsZS1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1cztcclxuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHUtbG9hZGluZy1zZW1pY2lyY2xlLWJvcmRlci10b3AtbGVmdC1yYWRpdXM7XHJcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICR1LWxvYWRpbmctc2VtaWNpcmNsZS1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzO1xyXG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHUtbG9hZGluZy1zZW1pY2lyY2xlLWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXU7XHJcblx0XHRcdGJvcmRlci1zdHlsZTogJHUtbG9hZGluZy1zZW1pY2lyY2xlLWJvcmRlci1zdHlsZTtcclxuXHRcdH1cclxuXHJcblx0XHQmX19zcGlubmVyLS1jaXJjbGUge1xyXG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHUtbG9hZGluZy1jaXJjbGUtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM7XHJcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICR1LWxvYWRpbmctY2lyY2xlLWJvcmRlci10b3AtbGVmdC1yYWRpdXM7XHJcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICR1LWxvYWRpbmctY2lyY2xlLWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM7XHJcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1O1xyXG5cdFx0XHRib3JkZXItd2lkdGg6ICR1LWxvYWRpbmctY2lyY2xlLWJvcmRlci13aWR0aDtcclxuXHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjogJHUtbG9hZGluZy1jaXJjbGUtYm9yZGVyLXRvcC1jb2xvcjtcclxuXHRcdFx0Ym9yZGVyLXJpZ2h0LWNvbG9yOiAkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItcmlnaHQtY29sb3I7XHJcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6ICR1LWxvYWRpbmctY2lyY2xlLWJvcmRlci1ib3R0b20tY29sb3I7XHJcblx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItbGVmdC1jb2xvcjtcclxuXHRcdFx0Ym9yZGVyLXN0eWxlOiAkdS1sb2FkaW5nLWNpcmNsZS1ib3JkZXItc3R5bGU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji0tdmVydGljYWwge1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0Omhvc3Qge1xyXG5cdFx0Zm9udC1zaXplOiAkdS1sb2FkaW5nLWljb24taG9zdC1mb250LXNpemU7XHJcblx0XHRsaW5lLWhlaWdodDogJHUtbG9hZGluZy1pY29uLWhvc3QtbGluZS1oZWlnaHQ7XHJcblx0fVxyXG5cclxuXHQudS1sb2FkaW5nLWljb24ge1xyXG5cdFx0Jl9fc3Bpbm5lci0tc3Bpbm5lciB7XHJcblx0XHRcdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXBzKDEyKVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3RleHQ6ZW1wdHkge1xyXG5cdFx0XHRkaXNwbGF5OiBub25lXHJcblx0XHR9XHJcblxyXG5cdFx0Ji0tdmVydGljYWwgJl9fdGV4dCB7XHJcblx0XHRcdG1hcmdpbjogJHUtbG9hZGluZy1pY29uLXZlcnRpY2FsLW1hcmdpbjtcclxuXHRcdFx0Y29sb3I6ICR1LWNvbnRlbnQtY29sb3I7XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fZG90IHtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHR0b3A6ICR1LWxvYWRpbmctaWNvbi1kb3QtdG9wO1xyXG5cdFx0XHRsZWZ0OiAkdS1sb2FkaW5nLWljb24tZG90LWxlZnQ7XHJcblx0XHRcdHdpZHRoOiAkdS1sb2FkaW5nLWljb24tZG90LXdpZHRoO1xyXG5cdFx0XHRoZWlnaHQ6ICR1LWxvYWRpbmctaWNvbi1kb3QtaGVpZ2h0O1xyXG5cclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOiAkdS1sb2FkaW5nLWljb24tZG90LWJlZm9yZS13aWR0aDtcclxuXHRcdFx0XHRoZWlnaHQ6ICR1LWxvYWRpbmctaWNvbi1kb3QtYmVmb3JlLWhlaWdodDtcclxuXHRcdFx0XHRtYXJnaW46ICR1LWxvYWRpbmctaWNvbi1kb3QtYmVmb3JlLW1hcmdpbjtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdS1sb2FkaW5nLWljb24tZG90LWJlZm9yZS1iYWNrZ3JvdW5kLWNvbG9yO1xyXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6ICR1LWxvYWRpbmctaWNvbi1kb3QtYmVmb3JlLWJvcmRlci1yYWRpdXM7XHJcblx0XHRcdFx0Y29udGVudDogXCIgXCJcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XHJcblx0XHQudS1sb2FkaW5nLWljb25fX2RvdDpudGgtb2YtdHlwZSgjeyRpfSkge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgkaSAqIDMwZGVnKTtcclxuXHRcdFx0b3BhY2l0eTogMSAtIDAuMDYyNSAqICgkaSAtIDEpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QGtleWZyYW1lcyB1LXJvdGF0ZSB7XHJcblx0XHQwJSB7XHJcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpXHJcblx0XHR9XHJcblxyXG5cdFx0dG8ge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybilcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qICNlbmRpZiAqL1xyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///152\n"); /***/ }), /* 153 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-loading-icon/props.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否显示组件\n show: {\n type: Boolean,\n default: uni.$u.props.loadingIcon.show\n },\n // 颜色\n color: {\n type: String,\n default: uni.$u.props.loadingIcon.color\n },\n // 提示文字颜色\n textColor: {\n type: String,\n default: uni.$u.props.loadingIcon.textColor\n },\n // 文字和图标是否垂直排列\n vertical: {\n type: Boolean,\n default: uni.$u.props.loadingIcon.vertical\n },\n // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形\n mode: {\n type: String,\n default: uni.$u.props.loadingIcon.mode\n },\n // 图标大小,单位默认px\n size: {\n type: [String, Number],\n default: uni.$u.props.loadingIcon.size\n },\n // 文字大小\n textSize: {\n type: [String, Number],\n default: uni.$u.props.loadingIcon.textSize\n },\n // 文字内容\n text: {\n type: [String, Number],\n default: uni.$u.props.loadingIcon.text\n },\n // 动画模式\n timingFunction: {\n type: String,\n default: uni.$u.props.loadingIcon.timingFunction\n },\n // 动画执行周期时间\n duration: {\n type: [String, Number],\n default: uni.$u.props.loadingIcon.duration\n },\n // mode=circle时的暗边颜色\n inactiveColor: {\n type: String,\n default: uni.$u.props.loadingIcon.inactiveColor\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LWxvYWRpbmctaWNvbi9wcm9wcy5qcyJdLCJuYW1lcyI6WyJwcm9wcyIsInNob3ciLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHQiLCJ1bmkiLCIkdSIsImxvYWRpbmdJY29uIiwiY29sb3IiLCJTdHJpbmciLCJ0ZXh0Q29sb3IiLCJ2ZXJ0aWNhbCIsIm1vZGUiLCJzaXplIiwiTnVtYmVyIiwidGV4dFNpemUiLCJ0ZXh0IiwidGltaW5nRnVuY3Rpb24iLCJkdXJhdGlvbiIsImluYWN0aXZlQ29sb3IiXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0VBQ1hBLEtBQUssRUFBRTtJQUNIO0lBQ0FDLElBQUksRUFBRTtNQUNGQyxJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxXQUFXLENBQUNOO0lBQ3RDLENBQUM7SUFDRDtJQUNBTyxLQUFLLEVBQUU7TUFDSE4sSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sV0FBVyxDQUFDQztJQUN0QyxDQUFDO0lBQ0Q7SUFDQUUsU0FBUyxFQUFFO01BQ1BSLElBQUksRUFBRU8sTUFBTTtNQUNaTCxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLFdBQVcsQ0FBQ0c7SUFDdEMsQ0FBQztJQUNEO0lBQ0FDLFFBQVEsRUFBRTtNQUNOVCxJQUFJLEVBQUVDLE9BQU87TUFDYkMsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxXQUFXLENBQUNJO0lBQ3RDLENBQUM7SUFDRDtJQUNBQyxJQUFJLEVBQUU7TUFDRlYsSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sV0FBVyxDQUFDSztJQUN0QyxDQUFDO0lBQ0Q7SUFDQUMsSUFBSSxFQUFFO01BQ0ZYLElBQUksRUFBRSxDQUFDTyxNQUFNLEVBQUVLLE1BQU0sQ0FBQztNQUN0QlYsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxXQUFXLENBQUNNO0lBQ3RDLENBQUM7SUFDRDtJQUNBRSxRQUFRLEVBQUU7TUFDTmIsSUFBSSxFQUFFLENBQUNPLE1BQU0sRUFBRUssTUFBTSxDQUFDO01BQ3RCVixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLFdBQVcsQ0FBQ1E7SUFDdEMsQ0FBQztJQUNEO0lBQ0FDLElBQUksRUFBRTtNQUNGZCxJQUFJLEVBQUUsQ0FBQ08sTUFBTSxFQUFFSyxNQUFNLENBQUM7TUFDdEJWLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sV0FBVyxDQUFDUztJQUN0QyxDQUFDO0lBQ0Q7SUFDQUMsY0FBYyxFQUFFO01BQ1pmLElBQUksRUFBRU8sTUFBTTtNQUNaTCxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLFdBQVcsQ0FBQ1U7SUFDdEMsQ0FBQztJQUNEO0lBQ0FDLFFBQVEsRUFBRTtNQUNOaEIsSUFBSSxFQUFFLENBQUNPLE1BQU0sRUFBRUssTUFBTSxDQUFDO01BQ3RCVixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLFdBQVcsQ0FBQ1c7SUFDdEMsQ0FBQztJQUNEO0lBQ0FDLGFBQWEsRUFBRTtNQUNYakIsSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sV0FBVyxDQUFDWTtJQUN0QztFQUNKO0FBQ0osQ0FBQztBQUFBIiwiZmlsZSI6IjE1My5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcclxuICAgIHByb3BzOiB7XHJcbiAgICAgICAgLy8g5piv5ZCm5pi+56S657uE5Lu2XHJcbiAgICAgICAgc2hvdzoge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMubG9hZGluZ0ljb24uc2hvd1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g6aKc6ImyXHJcbiAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMubG9hZGluZ0ljb24uY29sb3JcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaPkOekuuaWh+Wtl+minOiJslxyXG4gICAgICAgIHRleHRDb2xvcjoge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5sb2FkaW5nSWNvbi50ZXh0Q29sb3JcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaWh+Wtl+WSjOWbvuagh+aYr+WQpuWeguebtOaOkuWIl1xyXG4gICAgICAgIHZlcnRpY2FsOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5sb2FkaW5nSWNvbi52ZXJ0aWNhbFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5qih5byP6YCJ5oup77yMY2lyY2xlLeWchuW9ou+8jHNwaW5uZXIt6Iqx5py15b2i77yMc2VtaWNpcmNsZS3ljYrlnIblvaJcclxuICAgICAgICBtb2RlOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmxvYWRpbmdJY29uLm1vZGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWbvuagh+Wkp+Wwj++8jOWNleS9jem7mOiupHB4XHJcbiAgICAgICAgc2l6ZToge1xyXG4gICAgICAgICAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMubG9hZGluZ0ljb24uc2l6ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5paH5a2X5aSn5bCPXHJcbiAgICAgICAgdGV4dFNpemU6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmxvYWRpbmdJY29uLnRleHRTaXplXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmloflrZflhoXlrrlcclxuICAgICAgICB0ZXh0OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5sb2FkaW5nSWNvbi50ZXh0XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDliqjnlLvmqKHlvI9cclxuICAgICAgICB0aW1pbmdGdW5jdGlvbjoge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5sb2FkaW5nSWNvbi50aW1pbmdGdW5jdGlvblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Yqo55S75omn6KGM5ZGo5pyf5pe26Ze0XHJcbiAgICAgICAgZHVyYXRpb246IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmxvYWRpbmdJY29uLmR1cmF0aW9uXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBtb2RlPWNpcmNsZeaXtueahOaal+i+ueminOiJslxyXG4gICAgICAgIGluYWN0aXZlQ29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMubG9hZGluZ0ljb24uaW5hY3RpdmVDb2xvclxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///153\n"); /***/ }), /* 154 */ /*!***************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-picker/u-picker.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-picker.vue?vue&type=script&lang=js& */ 155);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRqQixDQUFnQiw4akJBQUcsRUFBQyIsImZpbGUiOiIxNTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXBpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3UtcGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///154\n"); /***/ }), /* 155 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-picker/u-picker.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 156));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\r\n * u-picker\r\n * @description 选择器\r\n * @property {Boolean}\t\t\tshow\t\t\t\t是否显示picker弹窗(默认 false )\r\n * @property {Boolean}\t\t\tshowToolbar\t\t\t是否显示顶部的操作栏(默认 true )\r\n * @property {String}\t\t\ttitle\t\t\t\t顶部标题\r\n * @property {Array}\t\t\tcolumns\t\t\t\t对象数组,设置每一列的数据\r\n * @property {Boolean}\t\t\tloading\t\t\t\t是否显示加载中状态(默认 false )\r\n * @property {String | Number}\titemHeight\t\t\t各列中,单个选项的高度(默认 44 )\r\n * @property {String}\t\t\tcancelText\t\t\t取消按钮的文字(默认 '取消' )\r\n * @property {String}\t\t\tconfirmText\t\t\t确认按钮的文字(默认 '确定' )\r\n * @property {String}\t\t\tcancelColor\t\t\t取消按钮的颜色(默认 '#909193' )\r\n * @property {String}\t\t\tconfirmColor\t\t确认按钮的颜色(默认 '#3c9cff' )\r\n * @property {String | Number}\tvisibleItemCount\t每列中可见选项的数量(默认 5 )\r\n * @property {String}\t\t\tkeyName\t\t\t\t选项对象中,需要展示的属性键名(默认 'text' )\r\n * @property {Boolean}\t\t\tcloseOnClickOverlay\t是否允许点击遮罩关闭选择器(默认 false )\r\n * @property {Array}\t\t\tdefaultIndex\t\t各列的默认索引\r\n * @property {Boolean}\t\t\timmediateChange\t\t是否在手指松开时立即触发change事件(默认 false )\r\n * @event {Function} close\t\t关闭选择器时触发\r\n * @event {Function} cancel\t\t点击取消按钮触发\r\n * @event {Function} change\t\t当选择值变化时触发\r\n * @event {Function} confirm\t点击确定按钮,返回当前选择的值\r\n */\nvar _default = {\n name: 'u-picker',\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {\n // 上一次选择的列索引\n lastIndex: [],\n // 索引值 ,对应picker-view的value\n innerIndex: [],\n // 各列的值\n innerColumns: [],\n // 上一次的变化列索引\n columnIndex: 0\n };\n },\n watch: {\n // 监听默认索引的变化,重新设置对应的值\n defaultIndex: {\n immediate: true,\n handler: function handler(n) {\n this.setIndexs(n, true);\n }\n },\n // 监听columns参数的变化\n columns: {\n immediate: true,\n handler: function handler(n) {\n this.setColumns(n);\n }\n }\n },\n methods: {\n // 获取item需要显示的文字,判别为对象还是文本\n getItemText: function getItemText(item) {\n if (uni.$u.test.object(item)) {\n return item[this.keyName];\n } else {\n return item;\n }\n },\n // 关闭选择器\n closeHandler: function closeHandler() {\n if (this.closeOnClickOverlay) {\n this.$emit('close');\n }\n },\n // 点击工具栏的取消按钮\n cancel: function cancel() {\n this.$emit('cancel');\n },\n // 点击工具栏的确定按钮\n confirm: function confirm() {\n var _this = this;\n this.$emit('confirm', {\n indexs: this.innerIndex,\n value: this.innerColumns.map(function (item, index) {\n return item[_this.innerIndex[index]];\n }),\n values: this.innerColumns\n });\n },\n // 选择器某一列的数据发生变化时触发\n changeHandler: function changeHandler(e) {\n var value = e.detail.value;\n var index = 0,\n columnIndex = 0;\n // 通过对比前后两次的列索引,得出当前变化的是哪一列\n for (var i = 0; i < value.length; i++) {\n var item = value[i];\n if (item !== (this.lastIndex[i] || 0)) {\n // 把undefined转为合法假值0\n // 设置columnIndex为当前变化列的索引\n columnIndex = i;\n // index则为变化列中的变化项的索引\n index = item;\n break; // 终止循环,即使少一次循环,也是性能的提升\n }\n }\n\n this.columnIndex = columnIndex;\n var values = this.innerColumns;\n // 将当前的各项变化索引,设置为\"上一次\"的索引变化值\n this.setLastIndex(value);\n this.setIndexs(value);\n this.$emit('change', {\n // 微信小程序不能传递this,会因为循环引用而报错\n picker: this,\n value: this.innerColumns.map(function (item, index) {\n return item[value[index]];\n }),\n index: index,\n indexs: value,\n // values为当前变化列的数组内容\n values: values,\n columnIndex: columnIndex\n });\n },\n // 设置index索引,此方法可被外部调用设置\n setIndexs: function setIndexs(index, setLastIndex) {\n this.innerIndex = uni.$u.deepClone(index);\n if (setLastIndex) {\n this.setLastIndex(index);\n }\n },\n // 记录上一次的各列索引位置\n setLastIndex: function setLastIndex(index) {\n // 当能进入此方法,意味着当前设置的各列默认索引,即为“上一次”的选中值,需要记录,是因为changeHandler中\n // 需要拿前后的变化值进行对比,得出当前发生改变的是哪一列\n this.lastIndex = uni.$u.deepClone(index);\n },\n // 设置对应列选项的所有值\n setColumnValues: function setColumnValues(columnIndex, values) {\n // 替换innerColumns数组中columnIndex索引的值为values,使用的是数组的splice方法\n this.innerColumns.splice(columnIndex, 1, values);\n // 替换完成之后将修改列之后的已选值置空\n this.setLastIndex(this.innerIndex.slice(0, columnIndex));\n // 拷贝一份原有的innerIndex做临时变量,将大于当前变化列的所有的列的默认索引设置为0\n var tmpIndex = uni.$u.deepClone(this.innerIndex);\n for (var i = 0; i < this.innerColumns.length; i++) {\n if (i > this.columnIndex) {\n tmpIndex[i] = 0;\n }\n }\n // 一次性赋值,不能单个修改,否则无效\n this.setIndexs(tmpIndex);\n },\n // 获取对应列的所有选项\n getColumnValues: function getColumnValues(columnIndex) {\n // 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值\n // 索引如果在外部change的回调中调用getColumnValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性\n (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return uni.$u.sleep();\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n return this.innerColumns[columnIndex];\n },\n // 设置整体各列的columns的值\n setColumns: function setColumns(columns) {\n this.innerColumns = uni.$u.deepClone(columns);\n // 如果在设置各列数据时,没有被设置默认的各列索引defaultIndex,那么用0去填充它,数组长度为列的数量\n if (this.innerIndex.length === 0) {\n this.innerIndex = new Array(columns.length).fill(0);\n }\n },\n // 获取各列选中值对应的索引\n getIndexs: function getIndexs() {\n return this.innerIndex;\n },\n // 获取各列选中的值\n getValues: function getValues() {\n var _this2 = this;\n // 进行同步阻塞,因为外部得到change事件之后,可能需要执行setColumnValues更新列的值\n // 索引如果在外部change的回调中调用getValues的话,可能无法得到变更后的列值,这里进行一定延时,保证值的准确性\n (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return uni.$u.sleep();\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n return this.innerColumns.map(function (item, index) {\n return item[_this2.innerIndex[index]];\n });\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXBpY2tlci91LXBpY2tlci52dWUiXSwibmFtZXMiOlsibmFtZSIsIm1peGlucyIsImRhdGEiLCJsYXN0SW5kZXgiLCJpbm5lckluZGV4IiwiaW5uZXJDb2x1bW5zIiwiY29sdW1uSW5kZXgiLCJ3YXRjaCIsImRlZmF1bHRJbmRleCIsImltbWVkaWF0ZSIsImhhbmRsZXIiLCJjb2x1bW5zIiwibWV0aG9kcyIsImdldEl0ZW1UZXh0IiwiY2xvc2VIYW5kbGVyIiwiY2FuY2VsIiwiY29uZmlybSIsImluZGV4cyIsInZhbHVlIiwidmFsdWVzIiwiY2hhbmdlSGFuZGxlciIsImUiLCJpbmRleCIsInBpY2tlciIsInNldEluZGV4cyIsInNldExhc3RJbmRleCIsInNldENvbHVtblZhbHVlcyIsInRtcEluZGV4IiwiZ2V0Q29sdW1uVmFsdWVzIiwidW5pIiwic2V0Q29sdW1ucyIsImdldEluZGV4cyIsImdldFZhbHVlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBK0VBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdEJBLGVBd0JBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0E7TUFDQTtNQUNBQztNQUNBO01BQ0FDO01BQ0E7TUFDQUM7TUFDQTtNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBQztNQUNBQztNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0FGO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUU7SUFDQTtJQUNBQztNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7UUFDQUM7UUFDQUM7VUFBQTtRQUFBO1FBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0EsSUFDQUYsUUFDQUcsU0FEQUg7TUFFQTtRQUNBWjtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQUE7VUFDQTtVQUNBQTtVQUNBO1VBQ0FnQjtVQUNBO1FBQ0E7TUFDQTs7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BRUE7UUFFQTtRQUNBQztRQUVBTDtVQUFBO1FBQUE7UUFDQUk7UUFDQUw7UUFDQTtRQUNBRTtRQUNBYjtNQUNBO0lBQ0E7SUFDQTtJQUNBa0I7TUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtVQUNBQztRQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUFBO2dCQUFBLE9BQ0FDO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBLENBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQUE7Z0JBQUEsT0FDQUg7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUEsQ0FDQTtNQUNBO1FBQUE7TUFBQTtJQUNBO0VBQ0E7QUFDQTtBQUFBIiwiZmlsZSI6IjE1NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dS1wb3B1cFxyXG5cdFx0OnNob3c9XCJzaG93XCJcclxuXHRcdEBjbG9zZT1cImNsb3NlSGFuZGxlclwiXHJcblx0PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJ1LXBpY2tlclwiPlxyXG5cdFx0XHQ8dS10b29sYmFyXHJcblx0XHRcdFx0di1pZj1cInNob3dUb29sYmFyXCJcclxuXHRcdFx0XHQ6Y2FuY2VsQ29sb3I9XCJjYW5jZWxDb2xvclwiXHJcblx0XHRcdFx0OmNvbmZpcm1Db2xvcj1cImNvbmZpcm1Db2xvclwiXHJcblx0XHRcdFx0OmNhbmNlbFRleHQ9XCJjYW5jZWxUZXh0XCJcclxuXHRcdFx0XHQ6Y29uZmlybVRleHQ9XCJjb25maXJtVGV4dFwiXHJcblx0XHRcdFx0OnRpdGxlPVwidGl0bGVcIlxyXG5cdFx0XHRcdEBjYW5jZWw9XCJjYW5jZWxcIlxyXG5cdFx0XHRcdEBjb25maXJtPVwiY29uZmlybVwiXHJcblx0XHRcdD48L3UtdG9vbGJhcj5cclxuXHRcdFx0PHBpY2tlci12aWV3XHJcblx0XHRcdFx0Y2xhc3M9XCJ1LXBpY2tlcl9fdmlld1wiXHJcblx0XHRcdFx0OmluZGljYXRvclN0eWxlPVwiYGhlaWdodDogJHskdS5hZGRVbml0KGl0ZW1IZWlnaHQpfWBcIlxyXG5cdFx0XHRcdDp2YWx1ZT1cImlubmVySW5kZXhcIlxyXG5cdFx0XHRcdDppbW1lZGlhdGVDaGFuZ2U9XCJpbW1lZGlhdGVDaGFuZ2VcIlxyXG5cdFx0XHRcdDpzdHlsZT1cIntcclxuXHRcdFx0XHRcdGhlaWdodDogYCR7JHUuYWRkVW5pdCh2aXNpYmxlSXRlbUNvdW50ICogaXRlbUhlaWdodCl9YFxyXG5cdFx0XHRcdH1cIlxyXG5cdFx0XHRcdEBjaGFuZ2U9XCJjaGFuZ2VIYW5kbGVyXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxwaWNrZXItdmlldy1jb2x1bW5cclxuXHRcdFx0XHRcdHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBpbm5lckNvbHVtbnNcIlxyXG5cdFx0XHRcdFx0OmtleT1cImluZGV4XCJcclxuXHRcdFx0XHRcdGNsYXNzPVwidS1waWNrZXJfX3ZpZXdfX2NvbHVtblwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0PHRleHRcclxuXHRcdFx0XHRcdFx0di1pZj1cIiR1LnRlc3QuYXJyYXkoaXRlbSlcIlxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInUtcGlja2VyX192aWV3X19jb2x1bW5fX2l0ZW0gdS1saW5lLTFcIlxyXG5cdFx0XHRcdFx0XHR2LWZvcj1cIihpdGVtMSwgaW5kZXgxKSBpbiBpdGVtXCJcclxuXHRcdFx0XHRcdFx0OmtleT1cImluZGV4MVwiXHJcblx0XHRcdFx0XHRcdDpzdHlsZT1cIntcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6ICR1LmFkZFVuaXQoaXRlbUhlaWdodCksXHJcblx0XHRcdFx0XHRcdFx0bGluZUhlaWdodDogJHUuYWRkVW5pdChpdGVtSGVpZ2h0KSxcclxuXHRcdFx0XHRcdFx0XHRmb250V2VpZ2h0OiBpbmRleDEgPT09IGlubmVySW5kZXhbaW5kZXhdID8gJ2JvbGQnIDogJ25vcm1hbCcsXHJcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogJ2Jsb2NrJ1xyXG5cdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdD57eyBnZXRJdGVtVGV4dChpdGVtMSkgfX08L3RleHQ+XHJcblx0XHRcdFx0PC9waWNrZXItdmlldy1jb2x1bW4+XHJcblx0XHRcdDwvcGlja2VyLXZpZXc+XHJcblx0XHRcdDx2aWV3XHJcblx0XHRcdFx0di1pZj1cImxvYWRpbmdcIlxyXG5cdFx0XHRcdGNsYXNzPVwidS1waWNrZXItLWxvYWRpbmdcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PHUtbG9hZGluZy1pY29uIG1vZGU9XCJjaXJjbGVcIj48L3UtbG9hZGluZy1pY29uPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0PC91LXBvcHVwPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLyoqXHJcbiAqIHUtcGlja2VyXHJcbiAqIEBkZXNjcmlwdGlvbiDpgInmi6nlmahcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdHNob3dcdFx0XHRcdOaYr+WQpuaYvuekunBpY2tlcuW8ueeql++8iOm7mOiupCBmYWxzZSDvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdHNob3dUb29sYmFyXHRcdFx05piv5ZCm5pi+56S66aG26YOo55qE5pON5L2c5qCP77yI6buY6K6kIHRydWUg77yJXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdHRpdGxlXHRcdFx0XHTpobbpg6jmoIfpophcclxuICogQHByb3BlcnR5IHtBcnJheX1cdFx0XHRjb2x1bW5zXHRcdFx0XHTlr7nosaHmlbDnu4TvvIzorr7nva7mr4/kuIDliJfnmoTmlbDmja5cclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdGxvYWRpbmdcdFx0XHRcdOaYr+WQpuaYvuekuuWKoOi9veS4reeKtuaAge+8iOm7mOiupCBmYWxzZSDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRpdGVtSGVpZ2h0XHRcdFx05ZCE5YiX5Lit77yM5Y2V5Liq6YCJ6aG555qE6auY5bqm77yI6buY6K6kIDQ0IO+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRjYW5jZWxUZXh0XHRcdFx05Y+W5raI5oyJ6ZKu55qE5paH5a2X77yI6buY6K6kICflj5bmtognIO+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRjb25maXJtVGV4dFx0XHRcdOehruiupOaMiemSrueahOaWh+Wtl++8iOm7mOiupCAn56Gu5a6aJyDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0Y2FuY2VsQ29sb3JcdFx0XHTlj5bmtojmjInpkq7nmoTpopzoibLvvIjpu5jorqQgJyM5MDkxOTMnIO+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRjb25maXJtQ29sb3JcdFx056Gu6K6k5oyJ6ZKu55qE6aKc6Imy77yI6buY6K6kICcjM2M5Y2ZmJyDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHR2aXNpYmxlSXRlbUNvdW50XHTmr4/liJfkuK3lj6/op4HpgInpobnnmoTmlbDph4/vvIjpu5jorqQgNSDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0a2V5TmFtZVx0XHRcdFx06YCJ6aG55a+56LGh5Lit77yM6ZyA6KaB5bGV56S655qE5bGe5oCn6ZSu5ZCN77yI6buY6K6kICd0ZXh0JyDvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdGNsb3NlT25DbGlja092ZXJsYXlcdOaYr+WQpuWFgeiuuOeCueWHu+mBrue9qeWFs+mXremAieaLqeWZqO+8iOm7mOiupCBmYWxzZSDvvIlcclxuICogQHByb3BlcnR5IHtBcnJheX1cdFx0XHRkZWZhdWx0SW5kZXhcdFx05ZCE5YiX55qE6buY6K6k57Si5byVXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRpbW1lZGlhdGVDaGFuZ2VcdFx05piv5ZCm5Zyo5omL5oyH5p2+5byA5pe256uL5Y2z6Kem5Y+RY2hhbmdl5LqL5Lu277yI6buY6K6kIGZhbHNlIO+8iVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufSBjbG9zZVx0XHTlhbPpl63pgInmi6nlmajml7bop6blj5FcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gY2FuY2VsXHRcdOeCueWHu+WPlua2iOaMiemSruinpuWPkVxyXG4gKiBAZXZlbnQge0Z1bmN0aW9ufSBjaGFuZ2VcdFx05b2T6YCJ5oup5YC85Y+Y5YyW5pe26Kem5Y+RXHJcbiAqIEBldmVudCB7RnVuY3Rpb259IGNvbmZpcm1cdOeCueWHu+ehruWumuaMiemSru+8jOi/lOWbnuW9k+WJjemAieaLqeeahOWAvFxyXG4gKi9cclxuaW1wb3J0IHByb3BzIGZyb20gJy4vcHJvcHMuanMnO1xyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0bmFtZTogJ3UtcGlja2VyJyxcclxuXHRtaXhpbnM6IFt1bmkuJHUubXBNaXhpbiwgdW5pLiR1Lm1peGluLCBwcm9wc10sXHJcblx0ZGF0YSgpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdC8vIOS4iuS4gOasoemAieaLqeeahOWIl+e0ouW8lVxyXG5cdFx0XHRsYXN0SW5kZXg6IFtdLFxyXG5cdFx0XHQvLyDntKLlvJXlgLwg77yM5a+55bqUcGlja2VyLXZpZXfnmoR2YWx1ZVxyXG5cdFx0XHRpbm5lckluZGV4OiBbXSxcclxuXHRcdFx0Ly8g5ZCE5YiX55qE5YC8XHJcblx0XHRcdGlubmVyQ29sdW1uczogW10sXHJcblx0XHRcdC8vIOS4iuS4gOasoeeahOWPmOWMluWIl+e0ouW8lVxyXG5cdFx0XHRjb2x1bW5JbmRleDogMCxcclxuXHRcdH1cclxuXHR9LFxyXG5cdHdhdGNoOiB7XHJcblx0XHQvLyDnm5HlkKzpu5jorqTntKLlvJXnmoTlj5jljJbvvIzph43mlrDorr7nva7lr7nlupTnmoTlgLxcclxuXHRcdGRlZmF1bHRJbmRleDoge1xyXG5cdFx0XHRpbW1lZGlhdGU6IHRydWUsXHJcblx0XHRcdGhhbmRsZXIobikge1xyXG5cdFx0XHRcdHRoaXMuc2V0SW5kZXhzKG4sIHRydWUpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHQvLyDnm5HlkKxjb2x1bW5z5Y+C5pWw55qE5Y+Y5YyWXHJcblx0XHRjb2x1bW5zOiB7XHJcblx0XHRcdGltbWVkaWF0ZTogdHJ1ZSxcclxuXHRcdFx0aGFuZGxlcihuKSB7XHJcblx0XHRcdFx0dGhpcy5zZXRDb2x1bW5zKG4pXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0fSxcclxuXHRtZXRob2RzOiB7XHJcblx0XHQvLyDojrflj5ZpdGVt6ZyA6KaB5pi+56S655qE5paH5a2X77yM5Yik5Yir5Li65a+56LGh6L+Y5piv5paH5pysXHJcblx0XHRnZXRJdGVtVGV4dChpdGVtKSB7XHJcblx0XHRcdGlmICh1bmkuJHUudGVzdC5vYmplY3QoaXRlbSkpIHtcclxuXHRcdFx0XHRyZXR1cm4gaXRlbVt0aGlzLmtleU5hbWVdXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIGl0ZW1cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIOWFs+mXremAieaLqeWZqFxyXG5cdFx0Y2xvc2VIYW5kbGVyKCkge1xyXG5cdFx0XHRpZiAodGhpcy5jbG9zZU9uQ2xpY2tPdmVybGF5KSB7XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2xvc2UnKVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Ly8g54K55Ye75bel5YW35qCP55qE5Y+W5raI5oyJ6ZKuXHJcblx0XHRjYW5jZWwoKSB7XHJcblx0XHRcdHRoaXMuJGVtaXQoJ2NhbmNlbCcpXHJcblx0XHR9LFxyXG5cdFx0Ly8g54K55Ye75bel5YW35qCP55qE56Gu5a6a5oyJ6ZKuXHJcblx0XHRjb25maXJtKCkge1xyXG5cdFx0XHR0aGlzLiRlbWl0KCdjb25maXJtJywge1xyXG5cdFx0XHRcdGluZGV4czogdGhpcy5pbm5lckluZGV4LFxyXG5cdFx0XHRcdHZhbHVlOiB0aGlzLmlubmVyQ29sdW1ucy5tYXAoKGl0ZW0sIGluZGV4KSA9PiBpdGVtW3RoaXMuaW5uZXJJbmRleFtpbmRleF1dKSxcclxuXHRcdFx0XHR2YWx1ZXM6IHRoaXMuaW5uZXJDb2x1bW5zXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Ly8g6YCJ5oup5Zmo5p+Q5LiA5YiX55qE5pWw5o2u5Y+R55Sf5Y+Y5YyW5pe26Kem5Y+RXHJcblx0XHRjaGFuZ2VIYW5kbGVyKGUpIHtcclxuXHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdHZhbHVlXHJcblx0XHRcdH0gPSBlLmRldGFpbFxyXG5cdFx0XHRsZXQgaW5kZXggPSAwLFxyXG5cdFx0XHRcdGNvbHVtbkluZGV4ID0gMFxyXG5cdFx0XHQvLyDpgJrov4flr7nmr5TliY3lkI7kuKTmrKHnmoTliJfntKLlvJXvvIzlvpflh7rlvZPliY3lj5jljJbnmoTmmK/lk6rkuIDliJdcclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGxldCBpdGVtID0gdmFsdWVbaV1cclxuXHRcdFx0XHRpZiAoaXRlbSAhPT0gKHRoaXMubGFzdEluZGV4W2ldIHx8IDApKSB7IC8vIOaKinVuZGVmaW5lZOi9rOS4uuWQiOazleWBh+WAvDBcclxuXHRcdFx0XHRcdC8vIOiuvue9rmNvbHVtbkluZGV45Li65b2T5YmN5Y+Y5YyW5YiX55qE57Si5byVXHJcblx0XHRcdFx0XHRjb2x1bW5JbmRleCA9IGlcclxuXHRcdFx0XHRcdC8vIGluZGV45YiZ5Li65Y+Y5YyW5YiX5Lit55qE5Y+Y5YyW6aG555qE57Si5byVXHJcblx0XHRcdFx0XHRpbmRleCA9IGl0ZW1cclxuXHRcdFx0XHRcdGJyZWFrIC8vIOe7iOatouW+queOr++8jOWNs+S9v+WwkeS4gOasoeW+queOr++8jOS5n+aYr+aAp+iDveeahOaPkOWNh1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmNvbHVtbkluZGV4ID0gY29sdW1uSW5kZXhcclxuXHRcdFx0Y29uc3QgdmFsdWVzID0gdGhpcy5pbm5lckNvbHVtbnNcclxuXHRcdFx0Ly8g5bCG5b2T5YmN55qE5ZCE6aG55Y+Y5YyW57Si5byV77yM6K6+572u5Li6XCLkuIrkuIDmrKFcIueahOe0ouW8leWPmOWMluWAvFxyXG5cdFx0XHR0aGlzLnNldExhc3RJbmRleCh2YWx1ZSlcclxuXHRcdFx0dGhpcy5zZXRJbmRleHModmFsdWUpXHJcblxyXG5cdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XHJcblx0XHRcdFx0Ly8gI2lmbmRlZiBNUC1XRUlYSU4gfHwgTVAtTEFSS1xyXG5cdFx0XHRcdC8vIOW+ruS/oeWwj+eoi+W6j+S4jeiDveS8oOmAknRoaXPvvIzkvJrlm6DkuLrlvqrnjq/lvJXnlKjogIzmiqXplJlcclxuXHRcdFx0XHRwaWNrZXI6IHRoaXMsXHJcblx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0dmFsdWU6IHRoaXMuaW5uZXJDb2x1bW5zLm1hcCgoaXRlbSwgaW5kZXgpID0+IGl0ZW1bdmFsdWVbaW5kZXhdXSksXHJcblx0XHRcdFx0aW5kZXgsXHJcblx0XHRcdFx0aW5kZXhzOiB2YWx1ZSxcclxuXHRcdFx0XHQvLyB2YWx1ZXPkuLrlvZPliY3lj5jljJbliJfnmoTmlbDnu4TlhoXlrrlcclxuXHRcdFx0XHR2YWx1ZXMsXHJcblx0XHRcdFx0Y29sdW1uSW5kZXhcclxuXHRcdFx0fSlcclxuXHRcdH0sXHJcblx0XHQvLyDorr7nva5pbmRleOe0ouW8le+8jOatpOaWueazleWPr+iiq+WklumDqOiwg+eUqOiuvue9rlxyXG5cdFx0c2V0SW5kZXhzKGluZGV4LCBzZXRMYXN0SW5kZXgpIHtcclxuXHRcdFx0dGhpcy5pbm5lckluZGV4ID0gdW5pLiR1LmRlZXBDbG9uZShpbmRleClcclxuXHRcdFx0aWYgKHNldExhc3RJbmRleCkge1xyXG5cdFx0XHRcdHRoaXMuc2V0TGFzdEluZGV4KGluZGV4KVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Ly8g6K6w5b2V5LiK5LiA5qyh55qE5ZCE5YiX57Si5byV5L2N572uXHJcblx0XHRzZXRMYXN0SW5kZXgoaW5kZXgpIHtcclxuXHRcdFx0Ly8g5b2T6IO96L+b5YWl5q2k5pa55rOV77yM5oSP5ZGz552A5b2T5YmN6K6+572u55qE5ZCE5YiX6buY6K6k57Si5byV77yM5Y2z5Li64oCc5LiK5LiA5qyh4oCd55qE6YCJ5Lit5YC877yM6ZyA6KaB6K6w5b2V77yM5piv5Zug5Li6Y2hhbmdlSGFuZGxlcuS4rVxyXG5cdFx0XHQvLyDpnIDopoHmi7/liY3lkI7nmoTlj5jljJblgLzov5vooYzlr7nmr5TvvIzlvpflh7rlvZPliY3lj5HnlJ/mlLnlj5jnmoTmmK/lk6rkuIDliJdcclxuXHRcdFx0dGhpcy5sYXN0SW5kZXggPSB1bmkuJHUuZGVlcENsb25lKGluZGV4KVxyXG5cdFx0fSxcclxuXHRcdC8vIOiuvue9ruWvueW6lOWIl+mAiemhueeahOaJgOacieWAvFxyXG5cdFx0c2V0Q29sdW1uVmFsdWVzKGNvbHVtbkluZGV4LCB2YWx1ZXMpIHtcclxuXHRcdFx0Ly8g5pu/5o2iaW5uZXJDb2x1bW5z5pWw57uE5LitY29sdW1uSW5kZXjntKLlvJXnmoTlgLzkuLp2YWx1ZXPvvIzkvb/nlKjnmoTmmK/mlbDnu4TnmoRzcGxpY2Xmlrnms5VcclxuXHRcdFx0dGhpcy5pbm5lckNvbHVtbnMuc3BsaWNlKGNvbHVtbkluZGV4LCAxLCB2YWx1ZXMpXHJcblx0XHRcdC8vIOabv+aNouWujOaIkOS5i+WQjuWwhuS/ruaUueWIl+S5i+WQjueahOW3sumAieWAvOe9ruepulxyXG5cdFx0XHR0aGlzLnNldExhc3RJbmRleCh0aGlzLmlubmVySW5kZXguc2xpY2UoMCxjb2x1bW5JbmRleCkpXHJcblx0XHRcdC8vIOaLt+i0neS4gOS7veWOn+acieeahGlubmVySW5kZXjlgZrkuLTml7blj5jph4/vvIzlsIblpKfkuo7lvZPliY3lj5jljJbliJfnmoTmiYDmnInnmoTliJfnmoTpu5jorqTntKLlvJXorr7nva7kuLowXHJcblx0XHRcdGxldCB0bXBJbmRleCA9IHVuaS4kdS5kZWVwQ2xvbmUodGhpcy5pbm5lckluZGV4KVxyXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaW5uZXJDb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0aWYgKGkgPiB0aGlzLmNvbHVtbkluZGV4KSB7XHJcblx0XHRcdFx0XHR0bXBJbmRleFtpXSA9IDBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8g5LiA5qyh5oCn6LWL5YC877yM5LiN6IO95Y2V5Liq5L+u5pS577yM5ZCm5YiZ5peg5pWIXHJcblx0XHRcdHRoaXMuc2V0SW5kZXhzKHRtcEluZGV4KVxyXG5cdFx0fSxcclxuXHRcdC8vIOiOt+WPluWvueW6lOWIl+eahOaJgOaciemAiemhuVxyXG5cdFx0Z2V0Q29sdW1uVmFsdWVzKGNvbHVtbkluZGV4KSB7XHJcblx0XHRcdC8vIOi/m+ihjOWQjOatpemYu+Whnu+8jOWboOS4uuWklumDqOW+l+WIsGNoYW5nZeS6i+S7tuS5i+WQju+8jOWPr+iDvemcgOimgeaJp+ihjHNldENvbHVtblZhbHVlc+abtOaWsOWIl+eahOWAvFxyXG5cdFx0XHQvLyDntKLlvJXlpoLmnpzlnKjlpJbpg6hjaGFuZ2XnmoTlm57osIPkuK3osIPnlKhnZXRDb2x1bW5WYWx1ZXPnmoTor53vvIzlj6/og73ml6Dms5XlvpfliLDlj5jmm7TlkI7nmoTliJflgLzvvIzov5nph4zov5vooYzkuIDlrprlu7bml7bvvIzkv53or4HlgLznmoTlh4bnoa7mgKdcclxuXHRcdFx0KGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHRhd2FpdCB1bmkuJHUuc2xlZXAoKVxyXG5cdFx0XHR9KSgpXHJcblx0XHRcdHJldHVybiB0aGlzLmlubmVyQ29sdW1uc1tjb2x1bW5JbmRleF1cclxuXHRcdH0sXHJcblx0XHQvLyDorr7nva7mlbTkvZPlkITliJfnmoRjb2x1bW5z55qE5YC8XHJcblx0XHRzZXRDb2x1bW5zKGNvbHVtbnMpIHtcclxuXHRcdFx0dGhpcy5pbm5lckNvbHVtbnMgPSB1bmkuJHUuZGVlcENsb25lKGNvbHVtbnMpXHJcblx0XHRcdC8vIOWmguaenOWcqOiuvue9ruWQhOWIl+aVsOaNruaXtu+8jOayoeacieiiq+iuvue9rum7mOiupOeahOWQhOWIl+e0ouW8lWRlZmF1bHRJbmRleO+8jOmCo+S5iOeUqDDljrvloavlhYXlroPvvIzmlbDnu4Tplb/luqbkuLrliJfnmoTmlbDph49cclxuXHRcdFx0aWYgKHRoaXMuaW5uZXJJbmRleC5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHR0aGlzLmlubmVySW5kZXggPSBuZXcgQXJyYXkoY29sdW1ucy5sZW5ndGgpLmZpbGwoMClcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIOiOt+WPluWQhOWIl+mAieS4reWAvOWvueW6lOeahOe0ouW8lVxyXG5cdFx0Z2V0SW5kZXhzKCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5pbm5lckluZGV4XHJcblx0XHR9LFxyXG5cdFx0Ly8g6I635Y+W5ZCE5YiX6YCJ5Lit55qE5YC8XHJcblx0XHRnZXRWYWx1ZXMoKSB7XHJcblx0XHRcdC8vIOi/m+ihjOWQjOatpemYu+Whnu+8jOWboOS4uuWklumDqOW+l+WIsGNoYW5nZeS6i+S7tuS5i+WQju+8jOWPr+iDvemcgOimgeaJp+ihjHNldENvbHVtblZhbHVlc+abtOaWsOWIl+eahOWAvFxyXG5cdFx0XHQvLyDntKLlvJXlpoLmnpzlnKjlpJbpg6hjaGFuZ2XnmoTlm57osIPkuK3osIPnlKhnZXRWYWx1ZXPnmoTor53vvIzlj6/og73ml6Dms5XlvpfliLDlj5jmm7TlkI7nmoTliJflgLzvvIzov5nph4zov5vooYzkuIDlrprlu7bml7bvvIzkv53or4HlgLznmoTlh4bnoa7mgKdcclxuXHRcdFx0KGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHRhd2FpdCB1bmkuJHUuc2xlZXAoKVxyXG5cdFx0XHR9KSgpXHJcblx0XHRcdHJldHVybiB0aGlzLmlubmVyQ29sdW1ucy5tYXAoKGl0ZW0sIGluZGV4KSA9PiBpdGVtW3RoaXMuaW5uZXJJbmRleFtpbmRleF1dKVxyXG5cdFx0fVxyXG5cdH0sXHJcbn1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcblx0QGltcG9ydCBcIi4uLy4uL2xpYnMvY3NzL2NvbXBvbmVudHMuc2Nzc1wiO1xyXG5cclxuXHQudS1waWNrZXIge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdCZfX3ZpZXcge1xyXG5cclxuXHRcdFx0Jl9fY29sdW1uIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBmbGV4O1xyXG5cdFx0XHRcdGZsZXg6IDE7XHJcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG5cdFx0XHRcdCZfX2l0ZW0ge1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgZmxleDtcclxuXHRcdFx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0XHRjb2xvcjogJHUtbWFpbi1jb2xvcjtcclxuXHJcblx0XHRcdFx0XHQmLS1kaXNhYmxlZCB7XHJcblx0XHRcdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRcdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcclxuXHRcdFx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0XHRcdG9wYWNpdHk6IDAuMzU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji0tbG9hZGluZyB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRyaWdodDogMDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRAaW5jbHVkZSBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcclxuXHRcdFx0ei1pbmRleDogMTAwMDtcclxuXHRcdH1cclxuXHR9XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///155\n"); /***/ }), /* 156 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-picker/props.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否展示picker弹窗\n show: {\n type: Boolean,\n default: uni.$u.props.picker.show\n },\n // 是否展示顶部的操作栏\n showToolbar: {\n type: Boolean,\n default: uni.$u.props.picker.showToolbar\n },\n // 顶部标题\n title: {\n type: String,\n default: uni.$u.props.picker.title\n },\n // 对象数组,设置每一列的数据\n columns: {\n type: Array,\n default: uni.$u.props.picker.columns\n },\n // 是否显示加载中状态\n loading: {\n type: Boolean,\n default: uni.$u.props.picker.loading\n },\n // 各列中,单个选项的高度\n itemHeight: {\n type: [String, Number],\n default: uni.$u.props.picker.itemHeight\n },\n // 取消按钮的文字\n cancelText: {\n type: String,\n default: uni.$u.props.picker.cancelText\n },\n // 确认按钮的文字\n confirmText: {\n type: String,\n default: uni.$u.props.picker.confirmText\n },\n // 取消按钮的颜色\n cancelColor: {\n type: String,\n default: uni.$u.props.picker.cancelColor\n },\n // 确认按钮的颜色\n confirmColor: {\n type: String,\n default: uni.$u.props.picker.confirmColor\n },\n // 每列中可见选项的数量\n visibleItemCount: {\n type: [String, Number],\n default: uni.$u.props.picker.visibleItemCount\n },\n // 选项对象中,需要展示的属性键名\n keyName: {\n type: String,\n default: uni.$u.props.picker.keyName\n },\n // 是否允许点击遮罩关闭选择器\n closeOnClickOverlay: {\n type: Boolean,\n default: uni.$u.props.picker.closeOnClickOverlay\n },\n // 各列的默认索引\n defaultIndex: {\n type: Array,\n default: uni.$u.props.picker.defaultIndex\n },\n // 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,只在微信2.21.1及以上有效\n immediateChange: {\n type: Boolean,\n default: uni.$u.props.picker.immediateChange\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXBpY2tlci9wcm9wcy5qcyJdLCJuYW1lcyI6WyJwcm9wcyIsInNob3ciLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHQiLCJ1bmkiLCIkdSIsInBpY2tlciIsInNob3dUb29sYmFyIiwidGl0bGUiLCJTdHJpbmciLCJjb2x1bW5zIiwiQXJyYXkiLCJsb2FkaW5nIiwiaXRlbUhlaWdodCIsIk51bWJlciIsImNhbmNlbFRleHQiLCJjb25maXJtVGV4dCIsImNhbmNlbENvbG9yIiwiY29uZmlybUNvbG9yIiwidmlzaWJsZUl0ZW1Db3VudCIsImtleU5hbWUiLCJjbG9zZU9uQ2xpY2tPdmVybGF5IiwiZGVmYXVsdEluZGV4IiwiaW1tZWRpYXRlQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNYQSxLQUFLLEVBQUU7SUFDSDtJQUNBQyxJQUFJLEVBQUU7TUFDRkMsSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDTjtJQUNqQyxDQUFDO0lBQ0Q7SUFDQU8sV0FBVyxFQUFFO01BQ1ROLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ0M7SUFDakMsQ0FBQztJQUNEO0lBQ0FDLEtBQUssRUFBRTtNQUNIUCxJQUFJLEVBQUVRLE1BQU07TUFDWk4sT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNFO0lBQ2pDLENBQUM7SUFDRDtJQUNBRSxPQUFPLEVBQUU7TUFDTFQsSUFBSSxFQUFFVSxLQUFLO01BQ1hSLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDSTtJQUNqQyxDQUFDO0lBQ0Q7SUFDQUUsT0FBTyxFQUFFO01BQ0xYLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ007SUFDakMsQ0FBQztJQUNEO0lBQ0FDLFVBQVUsRUFBRTtNQUNSWixJQUFJLEVBQUUsQ0FBQ1EsTUFBTSxFQUFFSyxNQUFNLENBQUM7TUFDdEJYLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDTztJQUNqQyxDQUFDO0lBQ0Q7SUFDQUUsVUFBVSxFQUFFO01BQ1JkLElBQUksRUFBRVEsTUFBTTtNQUNaTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ1M7SUFDakMsQ0FBQztJQUNEO0lBQ0FDLFdBQVcsRUFBRTtNQUNUZixJQUFJLEVBQUVRLE1BQU07TUFDWk4sT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNVO0lBQ2pDLENBQUM7SUFDRDtJQUNBQyxXQUFXLEVBQUU7TUFDVGhCLElBQUksRUFBRVEsTUFBTTtNQUNaTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ1c7SUFDakMsQ0FBQztJQUNEO0lBQ0FDLFlBQVksRUFBRTtNQUNWakIsSUFBSSxFQUFFUSxNQUFNO01BQ1pOLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDWTtJQUNqQyxDQUFDO0lBQ0Q7SUFDQUMsZ0JBQWdCLEVBQUU7TUFDZGxCLElBQUksRUFBRSxDQUFDUSxNQUFNLEVBQUVLLE1BQU0sQ0FBQztNQUN0QlgsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNhO0lBQ2pDLENBQUM7SUFDRDtJQUNBQyxPQUFPLEVBQUU7TUFDTG5CLElBQUksRUFBRVEsTUFBTTtNQUNaTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLE1BQU0sQ0FBQ2M7SUFDakMsQ0FBQztJQUNEO0lBQ0FDLG1CQUFtQixFQUFFO01BQ2pCcEIsSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDZTtJQUNqQyxDQUFDO0lBQ0Q7SUFDQUMsWUFBWSxFQUFFO01BQ1ZyQixJQUFJLEVBQUVVLEtBQUs7TUFDWFIsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxNQUFNLENBQUNnQjtJQUNqQyxDQUFDO0lBQ1A7SUFDQUMsZUFBZSxFQUFFO01BQ2hCdEIsSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sTUFBTSxDQUFDaUI7SUFDOUI7RUFDRTtBQUNKLENBQUM7QUFBQSIsImZpbGUiOiIxNTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBwcm9wczoge1xyXG4gICAgICAgIC8vIOaYr+WQpuWxleekunBpY2tlcuW8ueeql1xyXG4gICAgICAgIHNob3c6IHtcclxuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci5zaG93XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmmK/lkKblsZXnpLrpobbpg6jnmoTmk43kvZzmoI9cclxuICAgICAgICBzaG93VG9vbGJhcjoge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucGlja2VyLnNob3dUb29sYmFyXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDpobbpg6jmoIfpophcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5waWNrZXIudGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWvueixoeaVsOe7hO+8jOiuvue9ruavj+S4gOWIl+eahOaVsOaNrlxyXG4gICAgICAgIGNvbHVtbnM6IHtcclxuICAgICAgICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5waWNrZXIuY29sdW1uc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5piv5ZCm5pi+56S65Yqg6L295Lit54q25oCBXHJcbiAgICAgICAgbG9hZGluZzoge1xyXG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucGlja2VyLmxvYWRpbmdcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWQhOWIl+S4re+8jOWNleS4qumAiemhueeahOmrmOW6plxyXG4gICAgICAgIGl0ZW1IZWlnaHQ6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci5pdGVtSGVpZ2h0XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlj5bmtojmjInpkq7nmoTmloflrZdcclxuICAgICAgICBjYW5jZWxUZXh0OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci5jYW5jZWxUZXh0XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDnoa7orqTmjInpkq7nmoTmloflrZdcclxuICAgICAgICBjb25maXJtVGV4dDoge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5waWNrZXIuY29uZmlybVRleHRcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWPlua2iOaMiemSrueahOminOiJslxyXG4gICAgICAgIGNhbmNlbENvbG9yOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci5jYW5jZWxDb2xvclxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g56Gu6K6k5oyJ6ZKu55qE6aKc6ImyXHJcbiAgICAgICAgY29uZmlybUNvbG9yOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci5jb25maXJtQ29sb3JcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOavj+WIl+S4reWPr+ingemAiemhueeahOaVsOmHj1xyXG4gICAgICAgIHZpc2libGVJdGVtQ291bnQ6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci52aXNpYmxlSXRlbUNvdW50XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDpgInpobnlr7nosaHkuK3vvIzpnIDopoHlsZXnpLrnmoTlsZ7mgKfplK7lkI1cclxuICAgICAgICBrZXlOYW1lOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci5rZXlOYW1lXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmmK/lkKblhYHorrjngrnlh7vpga7nvanlhbPpl63pgInmi6nlmahcclxuICAgICAgICBjbG9zZU9uQ2xpY2tPdmVybGF5OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5waWNrZXIuY2xvc2VPbkNsaWNrT3ZlcmxheVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5ZCE5YiX55qE6buY6K6k57Si5byVXHJcbiAgICAgICAgZGVmYXVsdEluZGV4OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMucGlja2VyLmRlZmF1bHRJbmRleFxyXG4gICAgICAgIH0sXHJcblx0XHQvLyDmmK/lkKblnKjmiYvmjIfmnb7lvIDml7bnq4vljbPop6blj5EgY2hhbmdlIOS6i+S7tuOAguiLpeS4jeW8gOWQr+WImeS8muWcqOa7muWKqOWKqOeUu+e7k+adn+WQjuinpuWPkSBjaGFuZ2Ug5LqL5Lu277yM5Y+q5Zyo5b6u5L+hMi4yMS4x5Y+K5Lul5LiK5pyJ5pWIXHJcblx0XHRpbW1lZGlhdGVDaGFuZ2U6IHtcclxuXHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLnBpY2tlci5pbW1lZGlhdGVDaGFuZ2VcclxuXHRcdH1cclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///156\n"); /***/ }), /* 157 */ /*!*********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue?vue&type=script&lang=js& ***! \*********************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-datetime-picker.vue?vue&type=script&lang=js& */ 158);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_datetime_picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXFrQixDQUFnQix1a0JBQUcsRUFBQyIsImZpbGUiOiIxNTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LWRhdGV0aW1lLXBpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3UtZGF0ZXRpbWUtcGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///157\n"); /***/ }), /* 158 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue?vue&type=script&lang=js& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 159));\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 165));\nvar _dayjs = _interopRequireDefault(__webpack_require__(/*! ../../libs/util/dayjs.js */ 166));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nfunction times(n, iteratee) {\n var index = -1;\n var result = Array(n < 0 ? 0 : n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n/**\n * DatetimePicker 时间日期选择器\n * @description 此选择器用于时间日期\n * @tutorial https://www.uviewui.com/components/datetimePicker.html\n * @property {Boolean}\t\t\tshow\t\t\t\t用于控制选择器的弹出与收起 ( 默认 false )\n * @property {Boolean}\t\t\tshowToolbar\t\t\t是否显示顶部的操作栏 ( 默认 true )\n * @property {String | Number}\tvalue\t\t\t\t绑定值\n * @property {String}\t\t\ttitle\t\t\t\t顶部标题\n * @property {String}\t\t\tmode\t\t\t\t展示格式 mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择 ( 默认 ‘datetime )\n * @property {Number}\t\t\tmaxDate\t\t\t\t可选的最大时间 默认值为后10年\n * @property {Number}\t\t\tminDate\t\t\t\t可选的最小时间 默认值为前10年\n * @property {Number}\t\t\tminHour\t\t\t\t可选的最小小时,仅mode=time有效 ( 默认 0 )\n * @property {Number}\t\t\tmaxHour\t\t\t\t可选的最大小时,仅mode=time有效\t ( 默认 23 )\n * @property {Number}\t\t\tminMinute\t\t\t可选的最小分钟,仅mode=time有效\t ( 默认 0 )\n * @property {Number}\t\t\tmaxMinute\t\t\t可选的最大分钟,仅mode=time有效 ( 默认 59 )\n * @property {Function}\t\t\tfilter\t\t\t\t选项过滤函数\n * @property {Function}\t\t\tformatter\t\t\t选项格式化函数\n * @property {Boolean}\t\t\tloading\t\t\t\t是否显示加载中状态 ( 默认 false )\n * @property {String | Number}\titemHeight\t\t\t各列中,单个选项的高度 ( 默认 44 )\n * @property {String}\t\t\tcancelText\t\t\t取消按钮的文字 ( 默认 '取消' )\n * @property {String}\t\t\tconfirmText\t\t\t确认按钮的文字 ( 默认 '确认' )\n * @property {String}\t\t\tcancelColor\t\t\t取消按钮的颜色 ( 默认 '#909193' )\n * @property {String}\t\t\tconfirmColor\t\t确认按钮的颜色 ( 默认 '#3c9cff' )\n * @property {String | Number}\tvisibleItemCount\t每列中可见选项的数量 ( 默认 5 )\n * @property {Boolean}\t\t\tcloseOnClickOverlay\t是否允许点击遮罩关闭选择器 ( 默认 false )\n * @property {Array}\t\t\tdefaultIndex\t\t各列的默认索引\n * @event {Function} close 关闭选择器时触发\n * @event {Function} confirm 点击确定按钮,返回当前选择的值\n * @event {Function} change 当选择值变化时触发\n * @event {Function} cancel 点击取消按钮\n * @example \n */\nvar _default = {\n name: 'datetime-picker',\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {\n columns: [],\n innerDefaultIndex: [],\n innerFormatter: function innerFormatter(type, value) {\n return value;\n }\n };\n },\n watch: {\n show: function show(newValue, oldValue) {\n if (newValue) {\n this.updateColumnValue(this.innerValue);\n }\n },\n propsChange: function propsChange() {\n this.init();\n }\n },\n computed: {\n // 如果以下这些变量发生了变化,意味着需要重新初始化各列的值\n propsChange: function propsChange() {\n return [this.mode, this.maxDate, this.minDate, this.minHour, this.maxHour, this.minMinute, this.maxMinute, this.filter];\n }\n },\n mounted: function mounted() {\n this.init();\n },\n methods: {\n init: function init() {\n this.innerValue = this.correctValue(this.value);\n this.updateColumnValue(this.innerValue);\n },\n // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用\n setFormatter: function setFormatter(e) {\n this.innerFormatter = e;\n },\n // 关闭选择器\n close: function close() {\n if (this.closeOnClickOverlay) {\n this.$emit('close');\n }\n },\n // 点击工具栏的取消按钮\n cancel: function cancel() {\n this.$emit('cancel');\n },\n // 点击工具栏的确定按钮\n confirm: function confirm() {\n this.$emit('confirm', {\n value: this.innerValue,\n mode: this.mode\n });\n this.$emit('input', this.innerValue);\n },\n //用正则截取输出值,当出现多组数字时,抛出错误\n intercept: function intercept(e, type) {\n var judge = e.match(/\\d+/g);\n //判断是否掺杂数字\n if (judge.length > 1) {\n uni.$u.error(\"请勿在过滤或格式化函数时添加数字\");\n return 0;\n } else if (type && judge[0].length == 4) {\n //判断是否是年份\n return judge[0];\n } else if (judge[0].length > 2) {\n uni.$u.error(\"请勿在过滤或格式化函数时添加数字\");\n return 0;\n } else {\n return judge[0];\n }\n },\n // 列发生变化时触发\n change: function change(e) {\n var indexs = e.indexs,\n values = e.values;\n var selectValue = '';\n if (this.mode === 'time') {\n // 根据value各列索引,从各列数组中,取出当前时间的选中值\n selectValue = \"\".concat(this.intercept(values[0][indexs[0]]), \":\").concat(this.intercept(values[1][indexs[1]]));\n } else {\n // 将选择的值转为数值,比如'03'转为数值的3,'2019'转为数值的2019\n var year = parseInt(this.intercept(values[0][indexs[0]], 'year'));\n var month = parseInt(this.intercept(values[1][indexs[1]]));\n var date = parseInt(values[2] ? this.intercept(values[2][indexs[2]]) : 1);\n var hour = 0,\n minute = 0;\n // 此月份的最大天数\n var maxDate = (0, _dayjs.default)(\"\".concat(year, \"-\").concat(month)).daysInMonth();\n // year-month模式下,date不会出现在列中,设置为1,为了符合后边需要减1的需求\n if (this.mode === 'year-month') {\n date = 1;\n }\n // 不允许超过maxDate值\n date = Math.min(maxDate, date);\n if (this.mode === 'datetime') {\n hour = parseInt(this.intercept(values[3][indexs[3]]));\n minute = parseInt(this.intercept(values[4][indexs[4]]));\n }\n // 转为时间模式\n selectValue = Number(new Date(year, month - 1, date, hour, minute));\n }\n // 取出准确的合法值,防止超越边界的情况\n selectValue = this.correctValue(selectValue);\n this.innerValue = selectValue;\n this.updateColumnValue(selectValue);\n // 发出change时间,value为当前选中的时间戳\n this.$emit('change', {\n value: selectValue,\n // 微信小程序不能传递this实例,会因为循环引用而报错\n picker: this.$refs.picker,\n mode: this.mode\n });\n },\n // 更新各列的值,进行补0、格式化等操作\n updateColumnValue: function updateColumnValue(value) {\n this.innerValue = value;\n this.updateColumns();\n this.updateIndexs(value);\n },\n // 更新索引\n updateIndexs: function updateIndexs(value) {\n var values = [];\n var formatter = this.formatter || this.innerFormatter;\n var padZero = uni.$u.padZero;\n if (this.mode === 'time') {\n // 将time模式的时间用:分隔成数组\n var timeArr = value.split(':');\n // 使用formatter格式化方法进行管道处理\n values = [formatter('hour', timeArr[0]), formatter('minute', timeArr[1])];\n } else {\n var date = new Date(value);\n values = [formatter('year', \"\".concat((0, _dayjs.default)(value).year())),\n // 月份补0\n formatter('month', padZero((0, _dayjs.default)(value).month() + 1))];\n if (this.mode === 'date') {\n // date模式,需要添加天列\n values.push(formatter('day', padZero((0, _dayjs.default)(value).date())));\n }\n if (this.mode === 'datetime') {\n // 数组的push方法,可以写入多个参数\n values.push(formatter('day', padZero((0, _dayjs.default)(value).date())), formatter('hour', padZero((0, _dayjs.default)(value).hour())), formatter('minute', padZero((0, _dayjs.default)(value).minute())));\n }\n }\n\n // 根据当前各列的所有值,从各列默认值中找到默认值在各列中的索引\n var indexs = this.columns.map(function (column, index) {\n // 通过取大值,可以保证不会出现找不到索引的-1情况\n return Math.max(0, column.findIndex(function (item) {\n return item === values[index];\n }));\n });\n this.innerDefaultIndex = indexs;\n },\n // 更新各列的值\n updateColumns: function updateColumns() {\n var formatter = this.formatter || this.innerFormatter;\n // 获取各列的值,并且map后,对各列的具体值进行补0操作\n var results = this.getOriginColumns().map(function (column) {\n return column.values.map(function (value) {\n return formatter(column.type, value);\n });\n });\n this.columns = results;\n },\n getOriginColumns: function getOriginColumns() {\n var _this = this;\n // 生成各列的值\n var results = this.getRanges().map(function (_ref) {\n var type = _ref.type,\n range = _ref.range;\n var values = times(range[1] - range[0] + 1, function (index) {\n var value = range[0] + index;\n value = type === 'year' ? \"\".concat(value) : uni.$u.padZero(value);\n return value;\n });\n // 进行过滤\n if (_this.filter) {\n values = _this.filter(type, values);\n }\n return {\n type: type,\n values: values\n };\n });\n return results;\n },\n // 通过最大值和最小值生成数组\n generateArray: function generateArray(start, end) {\n return Array.from(new Array(end + 1).keys()).slice(start);\n },\n // 得出合法的时间\n correctValue: function correctValue(value) {\n var isDateMode = this.mode !== 'time';\n if (isDateMode && !uni.$u.test.date(value)) {\n // 如果是日期类型,但是又没有设置合法的当前时间的话,使用最小时间为当前时间\n value = this.minDate;\n } else if (!isDateMode && !value) {\n // 如果是时间类型,而又没有默认值的话,就用最小时间\n value = \"\".concat(uni.$u.padZero(this.minHour), \":\").concat(uni.$u.padZero(this.minMinute));\n }\n // 时间类型\n if (!isDateMode) {\n if (String(value).indexOf(':') === -1) return uni.$u.error('时间错误,请传递如12:24的格式');\n var _value$split = value.split(':'),\n _value$split2 = (0, _slicedToArray2.default)(_value$split, 2),\n hour = _value$split2[0],\n minute = _value$split2[1];\n // 对时间补零,同时控制在最小值和最大值之间\n hour = uni.$u.padZero(uni.$u.range(this.minHour, this.maxHour, Number(hour)));\n minute = uni.$u.padZero(uni.$u.range(this.minMinute, this.maxMinute, Number(minute)));\n return \"\".concat(hour, \":\").concat(minute);\n } else {\n // 如果是日期格式,控制在最小日期和最大日期之间\n value = (0, _dayjs.default)(value).isBefore((0, _dayjs.default)(this.minDate)) ? this.minDate : value;\n value = (0, _dayjs.default)(value).isAfter((0, _dayjs.default)(this.maxDate)) ? this.maxDate : value;\n return value;\n }\n },\n // 获取每列的最大和最小值\n getRanges: function getRanges() {\n if (this.mode === 'time') {\n return [{\n type: 'hour',\n range: [this.minHour, this.maxHour]\n }, {\n type: 'minute',\n range: [this.minMinute, this.maxMinute]\n }];\n }\n var _this$getBoundary = this.getBoundary('max', this.innerValue),\n maxYear = _this$getBoundary.maxYear,\n maxDate = _this$getBoundary.maxDate,\n maxMonth = _this$getBoundary.maxMonth,\n maxHour = _this$getBoundary.maxHour,\n maxMinute = _this$getBoundary.maxMinute;\n var _this$getBoundary2 = this.getBoundary('min', this.innerValue),\n minYear = _this$getBoundary2.minYear,\n minDate = _this$getBoundary2.minDate,\n minMonth = _this$getBoundary2.minMonth,\n minHour = _this$getBoundary2.minHour,\n minMinute = _this$getBoundary2.minMinute;\n var result = [{\n type: 'year',\n range: [minYear, maxYear]\n }, {\n type: 'month',\n range: [minMonth, maxMonth]\n }, {\n type: 'day',\n range: [minDate, maxDate]\n }, {\n type: 'hour',\n range: [minHour, maxHour]\n }, {\n type: 'minute',\n range: [minMinute, maxMinute]\n }];\n if (this.mode === 'date') result.splice(3, 2);\n if (this.mode === 'year-month') result.splice(2, 3);\n return result;\n },\n // 根据minDate、maxDate、minHour、maxHour等边界值,判断各列的开始和结束边界值\n getBoundary: function getBoundary(type, innerValue) {\n var _ref2;\n var value = new Date(innerValue);\n var boundary = new Date(this[\"\".concat(type, \"Date\")]);\n var year = (0, _dayjs.default)(boundary).year();\n var month = 1;\n var date = 1;\n var hour = 0;\n var minute = 0;\n if (type === 'max') {\n month = 12;\n // 月份的天数\n date = (0, _dayjs.default)(value).daysInMonth();\n hour = 23;\n minute = 59;\n }\n // 获取边界值,逻辑是:当年达到了边界值(最大或最小年),就检查月允许的最大和最小值,以此类推\n if ((0, _dayjs.default)(value).year() === year) {\n month = (0, _dayjs.default)(boundary).month() + 1;\n if ((0, _dayjs.default)(value).month() + 1 === month) {\n date = (0, _dayjs.default)(boundary).date();\n if ((0, _dayjs.default)(value).date() === date) {\n hour = (0, _dayjs.default)(boundary).hour();\n if ((0, _dayjs.default)(value).hour() === hour) {\n minute = (0, _dayjs.default)(boundary).minute();\n }\n }\n }\n }\n return _ref2 = {}, (0, _defineProperty2.default)(_ref2, \"\".concat(type, \"Year\"), year), (0, _defineProperty2.default)(_ref2, \"\".concat(type, \"Month\"), month), (0, _defineProperty2.default)(_ref2, \"\".concat(type, \"Date\"), date), (0, _defineProperty2.default)(_ref2, \"\".concat(type, \"Hour\"), hour), (0, _defineProperty2.default)(_ref2, \"\".concat(type, \"Minute\"), minute), _ref2;\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LWRhdGV0aW1lLXBpY2tlci91LWRhdGV0aW1lLXBpY2tlci52dWUiXSwibmFtZXMiOlsicmVzdWx0IiwibmFtZSIsIm1peGlucyIsImRhdGEiLCJjb2x1bW5zIiwiaW5uZXJEZWZhdWx0SW5kZXgiLCJpbm5lckZvcm1hdHRlciIsIndhdGNoIiwic2hvdyIsInByb3BzQ2hhbmdlIiwiY29tcHV0ZWQiLCJtb3VudGVkIiwibWV0aG9kcyIsImluaXQiLCJzZXRGb3JtYXR0ZXIiLCJjbG9zZSIsImNhbmNlbCIsImNvbmZpcm0iLCJ2YWx1ZSIsIm1vZGUiLCJpbnRlcmNlcHQiLCJ1bmkiLCJjaGFuZ2UiLCJ2YWx1ZXMiLCJzZWxlY3RWYWx1ZSIsIm1pbnV0ZSIsImRhdGUiLCJob3VyIiwicGlja2VyIiwidXBkYXRlQ29sdW1uVmFsdWUiLCJ1cGRhdGVJbmRleHMiLCJmb3JtYXR0ZXIiLCJ1cGRhdGVDb2x1bW5zIiwiZ2V0T3JpZ2luQ29sdW1ucyIsInJhbmdlIiwidHlwZSIsImdlbmVyYXRlQXJyYXkiLCJjb3JyZWN0VmFsdWUiLCJnZXRSYW5nZXMiLCJtYXhZZWFyIiwibWF4RGF0ZSIsIm1heE1vbnRoIiwibWF4SG91ciIsIm1heE1pbnV0ZSIsIm1pblllYXIiLCJtaW5EYXRlIiwibWluTW9udGgiLCJtaW5Ib3VyIiwibWluTWludXRlIiwiZ2V0Qm91bmRhcnkiLCJtb250aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBZ0NBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFUQTtFQUNBO0VBQ0E7RUFDQTtJQUNBQTtFQUNBO0VBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvQkEsZUFnQ0E7RUFDQUM7RUFDQUM7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBQztRQUFBO01BQUE7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBRDtNQUNBO0lBQ0E7RUFDQTtFQUNBRTtJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtRQUNBQztRQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO1FBQ0E7TUFDQTtRQUFBO1FBQ0E7TUFDQTtRQUNBQTtRQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO1FBQUFDO01BQ0E7TUFDQTtRQUNBO1FBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1VBQUFDO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFDQUM7UUFDQTtRQUNBO1FBQ0FBO1FBQ0E7VUFDQUM7VUFDQUY7UUFDQTtRQUNBO1FBQ0FEO01BQ0E7TUFDQTtNQUNBQTtNQUNBO01BQ0E7TUFDQTtNQUNBO1FBQ0FOO1FBRUE7UUFDQVU7UUFFQVQ7TUFDQTtJQUNBO0lBQ0E7SUFDQVU7TUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQVA7TUFDQTtRQUNBO1FBQ0FBLFVBQ0FRO1FBQ0E7UUFDQUEsb0VBQ0E7UUFDQTtVQUNBO1VBQ0FSO1FBQ0E7UUFDQTtVQUNBO1VBQ0FBO1FBQ0E7TUFDQTs7TUFFQTtNQUNBO1FBQ0E7UUFDQTtVQUFBO1FBQUE7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBUztNQUNBO01BQ0E7TUFDQTtRQUFBO1VBQUE7UUFBQTtNQUFBO01BQ0E7SUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtRQUFBO1VBQUFDO1FBQ0E7VUFDQTtVQUNBaEI7VUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUNBSztRQUNBO1FBQ0E7VUFBQVk7VUFBQVo7UUFBQTtNQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FhO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0FuQjtNQUNBO1FBQ0E7UUFDQUE7TUFDQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQUE7VUFBQVM7VUFBQUY7UUFDQTtRQUNBRTtRQUNBRjtRQUNBO01BQ0E7UUFDQTtRQUNBUDtRQUNBQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FvQjtNQUNBO1FBQ0EsUUFDQTtVQUNBSDtVQUNBRDtRQUNBLEdBQ0E7VUFDQUM7VUFDQUQ7UUFDQSxFQUNBO01BQ0E7TUFDQTtRQUFBSztRQUFBQztRQUFBQztRQUFBQztRQUFBQztNQUNBO1FBQUFDO1FBQUFDO1FBQUFDO1FBQUFDO1FBQUFDO01BQ0EsY0FDQTtRQUNBYjtRQUNBRDtNQUNBLEdBQ0E7UUFDQUM7UUFDQUQ7TUFDQSxHQUNBO1FBQ0FDO1FBQ0FEO01BQ0EsR0FDQTtRQUNBQztRQUNBRDtNQUNBLEdBQ0E7UUFDQUM7UUFDQUQ7TUFDQSxFQUNBO01BQ0EsMEJBQ0FsQztNQUNBLGdDQUNBQTtNQUNBO0lBQ0E7SUFDQTtJQUNBaUQ7TUFBQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7UUFDQTtRQUNBeEI7UUFDQUM7UUFDQUY7TUFDQTtNQUNBO01BQ0E7UUFDQXlCO1FBQ0E7VUFDQXhCO1VBQ0E7WUFDQUM7WUFDQTtjQUNBRjtZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0Esa0VBQ0FVLHFFQUNBQSx1RUFDQUEscUVBQ0FBLHFFQUNBQTtJQUVBO0VBQ0E7QUFDQTtBQUFBIiwiZmlsZSI6IjE1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuXHQ8dS1waWNrZXJcclxuXHRcdHJlZj1cInBpY2tlclwiXHJcblx0XHQ6c2hvdz1cInNob3dcIlxyXG5cdFx0OmNsb3NlT25DbGlja092ZXJsYXk9XCJjbG9zZU9uQ2xpY2tPdmVybGF5XCJcclxuXHRcdDpjb2x1bW5zPVwiY29sdW1uc1wiXHJcblx0XHQ6dGl0bGU9XCJ0aXRsZVwiXHJcblx0XHQ6aXRlbUhlaWdodD1cIml0ZW1IZWlnaHRcIlxyXG5cdFx0OnNob3dUb29sYmFyPVwic2hvd1Rvb2xiYXJcIlxyXG5cdFx0OnZpc2libGVJdGVtQ291bnQ9XCJ2aXNpYmxlSXRlbUNvdW50XCJcclxuXHRcdDpkZWZhdWx0SW5kZXg9XCJpbm5lckRlZmF1bHRJbmRleFwiXHJcblx0XHQ6Y2FuY2VsVGV4dD1cImNhbmNlbFRleHRcIlxyXG5cdFx0OmNvbmZpcm1UZXh0PVwiY29uZmlybVRleHRcIlxyXG5cdFx0OmNhbmNlbENvbG9yPVwiY2FuY2VsQ29sb3JcIlxyXG5cdFx0OmNvbmZpcm1Db2xvcj1cImNvbmZpcm1Db2xvclwiXHJcblx0XHRAY2xvc2U9XCJjbG9zZVwiXHJcblx0XHRAY2FuY2VsPVwiY2FuY2VsXCJcclxuXHRcdEBjb25maXJtPVwiY29uZmlybVwiXHJcblx0XHRAY2hhbmdlPVwiY2hhbmdlXCJcclxuXHQ+XHJcblx0PC91LXBpY2tlcj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZnVuY3Rpb24gdGltZXMobiwgaXRlcmF0ZWUpIHtcclxuXHQgICAgbGV0IGluZGV4ID0gLTFcclxuXHQgICAgY29uc3QgcmVzdWx0ID0gQXJyYXkobiA8IDAgPyAwIDogbilcclxuXHQgICAgd2hpbGUgKCsraW5kZXggPCBuKSB7XHJcblx0ICAgICAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoaW5kZXgpXHJcblx0ICAgIH1cclxuXHQgICAgcmV0dXJuIHJlc3VsdFxyXG5cdH1cclxuXHRpbXBvcnQgcHJvcHMgZnJvbSAnLi9wcm9wcy5qcyc7XHJcblx0aW1wb3J0IGRheWpzIGZyb20gJy4uLy4uL2xpYnMvdXRpbC9kYXlqcy5qcyc7XHJcblx0LyoqXHJcblx0ICogRGF0ZXRpbWVQaWNrZXIg5pe26Ze05pel5pyf6YCJ5oup5ZmoXHJcblx0ICogQGRlc2NyaXB0aW9uIOatpOmAieaLqeWZqOeUqOS6juaXtumXtOaXpeacn1xyXG5cdCAqIEB0dXRvcmlhbCBodHRwczovL3d3dy51dmlld3VpLmNvbS9jb21wb25lbnRzL2RhdGV0aW1lUGlja2VyLmh0bWxcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59XHRcdFx0c2hvd1x0XHRcdFx055So5LqO5o6n5Yi26YCJ5oup5Zmo55qE5by55Ye65LiO5pS26LW3ICgg6buY6K6kIGZhbHNlIClcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59XHRcdFx0c2hvd1Rvb2xiYXJcdFx0XHTmmK/lkKbmmL7npLrpobbpg6jnmoTmk43kvZzmoI8gICgg6buY6K6kIHRydWUgKVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nIHwgTnVtYmVyfVx0dmFsdWVcdFx0XHRcdOe7keWumuWAvFxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdHRpdGxlXHRcdFx0XHTpobbpg6jmoIfpophcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRtb2RlXHRcdFx0XHTlsZXnpLrmoLzlvI8gbW9kZT1kYXRl5Li65pel5pyf6YCJ5oup77yMbW9kZT10aW1l5Li65pe26Ze06YCJ5oup77yMbW9kZT15ZWFyLW1vbnRo5Li65bm05pyI6YCJ5oup77yMbW9kZT1kYXRldGltZeS4uuaXpeacn+aXtumXtOmAieaLqSAgKCDpu5jorqQg4oCYZGF0ZXRpbWUgKVxyXG5cdCAqIEBwcm9wZXJ0eSB7TnVtYmVyfVx0XHRcdG1heERhdGVcdFx0XHRcdOWPr+mAieeahOacgOWkp+aXtumXtCAg6buY6K6k5YC85Li65ZCOMTDlubRcclxuXHQgKiBAcHJvcGVydHkge051bWJlcn1cdFx0XHRtaW5EYXRlXHRcdFx0XHTlj6/pgInnmoTmnIDlsI/ml7bpl7QgIOm7mOiupOWAvOS4uuWJjTEw5bm0XHJcblx0ICogQHByb3BlcnR5IHtOdW1iZXJ9XHRcdFx0bWluSG91clx0XHRcdFx05Y+v6YCJ55qE5pyA5bCP5bCP5pe277yM5LuFbW9kZT10aW1l5pyJ5pWIICAgKCDpu5jorqQgMCApXHJcblx0ICogQHByb3BlcnR5IHtOdW1iZXJ9XHRcdFx0bWF4SG91clx0XHRcdFx05Y+v6YCJ55qE5pyA5aSn5bCP5pe277yM5LuFbW9kZT10aW1l5pyJ5pWIXHQgICgg6buY6K6kIDIzIClcclxuXHQgKiBAcHJvcGVydHkge051bWJlcn1cdFx0XHRtaW5NaW51dGVcdFx0XHTlj6/pgInnmoTmnIDlsI/liIbpkp/vvIzku4Vtb2RlPXRpbWXmnInmlYhcdCAgKCDpu5jorqQgMCApXHJcblx0ICogQHByb3BlcnR5IHtOdW1iZXJ9XHRcdFx0bWF4TWludXRlXHRcdFx05Y+v6YCJ55qE5pyA5aSn5YiG6ZKf77yM5LuFbW9kZT10aW1l5pyJ5pWIICAgKCDpu5jorqQgNTkgKVxyXG5cdCAqIEBwcm9wZXJ0eSB7RnVuY3Rpb259XHRcdFx0ZmlsdGVyXHRcdFx0XHTpgInpobnov4fmu6Tlh73mlbBcclxuXHQgKiBAcHJvcGVydHkge0Z1bmN0aW9ufVx0XHRcdGZvcm1hdHRlclx0XHRcdOmAiemhueagvOW8j+WMluWHveaVsFxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRsb2FkaW5nXHRcdFx0XHTmmK/lkKbmmL7npLrliqDovb3kuK3nirbmgIEgICAoIOm7mOiupCBmYWxzZSApXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHRpdGVtSGVpZ2h0XHRcdFx05ZCE5YiX5Lit77yM5Y2V5Liq6YCJ6aG555qE6auY5bqmICAgKCDpu5jorqQgNDQgKVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdGNhbmNlbFRleHRcdFx0XHTlj5bmtojmjInpkq7nmoTmloflrZcgICgg6buY6K6kICflj5bmtognIClcclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRjb25maXJtVGV4dFx0XHRcdOehruiupOaMiemSrueahOaWh+WtlyAgKCDpu5jorqQgJ+ehruiupCcgKVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdGNhbmNlbENvbG9yXHRcdFx05Y+W5raI5oyJ6ZKu55qE6aKc6ImyICAoIOm7mOiupCAnIzkwOTE5MycgKVxyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfVx0XHRcdGNvbmZpcm1Db2xvclx0XHTnoa7orqTmjInpkq7nmoTpopzoibIgICgg6buY6K6kICcjM2M5Y2ZmJyApXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmcgfCBOdW1iZXJ9XHR2aXNpYmxlSXRlbUNvdW50XHTmr4/liJfkuK3lj6/op4HpgInpobnnmoTmlbDph48gICgg6buY6K6kIDUgKVxyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn1cdFx0XHRjbG9zZU9uQ2xpY2tPdmVybGF5XHTmmK/lkKblhYHorrjngrnlh7vpga7nvanlhbPpl63pgInmi6nlmaggICgg6buY6K6kIGZhbHNlIClcclxuXHQgKiBAcHJvcGVydHkge0FycmF5fVx0XHRcdGRlZmF1bHRJbmRleFx0XHTlkITliJfnmoTpu5jorqTntKLlvJVcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBjbG9zZSDlhbPpl63pgInmi6nlmajml7bop6blj5FcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBjb25maXJtIOeCueWHu+ehruWumuaMiemSru+8jOi/lOWbnuW9k+WJjemAieaLqeeahOWAvFxyXG5cdCAqIEBldmVudCB7RnVuY3Rpb259IGNoYW5nZSDlvZPpgInmi6nlgLzlj5jljJbml7bop6blj5FcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBjYW5jZWwg54K55Ye75Y+W5raI5oyJ6ZKuXHJcblx0ICogQGV4YW1wbGUgIDx1LWRhdGV0aW1lLXBpY2tlciA6c2hvdz1cInNob3dcIiA6dmFsdWU9XCJ2YWx1ZTFcIiAgbW9kZT1cImRhdGV0aW1lXCIgPjwvdS1kYXRldGltZS1waWNrZXI+XHJcblx0ICovXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogJ2RhdGV0aW1lLXBpY2tlcicsXHJcblx0XHRtaXhpbnM6IFt1bmkuJHUubXBNaXhpbiwgdW5pLiR1Lm1peGluLCBwcm9wc10sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGNvbHVtbnM6IFtdLFxyXG5cdFx0XHRcdGlubmVyRGVmYXVsdEluZGV4OiBbXSxcclxuXHRcdFx0XHRpbm5lckZvcm1hdHRlcjogKHR5cGUsIHZhbHVlKSA9PiB2YWx1ZVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0d2F0Y2g6IHtcclxuXHRcdFx0c2hvdyhuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcclxuXHRcdFx0XHRpZiAobmV3VmFsdWUpIHtcclxuXHRcdFx0XHRcdHRoaXMudXBkYXRlQ29sdW1uVmFsdWUodGhpcy5pbm5lclZhbHVlKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0cHJvcHNDaGFuZ2UoKSB7XHJcblx0XHRcdFx0dGhpcy5pbml0KClcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdC8vIOWmguaenOS7peS4i+i/meS6m+WPmOmHj+WPkeeUn+S6huWPmOWMlu+8jOaEj+WRs+edgOmcgOimgemHjeaWsOWIneWni+WMluWQhOWIl+eahOWAvFxyXG5cdFx0XHRwcm9wc0NoYW5nZSgpIHtcclxuXHRcdFx0XHRyZXR1cm4gW3RoaXMubW9kZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUsIHRoaXMubWluSG91ciwgdGhpcy5tYXhIb3VyLCB0aGlzLm1pbk1pbnV0ZSwgdGhpcy5tYXhNaW51dGUsIHRoaXMuZmlsdGVyLCBdXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRtb3VudGVkKCkge1xyXG5cdFx0XHR0aGlzLmluaXQoKVxyXG5cdFx0fSxcclxuXHRcdG1ldGhvZHM6IHtcclxuXHRcdFx0aW5pdCgpIHtcclxuXHRcdFx0XHR0aGlzLmlubmVyVmFsdWUgPSB0aGlzLmNvcnJlY3RWYWx1ZSh0aGlzLnZhbHVlKVxyXG5cdFx0XHRcdHRoaXMudXBkYXRlQ29sdW1uVmFsdWUodGhpcy5pbm5lclZhbHVlKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDlnKjlvq7kv6HlsI/nqIvluo/kuK3vvIzkuI3mlK/mjIHlsIblh73mlbDlvZPlgZpwcm9wc+WPguaVsO+8jOaVheWPquiDvemAmui/h3JlZuW9ouW8j+iwg+eUqFxyXG5cdFx0XHRzZXRGb3JtYXR0ZXIoZSkge1xyXG5cdFx0XHRcdHRoaXMuaW5uZXJGb3JtYXR0ZXIgPSBlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOWFs+mXremAieaLqeWZqFxyXG5cdFx0XHRjbG9zZSgpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5jbG9zZU9uQ2xpY2tPdmVybGF5KSB7XHJcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdjbG9zZScpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDngrnlh7vlt6XlhbfmoI/nmoTlj5bmtojmjInpkq5cclxuXHRcdFx0Y2FuY2VsKCkge1xyXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2NhbmNlbCcpXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOeCueWHu+W3peWFt+agj+eahOehruWumuaMiemSrlxyXG5cdFx0XHRjb25maXJtKCkge1xyXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2NvbmZpcm0nLCB7XHJcblx0XHRcdFx0XHR2YWx1ZTogdGhpcy5pbm5lclZhbHVlLFxyXG5cdFx0XHRcdFx0bW9kZTogdGhpcy5tb2RlXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdpbnB1dCcsIHRoaXMuaW5uZXJWYWx1ZSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly/nlKjmraPliJnmiKrlj5bovpPlh7rlgLws5b2T5Ye6546w5aSa57uE5pWw5a2X5pe2LOaKm+WHuumUmeivr1xyXG5cdFx0XHRpbnRlcmNlcHQoZSx0eXBlKXtcclxuXHRcdFx0XHRsZXQganVkZ2UgPSBlLm1hdGNoKC9cXGQrL2cpXHJcblx0XHRcdFx0Ly/liKTmlq3mmK/lkKbmjrrmnYLmlbDlrZdcclxuXHRcdFx0XHRpZihqdWRnZS5sZW5ndGg+MSl7XHJcblx0XHRcdFx0XHR1bmkuJHUuZXJyb3IoXCLor7fli7/lnKjov4fmu6TmiJbmoLzlvI/ljJblh73mlbDml7bmt7vliqDmlbDlrZdcIilcclxuXHRcdFx0XHRcdHJldHVybiAwXHJcblx0XHRcdFx0fWVsc2UgaWYodHlwZSYmanVkZ2VbMF0ubGVuZ3RoPT00KXsvL+WIpOaWreaYr+WQpuaYr+W5tOS7vVxyXG5cdFx0XHRcdFx0cmV0dXJuIGp1ZGdlWzBdXHJcblx0XHRcdFx0fWVsc2UgaWYoanVkZ2VbMF0ubGVuZ3RoPjIpe1xyXG5cdFx0XHRcdFx0dW5pLiR1LmVycm9yKFwi6K+35Yu/5Zyo6L+H5ruk5oiW5qC85byP5YyW5Ye95pWw5pe25re75Yqg5pWw5a2XXCIpXHJcblx0XHRcdFx0XHRyZXR1cm4gMFxyXG5cdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0cmV0dXJuIGp1ZGdlWzBdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDliJflj5HnlJ/lj5jljJbml7bop6blj5FcclxuXHRcdFx0Y2hhbmdlKGUpIHtcclxuXHRcdFx0XHRjb25zdCB7IGluZGV4cywgdmFsdWVzIH0gPSBlXHJcblx0XHRcdFx0bGV0IHNlbGVjdFZhbHVlID0gJydcclxuXHRcdFx0XHRpZih0aGlzLm1vZGUgPT09ICd0aW1lJykge1xyXG5cdFx0XHRcdFx0Ly8g5qC55o2udmFsdWXlkITliJfntKLlvJXvvIzku47lkITliJfmlbDnu4TkuK3vvIzlj5blh7rlvZPliY3ml7bpl7TnmoTpgInkuK3lgLxcclxuXHRcdFx0XHRcdHNlbGVjdFZhbHVlID0gYCR7dGhpcy5pbnRlcmNlcHQodmFsdWVzWzBdW2luZGV4c1swXV0pfToke3RoaXMuaW50ZXJjZXB0KHZhbHVlc1sxXVtpbmRleHNbMV1dKX1gXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIOWwhumAieaLqeeahOWAvOi9rOS4uuaVsOWAvO+8jOavlOWmgicwMyfovazkuLrmlbDlgLznmoQz77yMJzIwMTkn6L2s5Li65pWw5YC855qEMjAxOVxyXG5cdFx0XHRcdFx0Y29uc3QgeWVhciA9IHBhcnNlSW50KHRoaXMuaW50ZXJjZXB0KHZhbHVlc1swXVtpbmRleHNbMF1dLCd5ZWFyJykpXHJcblx0XHRcdFx0XHRjb25zdCBtb250aCA9IHBhcnNlSW50KHRoaXMuaW50ZXJjZXB0KHZhbHVlc1sxXVtpbmRleHNbMV1dKSlcclxuXHRcdFx0XHRcdGxldCBkYXRlID0gcGFyc2VJbnQodmFsdWVzWzJdID8gdGhpcy5pbnRlcmNlcHQodmFsdWVzWzJdW2luZGV4c1syXV0pIDogMSlcclxuXHRcdFx0XHRcdGxldCBob3VyID0gMCwgbWludXRlID0gMFxyXG5cdFx0XHRcdFx0Ly8g5q2k5pyI5Lu955qE5pyA5aSn5aSp5pWwXHJcblx0XHRcdFx0XHRjb25zdCBtYXhEYXRlID0gZGF5anMoYCR7eWVhcn0tJHttb250aH1gKS5kYXlzSW5Nb250aCgpXHJcblx0XHRcdFx0XHQvLyB5ZWFyLW1vbnRo5qih5byP5LiL77yMZGF0ZeS4jeS8muWHuueOsOWcqOWIl+S4re+8jOiuvue9ruS4ujHvvIzkuLrkuobnrKblkIjlkI7ovrnpnIDopoHlh48x55qE6ZyA5rGCXHJcblx0XHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAneWVhci1tb250aCcpIHtcclxuXHRcdFx0XHRcdCAgICBkYXRlID0gMVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ly8g5LiN5YWB6K646LaF6L+HbWF4RGF0ZeWAvFxyXG5cdFx0XHRcdFx0ZGF0ZSA9IE1hdGgubWluKG1heERhdGUsIGRhdGUpXHJcblx0XHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAnZGF0ZXRpbWUnKSB7XHJcblx0XHRcdFx0XHQgICAgaG91ciA9IHBhcnNlSW50KHRoaXMuaW50ZXJjZXB0KHZhbHVlc1szXVtpbmRleHNbM11dKSlcclxuXHRcdFx0XHRcdCAgICBtaW51dGUgPSBwYXJzZUludCh0aGlzLmludGVyY2VwdCh2YWx1ZXNbNF1baW5kZXhzWzRdXSkpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQvLyDovazkuLrml7bpl7TmqKHlvI9cclxuXHRcdFx0XHRcdHNlbGVjdFZhbHVlID0gTnVtYmVyKG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF0ZSwgaG91ciwgbWludXRlKSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8g5Y+W5Ye65YeG56Gu55qE5ZCI5rOV5YC877yM6Ziy5q2i6LaF6LaK6L6555WM55qE5oOF5Ya1XHJcblx0XHRcdFx0c2VsZWN0VmFsdWUgPSB0aGlzLmNvcnJlY3RWYWx1ZShzZWxlY3RWYWx1ZSlcclxuXHRcdFx0XHR0aGlzLmlubmVyVmFsdWUgPSBzZWxlY3RWYWx1ZVxyXG5cdFx0XHRcdHRoaXMudXBkYXRlQ29sdW1uVmFsdWUoc2VsZWN0VmFsdWUpXHJcblx0XHRcdFx0Ly8g5Y+R5Ye6Y2hhbmdl5pe26Ze077yMdmFsdWXkuLrlvZPliY3pgInkuK3nmoTml7bpl7TmiLNcclxuXHRcdFx0XHR0aGlzLiRlbWl0KCdjaGFuZ2UnLCB7XHJcblx0XHRcdFx0XHR2YWx1ZTogc2VsZWN0VmFsdWUsXHJcblx0XHRcdFx0XHQvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG5cdFx0XHRcdFx0Ly8g5b6u5L+h5bCP56iL5bqP5LiN6IO95Lyg6YCSdGhpc+WunuS+i++8jOS8muWboOS4uuW+queOr+W8leeUqOiAjOaKpemUmVxyXG5cdFx0XHRcdFx0cGlja2VyOiB0aGlzLiRyZWZzLnBpY2tlcixcclxuXHRcdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcdFx0bW9kZTogdGhpcy5tb2RlXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pu05paw5ZCE5YiX55qE5YC877yM6L+b6KGM6KGlMOOAgeagvOW8j+WMluetieaTjeS9nFxyXG5cdFx0XHR1cGRhdGVDb2x1bW5WYWx1ZSh2YWx1ZSkge1xyXG5cdFx0XHRcdHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlXHJcblx0XHRcdFx0dGhpcy51cGRhdGVDb2x1bW5zKClcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZUluZGV4cyh2YWx1ZSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g5pu05paw57Si5byVXHJcblx0XHRcdHVwZGF0ZUluZGV4cyh2YWx1ZSkge1xyXG5cdFx0XHRcdGxldCB2YWx1ZXMgPSBbXVxyXG5cdFx0XHRcdGNvbnN0IGZvcm1hdHRlciA9IHRoaXMuZm9ybWF0dGVyIHx8IHRoaXMuaW5uZXJGb3JtYXR0ZXJcclxuXHRcdFx0XHRjb25zdCBwYWRaZXJvID0gdW5pLiR1LnBhZFplcm9cclxuXHRcdFx0XHRpZiAodGhpcy5tb2RlID09PSAndGltZScpIHtcclxuXHRcdFx0XHRcdC8vIOWwhnRpbWXmqKHlvI/nmoTml7bpl7TnlKg65YiG6ZqU5oiQ5pWw57uEXHJcblx0XHRcdFx0ICAgIGNvbnN0IHRpbWVBcnIgPSB2YWx1ZS5zcGxpdCgnOicpXHJcblx0XHRcdFx0XHQvLyDkvb/nlKhmb3JtYXR0ZXLmoLzlvI/ljJbmlrnms5Xov5vooYznrqHpgZPlpITnkIZcclxuXHRcdFx0XHQgICAgdmFsdWVzID0gW2Zvcm1hdHRlcignaG91cicsIHRpbWVBcnJbMF0pLCBmb3JtYXR0ZXIoJ21pbnV0ZScsIHRpbWVBcnJbMV0pXVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSlcclxuXHRcdFx0XHQgICAgdmFsdWVzID0gW1xyXG5cdFx0XHRcdCAgICAgICAgZm9ybWF0dGVyKCd5ZWFyJywgYCR7ZGF5anModmFsdWUpLnllYXIoKX1gKSxcclxuXHRcdFx0XHRcdFx0Ly8g5pyI5Lu96KGlMFxyXG5cdFx0XHRcdCAgICAgICAgZm9ybWF0dGVyKCdtb250aCcsIHBhZFplcm8oZGF5anModmFsdWUpLm1vbnRoKCkgKyAxKSlcclxuXHRcdFx0XHQgICAgXVxyXG5cdFx0XHRcdCAgICBpZiAodGhpcy5tb2RlID09PSAnZGF0ZScpIHtcclxuXHRcdFx0XHRcdFx0Ly8gZGF0ZeaooeW8j++8jOmcgOimgea3u+WKoOWkqeWIl1xyXG5cdFx0XHRcdCAgICAgICAgdmFsdWVzLnB1c2goZm9ybWF0dGVyKCdkYXknLCBwYWRaZXJvKGRheWpzKHZhbHVlKS5kYXRlKCkpKSlcclxuXHRcdFx0XHQgICAgfVxyXG5cdFx0XHRcdCAgICBpZiAodGhpcy5tb2RlID09PSAnZGF0ZXRpbWUnKSB7XHJcblx0XHRcdFx0XHRcdC8vIOaVsOe7hOeahHB1c2jmlrnms5XvvIzlj6/ku6XlhpnlhaXlpJrkuKrlj4LmlbBcclxuXHRcdFx0XHQgICAgICAgIHZhbHVlcy5wdXNoKGZvcm1hdHRlcignZGF5JywgcGFkWmVybyhkYXlqcyh2YWx1ZSkuZGF0ZSgpKSksIGZvcm1hdHRlcignaG91cicsIHBhZFplcm8oZGF5anModmFsdWUpLmhvdXIoKSkpLCBmb3JtYXR0ZXIoJ21pbnV0ZScsIHBhZFplcm8oZGF5anModmFsdWUpLm1pbnV0ZSgpKSkpXHJcblx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIOagueaNruW9k+WJjeWQhOWIl+eahOaJgOacieWAvO+8jOS7juWQhOWIl+m7mOiupOWAvOS4reaJvuWIsOm7mOiupOWAvOWcqOWQhOWIl+S4reeahOe0ouW8lVxyXG5cdFx0XHRcdGNvbnN0IGluZGV4cyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdC8vIOmAmui/h+WPluWkp+WAvO+8jOWPr+S7peS/neivgeS4jeS8muWHuueOsOaJvuS4jeWIsOe0ouW8leeahC0x5oOF5Ya1XHJcblx0XHRcdFx0XHRyZXR1cm4gTWF0aC5tYXgoMCwgY29sdW1uLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHZhbHVlc1tpbmRleF0pKVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdFx0dGhpcy5pbm5lckRlZmF1bHRJbmRleCA9IGluZGV4c1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmm7TmlrDlkITliJfnmoTlgLxcclxuXHRcdFx0dXBkYXRlQ29sdW1ucygpIHtcclxuXHRcdFx0ICAgIGNvbnN0IGZvcm1hdHRlciA9IHRoaXMuZm9ybWF0dGVyIHx8IHRoaXMuaW5uZXJGb3JtYXR0ZXJcclxuXHRcdFx0XHQvLyDojrflj5blkITliJfnmoTlgLzvvIzlubbkuJRtYXDlkI7vvIzlr7nlkITliJfnmoTlhbfkvZPlgLzov5vooYzooaUw5pON5L2cXHJcblx0XHRcdCAgICBjb25zdCByZXN1bHRzID0gdGhpcy5nZXRPcmlnaW5Db2x1bW5zKCkubWFwKChjb2x1bW4pID0+IGNvbHVtbi52YWx1ZXMubWFwKCh2YWx1ZSkgPT4gZm9ybWF0dGVyKGNvbHVtbi50eXBlLCB2YWx1ZSkpKVxyXG5cdFx0XHRcdHRoaXMuY29sdW1ucyA9IHJlc3VsdHNcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0T3JpZ2luQ29sdW1ucygpIHtcclxuXHRcdFx0ICAgIC8vIOeUn+aIkOWQhOWIl+eahOWAvFxyXG5cdFx0XHQgICAgY29uc3QgcmVzdWx0cyA9IHRoaXMuZ2V0UmFuZ2VzKCkubWFwKCh7IHR5cGUsIHJhbmdlIH0pID0+IHtcclxuXHRcdFx0ICAgICAgICBsZXQgdmFsdWVzID0gdGltZXMocmFuZ2VbMV0gLSByYW5nZVswXSArIDEsIChpbmRleCkgPT4ge1xyXG5cdFx0XHQgICAgICAgICAgICBsZXQgdmFsdWUgPSByYW5nZVswXSArIGluZGV4XHJcblx0XHRcdCAgICAgICAgICAgIHZhbHVlID0gdHlwZSA9PT0gJ3llYXInID8gYCR7dmFsdWV9YCA6IHVuaS4kdS5wYWRaZXJvKHZhbHVlKVxyXG5cdFx0XHQgICAgICAgICAgICByZXR1cm4gdmFsdWVcclxuXHRcdFx0ICAgICAgICB9KVxyXG5cdFx0XHRcdFx0Ly8g6L+b6KGM6L+H5rukXHJcblx0XHRcdCAgICAgICAgaWYgKHRoaXMuZmlsdGVyKSB7XHJcblx0XHRcdCAgICAgICAgICAgIHZhbHVlcyA9IHRoaXMuZmlsdGVyKHR5cGUsIHZhbHVlcylcclxuXHRcdFx0ICAgICAgICB9XHJcblx0XHRcdCAgICAgICAgcmV0dXJuIHsgdHlwZSwgdmFsdWVzIH1cclxuXHRcdFx0ICAgIH0pXHJcblx0XHRcdCAgICByZXR1cm4gcmVzdWx0c1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDpgJrov4fmnIDlpKflgLzlkozmnIDlsI/lgLznlJ/miJDmlbDnu4RcclxuXHRcdFx0Z2VuZXJhdGVBcnJheShzdGFydCwgZW5kKSB7XHJcblx0XHRcdFx0cmV0dXJuIEFycmF5LmZyb20obmV3IEFycmF5KGVuZCArIDEpLmtleXMoKSkuc2xpY2Uoc3RhcnQpXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOW+l+WHuuWQiOazleeahOaXtumXtFxyXG5cdFx0XHRjb3JyZWN0VmFsdWUodmFsdWUpIHtcclxuXHRcdFx0XHRjb25zdCBpc0RhdGVNb2RlID0gdGhpcy5tb2RlICE9PSAndGltZSdcclxuXHRcdFx0XHRpZiAoaXNEYXRlTW9kZSAmJiAhdW5pLiR1LnRlc3QuZGF0ZSh2YWx1ZSkpIHtcclxuXHRcdFx0XHRcdC8vIOWmguaenOaYr+aXpeacn+exu+Wei++8jOS9huaYr+WPiOayoeacieiuvue9ruWQiOazleeahOW9k+WJjeaXtumXtOeahOivne+8jOS9v+eUqOacgOWwj+aXtumXtOS4uuW9k+WJjeaXtumXtFxyXG5cdFx0XHRcdFx0dmFsdWUgPSB0aGlzLm1pbkRhdGVcclxuXHRcdFx0XHR9IGVsc2UgaWYgKCFpc0RhdGVNb2RlICYmICF2YWx1ZSkge1xyXG5cdFx0XHRcdFx0Ly8g5aaC5p6c5piv5pe26Ze057G75Z6L77yM6ICM5Y+I5rKh5pyJ6buY6K6k5YC855qE6K+d77yM5bCx55So5pyA5bCP5pe26Ze0XHJcblx0XHRcdFx0XHR2YWx1ZSA9IGAke3VuaS4kdS5wYWRaZXJvKHRoaXMubWluSG91cil9OiR7dW5pLiR1LnBhZFplcm8odGhpcy5taW5NaW51dGUpfWBcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8g5pe26Ze057G75Z6LXHJcblx0XHRcdFx0aWYgKCFpc0RhdGVNb2RlKSB7XHJcblx0XHRcdFx0XHRpZiAoU3RyaW5nKHZhbHVlKS5pbmRleE9mKCc6JykgPT09IC0xKSByZXR1cm4gdW5pLiR1LmVycm9yKCfml7bpl7TplJnor6/vvIzor7fkvKDpgJLlpoIxMjoyNOeahOagvOW8jycpXHJcblx0XHRcdFx0XHRsZXQgW2hvdXIsIG1pbnV0ZV0gPSB2YWx1ZS5zcGxpdCgnOicpXHJcblx0XHRcdFx0XHQvLyDlr7nml7bpl7TooaXpm7bvvIzlkIzml7bmjqfliLblnKjmnIDlsI/lgLzlkozmnIDlpKflgLzkuYvpl7RcclxuXHRcdFx0XHRcdGhvdXIgPSB1bmkuJHUucGFkWmVybyh1bmkuJHUucmFuZ2UodGhpcy5taW5Ib3VyLCB0aGlzLm1heEhvdXIsIE51bWJlcihob3VyKSkpXHJcblx0XHRcdFx0XHRtaW51dGUgPSB1bmkuJHUucGFkWmVybyh1bmkuJHUucmFuZ2UodGhpcy5taW5NaW51dGUsIHRoaXMubWF4TWludXRlLCBOdW1iZXIobWludXRlKSkpXHJcblx0XHRcdFx0XHRyZXR1cm4gYCR7IGhvdXIgfTokeyBtaW51dGUgfWBcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8g5aaC5p6c5piv5pel5pyf5qC85byP77yM5o6n5Yi25Zyo5pyA5bCP5pel5pyf5ZKM5pyA5aSn5pel5pyf5LmL6Ze0XHJcblx0XHRcdFx0XHR2YWx1ZSA9IGRheWpzKHZhbHVlKS5pc0JlZm9yZShkYXlqcyh0aGlzLm1pbkRhdGUpKSA/IHRoaXMubWluRGF0ZSA6IHZhbHVlXHJcblx0XHRcdFx0XHR2YWx1ZSA9IGRheWpzKHZhbHVlKS5pc0FmdGVyKGRheWpzKHRoaXMubWF4RGF0ZSkpID8gdGhpcy5tYXhEYXRlIDogdmFsdWVcclxuXHRcdFx0XHRcdHJldHVybiB2YWx1ZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8g6I635Y+W5q+P5YiX55qE5pyA5aSn5ZKM5pyA5bCP5YC8XHJcblx0XHRcdGdldFJhbmdlcygpIHtcclxuXHRcdFx0ICAgIGlmICh0aGlzLm1vZGUgPT09ICd0aW1lJykge1xyXG5cdFx0XHQgICAgICAgIHJldHVybiBbXHJcblx0XHRcdCAgICAgICAgICAgIHtcclxuXHRcdFx0ICAgICAgICAgICAgICAgIHR5cGU6ICdob3VyJyxcclxuXHRcdFx0ICAgICAgICAgICAgICAgIHJhbmdlOiBbdGhpcy5taW5Ib3VyLCB0aGlzLm1heEhvdXJdLFxyXG5cdFx0XHQgICAgICAgICAgICB9LFxyXG5cdFx0XHQgICAgICAgICAgICB7XHJcblx0XHRcdCAgICAgICAgICAgICAgICB0eXBlOiAnbWludXRlJyxcclxuXHRcdFx0ICAgICAgICAgICAgICAgIHJhbmdlOiBbdGhpcy5taW5NaW51dGUsIHRoaXMubWF4TWludXRlXSxcclxuXHRcdFx0ICAgICAgICAgICAgfSxcclxuXHRcdFx0ICAgICAgICBdO1xyXG5cdFx0XHQgICAgfVxyXG5cdFx0XHQgICAgY29uc3QgeyBtYXhZZWFyLCBtYXhEYXRlLCBtYXhNb250aCwgbWF4SG91ciwgbWF4TWludXRlLCB9ID0gdGhpcy5nZXRCb3VuZGFyeSgnbWF4JywgdGhpcy5pbm5lclZhbHVlKTtcclxuXHRcdFx0ICAgIGNvbnN0IHsgbWluWWVhciwgbWluRGF0ZSwgbWluTW9udGgsIG1pbkhvdXIsIG1pbk1pbnV0ZSwgfSA9IHRoaXMuZ2V0Qm91bmRhcnkoJ21pbicsIHRoaXMuaW5uZXJWYWx1ZSk7XHJcblx0XHRcdCAgICBjb25zdCByZXN1bHQgPSBbXHJcblx0XHRcdCAgICAgICAge1xyXG5cdFx0XHQgICAgICAgICAgICB0eXBlOiAneWVhcicsXHJcblx0XHRcdCAgICAgICAgICAgIHJhbmdlOiBbbWluWWVhciwgbWF4WWVhcl0sXHJcblx0XHRcdCAgICAgICAgfSxcclxuXHRcdFx0ICAgICAgICB7XHJcblx0XHRcdCAgICAgICAgICAgIHR5cGU6ICdtb250aCcsXHJcblx0XHRcdCAgICAgICAgICAgIHJhbmdlOiBbbWluTW9udGgsIG1heE1vbnRoXSxcclxuXHRcdFx0ICAgICAgICB9LFxyXG5cdFx0XHQgICAgICAgIHtcclxuXHRcdFx0ICAgICAgICAgICAgdHlwZTogJ2RheScsXHJcblx0XHRcdCAgICAgICAgICAgIHJhbmdlOiBbbWluRGF0ZSwgbWF4RGF0ZV0sXHJcblx0XHRcdCAgICAgICAgfSxcclxuXHRcdFx0ICAgICAgICB7XHJcblx0XHRcdCAgICAgICAgICAgIHR5cGU6ICdob3VyJyxcclxuXHRcdFx0ICAgICAgICAgICAgcmFuZ2U6IFttaW5Ib3VyLCBtYXhIb3VyXSxcclxuXHRcdFx0ICAgICAgICB9LFxyXG5cdFx0XHQgICAgICAgIHtcclxuXHRcdFx0ICAgICAgICAgICAgdHlwZTogJ21pbnV0ZScsXHJcblx0XHRcdCAgICAgICAgICAgIHJhbmdlOiBbbWluTWludXRlLCBtYXhNaW51dGVdLFxyXG5cdFx0XHQgICAgICAgIH0sXHJcblx0XHRcdCAgICBdO1xyXG5cdFx0XHQgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2RhdGUnKVxyXG5cdFx0XHQgICAgICAgIHJlc3VsdC5zcGxpY2UoMywgMik7XHJcblx0XHRcdCAgICBpZiAodGhpcy5tb2RlID09PSAneWVhci1tb250aCcpXHJcblx0XHRcdCAgICAgICAgcmVzdWx0LnNwbGljZSgyLCAzKTtcclxuXHRcdFx0ICAgIHJldHVybiByZXN1bHQ7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOagueaNrm1pbkRhdGXjgIFtYXhEYXRl44CBbWluSG91cuOAgW1heEhvdXLnrYnovrnnlYzlgLzvvIzliKTmlq3lkITliJfnmoTlvIDlp4vlkoznu5PmnZ/ovrnnlYzlgLxcclxuXHRcdFx0Z2V0Qm91bmRhcnkodHlwZSwgaW5uZXJWYWx1ZSkge1xyXG5cdFx0XHQgICAgY29uc3QgdmFsdWUgPSBuZXcgRGF0ZShpbm5lclZhbHVlKVxyXG5cdFx0XHQgICAgY29uc3QgYm91bmRhcnkgPSBuZXcgRGF0ZSh0aGlzW2Ake3R5cGV9RGF0ZWBdKVxyXG5cdFx0XHQgICAgY29uc3QgeWVhciA9IGRheWpzKGJvdW5kYXJ5KS55ZWFyKClcclxuXHRcdFx0ICAgIGxldCBtb250aCA9IDFcclxuXHRcdFx0ICAgIGxldCBkYXRlID0gMVxyXG5cdFx0XHQgICAgbGV0IGhvdXIgPSAwXHJcblx0XHRcdCAgICBsZXQgbWludXRlID0gMFxyXG5cdFx0XHQgICAgaWYgKHR5cGUgPT09ICdtYXgnKSB7XHJcblx0XHRcdCAgICAgICAgbW9udGggPSAxMlxyXG5cdFx0XHRcdFx0Ly8g5pyI5Lu955qE5aSp5pWwXHJcblx0XHRcdCAgICAgICAgZGF0ZSA9IGRheWpzKHZhbHVlKS5kYXlzSW5Nb250aCgpXHJcblx0XHRcdCAgICAgICAgaG91ciA9IDIzXHJcblx0XHRcdCAgICAgICAgbWludXRlID0gNTlcclxuXHRcdFx0ICAgIH1cclxuXHRcdFx0XHQvLyDojrflj5bovrnnlYzlgLzvvIzpgLvovpHmmK/vvJrlvZPlubTovr7liLDkuobovrnnlYzlgLwo5pyA5aSn5oiW5pyA5bCP5bm0Ke+8jOWwseajgOafpeaciOWFgeiuuOeahOacgOWkp+WSjOacgOWwj+WAvO+8jOS7peatpOexu+aOqFxyXG5cdFx0XHQgICAgaWYgKGRheWpzKHZhbHVlKS55ZWFyKCkgPT09IHllYXIpIHtcclxuXHRcdFx0ICAgICAgICBtb250aCA9IGRheWpzKGJvdW5kYXJ5KS5tb250aCgpICsgMVxyXG5cdFx0XHQgICAgICAgIGlmIChkYXlqcyh2YWx1ZSkubW9udGgoKSArIDEgPT09IG1vbnRoKSB7XHJcblx0XHRcdCAgICAgICAgICAgIGRhdGUgPSBkYXlqcyhib3VuZGFyeSkuZGF0ZSgpXHJcblx0XHRcdCAgICAgICAgICAgIGlmIChkYXlqcyh2YWx1ZSkuZGF0ZSgpID09PSBkYXRlKSB7XHJcblx0XHRcdCAgICAgICAgICAgICAgICBob3VyID0gZGF5anMoYm91bmRhcnkpLmhvdXIoKVxyXG5cdFx0XHQgICAgICAgICAgICAgICAgaWYgKGRheWpzKHZhbHVlKS5ob3VyKCkgPT09IGhvdXIpIHtcclxuXHRcdFx0ICAgICAgICAgICAgICAgICAgICBtaW51dGUgPSBkYXlqcyhib3VuZGFyeSkubWludXRlKClcclxuXHRcdFx0ICAgICAgICAgICAgICAgIH1cclxuXHRcdFx0ICAgICAgICAgICAgfVxyXG5cdFx0XHQgICAgICAgIH1cclxuXHRcdFx0ICAgIH1cclxuXHRcdFx0ICAgIHJldHVybiB7XHJcblx0XHRcdCAgICAgICAgW2Ake3R5cGV9WWVhcmBdOiB5ZWFyLFxyXG5cdFx0XHQgICAgICAgIFtgJHt0eXBlfU1vbnRoYF06IG1vbnRoLFxyXG5cdFx0XHQgICAgICAgIFtgJHt0eXBlfURhdGVgXTogZGF0ZSxcclxuXHRcdFx0ICAgICAgICBbYCR7dHlwZX1Ib3VyYF06IGhvdXIsXHJcblx0XHRcdCAgICAgICAgW2Ake3R5cGV9TWludXRlYF06IG1pbnV0ZVxyXG5cdFx0XHQgICAgfVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdEBpbXBvcnQgJy4uLy4uL2xpYnMvY3NzL2NvbXBvbmVudHMuc2Nzcyc7XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///158\n"); /***/ }), /* 159 */ /*!**************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ 160); var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ 161); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 162); var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ 164); function _slicedToArray(arr, i) { return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); } module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 160 */ /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 161 */ /*!*********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) { ; } } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 162 */ /*!***************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 163); function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); } module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 163 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 164 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 165 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-datetime-picker/props.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // 是否打开组件\n show: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.show\n },\n // 是否展示顶部的操作栏\n showToolbar: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.showToolbar\n },\n // 绑定值\n value: {\n type: [String, Number],\n default: uni.$u.props.datetimePicker.value\n },\n // 顶部标题\n title: {\n type: String,\n default: uni.$u.props.datetimePicker.title\n },\n // 展示格式,mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择\n mode: {\n type: String,\n default: uni.$u.props.datetimePicker.mode\n },\n // 可选的最大时间\n maxDate: {\n type: Number,\n // 最大默认值为后10年\n default: uni.$u.props.datetimePicker.maxDate\n },\n // 可选的最小时间\n minDate: {\n type: Number,\n // 最小默认值为前10年\n default: uni.$u.props.datetimePicker.minDate\n },\n // 可选的最小小时,仅mode=time有效\n minHour: {\n type: Number,\n default: uni.$u.props.datetimePicker.minHour\n },\n // 可选的最大小时,仅mode=time有效\n maxHour: {\n type: Number,\n default: uni.$u.props.datetimePicker.maxHour\n },\n // 可选的最小分钟,仅mode=time有效\n minMinute: {\n type: Number,\n default: uni.$u.props.datetimePicker.minMinute\n },\n // 可选的最大分钟,仅mode=time有效\n maxMinute: {\n type: Number,\n default: uni.$u.props.datetimePicker.maxMinute\n },\n // 选项过滤函数\n filter: {\n type: [Function, null],\n default: uni.$u.props.datetimePicker.filter\n },\n // 选项格式化函数\n formatter: {\n type: [Function, null],\n default: uni.$u.props.datetimePicker.formatter\n },\n // 是否显示加载中状态\n loading: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.loading\n },\n // 各列中,单个选项的高度\n itemHeight: {\n type: [String, Number],\n default: uni.$u.props.datetimePicker.itemHeight\n },\n // 取消按钮的文字\n cancelText: {\n type: String,\n default: uni.$u.props.datetimePicker.cancelText\n },\n // 确认按钮的文字\n confirmText: {\n type: String,\n default: uni.$u.props.datetimePicker.confirmText\n },\n // 取消按钮的颜色\n cancelColor: {\n type: String,\n default: uni.$u.props.datetimePicker.cancelColor\n },\n // 确认按钮的颜色\n confirmColor: {\n type: String,\n default: uni.$u.props.datetimePicker.confirmColor\n },\n // 每列中可见选项的数量\n visibleItemCount: {\n type: [String, Number],\n default: uni.$u.props.datetimePicker.visibleItemCount\n },\n // 是否允许点击遮罩关闭选择器\n closeOnClickOverlay: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.closeOnClickOverlay\n },\n // 各列的默认索引\n defaultIndex: {\n type: Array,\n default: uni.$u.props.datetimePicker.defaultIndex\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LWRhdGV0aW1lLXBpY2tlci9wcm9wcy5qcyJdLCJuYW1lcyI6WyJwcm9wcyIsInNob3ciLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHQiLCJ1bmkiLCIkdSIsImRhdGV0aW1lUGlja2VyIiwic2hvd1Rvb2xiYXIiLCJ2YWx1ZSIsIlN0cmluZyIsIk51bWJlciIsInRpdGxlIiwibW9kZSIsIm1heERhdGUiLCJtaW5EYXRlIiwibWluSG91ciIsIm1heEhvdXIiLCJtaW5NaW51dGUiLCJtYXhNaW51dGUiLCJmaWx0ZXIiLCJGdW5jdGlvbiIsImZvcm1hdHRlciIsImxvYWRpbmciLCJpdGVtSGVpZ2h0IiwiY2FuY2VsVGV4dCIsImNvbmZpcm1UZXh0IiwiY2FuY2VsQ29sb3IiLCJjb25maXJtQ29sb3IiLCJ2aXNpYmxlSXRlbUNvdW50IiwiY2xvc2VPbkNsaWNrT3ZlcmxheSIsImRlZmF1bHRJbmRleCIsIkFycmF5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNYQSxLQUFLLEVBQUU7SUFDSDtJQUNBQyxJQUFJLEVBQUU7TUFDRkMsSUFBSSxFQUFFQyxPQUFPO01BQ2JDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sY0FBYyxDQUFDTjtJQUN6QyxDQUFDO0lBQ0Q7SUFDQU8sV0FBVyxFQUFFO01BQ1ROLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLGNBQWMsQ0FBQ0M7SUFDekMsQ0FBQztJQUNEO0lBQ0FDLEtBQUssRUFBRTtNQUNIUCxJQUFJLEVBQUUsQ0FBQ1EsTUFBTSxFQUFFQyxNQUFNLENBQUM7TUFDdEJQLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sY0FBYyxDQUFDRTtJQUN6QyxDQUFDO0lBQ0Q7SUFDQUcsS0FBSyxFQUFFO01B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QUNBQyxZQUFZLEVBQUU7TUFDVjFCLElBQUksRUFBRVEsTUFBTTtNQUNaTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLGNBQWMsQ0FBQ3FCO0lBQ3pDLENBQUM7SUFDRDtJQUNBQyxnQkFBZ0IsRUFBRTtNQUNkM0IsSUFBSSxFQUFFLENBQUNRLE1BQU0sRUFBRUMsTUFBTSxDQUFDO01BQ3RCUCxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLGNBQWMsQ0FBQ3NCO0lBQ3pDLENBQUM7SUFDRDtJQUNBQyxtQkFBbUIsRUFBRTtNQUNqQjVCLElBQUksRUFBRUMsT0FBTztNQUNiQyxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLGNBQWMsQ0FBQ3VCO0lBQ3pDLENBQUM7SUFDRDtJQUNBQyxZQUFZLEVBQUU7TUFDVjdCLElBQUksRUFBRThCLEtBQUs7TUFDWDVCLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sY0FBYyxDQUFDd0I7SUFDekM7RUFDSjtBQUNKLENBQUM7QUFBQSIsImZpbGUiOiIxNjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBwcm9wczoge1xyXG4gICAgICAgIC8vIOaYr+WQpuaJk+W8gOe7hOS7tlxyXG4gICAgICAgIHNob3c6IHtcclxuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmRhdGV0aW1lUGlja2VyLnNob3dcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaYr+WQpuWxleekuumhtumDqOeahOaTjeS9nOagj1xyXG4gICAgICAgIHNob3dUb29sYmFyOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci5zaG93VG9vbGJhclxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g57uR5a6a5YC8XHJcbiAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmRhdGV0aW1lUGlja2VyLnZhbHVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDpobbpg6jmoIfpophcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci50aXRsZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5bGV56S65qC85byP77yMbW9kZT1kYXRl5Li65pel5pyf6YCJ5oup77yMbW9kZT10aW1l5Li65pe26Ze06YCJ5oup77yMbW9kZT15ZWFyLW1vbnRo5Li65bm05pyI6YCJ5oup77yMbW9kZT1kYXRldGltZeS4uuaXpeacn+aXtumXtOmAieaLqVxyXG4gICAgICAgIG1vZGU6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuZGF0ZXRpbWVQaWNrZXIubW9kZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Y+v6YCJ55qE5pyA5aSn5pe26Ze0XHJcbiAgICAgICAgbWF4RGF0ZToge1xyXG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICAgICAgICAgIC8vIOacgOWkp+m7mOiupOWAvOS4uuWQjjEw5bm0XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci5tYXhEYXRlXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlj6/pgInnmoTmnIDlsI/ml7bpl7RcclxuICAgICAgICBtaW5EYXRlOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcclxuICAgICAgICAgICAgLy8g5pyA5bCP6buY6K6k5YC85Li65YmNMTDlubRcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmRhdGV0aW1lUGlja2VyLm1pbkRhdGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWPr+mAieeahOacgOWwj+Wwj+aXtu+8jOS7hW1vZGU9dGltZeacieaViFxyXG4gICAgICAgIG1pbkhvdXI6IHtcclxuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuZGF0ZXRpbWVQaWNrZXIubWluSG91clxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5Y+v6YCJ55qE5pyA5aSn5bCP5pe277yM5LuFbW9kZT10aW1l5pyJ5pWIXHJcbiAgICAgICAgbWF4SG91cjoge1xyXG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci5tYXhIb3VyXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlj6/pgInnmoTmnIDlsI/liIbpkp/vvIzku4Vtb2RlPXRpbWXmnInmlYhcclxuICAgICAgICBtaW5NaW51dGU6IHtcclxuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuZGF0ZXRpbWVQaWNrZXIubWluTWludXRlXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlj6/pgInnmoTmnIDlpKfliIbpkp/vvIzku4Vtb2RlPXRpbWXmnInmlYhcclxuICAgICAgICBtYXhNaW51dGU6IHtcclxuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuZGF0ZXRpbWVQaWNrZXIubWF4TWludXRlXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDpgInpobnov4fmu6Tlh73mlbBcclxuICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgdHlwZTogW0Z1bmN0aW9uLCBudWxsXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmRhdGV0aW1lUGlja2VyLmZpbHRlclxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g6YCJ6aG55qC85byP5YyW5Ye95pWwXHJcbiAgICAgICAgZm9ybWF0dGVyOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtGdW5jdGlvbiwgbnVsbF0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci5mb3JtYXR0ZXJcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaYr+WQpuaYvuekuuWKoOi9veS4reeKtuaAgVxyXG4gICAgICAgIGxvYWRpbmc6IHtcclxuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmRhdGV0aW1lUGlja2VyLmxvYWRpbmdcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWQhOWIl+S4re+8jOWNleS4qumAiemhueeahOmrmOW6plxyXG4gICAgICAgIGl0ZW1IZWlnaHQ6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmRhdGV0aW1lUGlja2VyLml0ZW1IZWlnaHRcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWPlua2iOaMiemSrueahOaWh+Wtl1xyXG4gICAgICAgIGNhbmNlbFRleHQ6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuZGF0ZXRpbWVQaWNrZXIuY2FuY2VsVGV4dFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g56Gu6K6k5oyJ6ZKu55qE5paH5a2XXHJcbiAgICAgICAgY29uZmlybVRleHQ6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuZGF0ZXRpbWVQaWNrZXIuY29uZmlybVRleHRcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWPlua2iOaMiemSrueahOminOiJslxyXG4gICAgICAgIGNhbmNlbENvbG9yOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLmRhdGV0aW1lUGlja2VyLmNhbmNlbENvbG9yXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDnoa7orqTmjInpkq7nmoTpopzoibJcclxuICAgICAgICBjb25maXJtQ29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuZGF0ZXRpbWVQaWNrZXIuY29uZmlybUNvbG9yXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmr4/liJfkuK3lj6/op4HpgInpobnnmoTmlbDph49cclxuICAgICAgICB2aXNpYmxlSXRlbUNvdW50OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci52aXNpYmxlSXRlbUNvdW50XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmmK/lkKblhYHorrjngrnlh7vpga7nvanlhbPpl63pgInmi6nlmahcclxuICAgICAgICBjbG9zZU9uQ2xpY2tPdmVybGF5OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci5jbG9zZU9uQ2xpY2tPdmVybGF5XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlkITliJfnmoTpu5jorqTntKLlvJVcclxuICAgICAgICBkZWZhdWx0SW5kZXg6IHtcclxuICAgICAgICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5kYXRldGltZVBpY2tlci5kZWZhdWx0SW5kZXhcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///165\n"); /***/ }), /* 166 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/libs/util/dayjs.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\n!function (t, e) {\n ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = e() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (e),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined;\n}(this, function () {\n 'use strict';\n\n var t = 'millisecond';\n var e = 'second';\n var n = 'minute';\n var r = 'hour';\n var i = 'day';\n var s = 'week';\n var u = 'month';\n var a = 'quarter';\n var o = 'year';\n var f = 'date';\n var h = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d+)?$/;\n var c = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\n var d = {\n name: 'en',\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_')\n };\n var $ = function $(t, e, n) {\n var r = String(t);\n return !r || r.length >= e ? t : \"\".concat(Array(e + 1 - r.length).join(n)).concat(t);\n };\n var l = {\n s: $,\n z: function z(t) {\n var e = -t.utcOffset();\n var n = Math.abs(e);\n var r = Math.floor(n / 60);\n var i = n % 60;\n return \"\".concat((e <= 0 ? '+' : '-') + $(r, 2, '0'), \":\").concat($(i, 2, '0'));\n },\n m: function t(e, n) {\n if (e.date() < n.date()) return -t(n, e);\n var r = 12 * (n.year() - e.year()) + (n.month() - e.month());\n var i = e.clone().add(r, u);\n var s = n - i < 0;\n var a = e.clone().add(r + (s ? -1 : 1), u);\n return +(-(r + (n - i) / (s ? i - a : a - i)) || 0);\n },\n a: function a(t) {\n return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);\n },\n p: function p(h) {\n return {\n M: u,\n y: o,\n w: s,\n d: i,\n D: f,\n h: r,\n m: n,\n s: e,\n ms: t,\n Q: a\n }[h] || String(h || '').toLowerCase().replace(/s$/, '');\n },\n u: function u(t) {\n return void 0 === t;\n }\n };\n var y = 'en';\n var M = {};\n M[y] = d;\n var m = function m(t) {\n return t instanceof S;\n };\n var D = function D(t, e, n) {\n var r;\n if (!t) return y;\n if (typeof t === 'string') M[t] && (r = t), e && (M[t] = e, r = t);else {\n var _i = t.name;\n M[_i] = t, r = _i;\n }\n return !n && r && (y = r), r || !n && y;\n };\n var v = function v(t, e) {\n if (m(t)) return t.clone();\n var n = _typeof(e) === 'object' ? e : {};\n return n.date = t, n.args = arguments, new S(n);\n };\n var g = l;\n g.l = D, g.i = m, g.w = function (t, e) {\n return v(t, {\n locale: e.$L,\n utc: e.$u,\n x: e.$x,\n $offset: e.$offset\n });\n };\n var S = function () {\n function d(t) {\n this.$L = D(t.locale, null, !0), this.parse(t);\n }\n var $ = d.prototype;\n return $.parse = function (t) {\n this.$d = function (t) {\n var e = t.date;\n var n = t.utc;\n if (e === null) return new Date(NaN);\n if (g.u(e)) return new Date();\n if (e instanceof Date) return new Date(e);\n if (typeof e === 'string' && !/Z$/i.test(e)) {\n var _r = e.match(h);\n if (_r) {\n var _i2 = _r[2] - 1 || 0;\n var _s = (_r[7] || '0').substring(0, 3);\n return n ? new Date(Date.UTC(_r[1], _i2, _r[3] || 1, _r[4] || 0, _r[5] || 0, _r[6] || 0, _s)) : new Date(_r[1], _i2, _r[3] || 1, _r[4] || 0, _r[5] || 0, _r[6] || 0, _s);\n }\n }\n return new Date(e);\n }(t), this.$x = t.x || {}, this.init();\n }, $.init = function () {\n var t = this.$d;\n this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds();\n }, $.$utils = function () {\n return g;\n }, $.isValid = function () {\n return !(this.$d.toString() === 'Invalid Date');\n }, $.isSame = function (t, e) {\n var n = v(t);\n return this.startOf(e) <= n && n <= this.endOf(e);\n }, $.isAfter = function (t, e) {\n return v(t) < this.startOf(e);\n }, $.isBefore = function (t, e) {\n return this.endOf(e) < v(t);\n }, $.$g = function (t, e, n) {\n return g.u(t) ? this[e] : this.set(n, t);\n }, $.unix = function () {\n return Math.floor(this.valueOf() / 1e3);\n }, $.valueOf = function () {\n return this.$d.getTime();\n }, $.startOf = function (t, a) {\n var h = this;\n var c = !!g.u(a) || a;\n var d = g.p(t);\n var $ = function $(t, e) {\n var n = g.w(h.$u ? Date.UTC(h.$y, e, t) : new Date(h.$y, e, t), h);\n return c ? n : n.endOf(i);\n };\n var l = function l(t, e) {\n return g.w(h.toDate()[t].apply(h.toDate('s'), (c ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), h);\n };\n var y = this.$W;\n var M = this.$M;\n var m = this.$D;\n var D = \"set\".concat(this.$u ? 'UTC' : '');\n switch (d) {\n case o:\n return c ? $(1, 0) : $(31, 11);\n case u:\n return c ? $(1, M) : $(0, M + 1);\n case s:\n var v = this.$locale().weekStart || 0;\n var S = (y < v ? y + 7 : y) - v;\n return $(c ? m - S : m + (6 - S), M);\n case i:\n case f:\n return l(\"\".concat(D, \"Hours\"), 0);\n case r:\n return l(\"\".concat(D, \"Minutes\"), 1);\n case n:\n return l(\"\".concat(D, \"Seconds\"), 2);\n case e:\n return l(\"\".concat(D, \"Milliseconds\"), 3);\n default:\n return this.clone();\n }\n }, $.endOf = function (t) {\n return this.startOf(t, !1);\n }, $.$set = function (s, a) {\n var h;\n var c = g.p(s);\n var d = \"set\".concat(this.$u ? 'UTC' : '');\n var $ = (h = {}, h[i] = \"\".concat(d, \"Date\"), h[f] = \"\".concat(d, \"Date\"), h[u] = \"\".concat(d, \"Month\"), h[o] = \"\".concat(d, \"FullYear\"), h[r] = \"\".concat(d, \"Hours\"), h[n] = \"\".concat(d, \"Minutes\"), h[e] = \"\".concat(d, \"Seconds\"), h[t] = \"\".concat(d, \"Milliseconds\"), h)[c];\n var l = c === i ? this.$D + (a - this.$W) : a;\n if (c === u || c === o) {\n var _y = this.clone().set(f, 1);\n _y.$d[$](l), _y.init(), this.$d = _y.set(f, Math.min(this.$D, _y.daysInMonth())).$d;\n } else $ && this.$d[$](l);\n return this.init(), this;\n }, $.set = function (t, e) {\n return this.clone().$set(t, e);\n }, $.get = function (t) {\n return this[g.p(t)]();\n }, $.add = function (t, a) {\n var f;\n var h = this;\n t = Number(t);\n var c = g.p(a);\n var d = function d(e) {\n var n = v(h);\n return g.w(n.date(n.date() + Math.round(e * t)), h);\n };\n if (c === u) return this.set(u, this.$M + t);\n if (c === o) return this.set(o, this.$y + t);\n if (c === i) return d(1);\n if (c === s) return d(7);\n var $ = (f = {}, f[n] = 6e4, f[r] = 36e5, f[e] = 1e3, f)[c] || 1;\n var l = this.$d.getTime() + t * $;\n return g.w(l, this);\n }, $.subtract = function (t, e) {\n return this.add(-1 * t, e);\n }, $.format = function (t) {\n var e = this;\n if (!this.isValid()) return 'Invalid Date';\n var n = t || 'YYYY-MM-DDTHH:mm:ssZ';\n var r = g.z(this);\n var i = this.$locale();\n var s = this.$H;\n var u = this.$m;\n var a = this.$M;\n var o = i.weekdays;\n var f = i.months;\n var h = function h(t, r, i, s) {\n return t && (t[r] || t(e, n)) || i[r].substr(0, s);\n };\n var d = function d(t) {\n return g.s(s % 12 || 12, t, '0');\n };\n var $ = i.meridiem || function (t, e, n) {\n var r = t < 12 ? 'AM' : 'PM';\n return n ? r.toLowerCase() : r;\n };\n var l = {\n YY: String(this.$y).slice(-2),\n YYYY: this.$y,\n M: a + 1,\n MM: g.s(a + 1, 2, '0'),\n MMM: h(i.monthsShort, a, f, 3),\n MMMM: h(f, a),\n D: this.$D,\n DD: g.s(this.$D, 2, '0'),\n d: String(this.$W),\n dd: h(i.weekdaysMin, this.$W, o, 2),\n ddd: h(i.weekdaysShort, this.$W, o, 3),\n dddd: o[this.$W],\n H: String(s),\n HH: g.s(s, 2, '0'),\n h: d(1),\n hh: d(2),\n a: $(s, u, !0),\n A: $(s, u, !1),\n m: String(u),\n mm: g.s(u, 2, '0'),\n s: String(this.$s),\n ss: g.s(this.$s, 2, '0'),\n SSS: g.s(this.$ms, 3, '0'),\n Z: r\n };\n return n.replace(c, function (t, e) {\n return e || l[t] || r.replace(':', '');\n });\n }, $.utcOffset = function () {\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);\n }, $.diff = function (t, f, h) {\n var c;\n var d = g.p(f);\n var $ = v(t);\n var l = 6e4 * ($.utcOffset() - this.utcOffset());\n var y = this - $;\n var M = g.m(this, $);\n return M = (c = {}, c[o] = M / 12, c[u] = M, c[a] = M / 3, c[s] = (y - l) / 6048e5, c[i] = (y - l) / 864e5, c[r] = y / 36e5, c[n] = y / 6e4, c[e] = y / 1e3, c)[d] || y, h ? M : g.a(M);\n }, $.daysInMonth = function () {\n return this.endOf(u).$D;\n }, $.$locale = function () {\n return M[this.$L];\n }, $.locale = function (t, e) {\n if (!t) return this.$L;\n var n = this.clone();\n var r = D(t, e, !0);\n return r && (n.$L = r), n;\n }, $.clone = function () {\n return g.w(this.$d, this);\n }, $.toDate = function () {\n return new Date(this.valueOf());\n }, $.toJSON = function () {\n return this.isValid() ? this.toISOString() : null;\n }, $.toISOString = function () {\n return this.$d.toISOString();\n }, $.toString = function () {\n return this.$d.toUTCString();\n }, d;\n }();\n var p = S.prototype;\n return v.prototype = p, [['$ms', t], ['$s', e], ['$m', n], ['$H', r], ['$W', i], ['$M', u], ['$y', o], ['$D', f]].forEach(function (t) {\n p[t[1]] = function (e) {\n return this.$g(e, t[0], t[1]);\n };\n }), v.extend = function (t, e) {\n return t.$i || (t(e, S, v), t.$i = !0), v;\n }, v.locale = D, v.isDayjs = m, v.unix = function (t) {\n return v(1e3 * t);\n }, v.en = M[y], v.Ls = M, v.p = {}, v;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvbGlicy91dGlsL2RheWpzLmpzIl0sIm5hbWVzIjpbInQiLCJlIiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsIm4iLCJyIiwiaSIsInMiLCJ1IiwiYSIsIm8iLCJmIiwiaCIsImMiLCJkIiwibmFtZSIsIndlZWtkYXlzIiwic3BsaXQiLCJtb250aHMiLCIkIiwiU3RyaW5nIiwibGVuZ3RoIiwiQXJyYXkiLCJqb2luIiwibCIsInoiLCJ1dGNPZmZzZXQiLCJNYXRoIiwiYWJzIiwiZmxvb3IiLCJtIiwiZGF0ZSIsInllYXIiLCJtb250aCIsImNsb25lIiwiYWRkIiwiY2VpbCIsInAiLCJNIiwieSIsInciLCJEIiwibXMiLCJRIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiUyIsInYiLCJhcmdzIiwiYXJndW1lbnRzIiwiZyIsImxvY2FsZSIsIiRMIiwidXRjIiwiJHUiLCJ4IiwiJHgiLCIkb2Zmc2V0IiwicGFyc2UiLCJwcm90b3R5cGUiLCIkZCIsIkRhdGUiLCJOYU4iLCJ0ZXN0IiwibWF0Y2giLCJzdWJzdHJpbmciLCJVVEMiLCJpbml0IiwiJHkiLCJnZXRGdWxsWWVhciIsIiRNIiwiZ2V0TW9udGgiLCIkRCIsImdldERhdGUiLCIkVyIsImdldERheSIsIiRIIiwiZ2V0SG91cnMiLCIkbSIsImdldE1pbnV0ZXMiLCIkcyIsImdldFNlY29uZHMiLCIkbXMiLCJnZXRNaWxsaXNlY29uZHMiLCIkdXRpbHMiLCJpc1ZhbGlkIiwidG9TdHJpbmciLCJpc1NhbWUiLCJzdGFydE9mIiwiZW5kT2YiLCJpc0FmdGVyIiwiaXNCZWZvcmUiLCIkZyIsInNldCIsInVuaXgiLCJ2YWx1ZU9mIiwiZ2V0VGltZSIsInRvRGF0ZSIsImFwcGx5Iiwic2xpY2UiLCIkbG9jYWxlIiwid2Vla1N0YXJ0IiwiJHNldCIsIm1pbiIsImRheXNJbk1vbnRoIiwiZ2V0IiwiTnVtYmVyIiwicm91bmQiLCJzdWJ0cmFjdCIsImZvcm1hdCIsInN1YnN0ciIsIm1lcmlkaWVtIiwiWVkiLCJZWVlZIiwiTU0iLCJNTU0iLCJtb250aHNTaG9ydCIsIk1NTU0iLCJERCIsImRkIiwid2Vla2RheXNNaW4iLCJkZGQiLCJ3ZWVrZGF5c1Nob3J0IiwiZGRkZCIsIkgiLCJISCIsImhoIiwiQSIsIm1tIiwic3MiLCJTU1MiLCJaIiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJkaWZmIiwidG9KU09OIiwidG9JU09TdHJpbmciLCJ0b1VUQ1N0cmluZyIsImZvckVhY2giLCJleHRlbmQiLCIkaSIsImlzRGF5anMiLCJlbiIsIkxzIl0sIm1hcHBpbmdzIjoiO0FBQUEsQ0FBRSxVQUFVQSxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNkLE9BQWMsdUJBQVBDLE9BQU8sT0FBSyxRQUFRLElBQUksT0FBT0MsTUFBTSxLQUFLLFdBQVcsR0FBR0EsTUFBTSxDQUFDRCxPQUFPLEdBQUdELENBQUMsRUFBRSxHQUFHLEtBQzNFLEdBQUdHLG9DQUFPSCxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsb0dBQUMsR0FBR0QsU0FBYTtBQUMzQyxDQUFDLENBQUMsSUFBSSxFQUFFLFlBQU07RUFDVixZQUFZOztFQUVaLElBQU1BLENBQUMsR0FBRyxhQUFhO0VBQ3ZCLElBQU1DLENBQUMsR0FBRyxRQUFRO0VBQ2xCLElBQU1JLENBQUMsR0FBRyxRQUFRO0VBQ2xCLElBQU1DLENBQUMsR0FBRyxNQUFNO0VBQ2hCLElBQU1DLENBQUMsR0FBRyxLQUFLO0VBQ2YsSUFBTUMsQ0FBQyxHQUFHLE1BQU07RUFDaEIsSUFBTUMsQ0FBQyxHQUFHLE9BQU87RUFDakIsSUFBTUMsQ0FBQyxHQUFHLFNBQVM7RUFDbkIsSUFBTUMsQ0FBQyxHQUFHLE1BQU07RUFDaEIsSUFBTUMsQ0FBQyxHQUFHLE1BQU07RUFDaEIsSUFBTUMsQ0FBQyxHQUFHLHlGQUF5RjtFQUNuRyxJQUFNQyxDQUFDLEdBQUcscUZBQXFGO0VBQy9GLElBQU1DLENBQUMsR0FBRztJQUNOQyxJQUFJLEVBQUUsSUFBSTtJQUNWQyxR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Q0FBQyxFQUFFOEMsQ0FBQyxFQUFFQyxDQUFDLENBQUMsRUFBRWhELENBQUMsQ0FBQzRJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFNUYsQ0FBQztFQUM3QyxDQUFDLEVBQUVBLENBQUMsQ0FBQ0ksTUFBTSxHQUFHVixDQUFDLEVBQUVNLENBQUMsQ0FBQzZGLE9BQU8sR0FBRzlHLENBQUMsRUFBRWlCLENBQUMsQ0FBQytDLElBQUksR0FBRyxVQUFVL0YsQ0FBQyxFQUFFO0lBQ2xELE9BQU9nRCxDQUFDLENBQUMsR0FBRyxHQUFHaEQsQ0FBQyxDQUFDO0VBQ3JCLENBQUMsRUFBRWdELENBQUMsQ0FBQzhGLEVBQUUsR0FBR3ZHLENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEVBQUVRLENBQUMsQ0FBQytGLEVBQUUsR0FBR3hHLENBQUMsRUFBRVMsQ0FBQyxDQUFDVixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUVVLENBQUM7QUFDekMsQ0FBQyxDQUFFIiwiZmlsZSI6IjE2Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIiEoZnVuY3Rpb24gKHQsIGUpIHtcclxuICAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZSgpIDogdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJ1xyXG5cdFx0JiYgZGVmaW5lLmFtZCA/IGRlZmluZShlKSA6IHQuZGF5anMgPSBlKClcclxufSh0aGlzLCAoKSA9PiB7XHJcbiAgICAndXNlIHN0cmljdCdcclxuXHJcbiAgICBjb25zdCB0ID0gJ21pbGxpc2Vjb25kJ1xyXG4gICAgY29uc3QgZSA9ICdzZWNvbmQnXHJcbiAgICBjb25zdCBuID0gJ21pbnV0ZSdcclxuICAgIGNvbnN0IHIgPSAnaG91cidcclxuICAgIGNvbnN0IGkgPSAnZGF5J1xyXG4gICAgY29uc3QgcyA9ICd3ZWVrJ1xyXG4gICAgY29uc3QgdSA9ICdtb250aCdcclxuICAgIGNvbnN0IGEgPSAncXVhcnRlcidcclxuICAgIGNvbnN0IG8gPSAneWVhcidcclxuICAgIGNvbnN0IGYgPSAnZGF0ZSdcclxuICAgIGNvbnN0IGggPSAvXihcXGR7NH0pWy0vXT8oXFxkezEsMn0pP1stL10/KFxcZHswLDJ9KVteMC05XSooXFxkezEsMn0pPzo/KFxcZHsxLDJ9KT86PyhcXGR7MSwyfSk/Lj8oXFxkKyk/JC9cclxuICAgIGNvbnN0IGMgPSAvXFxbKFteXFxdXSspXXxZezEsNH18TXsxLDR9fER7MSwyfXxkezEsNH18SHsxLDJ9fGh7MSwyfXxhfEF8bXsxLDJ9fHN7MSwyfXxaezEsMn18U1NTL2dcclxuICAgIGNvbnN0IGQgPSB7XHJcbiAgICAgICAgbmFtZTogJ2VuJyxcclxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpLFxyXG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KCdfJylcclxuICAgIH1cclxuICAgIGNvbnN0ICQgPSBmdW5jdGlvbiAodCwgZSwgbikge1xyXG4gICAgICAgIGNvbnN0IHIgPSBTdHJpbmcodClcclxuICAgICAgICByZXR1cm4gIXIgfHwgci5sZW5ndGggPj0gZSA/IHQgOiBgJHtBcnJheShlICsgMSAtIHIubGVuZ3RoKS5qb2luKG4pfSR7dH1gXHJcbiAgICB9XHJcbiAgICBjb25zdCBsID0ge1xyXG4gICAgICAgIHM6ICQsXHJcbiAgICAgICAgeih0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGUgPSAtdC51dGNPZmZzZXQoKVxyXG4gICAgICAgICAgICBjb25zdCBuID0gTWF0aC5hYnMoZSlcclxuICAgICAgICAgICAgY29uc3QgciA9IE1hdGguZmxvb3IobiAvIDYwKVxyXG4gICAgICAgICAgICBjb25zdCBpID0gbiAlIDYwXHJcbiAgICAgICAgICAgIHJldHVybiBgJHsoZSA8PSAwID8gJysnIDogJy0nKSArICQociwgMiwgJzAnKX06JHskKGksIDIsICcwJyl9YFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbTogZnVuY3Rpb24gdChlLCBuKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmRhdGUoKSA8IG4uZGF0ZSgpKSByZXR1cm4gLXQobiwgZSlcclxuICAgICAgICAgICAgY29uc3QgciA9IDEyICogKG4ueWVhcigpIC0gZS55ZWFyKCkpICsgKG4ubW9udGgoKSAtIGUubW9udGgoKSlcclxuICAgICAgICAgICAgY29uc3QgaSA9IGUuY2xvbmUoKS5hZGQociwgdSlcclxuICAgICAgICAgICAgY29uc3QgcyA9IG4gLSBpIDwgMFxyXG4gICAgICAgICAgICBjb25zdCBhID0gZS5jbG9uZSgpLmFkZChyICsgKHMgPyAtMSA6IDEpLCB1KVxyXG4gICAgICAgICAgICByZXR1cm4gKygtKHIgKyAobiAtIGkpIC8gKHMgPyBpIC0gYSA6IGEgLSBpKSkgfHwgMClcclxuICAgICAgICB9LFxyXG4gICAgICAgIGEodCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdCA8IDAgPyBNYXRoLmNlaWwodCkgfHwgMCA6IE1hdGguZmxvb3IodClcclxuICAgICAgICB9LFxyXG4gICAgICAgIHAoaCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgTTogdSxcclxuICAgICAgICAgICAgICAgIHk6IG8sXHJcbiAgICAgICAgICAgICAgICB3OiBzLFxyXG4gICAgICAgICAgICAgICAgZDogaSxcclxuICAgICAgICAgICAgICAgIEQ6IGYsXHJcbiAgICAgICAgICAgICAgICBoOiByLFxyXG4gICAgICAgICAgICAgICAgbTogbixcclxuICAgICAgICAgICAgICAgIHM6IGUsXHJcbiAgICAgICAgICAgICAgICBtczogdCxcclxuICAgICAgICAgICAgICAgIFE6IGFcclxuICAgICAgICAgICAgfVtoXSB8fCBTdHJpbmcoaCB8fCAnJykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9zJC8sICcnKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdSh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2b2lkIDAgPT09IHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgeSA9ICdlbidcclxuICAgIGNvbnN0IE0gPSB7fVxyXG4gICAgTVt5XSA9IGRcclxuICAgIGNvbnN0IG0gPSBmdW5jdGlvbiAodCkge1xyXG4gICAgICAgIHJldHVybiB0IGluc3RhbmNlb2YgU1xyXG4gICAgfVxyXG4gICAgY29uc3QgRCA9IGZ1bmN0aW9uICh0LCBlLCBuKSB7XHJcbiAgICAgICAgbGV0IHJcclxuICAgICAgICBpZiAoIXQpIHJldHVybiB5XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0ID09PSAnc3RyaW5nJykgTVt0XSAmJiAociA9IHQpLCBlICYmIChNW3RdID0gZSwgciA9IHQpXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGkgPSB0Lm5hbWVcclxuICAgICAgICAgICAgTVtpXSA9IHQsIHIgPSBpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAhbiAmJiByICYmICh5ID0gciksIHIgfHwgIW4gJiYgeVxyXG4gICAgfVxyXG4gICAgY29uc3QgdiA9IGZ1bmN0aW9uICh0LCBlKSB7XHJcbiAgICAgICAgaWYgKG0odCkpIHJldHVybiB0LmNsb25lKClcclxuICAgICAgICBjb25zdCBuID0gdHlwZW9mIGUgPT09ICdvYmplY3QnID8gZSA6IHt9XHJcbiAgICAgICAgcmV0dXJuIG4uZGF0ZSA9IHQsIG4uYXJncyA9IGFyZ3VtZW50cywgbmV3IFMobilcclxuICAgIH1cclxuICAgIGNvbnN0IGcgPSBsXHJcbiAgICBnLmwgPSBELCBnLmkgPSBtLCBnLncgPSBmdW5jdGlvbiAodCwgZSkge1xyXG4gICAgICAgIHJldHVybiB2KHQsIHtcclxuICAgICAgICAgICAgbG9jYWxlOiBlLiRMLFxyXG4gICAgICAgICAgICB1dGM6IGUuJHUsXHJcbiAgICAgICAgICAgIHg6IGUuJHgsXHJcbiAgICAgICAgICAgICRvZmZzZXQ6IGUuJG9mZnNldFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbiAgICB2YXIgUyA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZCh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuJEwgPSBEKHQubG9jYWxlLCBudWxsLCAhMCksIHRoaXMucGFyc2UodClcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgJCA9IGQucHJvdG90eXBlXHJcbiAgICAgICAgcmV0dXJuICQucGFyc2UgPSBmdW5jdGlvbiAodCkge1xyXG4gICAgICAgICAgICB0aGlzLiRkID0gKGZ1bmN0aW9uICh0KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gdC5kYXRlXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuID0gdC51dGNcclxuICAgICAgICAgICAgICAgIGlmIChlID09PSBudWxsKSByZXR1cm4gbmV3IERhdGUoTmFOKVxyXG4gICAgICAgICAgICAgICAgaWYgKGcudShlKSkgcmV0dXJuIG5ldyBEYXRlKClcclxuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIG5ldyBEYXRlKGUpXHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGUgPT09ICdzdHJpbmcnICYmICEvWiQvaS50ZXN0KGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IGUubWF0Y2goaClcclxuICAgICAgICAgICAgICAgICAgICBpZiAocikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpID0gclsyXSAtIDEgfHwgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzID0gKHJbN10gfHwgJzAnKS5zdWJzdHJpbmcoMCwgMylcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG4gPyBuZXcgRGF0ZShEYXRlLlVUQyhyWzFdLCBpLCByWzNdIHx8IDEsIHJbNF0gfHwgMCwgcls1XSB8fCAwLCByWzZdIHx8IDAsIHMpKSA6IG5ldyBEYXRlKHJbMV0sIGksIHJbM11cclxuXHRcdFx0XHRcdFx0XHRcdHx8IDEsIHJbNF0gfHwgMCwgcls1XSB8fCAwLCByWzZdIHx8IDAsIHMpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGUpXHJcbiAgICAgICAgICAgIH0odCkpLCB0aGlzLiR4ID0gdC54IHx8IHt9LCB0aGlzLmluaXQoKVxyXG4gICAgICAgIH0sICQuaW5pdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgY29uc3QgdCA9IHRoaXMuJGRcclxuICAgICAgICAgICAgdGhpcy4keSA9IHQuZ2V0RnVsbFllYXIoKSwgdGhpcy4kTSA9IHQuZ2V0TW9udGgoKSwgdGhpcy4kRCA9IHQuZ2V0RGF0ZSgpLCB0aGlzLiRXID0gdC5nZXREYXkoKSwgdGhpcy4kSCA9IHQuZ2V0SG91cnMoKSxcclxuICAgICAgICAgICAgdGhpcy4kbSA9IHQuZ2V0TWludXRlcygpLCB0aGlzLiRzID0gdC5nZXRTZWNvbmRzKCksIHRoaXMuJG1zID0gdC5nZXRNaWxsaXNlY29uZHMoKVxyXG4gICAgICAgIH0sICQuJHV0aWxzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZ1xyXG4gICAgICAgIH0sICQuaXNWYWxpZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEodGhpcy4kZC50b1N0cmluZygpID09PSAnSW52YWxpZCBEYXRlJylcclxuICAgICAgICB9LCAkLmlzU2FtZSA9IGZ1bmN0aW9uICh0LCBlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG4gPSB2KHQpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2YoZSkgPD0gbiAmJiBuIDw9IHRoaXMuZW5kT2YoZSlcclxuICAgICAgICB9LCAkLmlzQWZ0ZXIgPSBmdW5jdGlvbiAodCwgZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdih0KSA8IHRoaXMuc3RhcnRPZihlKVxyXG4gICAgICAgIH0sICQuaXNCZWZvcmUgPSBmdW5jdGlvbiAodCwgZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbmRPZihlKSA8IHYodClcclxuICAgICAgICB9LCAkLiRnID0gZnVuY3Rpb24gKHQsIGUsIG4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGcudSh0KSA/IHRoaXNbZV0gOiB0aGlzLnNldChuLCB0KVxyXG4gICAgICAgIH0sICQudW5peCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IodGhpcy52YWx1ZU9mKCkgLyAxZTMpXHJcbiAgICAgICAgfSwgJC52YWx1ZU9mID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy4kZC5nZXRUaW1lKClcclxuICAgICAgICB9LCAkLnN0YXJ0T2YgPSBmdW5jdGlvbiAodCwgYSkge1xyXG4gICAgICAgICAgICBjb25zdCBoID0gdGhpc1xyXG4gICAgICAgICAgICBjb25zdCBjID0gISFnLnUoYSkgfHwgYVxyXG4gICAgICAgICAgICBjb25zdCBkID0gZy5wKHQpXHJcbiAgICAgICAgICAgIGNvbnN0ICQgPSBmdW5jdGlvbiAodCwgZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbiA9IGcudyhoLiR1ID8gRGF0ZS5VVEMoaC4keSwgZSwgdCkgOiBuZXcgRGF0ZShoLiR5LCBlLCB0KSwgaClcclxuICAgICAgICAgICAgICAgIHJldHVybiBjID8gbiA6IG4uZW5kT2YoaSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBsID0gZnVuY3Rpb24gKHQsIGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBnLncoaC50b0RhdGUoKVt0XS5hcHBseShoLnRvRGF0ZSgncycpLCAoYyA/IFswLCAwLCAwLCAwXSA6IFsyMywgNTksIDU5LCA5OTldKS5zbGljZShlKSksIGgpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgeSA9IHRoaXMuJFdcclxuICAgICAgICAgICAgY29uc3QgTSA9IHRoaXMuJE1cclxuICAgICAgICAgICAgY29uc3QgbSA9IHRoaXMuJERcclxuICAgICAgICAgICAgY29uc3QgRCA9IGBzZXQke3RoaXMuJHUgPyAnVVRDJyA6ICcnfWBcclxuICAgICAgICAgICAgc3dpdGNoIChkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgbzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjID8gJCgxLCAwKSA6ICQoMzEsIDExKVxyXG4gICAgICAgICAgICBjYXNlIHU6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYyA/ICQoMSwgTSkgOiAkKDAsIE0gKyAxKVxyXG4gICAgICAgICAgICBjYXNlIHM6XHJcbiAgICAgICAgICAgICAgICB2YXIgdiA9IHRoaXMuJGxvY2FsZSgpLndlZWtTdGFydCB8fCAwXHJcbiAgICAgICAgICAgICAgICB2YXIgUyA9ICh5IDwgdiA/IHkgKyA3IDogeSkgLSB2XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJChjID8gbSAtIFMgOiBtICsgKDYgLSBTKSwgTSlcclxuICAgICAgICAgICAgY2FzZSBpOlxyXG4gICAgICAgICAgICBjYXNlIGY6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbChgJHtEfUhvdXJzYCwgMClcclxuICAgICAgICAgICAgY2FzZSByOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGwoYCR7RH1NaW51dGVzYCwgMSlcclxuICAgICAgICAgICAgY2FzZSBuOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGwoYCR7RH1TZWNvbmRzYCwgMilcclxuICAgICAgICAgICAgY2FzZSBlOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGwoYCR7RH1NaWxsaXNlY29uZHNgLCAzKVxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgJC5lbmRPZiA9IGZ1bmN0aW9uICh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2YodCwgITEpXHJcbiAgICAgICAgfSwgJC4kc2V0ID0gZnVuY3Rpb24gKHMsIGEpIHtcclxuICAgICAgICAgICAgbGV0IGg7IGNvbnN0IGMgPSBnLnAocylcclxuICAgICAgICAgICAgY29uc3QgZCA9IGBzZXQke3RoaXMuJHUgPyAnVVRDJyA6ICcnfWBcclxuICAgICAgICAgICAgY29uc3QgJCA9IChoID0ge30sIGhbaV0gPSBgJHtkfURhdGVgLCBoW2ZdID0gYCR7ZH1EYXRlYCwgaFt1XSA9IGAke2R9TW9udGhgLCBoW29dID0gYCR7ZH1GdWxsWWVhcmAsIGhbcl0gPSBgJHtkfUhvdXJzYCxcclxuICAgICAgICAgICAgaFtuXSA9IGAke2R9TWludXRlc2AsIGhbZV0gPSBgJHtkfVNlY29uZHNgLCBoW3RdID0gYCR7ZH1NaWxsaXNlY29uZHNgLCBoKVtjXVxyXG4gICAgICAgICAgICBjb25zdCBsID0gYyA9PT0gaSA/IHRoaXMuJEQgKyAoYSAtIHRoaXMuJFcpIDogYVxyXG4gICAgICAgICAgICBpZiAoYyA9PT0gdSB8fCBjID09PSBvKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB5ID0gdGhpcy5jbG9uZSgpLnNldChmLCAxKVxyXG4gICAgICAgICAgICAgICAgeS4kZFskXShsKSwgeS5pbml0KCksIHRoaXMuJGQgPSB5LnNldChmLCBNYXRoLm1pbih0aGlzLiRELCB5LmRheXNJbk1vbnRoKCkpKS4kZFxyXG4gICAgICAgICAgICB9IGVsc2UgJCAmJiB0aGlzLiRkWyRdKGwpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluaXQoKSwgdGhpc1xyXG4gICAgICAgIH0sICQuc2V0ID0gZnVuY3Rpb24gKHQsIGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS4kc2V0KHQsIGUpXHJcbiAgICAgICAgfSwgJC5nZXQgPSBmdW5jdGlvbiAodCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpc1tnLnAodCldKClcclxuICAgICAgICB9LCAkLmFkZCA9IGZ1bmN0aW9uICh0LCBhKSB7XHJcbiAgICAgICAgICAgIGxldCBmOyBjb25zdFxyXG4gICAgICAgICAgICAgICAgaCA9IHRoaXNcclxuICAgICAgICAgICAgdCA9IE51bWJlcih0KVxyXG4gICAgICAgICAgICBjb25zdCBjID0gZy5wKGEpXHJcbiAgICAgICAgICAgIGNvbnN0IGQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbiA9IHYoaClcclxuICAgICAgICAgICAgICAgIHJldHVybiBnLncobi5kYXRlKG4uZGF0ZSgpICsgTWF0aC5yb3VuZChlICogdCkpLCBoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjID09PSB1KSByZXR1cm4gdGhpcy5zZXQodSwgdGhpcy4kTSArIHQpXHJcbiAgICAgICAgICAgIGlmIChjID09PSBvKSByZXR1cm4gdGhpcy5zZXQobywgdGhpcy4keSArIHQpXHJcbiAgICAgICAgICAgIGlmIChjID09PSBpKSByZXR1cm4gZCgxKVxyXG4gICAgICAgICAgICBpZiAoYyA9PT0gcykgcmV0dXJuIGQoNylcclxuICAgICAgICAgICAgY29uc3QgJCA9IChmID0ge30sIGZbbl0gPSA2ZTQsIGZbcl0gPSAzNmU1LCBmW2VdID0gMWUzLCBmKVtjXSB8fCAxXHJcbiAgICAgICAgICAgIGNvbnN0IGwgPSB0aGlzLiRkLmdldFRpbWUoKSArIHQgKiAkXHJcbiAgICAgICAgICAgIHJldHVybiBnLncobCwgdGhpcylcclxuICAgICAgICB9LCAkLnN1YnRyYWN0ID0gZnVuY3Rpb24gKHQsIGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKC0xICogdCwgZSlcclxuICAgICAgICB9LCAkLmZvcm1hdCA9IGZ1bmN0aW9uICh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGUgPSB0aGlzXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHJldHVybiAnSW52YWxpZCBEYXRlJ1xyXG4gICAgICAgICAgICBjb25zdCBuID0gdCB8fCAnWVlZWS1NTS1ERFRISDptbTpzc1onXHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBnLnoodGhpcylcclxuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMuJGxvY2FsZSgpXHJcbiAgICAgICAgICAgIGNvbnN0IHMgPSB0aGlzLiRIXHJcbiAgICAgICAgICAgIGNvbnN0IHUgPSB0aGlzLiRtXHJcbiAgICAgICAgICAgIGNvbnN0IGEgPSB0aGlzLiRNXHJcbiAgICAgICAgICAgIGNvbnN0IG8gPSBpLndlZWtkYXlzXHJcbiAgICAgICAgICAgIGNvbnN0IGYgPSBpLm1vbnRoc1xyXG4gICAgICAgICAgICBjb25zdCBoID0gZnVuY3Rpb24gKHQsIHIsIGksIHMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0ICYmICh0W3JdIHx8IHQoZSwgbikpIHx8IGlbcl0uc3Vic3RyKDAsIHMpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZCA9IGZ1bmN0aW9uICh0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZy5zKHMgJSAxMiB8fCAxMiwgdCwgJzAnKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0ICQgPSBpLm1lcmlkaWVtIHx8IGZ1bmN0aW9uICh0LCBlLCBuKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByID0gdCA8IDEyID8gJ0FNJyA6ICdQTSdcclxuICAgICAgICAgICAgICAgIHJldHVybiBuID8gci50b0xvd2VyQ2FzZSgpIDogclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGwgPSB7XHJcbiAgICAgICAgICAgICAgICBZWTogU3RyaW5nKHRoaXMuJHkpLnNsaWNlKC0yKSxcclxuICAgICAgICAgICAgICAgIFlZWVk6IHRoaXMuJHksXHJcbiAgICAgICAgICAgICAgICBNOiBhICsgMSxcclxuICAgICAgICAgICAgICAgIE1NOiBnLnMoYSArIDEsIDIsICcwJyksXHJcbiAgICAgICAgICAgICAgICBNTU06IGgoaS5tb250aHNTaG9ydCwgYSwgZiwgMyksXHJcbiAgICAgICAgICAgICAgICBNTU1NOiBoKGYsIGEpLFxyXG4gICAgICAgICAgICAgICAgRDogdGhpcy4kRCxcclxuICAgICAgICAgICAgICAgIEREOiBnLnModGhpcy4kRCwgMiwgJzAnKSxcclxuICAgICAgICAgICAgICAgIGQ6IFN0cmluZyh0aGlzLiRXKSxcclxuICAgICAgICAgICAgICAgIGRkOiBoKGkud2Vla2RheXNNaW4sIHRoaXMuJFcsIG8sIDIpLFxyXG4gICAgICAgICAgICAgICAgZGRkOiBoKGkud2Vla2RheXNTaG9ydCwgdGhpcy4kVywgbywgMyksXHJcbiAgICAgICAgICAgICAgICBkZGRkOiBvW3RoaXMuJFddLFxyXG4gICAgICAgICAgICAgICAgSDogU3RyaW5nKHMpLFxyXG4gICAgICAgICAgICAgICAgSEg6IGcucyhzLCAyLCAnMCcpLFxyXG4gICAgICAgICAgICAgICAgaDogZCgxKSxcclxuICAgICAgICAgICAgICAgIGhoOiBkKDIpLFxyXG4gICAgICAgICAgICAgICAgYTogJChzLCB1LCAhMCksXHJcbiAgICAgICAgICAgICAgICBBOiAkKHMsIHUsICExKSxcclxuICAgICAgICAgICAgICAgIG06IFN0cmluZyh1KSxcclxuICAgICAgICAgICAgICAgIG1tOiBnLnModSwgMiwgJzAnKSxcclxuICAgICAgICAgICAgICAgIHM6IFN0cmluZyh0aGlzLiRzKSxcclxuICAgICAgICAgICAgICAgIHNzOiBnLnModGhpcy4kcywgMiwgJzAnKSxcclxuICAgICAgICAgICAgICAgIFNTUzogZy5zKHRoaXMuJG1zLCAzLCAnMCcpLFxyXG4gICAgICAgICAgICAgICAgWjogclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBuLnJlcGxhY2UoYywgKHQsIGUpID0+IGUgfHwgbFt0XSB8fCByLnJlcGxhY2UoJzonLCAnJykpXHJcbiAgICAgICAgfSwgJC51dGNPZmZzZXQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxNSAqIC1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDE1KVxyXG4gICAgICAgIH0sICQuZGlmZiA9IGZ1bmN0aW9uICh0LCBmLCBoKSB7XHJcbiAgICAgICAgICAgIGxldCBjOyBjb25zdCBkID0gZy5wKGYpXHJcbiAgICAgICAgICAgIGNvbnN0ICQgPSB2KHQpXHJcbiAgICAgICAgICAgIGNvbnN0IGwgPSA2ZTQgKiAoJC51dGNPZmZzZXQoKSAtIHRoaXMudXRjT2Zmc2V0KCkpXHJcbiAgICAgICAgICAgIGNvbnN0IHkgPSB0aGlzIC0gJFxyXG4gICAgICAgICAgICBsZXQgTSA9IGcubSh0aGlzLCAkKVxyXG4gICAgICAgICAgICByZXR1cm4gTSA9IChjID0ge30sIGNbb10gPSBNIC8gMTIsIGNbdV0gPSBNLCBjW2FdID0gTSAvIDMsIGNbc10gPSAoeSAtIGwpIC8gNjA0OGU1LCBjW2ldID0gKHkgLSBsKSAvIDg2NGU1LCBjW3JdID1cdFx0XHRcdFx0eSAvIDM2ZTUsIGNbbl0gPSB5IC8gNmU0LCBjW2VdID0geSAvIDFlMywgYylbZF0gfHwgeSwgaCA/IE0gOiBnLmEoTSlcclxuICAgICAgICB9LCAkLmRheXNJbk1vbnRoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbmRPZih1KS4kRFxyXG4gICAgICAgIH0sICQuJGxvY2FsZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1bdGhpcy4kTF1cclxuICAgICAgICB9LCAkLmxvY2FsZSA9IGZ1bmN0aW9uICh0LCBlKSB7XHJcbiAgICAgICAgICAgIGlmICghdCkgcmV0dXJuIHRoaXMuJExcclxuICAgICAgICAgICAgY29uc3QgbiA9IHRoaXMuY2xvbmUoKVxyXG4gICAgICAgICAgICBjb25zdCByID0gRCh0LCBlLCAhMClcclxuICAgICAgICAgICAgcmV0dXJuIHIgJiYgKG4uJEwgPSByKSwgblxyXG4gICAgICAgIH0sICQuY2xvbmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBnLncodGhpcy4kZCwgdGhpcylcclxuICAgICAgICB9LCAkLnRvRGF0ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKVxyXG4gICAgICAgIH0sICQudG9KU09OID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLnRvSVNPU3RyaW5nKCkgOiBudWxsXHJcbiAgICAgICAgfSwgJC50b0lTT1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGQudG9JU09TdHJpbmcoKVxyXG4gICAgICAgIH0sICQudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLiRkLnRvVVRDU3RyaW5nKClcclxuICAgICAgICB9LCBkXHJcbiAgICB9KCkpXHJcbiAgICBjb25zdCBwID0gUy5wcm90b3R5cGVcclxuICAgIHJldHVybiB2LnByb3RvdHlwZSA9IHAsIFtcclxuICAgICAgICBbJyRtcycsIHRdLFxyXG4gICAgICAgIFsnJHMnLCBlXSxcclxuICAgICAgICBbJyRtJywgbl0sXHJcbiAgICAgICAgWyckSCcsIHJdLFxyXG4gICAgICAgIFsnJFcnLCBpXSxcclxuICAgICAgICBbJyRNJywgdV0sXHJcbiAgICAgICAgWyckeScsIG9dLFxyXG4gICAgICAgIFsnJEQnLCBmXVxyXG4gICAgXS5mb3JFYWNoKCh0KSA9PiB7XHJcbiAgICAgICAgcFt0WzFdXSA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLiRnKGUsIHRbMF0sIHRbMV0pXHJcbiAgICAgICAgfVxyXG4gICAgfSksIHYuZXh0ZW5kID0gZnVuY3Rpb24gKHQsIGUpIHtcclxuICAgICAgICByZXR1cm4gdC4kaSB8fCAodChlLCBTLCB2KSwgdC4kaSA9ICEwKSwgdlxyXG4gICAgfSwgdi5sb2NhbGUgPSBELCB2LmlzRGF5anMgPSBtLCB2LnVuaXggPSBmdW5jdGlvbiAodCkge1xyXG4gICAgICAgIHJldHVybiB2KDFlMyAqIHQpXHJcbiAgICB9LCB2LmVuID0gTVt5XSwgdi5McyA9IE0sIHYucCA9IHt9LCB2XHJcbn0pKVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///166\n"); /***/ }), /* 167 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/xcrw/index.vue?vue&type=script&lang=js&mpType=page ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 168);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRpQixDQUFnQixza0JBQUcsRUFBQyIsImZpbGUiOiIxNjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///167\n"); /***/ }), /* 168 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/xcrw/index.vue?vue&type=script&lang=js&mpType=page ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 169));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _moment = _interopRequireDefault(__webpack_require__(/*! moment */ 173));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar stm = (0, _moment.default)().subtract(7, 'months').add(1, 'hour').set({\n minute: 0,\n second: 0\n}).format(\"YYYY-MM-DD\");\nvar etm = (0, _moment.default)().add(1, 'hour').set({\n minute: 0,\n second: 0\n}).format(\"YYYY-MM-DD\");\nvar _default = {\n data: function data() {\n return {\n startTime: stm,\n endTime: etm,\n stm: stm,\n etm: etm,\n showTime: false,\n showTime1: false,\n list: []\n };\n },\n mounted: function mounted() {\n this.getData();\n },\n methods: {\n searchHandle: function searchHandle() {\n this.getData();\n },\n handleStartTime: function handleStartTime(e) {\n var time = (0, _moment.default)(e.value).format(\"YYYY-MM-DD HH:mm\");\n this.stm = time;\n this.showTime = false;\n },\n handleEndTime: function handleEndTime(e) {\n var time = (0, _moment.default)(e.value).format(\"YYYY-MM-DD HH:mm\");\n this.etm = time;\n this.showTime1 = false;\n },\n getData: function getData() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var _uni$getStorageSync;\n var userId, params, res;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n userId = (_uni$getStorageSync = uni.getStorageSync('value')) === null || _uni$getStorageSync === void 0 ? void 0 : _uni$getStorageSync.userId;\n params = {\n dateRangeSo: {\n start: (0, _moment.default)(_this.stm).format(\"YYYY-MM-DD\"),\n end: (0, _moment.default)(_this.etm).format(\"YYYY-MM-DD\")\n },\n inspectUserId: userId,\n statusList: [0, 1]\n };\n _context.prev = 2;\n _context.next = 5;\n return uni.$http.post(\"/gunshiApp/xyt/inspect/task/list\", params);\n case 5:\n res = _context.sent;\n _this.list = (0, _toConsumableArray2.default)(res.data.data);\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](2);\n uni.$showMsg();\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 9]]);\n }))();\n },\n toDetail: function toDetail(record) {\n uni.navigateTo({\n url: \"/pages/xcrw/detail/index?taskTitle=\".concat(record.taskTitle, \"&taskType=\").concat(record.taskType, \"&taskContent=\").concat(record.taskContent, \"&startDate=\").concat(record.startDate, \"&endDate=\").concat(record.endDate, \"&status=\").concat(record.status, \"&id=\").concat(record.id)\n });\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMveGNydy9pbmRleC52dWUiXSwibmFtZXMiOlsibWludXRlIiwic2Vjb25kIiwiZGF0YSIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJzdG0iLCJldG0iLCJzaG93VGltZSIsInNob3dUaW1lMSIsImxpc3QiLCJtb3VudGVkIiwibWV0aG9kcyIsInNlYXJjaEhhbmRsZSIsImhhbmRsZVN0YXJ0VGltZSIsImhhbmRsZUVuZFRpbWUiLCJnZXREYXRhIiwidXNlcklkIiwicGFyYW1zIiwiZGF0ZVJhbmdlU28iLCJzdGFydCIsImVuZCIsImluc3BlY3RVc2VySWQiLCJzdGF0dXNMaXN0IiwidW5pIiwicmVzIiwidG9EZXRhaWwiLCJ1cmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFrRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtFQUFBQTtFQUFBQztBQUFBO0FBQ0E7RUFBQUQ7RUFBQUM7QUFBQTtBQUFBLGVBQ0E7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUNBQztnQkFDQUM7a0JBQ0FDO29CQUNBQztvQkFDQUM7a0JBQ0E7a0JBQ0FDO2tCQUNBQztnQkFDQTtnQkFBQTtnQkFBQTtnQkFBQSxPQUVBQztjQUFBO2dCQUFBQztnQkFDQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUVBRDtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUVBO0lBQ0FFO01BQ0FGO1FBQ0FHO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIxNjguanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgOnN0eWxlPVwie2hlaWdodDonMTAwdmgnLG92ZXJmbG93OidoaWRkZW4nfVwiPlxyXG5cdFx0PHUtc3RhdHVzLWJhcj48L3Utc3RhdHVzLWJhcj5cclxuXHRcdDx1LW5hdmJhciB0aXRsZT1cIuW3oeafpeS7u+WKoVwiIDphdXRvQmFjaz1cInRydWVcIiA6dGl0bGVTdHlsZT1cIntcclxuXHRcdFx0XHRmb250U2l6ZTonMThweCdcclxuXHRcdFx0fVwiIDpoZWlnaHQ9JzQ0JyA6c2FmZUFyZWFJbnNldFRvcD10cnVlIGxlZnRJY29uU2l6ZT0nMjAnIGxlZnRJY29uQ29sb3I9J3JnYigxNTMsIDE1MywgMTUzKSc+XHJcblx0XHQ8L3UtbmF2YmFyPlxyXG5cdFx0PHZpZXcgc3R5bGU9XCJwYWRkaW5nOjAgMTBweDsgbWFyZ2luLXRvcDo1MHB4XCI+XHJcblx0XHRcdDx2aWV3IGNsYXNzPVwidGltZS1yYW5nZXJcIiA+XHJcbiAgICBcdFx0ICAgIDx2aWV3IGNsYXNzPVwic3RhcnQtdGltZVwiPlxyXG4gICAgXHRcdCAgICA8dGV4dD7lvIDlp4vml7bpl7Q8L3RleHQ+XHJcbiAgICBcdFx0ICAgIDx0ZXh0IEBjbGljaz1cInNob3dUaW1lPXRydWVcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjE1JTtjb2xvcjojMzM5OWVmXCI+e3tzdG19fTwvdGV4dD5cclxuICAgIFx0XHQgIDwvdmlldz5cclxuICAgIFx0XHQgIDx2aWV3IGNsYXNzPVwiZW5kLXRpbWVcIj5cclxuICAgIFx0XHQgICAgPHRleHQ+57uT5p2f5pe26Ze0PC90ZXh0PlxyXG4gICAgXHRcdCAgICA8dGV4dCBAY2xpY2s9XCJzaG93VGltZTE9dHJ1ZVwiIHN0eWxlPVwibWFyZ2luOjAgMTUlO2NvbG9yOiMzMzk5ZWZcIj57e2V0bX19PC90ZXh0PlxyXG4gICAgXHRcdCAgICAgPHZpZXcgY2xhc3M9XCJzZWFyY2gtYnRuXCIgQGNsaWNrPVwic2VhcmNoSGFuZGxlXCI+XHJcbiAgICBcdFx0ICAgICAg5pCc57SiXHJcbiAgICBcdFx0ICAgIDwvdmlldz5cclxuICAgIFx0XHQgIDwvdmlldz5cclxuXHJcbiAgICAgICAgPC92aWV3PlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHYtZm9yPVwiKGl0ZW0saSkgaW4gbGlzdFwiIDprZXk9XCJpXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO21hcmdpbi10b3A6MTBweDtcIj5cclxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cclxuXHRcdFx0XHRcdDwhLS0ge3tpdGVtLnRpdGxlfX0gLS0+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7aXRlbS50YXNrVGl0bGV9fVxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVJpZ2h0XCIgQGNsaWNrPVwidG9EZXRhaWwoaXRlbSlcIj5cclxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJib3JkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7e2l0ZW0uc3RhdHVzID09IDEgPyBcIue7p+e7reS7u+WKoVwiOiBcIuW8gOWni+S7u+WKoVwiIH19XHJcblx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PHUtaWNvbiBuYW1lPVwiYXJyb3ctcmlnaHRcIiAgc2l6ZT1cIjIwXCI+PC91LWljb24+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudEl0ZW1cIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbUNcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQ+5byA5aeL5pel5pyfPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8dGV4dD57e2l0ZW0uc3RhcnREYXRlfX08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1DXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0Pue7k+adn+aXpeacnzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PHRleHQ+e3tpdGVtLmVuZERhdGV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDwvdmlldz5cclxuXHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQgIDx1LWRhdGV0aW1lLXBpY2tlclxyXG4gICAgICAgICAgICAgICAgOnNob3c9XCJzaG93VGltZVwiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwic3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgIG1vZGU9XCJkYXRldGltZVwiXHJcbiAgICAgICAgICAgICAgICBAY29uZmlybT1cImhhbmRsZVN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICBAY2FuY2VsPVwic2hvd1RpbWU9ZmFsc2VcIlxyXG4gICAgICAgID48L3UtZGF0ZXRpbWUtcGlja2VyPlxyXG4gICAgICAgICA8dS1kYXRldGltZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIDpzaG93PVwic2hvd1RpbWUxXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJlbmRUaW1lXCJcclxuICAgICAgICAgICAgICAgIG1vZGU9XCJkYXRldGltZVwiXHJcbiAgICAgICAgICAgICAgICBAY29uZmlybT1cImhhbmRsZUVuZFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgQGNhbmNlbD1cInNob3dUaW1lMT1mYWxzZVwiXHJcbiAgICAgICAgPjwvdS1kYXRldGltZS1waWNrZXI+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcclxuICAgIGNvbnN0IHN0bSA9IG1vbWVudCgpLnN1YnRyYWN0KDcsICdtb250aHMnKS5hZGQoMSwgJ2hvdXInKS5zZXQoe21pbnV0ZTogMCwgc2Vjb25kOiAwfSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuICAgIGNvbnN0IGV0bSA9ICBtb21lbnQoKS5hZGQoMSwgJ2hvdXInKS5zZXQoe21pbnV0ZTogMCwgc2Vjb25kOiAwfSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdCAgc3RhcnRUaW1lOnN0bSxcclxuICAgIFx0XHQgICAgICBlbmRUaW1lOmV0bSxcclxuICAgIFx0XHQgICAgICBzdG0sXHJcbiAgICBcdFx0ICAgICAgZXRtLFxyXG4gICAgXHRcdCAgICAgIHNob3dUaW1lOmZhbHNlLFxyXG4gICAgXHRcdCAgICAgIHNob3dUaW1lMTpmYWxzZSxcclxuXHRcdFx0XHQgIGxpc3Q6IFtdXHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0dGhpcy5nZXREYXRhKClcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdFx0c2VhcmNoSGFuZGxlKCl7XHJcbiAgICBcdFx0XHQgICAgIHRoaXMuZ2V0RGF0YSgpXHJcbiAgICAgXHRcdCAgIH0sXHJcblx0XHRcdCAgICBoYW5kbGVTdGFydFRpbWUoZSl7XHJcbiAgICBcdFx0XHRcdCAgICBsZXQgdGltZSA9IG1vbWVudChlLnZhbHVlKS5mb3JtYXQoXCJZWVlZLU1NLUREIEhIOm1tXCIpXHJcbiAgICBcdFx0XHRcdCAgICB0aGlzLnN0bSA9IHRpbWVcclxuICAgIFx0XHRcdFx0ICAgIHRoaXMuc2hvd1RpbWUgPSBmYWxzZVxyXG4gICAgXHRcdFx0XHQgIH0sIFxyXG4gICAgXHRcdFx0XHQgIGhhbmRsZUVuZFRpbWUoZSl7XHJcbiAgICBcdFx0XHRcdCAgICAgbGV0IHRpbWUgPSBtb21lbnQoZS52YWx1ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERCBISDptbVwiKVxyXG4gICAgXHRcdFx0XHQgICAgIHRoaXMuZXRtID0gdGltZTtcclxuICAgIFx0XHRcdFx0ICAgIHRoaXMuc2hvd1RpbWUxID0gZmFsc2VcclxuICAgIFx0XHRcdFx0ICB9LFxyXG5cdFx0XHRcclxuXHRcdFx0YXN5bmMgZ2V0RGF0YSgpe1xyXG5cdFx0XHRcdGNvbnN0IHVzZXJJZCA9IHVuaS5nZXRTdG9yYWdlU3luYygndmFsdWUnKT8udXNlcklkXHJcblx0XHRcdFx0Y29uc3QgcGFyYW1zID0ge1xyXG5cdFx0XHRcdFx0ZGF0ZVJhbmdlU286e1xyXG5cdFx0XHRcdFx0XHRzdGFydDptb21lbnQodGhpcy5zdG0pLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDptb21lbnQodGhpcy5ldG0pLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0aW5zcGVjdFVzZXJJZDp1c2VySWQsXHJcblx0XHRcdFx0XHRzdGF0dXNMaXN0OlswLDFdXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRjb25zdCByZXMgPSBhd2FpdCB1bmkuJGh0dHAucG9zdChcIi9ndW5zaGlBcHAveHl0L2luc3BlY3QvdGFzay9saXN0XCIscGFyYW1zKVxyXG5cdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSBbLi4ucmVzLmRhdGEuZGF0YV07XHJcblx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRcdHVuaS4kc2hvd01zZygpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dG9EZXRhaWwocmVjb3JkKXtcclxuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0XHR1cmw6YC9wYWdlcy94Y3J3L2RldGFpbC9pbmRleD90YXNrVGl0bGU9JHtyZWNvcmQudGFza1RpdGxlfSZ0YXNrVHlwZT0ke3JlY29yZC50YXNrVHlwZX0mdGFza0NvbnRlbnQ9JHtyZWNvcmQudGFza0NvbnRlbnR9JnN0YXJ0RGF0ZT0ke3JlY29yZC5zdGFydERhdGV9JmVuZERhdGU9JHtyZWNvcmQuZW5kRGF0ZX0mc3RhdHVzPSR7cmVjb3JkLnN0YXR1c30maWQ9JHtyZWNvcmQuaWR9YFxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG4gICAgLnRpbWUtcmFuZ2Vye1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAuc3RhcnQtdGltZSwgLmVuZC10aW1le1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBwYWRkaW5nOiAxMHB4IDA7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGZkZmRmO1xyXG4gICAgfVxyXG4gICAgLnNlYXJjaC1idG57XHJcbiAgICAgIG1hcmdpbjogM3B4IDAgMCA1cHg7XHJcbiAgICAgIC8vIGNvbG9yOiAjMzM5OWVmO1xyXG4gICAgfVxyXG4gIH1cclxuXHQubXlUaXRsZVN0eWxlIHtcclxuXHRcdGZvbnQtc2l6ZTogMzBweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuXHRcdGhlaWdodDogMjAwcHg7XHJcblx0fVxyXG5cclxuXHQudGFic0NsYXNzIHtcclxuXHRcdG1hcmdpbi10b3A6IDQ0cHg7XHJcblx0XHRoZWlnaHQ6IDQ0cHg7XHJcblx0XHRwYWRkaW5nOiAwIDQwcHg7XHJcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcclxuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xyXG5cdH1cclxuXHJcblx0Lml0ZW0ge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblxyXG5cdFx0LnRpdGxlIHtcclxuXHRcdFx0Ym9yZGVyLXdpZHRoOiAwcHg7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiAn5b6u6L2v6ZuF6buRIEJvbGQnLCAn5b6u6L2v6ZuF6buRIFJlZ3VsYXInLCAn5b6u6L2v6ZuF6buRJywgc2Fucy1zZXJpZjtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xyXG5cdFx0XHRmb250LXNpemU6IDE1cHg7XHJcblx0XHRcdGNvbG9yOiAjNjY2NjY2XHJcblx0XHR9XHJcblxyXG5cdFx0LnRpdGxlUmlnaHQge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHQuYm9yZGVyIHtcclxuXHRcdFx0XHRib3JkZXItd2lkdGg6IDBweDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgMjQ1LCAyNTUsIDEpO1xyXG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAxcHg7XHJcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHRcdFx0XHRib3JkZXItY29sb3I6IHJnYmEoMTg3LCAyMjAsIDI1NSwgMSk7XHJcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xyXG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XHJcblx0XHRcdFx0d2lkdGg6IDc1cHg7XHJcblx0XHRcdFx0aGVpZ2h0OiAyNXB4O1xyXG5cdFx0XHRcdGNvbG9yOiAjNjg5RkZGO1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblx0LmNvbnRlbnRJdGVte1xyXG5cdFx0Lml0ZW1De1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGNvbG9yOiAjNjY2NjY2O1xyXG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///168\n"); /***/ }), /* 169 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ 170); var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ 171); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 162); var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ 172); function _toConsumableArray(arr) { return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); } module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 170 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 163); function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return arrayLikeToArray(arr); } module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 171 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 172 */ /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 173 */ /*!**************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/moment.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(__f__, module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var require;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js //! version : 2.30.1 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function () { 'use strict'; var hookCallback; function hooks() { return hookCallback.apply(null, arguments); } // This is done to register the method called with moment() // without creating circular dependencies. function setHookCallback(callback) { hookCallback = callback; } function isArray(input) { return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; } function isObject(input) { // IE8 will treat undefined and null as object if it wasn't for // input != null return input != null && Object.prototype.toString.call(input) === '[object Object]'; } function hasOwnProp(a, b) { return Object.prototype.hasOwnProperty.call(a, b); } function isObjectEmpty(obj) { if (Object.getOwnPropertyNames) { return Object.getOwnPropertyNames(obj).length === 0; } else { var k; for (k in obj) { if (hasOwnProp(obj, k)) { return false; } } return true; } } function isUndefined(input) { return input === void 0; } function isNumber(input) { return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; } function isDate(input) { return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; } function map(arr, fn) { var res = [], i, arrLen = arr.length; for (i = 0; i < arrLen; ++i) { res.push(fn(arr[i], i)); } return res; } function extend(a, b) { for (var i in b) { if (hasOwnProp(b, i)) { a[i] = b[i]; } } if (hasOwnProp(b, 'toString')) { a.toString = b.toString; } if (hasOwnProp(b, 'valueOf')) { a.valueOf = b.valueOf; } return a; } function createUTC(input, format, locale, strict) { return createLocalOrUTC(input, format, locale, strict, true).utc(); } function defaultParsingFlags() { // We need to deep clone this object. return { empty: false, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: false, invalidEra: null, invalidMonth: null, invalidFormat: false, userInvalidated: false, iso: false, parsedDateParts: [], era: null, meridiem: null, rfc2822: false, weekdayMismatch: false }; } function getParsingFlags(m) { if (m._pf == null) { m._pf = defaultParsingFlags(); } return m._pf; } var some; if (Array.prototype.some) { some = Array.prototype.some; } else { some = function some(fun) { var t = Object(this), len = t.length >>> 0, i; for (i = 0; i < len; i++) { if (i in t && fun.call(this, t[i], i, t)) { return true; } } return false; }; } function isValid(m) { var flags = null, parsedParts = false, isNowValid = m._d && !isNaN(m._d.getTime()); if (isNowValid) { flags = getParsingFlags(m); parsedParts = some.call(flags.parsedDateParts, function (i) { return i != null; }); isNowValid = flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts); if (m._strict) { isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined; } } if (Object.isFrozen == null || !Object.isFrozen(m)) { m._isValid = isNowValid; } else { return isNowValid; } return m._isValid; } function createInvalid(flags) { var m = createUTC(NaN); if (flags != null) { extend(getParsingFlags(m), flags); } else { getParsingFlags(m).userInvalidated = true; } return m; } // Plugins that add properties should also add the key here (null value), // so we can properly clone ourselves. var momentProperties = hooks.momentProperties = [], updateInProgress = false; function copyConfig(to, from) { var i, prop, val, momentPropertiesLen = momentProperties.length; if (!isUndefined(from._isAMomentObject)) { to._isAMomentObject = from._isAMomentObject; } if (!isUndefined(from._i)) { to._i = from._i; } if (!isUndefined(from._f)) { to._f = from._f; } if (!isUndefined(from._l)) { to._l = from._l; } if (!isUndefined(from._strict)) { to._strict = from._strict; } if (!isUndefined(from._tzm)) { to._tzm = from._tzm; } if (!isUndefined(from._isUTC)) { to._isUTC = from._isUTC; } if (!isUndefined(from._offset)) { to._offset = from._offset; } if (!isUndefined(from._pf)) { to._pf = getParsingFlags(from); } if (!isUndefined(from._locale)) { to._locale = from._locale; } if (momentPropertiesLen > 0) { for (i = 0; i < momentPropertiesLen; i++) { prop = momentProperties[i]; val = from[prop]; if (!isUndefined(val)) { to[prop] = val; } } } return to; } // Moment prototype object function Moment(config) { copyConfig(this, config); this._d = new Date(config._d != null ? config._d.getTime() : NaN); if (!this.isValid()) { this._d = new Date(NaN); } // Prevent infinite loop in case updateOffset creates new moment // objects. if (updateInProgress === false) { updateInProgress = true; hooks.updateOffset(this); updateInProgress = false; } } function isMoment(obj) { return obj instanceof Moment || obj != null && obj._isAMomentObject != null; } function warn(msg) { if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) { __f__("warn", 'Deprecation warning: ' + msg, " at node_modules/moment/moment.js:287"); } } function deprecate(msg, fn) { var firstTime = true; return extend(function () { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(null, msg); } if (firstTime) { var args = [], arg, i, key, argLen = arguments.length; for (i = 0; i < argLen; i++) { arg = ''; if (_typeof(arguments[i]) === 'object') { arg += '\n[' + i + '] '; for (key in arguments[0]) { if (hasOwnProp(arguments[0], key)) { arg += key + ': ' + arguments[0][key] + ', '; } } arg = arg.slice(0, -2); // Remove trailing comma and space } else { arg = arguments[i]; } args.push(arg); } warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + new Error().stack); firstTime = false; } return fn.apply(this, arguments); }, fn); } var deprecations = {}; function deprecateSimple(name, msg) { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(name, msg); } if (!deprecations[name]) { warn(msg); deprecations[name] = true; } } hooks.suppressDeprecationWarnings = false; hooks.deprecationHandler = null; function isFunction(input) { return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; } function set(config) { var prop, i; for (i in config) { if (hasOwnProp(config, i)) { prop = config[i]; if (isFunction(prop)) { this[i] = prop; } else { this['_' + i] = prop; } } } this._config = config; // Lenient ordinal parsing accepts just a number in addition to // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. // TODO: Remove "ordinalParse" fallback in next major release. this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\d{1,2}/.source); } function mergeConfigs(parentConfig, childConfig) { var res = extend({}, parentConfig), prop; for (prop in childConfig) { if (hasOwnProp(childConfig, prop)) { if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { res[prop] = {}; extend(res[prop], parentConfig[prop]); extend(res[prop], childConfig[prop]); } else if (childConfig[prop] != null) { res[prop] = childConfig[prop]; } else { delete res[prop]; } } } for (prop in parentConfig) { if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) { // make sure changes to properties don't modify parent config res[prop] = extend({}, res[prop]); } } return res; } function Locale(config) { if (config != null) { this.set(config); } } var keys; if (Object.keys) { keys = Object.keys; } else { keys = function keys(obj) { var i, res = []; for (i in obj) { if (hasOwnProp(obj, i)) { res.push(i); } } return res; }; } var defaultCalendar = { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }; function calendar(key, mom, now) { var output = this._calendar[key] || this._calendar['sameElse']; return isFunction(output) ? output.call(mom, now) : output; } function zeroFill(number, targetLength, forceSign) { var absNumber = '' + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign = number >= 0; return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, formatFunctions = {}, formatTokenFunctions = {}; // token: 'M' // padded: ['MM', 2] // ordinal: 'Mo' // callback: function () { this.month() + 1 } function addFormatToken(token, padded, ordinal, callback) { var func = callback; if (typeof callback === 'string') { func = function func() { return this[callback](); }; } if (token) { formatTokenFunctions[token] = func; } if (padded) { formatTokenFunctions[padded[0]] = function () { return zeroFill(func.apply(this, arguments), padded[1], padded[2]); }; } if (ordinal) { formatTokenFunctions[ordinal] = function () { return this.localeData().ordinal(func.apply(this, arguments), token); }; } } function removeFormattingTokens(input) { if (input.match(/\[[\s\S]/)) { return input.replace(/^\[|\]$/g, ''); } return input.replace(/\\/g, ''); } function makeFormatFunction(format) { var array = format.match(formattingTokens), i, length; for (i = 0, length = array.length; i < length; i++) { if (formatTokenFunctions[array[i]]) { array[i] = formatTokenFunctions[array[i]]; } else { array[i] = removeFormattingTokens(array[i]); } } return function (mom) { var output = '', i; for (i = 0; i < length; i++) { output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; } return output; }; } // format date using native date object function formatMoment(m, format) { if (!m.isValid()) { return m.localeData().invalidDate(); } format = expandFormat(format, m.localeData()); formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); return formatFunctions[format](m); } function expandFormat(format, locale) { var i = 5; function replaceLongDateFormatTokens(input) { return locale.longDateFormat(input) || input; } localFormattingTokens.lastIndex = 0; while (i >= 0 && localFormattingTokens.test(format)) { format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); localFormattingTokens.lastIndex = 0; i -= 1; } return format; } var defaultLongDateFormat = { LTS: 'h:mm:ss A', LT: 'h:mm A', L: 'MM/DD/YYYY', LL: 'MMMM D, YYYY', LLL: 'MMMM D, YYYY h:mm A', LLLL: 'dddd, MMMM D, YYYY h:mm A' }; function longDateFormat(key) { var format = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()]; if (format || !formatUpper) { return format; } this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) { if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') { return tok.slice(1); } return tok; }).join(''); return this._longDateFormat[key]; } var defaultInvalidDate = 'Invalid date'; function invalidDate() { return this._invalidDate; } var defaultOrdinal = '%d', defaultDayOfMonthOrdinalParse = /\d{1,2}/; function ordinal(number) { return this._ordinal.replace('%d', number); } var defaultRelativeTime = { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', w: 'a week', ww: '%d weeks', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }; function relativeTime(number, withoutSuffix, string, isFuture) { var output = this._relativeTime[string]; return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number); } function pastFuture(diff, output) { var format = this._relativeTime[diff > 0 ? 'future' : 'past']; return isFunction(format) ? format(output) : format.replace(/%s/i, output); } var aliases = { D: 'date', dates: 'date', date: 'date', d: 'day', days: 'day', day: 'day', e: 'weekday', weekdays: 'weekday', weekday: 'weekday', E: 'isoWeekday', isoweekdays: 'isoWeekday', isoweekday: 'isoWeekday', DDD: 'dayOfYear', dayofyears: 'dayOfYear', dayofyear: 'dayOfYear', h: 'hour', hours: 'hour', hour: 'hour', ms: 'millisecond', milliseconds: 'millisecond', millisecond: 'millisecond', m: 'minute', minutes: 'minute', minute: 'minute', M: 'month', months: 'month', month: 'month', Q: 'quarter', quarters: 'quarter', quarter: 'quarter', s: 'second', seconds: 'second', second: 'second', gg: 'weekYear', weekyears: 'weekYear', weekyear: 'weekYear', GG: 'isoWeekYear', isoweekyears: 'isoWeekYear', isoweekyear: 'isoWeekYear', w: 'week', weeks: 'week', week: 'week', W: 'isoWeek', isoweeks: 'isoWeek', isoweek: 'isoWeek', y: 'year', years: 'year', year: 'year' }; function normalizeUnits(units) { return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; } function normalizeObjectUnits(inputObject) { var normalizedInput = {}, normalizedProp, prop; for (prop in inputObject) { if (hasOwnProp(inputObject, prop)) { normalizedProp = normalizeUnits(prop); if (normalizedProp) { normalizedInput[normalizedProp] = inputObject[prop]; } } } return normalizedInput; } var priorities = { date: 9, day: 11, weekday: 11, isoWeekday: 11, dayOfYear: 4, hour: 13, millisecond: 16, minute: 14, month: 8, quarter: 7, second: 15, weekYear: 1, isoWeekYear: 1, week: 5, isoWeek: 5, year: 1 }; function getPrioritizedUnits(unitsObj) { var units = [], u; for (u in unitsObj) { if (hasOwnProp(unitsObj, u)) { units.push({ unit: u, priority: priorities[u] }); } } units.sort(function (a, b) { return a.priority - b.priority; }); return units; } var match1 = /\d/, // 0 - 9 match2 = /\d\d/, // 00 - 99 match3 = /\d{3}/, // 000 - 999 match4 = /\d{4}/, // 0000 - 9999 match6 = /[+-]?\d{6}/, // -999999 - 999999 match1to2 = /\d\d?/, // 0 - 99 match3to4 = /\d\d\d\d?/, // 999 - 9999 match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 match1to3 = /\d{1,3}/, // 0 - 999 match1to4 = /\d{1,4}/, // 0 - 9999 match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 matchUnsigned = /\d+/, // 0 - inf matchSigned = /[+-]?\d+/, // -inf - inf matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 // any word (or two) characters or numbers including two/three word month in arabic. // includes scottish gaelic two word and hyphenated months matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99 match1to2HasZero = /^([1-9]\d|\d)/, // 0-99 regexes; regexes = {}; function addRegexToken(token, regex, strictRegex) { regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { return isStrict && strictRegex ? strictRegex : regex; }; } function getParseRegexForToken(token, config) { if (!hasOwnProp(regexes, token)) { return new RegExp(unescapeFormat(token)); } return regexes[token](config._strict, config._locale); } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript function unescapeFormat(s) { return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { return p1 || p2 || p3 || p4; })); } function regexEscape(s) { return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); } function absFloor(number) { if (number < 0) { // -0 -> 0 return Math.ceil(number) || 0; } else { return Math.floor(number); } } function toInt(argumentForCoercion) { var coercedNumber = +argumentForCoercion, value = 0; if (coercedNumber !== 0 && isFinite(coercedNumber)) { value = absFloor(coercedNumber); } return value; } var tokens = {}; function addParseToken(token, callback) { var i, func = callback, tokenLen; if (typeof token === 'string') { token = [token]; } if (isNumber(callback)) { func = function func(input, array) { array[callback] = toInt(input); }; } tokenLen = token.length; for (i = 0; i < tokenLen; i++) { tokens[token[i]] = func; } } function addWeekParseToken(token, callback) { addParseToken(token, function (input, array, config, token) { config._w = config._w || {}; callback(input, config._w, config, token); }); } function addTimeToArrayFromToken(token, input, config) { if (input != null && hasOwnProp(tokens, token)) { tokens[token](input, config._a, config, token); } } function isLeapYear(year) { return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; } var YEAR = 0, MONTH = 1, DATE = 2, HOUR = 3, MINUTE = 4, SECOND = 5, MILLISECOND = 6, WEEK = 7, WEEKDAY = 8; // FORMATTING addFormatToken('Y', 0, 0, function () { var y = this.year(); return y <= 9999 ? zeroFill(y, 4) : '+' + y; }); addFormatToken(0, ['YY', 2], 0, function () { return this.year() % 100; }); addFormatToken(0, ['YYYY', 4], 0, 'year'); addFormatToken(0, ['YYYYY', 5], 0, 'year'); addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // PARSING addRegexToken('Y', matchSigned); addRegexToken('YY', match1to2, match2); addRegexToken('YYYY', match1to4, match4); addRegexToken('YYYYY', match1to6, match6); addRegexToken('YYYYYY', match1to6, match6); addParseToken(['YYYYY', 'YYYYYY'], YEAR); addParseToken('YYYY', function (input, array) { array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); }); addParseToken('YY', function (input, array) { array[YEAR] = hooks.parseTwoDigitYear(input); }); addParseToken('Y', function (input, array) { array[YEAR] = parseInt(input, 10); }); // HELPERS function daysInYear(year) { return isLeapYear(year) ? 366 : 365; } // HOOKS hooks.parseTwoDigitYear = function (input) { return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); }; // MOMENTS var getSetYear = makeGetSet('FullYear', true); function getIsLeapYear() { return isLeapYear(this.year()); } function makeGetSet(unit, keepTime) { return function (value) { if (value != null) { set$1(this, unit, value); hooks.updateOffset(this, keepTime); return this; } else { return get(this, unit); } }; } function get(mom, unit) { if (!mom.isValid()) { return NaN; } var d = mom._d, isUTC = mom._isUTC; switch (unit) { case 'Milliseconds': return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); case 'Seconds': return isUTC ? d.getUTCSeconds() : d.getSeconds(); case 'Minutes': return isUTC ? d.getUTCMinutes() : d.getMinutes(); case 'Hours': return isUTC ? d.getUTCHours() : d.getHours(); case 'Date': return isUTC ? d.getUTCDate() : d.getDate(); case 'Day': return isUTC ? d.getUTCDay() : d.getDay(); case 'Month': return isUTC ? d.getUTCMonth() : d.getMonth(); case 'FullYear': return isUTC ? d.getUTCFullYear() : d.getFullYear(); default: return NaN; // Just in case } } function set$1(mom, unit, value) { var d, isUTC, year, month, date; if (!mom.isValid() || isNaN(value)) { return; } d = mom._d; isUTC = mom._isUTC; switch (unit) { case 'Milliseconds': return void (isUTC ? d.setUTCMilliseconds(value) : d.setMilliseconds(value)); case 'Seconds': return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); case 'Minutes': return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); case 'Hours': return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); case 'Date': return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); // case 'Day': // Not real // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); // case 'Month': // Not used because we need to pass two variables // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); case 'FullYear': break; // See below ... default: return; // Just in case } year = value; month = mom.month(); date = mom.date(); date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; void (isUTC ? d.setUTCFullYear(year, month, date) : d.setFullYear(year, month, date)); } // MOMENTS function stringGet(units) { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](); } return this; } function stringSet(units, value) { if (_typeof(units) === 'object') { units = normalizeObjectUnits(units); var prioritized = getPrioritizedUnits(units), i, prioritizedLen = prioritized.length; for (i = 0; i < prioritizedLen; i++) { this[prioritized[i].unit](units[prioritized[i].unit]); } } else { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](value); } } return this; } function mod(n, x) { return (n % x + x) % x; } var indexOf; if (Array.prototype.indexOf) { indexOf = Array.prototype.indexOf; } else { indexOf = function indexOf(o) { // I know var i; for (i = 0; i < this.length; ++i) { if (this[i] === o) { return i; } } return -1; }; } function daysInMonth(year, month) { if (isNaN(year) || isNaN(month)) { return NaN; } var modMonth = mod(month, 12); year += (month - modMonth) / 12; return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2; } // FORMATTING addFormatToken('M', ['MM', 2], 'Mo', function () { return this.month() + 1; }); addFormatToken('MMM', 0, 0, function (format) { return this.localeData().monthsShort(this, format); }); addFormatToken('MMMM', 0, 0, function (format) { return this.localeData().months(this, format); }); // PARSING addRegexToken('M', match1to2, match1to2NoLeadingZero); addRegexToken('MM', match1to2, match2); addRegexToken('MMM', function (isStrict, locale) { return locale.monthsShortRegex(isStrict); }); addRegexToken('MMMM', function (isStrict, locale) { return locale.monthsRegex(isStrict); }); addParseToken(['M', 'MM'], function (input, array) { array[MONTH] = toInt(input) - 1; }); addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid. if (month != null) { array[MONTH] = month; } else { getParsingFlags(config).invalidMonth = input; } }); // LOCALES var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, defaultMonthsShortRegex = matchWord, defaultMonthsRegex = matchWord; function localeMonths(m, format) { if (!m) { return isArray(this._months) ? this._months : this._months['standalone']; } return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; } function localeMonthsShort(m, format) { if (!m) { return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone']; } return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; } function handleStrictParse(monthName, format, strict) { var i, ii, mom, llc = monthName.toLocaleLowerCase(); if (!this._monthsParse) { // this is not used this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; for (i = 0; i < 12; ++i) { mom = createUTC([2000, i]); this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); } } if (strict) { if (format === 'MMM') { ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } } else { if (format === 'MMM') { ii = indexOf.call(this._shortMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } } } function localeMonthsParse(monthName, format, strict) { var i, mom, regex; if (this._monthsParseExact) { return handleStrictParse.call(this, monthName, format, strict); } if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; } // TODO: add sorting // Sorting makes sure if one month (or abbr) is a prefix of another // see sorting in computeMonthsParse for (i = 0; i < 12; i++) { // make the regex if we don't have it already mom = createUTC([2000, i]); if (strict && !this._longMonthsParse[i]) { this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); } if (!strict && !this._monthsParse[i]) { regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); } // test the regex if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { return i; } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { return i; } else if (!strict && this._monthsParse[i].test(monthName)) { return i; } } } // MOMENTS function setMonth(mom, value) { if (!mom.isValid()) { // No op return mom; } if (typeof value === 'string') { if (/^\d+$/.test(value)) { value = toInt(value); } else { value = mom.localeData().monthsParse(value); // TODO: Another silent failure? if (!isNumber(value)) { return mom; } } } var month = value, date = mom.date(); date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); void (mom._isUTC ? mom._d.setUTCMonth(month, date) : mom._d.setMonth(month, date)); return mom; } function getSetMonth(value) { if (value != null) { setMonth(this, value); hooks.updateOffset(this, true); return this; } else { return get(this, 'Month'); } } function getDaysInMonth() { return daysInMonth(this.year(), this.month()); } function monthsShortRegex(isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, '_monthsRegex')) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsShortStrictRegex; } else { return this._monthsShortRegex; } } else { if (!hasOwnProp(this, '_monthsShortRegex')) { this._monthsShortRegex = defaultMonthsShortRegex; } return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; } } function monthsRegex(isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, '_monthsRegex')) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsStrictRegex; } else { return this._monthsRegex; } } else { if (!hasOwnProp(this, '_monthsRegex')) { this._monthsRegex = defaultMonthsRegex; } return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; } } function computeMonthsParse() { function cmpLenRev(a, b) { return b.length - a.length; } var shortPieces = [], longPieces = [], mixedPieces = [], i, mom, shortP, longP; for (i = 0; i < 12; i++) { // make the regex if we don't have it already mom = createUTC([2000, i]); shortP = regexEscape(this.monthsShort(mom, '')); longP = regexEscape(this.months(mom, '')); shortPieces.push(shortP); longPieces.push(longP); mixedPieces.push(longP); mixedPieces.push(shortP); } // Sorting makes sure if one month (or abbr) is a prefix of another it // will match the longer piece. shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._monthsShortRegex = this._monthsRegex; this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); } function createDate(y, m, d, h, M, s, ms) { // can't just apply() to create a date: // https://stackoverflow.com/q/181348 var date; // the date constructor remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { // preserve leap years using a full 400 year cycle, then reset date = new Date(y + 400, m, d, h, M, s, ms); if (isFinite(date.getFullYear())) { date.setFullYear(y); } } else { date = new Date(y, m, d, h, M, s, ms); } return date; } function createUTCDate(y) { var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset args[0] = y + 400; date = new Date(Date.UTC.apply(null, args)); if (isFinite(date.getUTCFullYear())) { date.setUTCFullYear(y); } } else { date = new Date(Date.UTC.apply(null, arguments)); } return date; } // start-of-first-week - start-of-year function firstWeekOffset(year, dow, doy) { var // first-week day -- which january is always in the first week (4 for iso, 1 for other) fwd = 7 + dow - doy, // first-week day local weekday -- which local weekday is fwd fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; return -fwdlw + fwd - 1; } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday function dayOfYearFromWeeks(year, week, weekday, dow, doy) { var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear; if (dayOfYear <= 0) { resYear = year - 1; resDayOfYear = daysInYear(resYear) + dayOfYear; } else if (dayOfYear > daysInYear(year)) { resYear = year + 1; resDayOfYear = dayOfYear - daysInYear(year); } else { resYear = year; resDayOfYear = dayOfYear; } return { year: resYear, dayOfYear: resDayOfYear }; } function weekOfYear(mom, dow, doy) { var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear; if (week < 1) { resYear = mom.year() - 1; resWeek = week + weeksInYear(resYear, dow, doy); } else if (week > weeksInYear(mom.year(), dow, doy)) { resWeek = week - weeksInYear(mom.year(), dow, doy); resYear = mom.year() + 1; } else { resYear = mom.year(); resWeek = week; } return { week: resWeek, year: resYear }; } function weeksInYear(year, dow, doy) { var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy); return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; } // FORMATTING addFormatToken('w', ['ww', 2], 'wo', 'week'); addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // PARSING addRegexToken('w', match1to2, match1to2NoLeadingZero); addRegexToken('ww', match1to2, match2); addRegexToken('W', match1to2, match1to2NoLeadingZero); addRegexToken('WW', match1to2, match2); addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { week[token.substr(0, 1)] = toInt(input); }); // HELPERS // LOCALES function localeWeek(mom) { return weekOfYear(mom, this._week.dow, this._week.doy).week; } var defaultLocaleWeek = { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. }; function localeFirstDayOfWeek() { return this._week.dow; } function localeFirstDayOfYear() { return this._week.doy; } // MOMENTS function getSetWeek(input) { var week = this.localeData().week(this); return input == null ? week : this.add((input - week) * 7, 'd'); } function getSetISOWeek(input) { var week = weekOfYear(this, 1, 4).week; return input == null ? week : this.add((input - week) * 7, 'd'); } // FORMATTING addFormatToken('d', 0, 'do', 'day'); addFormatToken('dd', 0, 0, function (format) { return this.localeData().weekdaysMin(this, format); }); addFormatToken('ddd', 0, 0, function (format) { return this.localeData().weekdaysShort(this, format); }); addFormatToken('dddd', 0, 0, function (format) { return this.localeData().weekdays(this, format); }); addFormatToken('e', 0, 0, 'weekday'); addFormatToken('E', 0, 0, 'isoWeekday'); // PARSING addRegexToken('d', match1to2); addRegexToken('e', match1to2); addRegexToken('E', match1to2); addRegexToken('dd', function (isStrict, locale) { return locale.weekdaysMinRegex(isStrict); }); addRegexToken('ddd', function (isStrict, locale) { return locale.weekdaysShortRegex(isStrict); }); addRegexToken('dddd', function (isStrict, locale) { return locale.weekdaysRegex(isStrict); }); addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid if (weekday != null) { week.d = weekday; } else { getParsingFlags(config).invalidWeekday = input; } }); addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { week[token] = toInt(input); }); // HELPERS function parseWeekday(input, locale) { if (typeof input !== 'string') { return input; } if (!isNaN(input)) { return parseInt(input, 10); } input = locale.weekdaysParse(input); if (typeof input === 'number') { return input; } return null; } function parseIsoWeekday(input, locale) { if (typeof input === 'string') { return locale.weekdaysParse(input) % 7 || 7; } return isNaN(input) ? null : input; } // LOCALES function shiftWeekdays(ws, n) { return ws.slice(n, 7).concat(ws.slice(0, n)); } var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), defaultWeekdaysRegex = matchWord, defaultWeekdaysShortRegex = matchWord, defaultWeekdaysMinRegex = matchWord; function localeWeekdays(m, format) { var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone']; return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays; } function localeWeekdaysShort(m) { return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort; } function localeWeekdaysMin(m) { return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin; } function handleStrictParse$1(weekdayName, format, strict) { var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); if (!this._weekdaysParse) { this._weekdaysParse = []; this._shortWeekdaysParse = []; this._minWeekdaysParse = []; for (i = 0; i < 7; ++i) { mom = createUTC([2000, 1]).day(i); this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); } } if (strict) { if (format === 'dddd') { ii = indexOf.call(this._weekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format === 'ddd') { ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } } else { if (format === 'dddd') { ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format === 'ddd') { ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } } } function localeWeekdaysParse(weekdayName, format, strict) { var i, mom, regex; if (this._weekdaysParseExact) { return handleStrictParse$1.call(this, weekdayName, format, strict); } if (!this._weekdaysParse) { this._weekdaysParse = []; this._minWeekdaysParse = []; this._shortWeekdaysParse = []; this._fullWeekdaysParse = []; } for (i = 0; i < 7; i++) { // make the regex if we don't have it already mom = createUTC([2000, 1]).day(i); if (strict && !this._fullWeekdaysParse[i]) { this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); } if (!this._weekdaysParse[i]) { regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); } // test the regex if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { return i; } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { return i; } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { return i; } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { return i; } } } // MOMENTS function getSetDayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } var day = get(this, 'Day'); if (input != null) { input = parseWeekday(input, this.localeData()); return this.add(input - day, 'd'); } else { return day; } } function getSetLocaleDayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; return input == null ? weekday : this.add(input - weekday, 'd'); } function getSetISODayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } // behaves the same as moment#day except // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) // as a setter, sunday should belong to the previous week. if (input != null) { var weekday = parseIsoWeekday(input, this.localeData()); return this.day(this.day() % 7 ? weekday : weekday - 7); } else { return this.day() || 7; } } function weekdaysRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysStrictRegex; } else { return this._weekdaysRegex; } } else { if (!hasOwnProp(this, '_weekdaysRegex')) { this._weekdaysRegex = defaultWeekdaysRegex; } return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; } } function weekdaysShortRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysShortStrictRegex; } else { return this._weekdaysShortRegex; } } else { if (!hasOwnProp(this, '_weekdaysShortRegex')) { this._weekdaysShortRegex = defaultWeekdaysShortRegex; } return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; } } function weekdaysMinRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysMinStrictRegex; } else { return this._weekdaysMinRegex; } } else { if (!hasOwnProp(this, '_weekdaysMinRegex')) { this._weekdaysMinRegex = defaultWeekdaysMinRegex; } return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; } } function computeWeekdaysParse() { function cmpLenRev(a, b) { return b.length - a.length; } var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i, mom, minp, shortp, longp; for (i = 0; i < 7; i++) { // make the regex if we don't have it already mom = createUTC([2000, 1]).day(i); minp = regexEscape(this.weekdaysMin(mom, '')); shortp = regexEscape(this.weekdaysShort(mom, '')); longp = regexEscape(this.weekdays(mom, '')); minPieces.push(minp); shortPieces.push(shortp); longPieces.push(longp); mixedPieces.push(minp); mixedPieces.push(shortp); mixedPieces.push(longp); } // Sorting makes sure if one weekday (or abbr) is a prefix of another it // will match the longer piece. minPieces.sort(cmpLenRev); shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._weekdaysShortRegex = this._weekdaysRegex; this._weekdaysMinRegex = this._weekdaysRegex; this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); } // FORMATTING function hFormat() { return this.hours() % 12 || 12; } function kFormat() { return this.hours() || 24; } addFormatToken('H', ['HH', 2], 0, 'hour'); addFormatToken('h', ['hh', 2], 0, hFormat); addFormatToken('k', ['kk', 2], 0, kFormat); addFormatToken('hmm', 0, 0, function () { return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); }); addFormatToken('hmmss', 0, 0, function () { return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); addFormatToken('Hmm', 0, 0, function () { return '' + this.hours() + zeroFill(this.minutes(), 2); }); addFormatToken('Hmmss', 0, 0, function () { return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); function meridiem(token, lowercase) { addFormatToken(token, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); }); } meridiem('a', true); meridiem('A', false); // PARSING function matchMeridiem(isStrict, locale) { return locale._meridiemParse; } addRegexToken('a', matchMeridiem); addRegexToken('A', matchMeridiem); addRegexToken('H', match1to2, match1to2HasZero); addRegexToken('h', match1to2, match1to2NoLeadingZero); addRegexToken('k', match1to2, match1to2NoLeadingZero); addRegexToken('HH', match1to2, match2); addRegexToken('hh', match1to2, match2); addRegexToken('kk', match1to2, match2); addRegexToken('hmm', match3to4); addRegexToken('hmmss', match5to6); addRegexToken('Hmm', match3to4); addRegexToken('Hmmss', match5to6); addParseToken(['H', 'HH'], HOUR); addParseToken(['k', 'kk'], function (input, array, config) { var kInput = toInt(input); array[HOUR] = kInput === 24 ? 0 : kInput; }); addParseToken(['a', 'A'], function (input, array, config) { config._isPm = config._locale.isPM(input); config._meridiem = input; }); addParseToken(['h', 'hh'], function (input, array, config) { array[HOUR] = toInt(input); getParsingFlags(config).bigHour = true; }); addParseToken('hmm', function (input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); getParsingFlags(config).bigHour = true; }); addParseToken('hmmss', function (input, array, config) { var pos1 = input.length - 4, pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); getParsingFlags(config).bigHour = true; }); addParseToken('Hmm', function (input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); }); addParseToken('Hmmss', function (input, array, config) { var pos1 = input.length - 4, pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); }); // LOCALES function localeIsPM(input) { // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays // Using charAt should be more compatible. return (input + '').toLowerCase().charAt(0) === 'p'; } var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, // Setting the hour should keep the time, because the user explicitly // specified which hour they want. So trying to maintain the same hour (in // a new timezone) makes sense. Adding/subtracting hours does not follow // this rule. getSetHour = makeGetSet('Hours', true); function localeMeridiem(hours, minutes, isLower) { if (hours > 11) { return isLower ? 'pm' : 'PM'; } else { return isLower ? 'am' : 'AM'; } } var baseConfig = { calendar: defaultCalendar, longDateFormat: defaultLongDateFormat, invalidDate: defaultInvalidDate, ordinal: defaultOrdinal, dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, relativeTime: defaultRelativeTime, months: defaultLocaleMonths, monthsShort: defaultLocaleMonthsShort, week: defaultLocaleWeek, weekdays: defaultLocaleWeekdays, weekdaysMin: defaultLocaleWeekdaysMin, weekdaysShort: defaultLocaleWeekdaysShort, meridiemParse: defaultLocaleMeridiemParse }; // internal storage for locale config files var locales = {}, localeFamilies = {}, globalLocale; function commonPrefix(arr1, arr2) { var i, minl = Math.min(arr1.length, arr2.length); for (i = 0; i < minl; i += 1) { if (arr1[i] !== arr2[i]) { return i; } } return minl; } function normalizeLocale(key) { return key ? key.toLowerCase().replace('_', '-') : key; } // pick the locale from the array // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root function chooseLocale(names) { var i = 0, j, next, locale, split; while (i < names.length) { split = normalizeLocale(names[i]).split('-'); j = split.length; next = normalizeLocale(names[i + 1]); next = next ? next.split('-') : null; while (j > 0) { locale = loadLocale(split.slice(0, j).join('-')); if (locale) { return locale; } if (next && next.length >= j && commonPrefix(split, next) >= j - 1) { //the next array item is better than a shallower substring of this one break; } j--; } i++; } return globalLocale; } function isLocaleNameSane(name) { // Prevent names that look like filesystem paths, i.e contain '/' or '\' // Ensure name is available and function returns boolean return !!(name && name.match('^[^/\\\\]*$')); } function loadLocale(name) { var oldLocale = null, aliasedRequire; // TODO: Find a better way to register and load all the locales in Node if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) { try { oldLocale = globalLocale._abbr; aliasedRequire = require; __webpack_require__(175)("./" + name); getSetGlobalLocale(oldLocale); } catch (e) { // mark as not found to avoid repeating expensive file require call causing high CPU // when trying to find en-US, en_US, en-us for every format call locales[name] = null; // null means not found } } return locales[name]; } // This function will load locale and then set the global locale. If // no arguments are passed in, it will simply return the current global // locale key. function getSetGlobalLocale(key, values) { var data; if (key) { if (isUndefined(values)) { data = getLocale(key); } else { data = defineLocale(key, values); } if (data) { // moment.duration._locale = moment._locale = data; globalLocale = data; } else { if (typeof console !== 'undefined' && console.warn) { //warn user if arguments are passed but the locale could not be set __f__("warn", 'Locale ' + key + ' not found. Did you forget to load it?', " at node_modules/moment/moment.js:2194"); } } } return globalLocale._abbr; } function defineLocale(name, config) { if (config !== null) { var locale, parentConfig = baseConfig; config.abbr = name; if (locales[name] != null) { deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); parentConfig = locales[name]._config; } else if (config.parentLocale != null) { if (locales[config.parentLocale] != null) { parentConfig = locales[config.parentLocale]._config; } else { locale = loadLocale(config.parentLocale); if (locale != null) { parentConfig = locale._config; } else { if (!localeFamilies[config.parentLocale]) { localeFamilies[config.parentLocale] = []; } localeFamilies[config.parentLocale].push({ name: name, config: config }); return null; } } } locales[name] = new Locale(mergeConfigs(parentConfig, config)); if (localeFamilies[name]) { localeFamilies[name].forEach(function (x) { defineLocale(x.name, x.config); }); } // backwards compat for now: also set the locale // make sure we set the locale AFTER all child locales have been // created, so we won't end up with the child locale set. getSetGlobalLocale(name); return locales[name]; } else { // useful for testing delete locales[name]; return null; } } function updateLocale(name, config) { if (config != null) { var locale, tmpLocale, parentConfig = baseConfig; if (locales[name] != null && locales[name].parentLocale != null) { // Update existing child locale in-place to avoid memory-leaks locales[name].set(mergeConfigs(locales[name]._config, config)); } else { // MERGE tmpLocale = loadLocale(name); if (tmpLocale != null) { parentConfig = tmpLocale._config; } config = mergeConfigs(parentConfig, config); if (tmpLocale == null) { // updateLocale is called for creating a new locale // Set abbr so it will have a name (getters return // undefined otherwise). config.abbr = name; } locale = new Locale(config); locale.parentLocale = locales[name]; locales[name] = locale; } // backwards compat for now: also set the locale getSetGlobalLocale(name); } else { // pass null for config to unupdate, useful for tests if (locales[name] != null) { if (locales[name].parentLocale != null) { locales[name] = locales[name].parentLocale; if (name === getSetGlobalLocale()) { getSetGlobalLocale(name); } } else if (locales[name] != null) { delete locales[name]; } } } return locales[name]; } // returns locale data function getLocale(key) { var locale; if (key && key._locale && key._locale._abbr) { key = key._locale._abbr; } if (!key) { return globalLocale; } if (!isArray(key)) { //short-circuit everything else locale = loadLocale(key); if (locale) { return locale; } key = [key]; } return chooseLocale(key); } function listLocales() { return keys(locales); } function checkOverflow(m) { var overflow, a = m._a; if (a && getParsingFlags(m).overflow === -2) { overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1; if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { overflow = DATE; } if (getParsingFlags(m)._overflowWeeks && overflow === -1) { overflow = WEEK; } if (getParsingFlags(m)._overflowWeekday && overflow === -1) { overflow = WEEKDAY; } getParsingFlags(m).overflow = overflow; } return m; } // iso 8601 regex // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, isoDates = [['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], ['GGGG-[W]WW', /\d{4}-W\d\d/, false], ['YYYY-DDD', /\d{4}-\d{3}/], ['YYYY-MM', /\d{4}-\d\d/, false], ['YYYYYYMMDD', /[+-]\d{10}/], ['YYYYMMDD', /\d{8}/], ['GGGG[W]WWE', /\d{4}W\d{3}/], ['GGGG[W]WW', /\d{4}W\d{2}/, false], ['YYYYDDD', /\d{7}/], ['YYYYMM', /\d{6}/, false], ['YYYY', /\d{4}/, false]], // iso time formats and regexes isoTimes = [['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], ['HH:mm:ss', /\d\d:\d\d:\d\d/], ['HH:mm', /\d\d:\d\d/], ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], ['HHmmss', /\d\d\d\d\d\d/], ['HHmm', /\d\d\d\d/], ['HH', /\d\d/]], aspNetJsonRegex = /^\/?Date\((-?\d+)/i, // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, obsOffsets = { UT: 0, GMT: 0, EDT: -4 * 60, EST: -5 * 60, CDT: -5 * 60, CST: -6 * 60, MDT: -6 * 60, MST: -7 * 60, PDT: -7 * 60, PST: -8 * 60 }; // date from iso format function configFromISO(config) { var i, l, string = config._i, match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), allowTime, dateFormat, timeFormat, tzFormat, isoDatesLen = isoDates.length, isoTimesLen = isoTimes.length; if (match) { getParsingFlags(config).iso = true; for (i = 0, l = isoDatesLen; i < l; i++) { if (isoDates[i][1].exec(match[1])) { dateFormat = isoDates[i][0]; allowTime = isoDates[i][2] !== false; break; } } if (dateFormat == null) { config._isValid = false; return; } if (match[3]) { for (i = 0, l = isoTimesLen; i < l; i++) { if (isoTimes[i][1].exec(match[3])) { // match[2] should be 'T' or space timeFormat = (match[2] || ' ') + isoTimes[i][0]; break; } } if (timeFormat == null) { config._isValid = false; return; } } if (!allowTime && timeFormat != null) { config._isValid = false; return; } if (match[4]) { if (tzRegex.exec(match[4])) { tzFormat = 'Z'; } else { config._isValid = false; return; } } config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); configFromStringAndFormat(config); } else { config._isValid = false; } } function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)]; if (secondStr) { result.push(parseInt(secondStr, 10)); } return result; } function untruncateYear(yearStr) { var year = parseInt(yearStr, 10); if (year <= 49) { return 2000 + year; } else if (year <= 999) { return 1900 + year; } return year; } function preprocessRFC2822(s) { // Remove comments and folding whitespace and replace multiple-spaces with a single space return s.replace(/\([^()]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } function checkWeekday(weekdayStr, parsedInput, config) { if (weekdayStr) { // TODO: Replace the vanilla JS Date object with an independent day-of-week check. var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); if (weekdayProvided !== weekdayActual) { getParsingFlags(config).weekdayMismatch = true; config._isValid = false; return false; } } return true; } function calculateOffset(obsOffset, militaryOffset, numOffset) { if (obsOffset) { return obsOffsets[obsOffset]; } else if (militaryOffset) { // the only allowed military tz is Z return 0; } else { var hm = parseInt(numOffset, 10), m = hm % 100, h = (hm - m) / 100; return h * 60 + m; } } // date and time from ref 2822 format function configFromRFC2822(config) { var match = rfc2822.exec(preprocessRFC2822(config._i)), parsedArray; if (match) { parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); if (!checkWeekday(match[1], parsedArray, config)) { return; } config._a = parsedArray; config._tzm = calculateOffset(match[8], match[9], match[10]); config._d = createUTCDate.apply(null, config._a); config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); getParsingFlags(config).rfc2822 = true; } else { config._isValid = false; } } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict function configFromString(config) { var matched = aspNetJsonRegex.exec(config._i); if (matched !== null) { config._d = new Date(+matched[1]); return; } configFromISO(config); if (config._isValid === false) { delete config._isValid; } else { return; } configFromRFC2822(config); if (config._isValid === false) { delete config._isValid; } else { return; } if (config._strict) { config._isValid = false; } else { // Final attempt, use Input Fallback hooks.createFromInputFallback(config); } } hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) { config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); }); // Pick the first defined of two or three arguments. function defaults(a, b, c) { if (a != null) { return a; } if (b != null) { return b; } return c; } function currentDateArray(config) { // hooks is actually the exported moment object var nowValue = new Date(hooks.now()); if (config._useUTC) { return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; } return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; } // convert an array to a date. // the array should mirror the parameters below // note: all values past the year are optional and will default to the lowest possible value. // [year, month, day , hour, minute, second, millisecond] function configFromArray(config) { var i, date, input = [], currentDate, expectedWeekday, yearToUse; if (config._d) { return; } currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { dayOfYearFromWeekInfo(config); } //if the day of the year is set, figure out what it is if (config._dayOfYear != null) { yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { getParsingFlags(config)._overflowDayOfYear = true; } date = createUTCDate(yearToUse, 0, config._dayOfYear); config._a[MONTH] = date.getUTCMonth(); config._a[DATE] = date.getUTCDate(); } // Default to current date. // * if no year, month, day of month are given, default to today // * if day of month is given, default month and year // * if month is given, default only year // * if year is given, don't default anything for (i = 0; i < 3 && config._a[i] == null; ++i) { config._a[i] = input[i] = currentDate[i]; } // Zero out whatever was not defaulted, including time for (; i < 7; i++) { config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i]; } // Check for 24:00:00.000 if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { config._nextDay = true; config._a[HOUR] = 0; } config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed // with parseZone. if (config._tzm != null) { config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); } if (config._nextDay) { config._a[HOUR] = 24; } // check for mismatching day of week if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { getParsingFlags(config).weekdayMismatch = true; } } function dayOfYearFromWeekInfo(config) { var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; w = config._w; if (w.GG != null || w.W != null || w.E != null) { dow = 1; doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on // how we interpret now (local, utc, fixed offset). So create // a now version of current config (take local/utc/offset flags, and // create now). weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); week = defaults(w.W, 1); weekday = defaults(w.E, 1); if (weekday < 1 || weekday > 7) { weekdayOverflow = true; } } else { dow = config._locale._week.dow; doy = config._locale._week.doy; curWeek = weekOfYear(createLocal(), dow, doy); weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week. week = defaults(w.w, curWeek.week); if (w.d != null) { // weekday -- low day numbers are considered next week weekday = w.d; if (weekday < 0 || weekday > 6) { weekdayOverflow = true; } } else if (w.e != null) { // local weekday -- counting starts from beginning of week weekday = w.e + dow; if (w.e < 0 || w.e > 6) { weekdayOverflow = true; } } else { // default to beginning of week weekday = dow; } } if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { getParsingFlags(config)._overflowWeeks = true; } else if (weekdayOverflow != null) { getParsingFlags(config)._overflowWeekday = true; } else { temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); config._a[YEAR] = temp.year; config._dayOfYear = temp.dayOfYear; } } // constant that refers to the ISO standard hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form hooks.RFC_2822 = function () {}; // date from string and format string function configFromStringAndFormat(config) { // TODO: Move this to another part of the creation flow to prevent circular deps if (config._f === hooks.ISO_8601) { configFromISO(config); return; } if (config._f === hooks.RFC_2822) { configFromRFC2822(config); return; } config._a = []; getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC` var string = '' + config._i, i, parsedInput, tokens, token, skipped, stringLength = string.length, totalParsedInputLength = 0, era, tokenLen; tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; tokenLen = tokens.length; for (i = 0; i < tokenLen; i++) { token = tokens[i]; parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; if (parsedInput) { skipped = string.substr(0, string.indexOf(parsedInput)); if (skipped.length > 0) { getParsingFlags(config).unusedInput.push(skipped); } string = string.slice(string.indexOf(parsedInput) + parsedInput.length); totalParsedInputLength += parsedInput.length; } // don't parse if it's not a known token if (formatTokenFunctions[token]) { if (parsedInput) { getParsingFlags(config).empty = false; } else { getParsingFlags(config).unusedTokens.push(token); } addTimeToArrayFromToken(token, parsedInput, config); } else if (config._strict && !parsedInput) { getParsingFlags(config).unusedTokens.push(token); } } // add remaining unparsed input length to the string getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; if (string.length > 0) { getParsingFlags(config).unusedInput.push(string); } // clear _12h flag if hour is <= 12 if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { getParsingFlags(config).bigHour = undefined; } getParsingFlags(config).parsedDateParts = config._a.slice(0); getParsingFlags(config).meridiem = config._meridiem; // handle meridiem config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era era = getParsingFlags(config).era; if (era !== null) { config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); } configFromArray(config); checkOverflow(config); } function meridiemFixWrap(locale, hour, meridiem) { var isPm; if (meridiem == null) { // nothing to do return hour; } if (locale.meridiemHour != null) { return locale.meridiemHour(hour, meridiem); } else if (locale.isPM != null) { // Fallback isPm = locale.isPM(meridiem); if (isPm && hour < 12) { hour += 12; } if (!isPm && hour === 12) { hour = 0; } return hour; } else { // this is not supposed to happen return hour; } } // date from string and array of format strings function configFromStringAndArray(config) { var tempConfig, bestMoment, scoreToBeat, i, currentScore, validFormatFound, bestFormatIsValid = false, configfLen = config._f.length; if (configfLen === 0) { getParsingFlags(config).invalidFormat = true; config._d = new Date(NaN); return; } for (i = 0; i < configfLen; i++) { currentScore = 0; validFormatFound = false; tempConfig = copyConfig({}, config); if (config._useUTC != null) { tempConfig._useUTC = config._useUTC; } tempConfig._f = config._f[i]; configFromStringAndFormat(tempConfig); if (isValid(tempConfig)) { validFormatFound = true; } // if there is any input that was not parsed add a penalty for that format currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; getParsingFlags(tempConfig).score = currentScore; if (!bestFormatIsValid) { if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) { scoreToBeat = currentScore; bestMoment = tempConfig; if (validFormatFound) { bestFormatIsValid = true; } } } else { if (currentScore < scoreToBeat) { scoreToBeat = currentScore; bestMoment = tempConfig; } } } extend(config, bestMoment || tempConfig); } function configFromObject(config) { if (config._d) { return; } var i = normalizeObjectUnits(config._i), dayOrDate = i.day === undefined ? i.date : i.day; config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) { return obj && parseInt(obj, 10); }); configFromArray(config); } function createFromConfig(config) { var res = new Moment(checkOverflow(prepareConfig(config))); if (res._nextDay) { // Adding is smart enough around DST res.add(1, 'd'); res._nextDay = undefined; } return res; } function prepareConfig(config) { var input = config._i, format = config._f; config._locale = config._locale || getLocale(config._l); if (input === null || format === undefined && input === '') { return createInvalid({ nullInput: true }); } if (typeof input === 'string') { config._i = input = config._locale.preparse(input); } if (isMoment(input)) { return new Moment(checkOverflow(input)); } else if (isDate(input)) { config._d = input; } else if (isArray(format)) { configFromStringAndArray(config); } else if (format) { configFromStringAndFormat(config); } else { configFromInput(config); } if (!isValid(config)) { config._d = null; } return config; } function configFromInput(config) { var input = config._i; if (isUndefined(input)) { config._d = new Date(hooks.now()); } else if (isDate(input)) { config._d = new Date(input.valueOf()); } else if (typeof input === 'string') { configFromString(config); } else if (isArray(input)) { config._a = map(input.slice(0), function (obj) { return parseInt(obj, 10); }); configFromArray(config); } else if (isObject(input)) { configFromObject(config); } else if (isNumber(input)) { // from milliseconds config._d = new Date(input); } else { hooks.createFromInputFallback(config); } } function createLocalOrUTC(input, format, locale, strict, isUTC) { var c = {}; if (format === true || format === false) { strict = format; format = undefined; } if (locale === true || locale === false) { strict = locale; locale = undefined; } if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) { input = undefined; } // object construction must be done this way. // https://github.com/moment/moment/issues/1423 c._isAMomentObject = true; c._useUTC = c._isUTC = isUTC; c._l = locale; c._i = input; c._f = format; c._strict = strict; return createFromConfig(c); } function createLocal(input, format, locale, strict) { return createLocalOrUTC(input, format, locale, strict, false); } var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other < this ? this : other; } else { return createInvalid(); } }), prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other > this ? this : other; } else { return createInvalid(); } }); // Pick a moment m from moments so that m[fn](other) is true for all // other. This relies on the function fn to be transitive. // // moments should either be an array of moment objects or an array, whose // first element is an array of moment objects. function pickBy(fn, moments) { var res, i; if (moments.length === 1 && isArray(moments[0])) { moments = moments[0]; } if (!moments.length) { return createLocal(); } res = moments[0]; for (i = 1; i < moments.length; ++i) { if (!moments[i].isValid() || moments[i][fn](res)) { res = moments[i]; } } return res; } // TODO: Use [].sort instead? function min() { var args = [].slice.call(arguments, 0); return pickBy('isBefore', args); } function max() { var args = [].slice.call(arguments, 0); return pickBy('isAfter', args); } var now = function now() { return Date.now ? Date.now() : +new Date(); }; var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; function isDurationValid(m) { var key, unitHasDecimal = false, i, orderLen = ordering.length; for (key in m) { if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { return false; } } for (i = 0; i < orderLen; ++i) { if (m[ordering[i]]) { if (unitHasDecimal) { return false; // only allow non-integers for smallest unit } if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { unitHasDecimal = true; } } } return true; } function isValid$1() { return this._isValid; } function createInvalid$1() { return createDuration(NaN); } function Duration(duration) { var normalizedInput = normalizeObjectUnits(duration), years = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months = normalizedInput.month || 0, weeks = normalizedInput.week || normalizedInput.isoWeek || 0, days = normalizedInput.day || 0, hours = normalizedInput.hour || 0, minutes = normalizedInput.minute || 0, seconds = normalizedInput.second || 0, milliseconds = normalizedInput.millisecond || 0; this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove this._milliseconds = +milliseconds + seconds * 1e3 + // 1000 minutes * 6e4 + // 1000 * 60 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 // Because of dateAddRemove treats 24 hours as different from a // day when working around DST, we need to store them separately this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing // which months you are are talking about, so we have to store // it separately. this._months = +months + quarters * 3 + years * 12; this._data = {}; this._locale = getLocale(); this._bubble(); } function isDuration(obj) { return obj instanceof Duration; } function absRound(number) { if (number < 0) { return Math.round(-1 * number) * -1; } else { return Math.round(number); } } // compare two arrays, return the number of differences function compareArrays(array1, array2, dontConvert) { var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i; for (i = 0; i < len; i++) { if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) { diffs++; } } return diffs + lengthDiff; } // FORMATTING function offset(token, separator) { addFormatToken(token, 0, 0, function () { var offset = this.utcOffset(), sign = '+'; if (offset < 0) { offset = -offset; sign = '-'; } return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2); }); } offset('Z', ':'); offset('ZZ', ''); // PARSING addRegexToken('Z', matchShortOffset); addRegexToken('ZZ', matchShortOffset); addParseToken(['Z', 'ZZ'], function (input, array, config) { config._useUTC = true; config._tzm = offsetFromString(matchShortOffset, input); }); // HELPERS // timezone chunker // '+10:00' > ['10', '00'] // '-1530' > ['-15', '30'] var chunkOffset = /([\+\-]|\d\d)/gi; function offsetFromString(matcher, string) { var matches = (string || '').match(matcher), chunk, parts, minutes; if (matches === null) { return null; } chunk = matches[matches.length - 1] || []; parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; minutes = +(parts[1] * 60) + toInt(parts[2]); return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; } // Return a moment from input, that is local/utc/zone equivalent to model. function cloneWithOffset(input, model) { var res, diff; if (model._isUTC) { res = model.clone(); diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api. res._d.setTime(res._d.valueOf() + diff); hooks.updateOffset(res, false); return res; } else { return createLocal(input).local(); } } function getDateOffset(m) { // On Firefox.24 Date#getTimezoneOffset returns a floating point. // https://github.com/moment/moment/pull/1871 return -Math.round(m._d.getTimezoneOffset()); } // HOOKS // This function will be called whenever a moment is mutated. // It is intended to keep the offset in sync with the timezone. hooks.updateOffset = function () {}; // MOMENTS // keepLocalTime = true means only change the timezone, without // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset // +0200, so we adjust the time as needed, to be valid. // // Keeping the time actually adds/subtracts (one hour) // from the actual represented time. That is why we call updateOffset // a second time. In case it wants us to change the offset again // _changeInProgress == true case, then we have to adjust, because // there is no such time in the given timezone. function getSetOffset(input, keepLocalTime, keepMinutes) { var offset = this._offset || 0, localAdjust; if (!this.isValid()) { return input != null ? this : NaN; } if (input != null) { if (typeof input === 'string') { input = offsetFromString(matchShortOffset, input); if (input === null) { return this; } } else if (Math.abs(input) < 16 && !keepMinutes) { input = input * 60; } if (!this._isUTC && keepLocalTime) { localAdjust = getDateOffset(this); } this._offset = input; this._isUTC = true; if (localAdjust != null) { this.add(localAdjust, 'm'); } if (offset !== input) { if (!keepLocalTime || this._changeInProgress) { addSubtract(this, createDuration(input - offset, 'm'), 1, false); } else if (!this._changeInProgress) { this._changeInProgress = true; hooks.updateOffset(this, true); this._changeInProgress = null; } } return this; } else { return this._isUTC ? offset : getDateOffset(this); } } function getSetZone(input, keepLocalTime) { if (input != null) { if (typeof input !== 'string') { input = -input; } this.utcOffset(input, keepLocalTime); return this; } else { return -this.utcOffset(); } } function setOffsetToUTC(keepLocalTime) { return this.utcOffset(0, keepLocalTime); } function setOffsetToLocal(keepLocalTime) { if (this._isUTC) { this.utcOffset(0, keepLocalTime); this._isUTC = false; if (keepLocalTime) { this.subtract(getDateOffset(this), 'm'); } } return this; } function setOffsetToParsedOffset() { if (this._tzm != null) { this.utcOffset(this._tzm, false, true); } else if (typeof this._i === 'string') { var tZone = offsetFromString(matchOffset, this._i); if (tZone != null) { this.utcOffset(tZone); } else { this.utcOffset(0, true); } } return this; } function hasAlignedHourOffset(input) { if (!this.isValid()) { return false; } input = input ? createLocal(input).utcOffset() : 0; return (this.utcOffset() - input) % 60 === 0; } function isDaylightSavingTime() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); } function isDaylightSavingTimeShifted() { if (!isUndefined(this._isDSTShifted)) { return this._isDSTShifted; } var c = {}, other; copyConfig(c, this); c = prepareConfig(c); if (c._a) { other = c._isUTC ? createUTC(c._a) : createLocal(c._a); this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0; } else { this._isDSTShifted = false; } return this._isDSTShifted; } function isLocal() { return this.isValid() ? !this._isUTC : false; } function isUtcOffset() { return this.isValid() ? this._isUTC : false; } function isUtc() { return this.isValid() ? this._isUTC && this._offset === 0 : false; } // ASP.NET json date format regex var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere // and further modified to allow for strings containing both week and day isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function createDuration(input, key) { var duration = input, // matching against regexp is expensive, do it on demand match = null, sign, ret, diffRes; if (isDuration(input)) { duration = { ms: input._milliseconds, d: input._days, M: input._months }; } else if (isNumber(input) || !isNaN(+input)) { duration = {}; if (key) { duration[key] = +input; } else { duration.milliseconds = +input; } } else if (match = aspNetRegex.exec(input)) { sign = match[1] === '-' ? -1 : 1; duration = { y: 0, d: toInt(match[DATE]) * sign, h: toInt(match[HOUR]) * sign, m: toInt(match[MINUTE]) * sign, s: toInt(match[SECOND]) * sign, ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match }; } else if (match = isoRegex.exec(input)) { sign = match[1] === '-' ? -1 : 1; duration = { y: parseIso(match[2], sign), M: parseIso(match[3], sign), w: parseIso(match[4], sign), d: parseIso(match[5], sign), h: parseIso(match[6], sign), m: parseIso(match[7], sign), s: parseIso(match[8], sign) }; } else if (duration == null) { // checks for null or undefined duration = {}; } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) { diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); duration = {}; duration.ms = diffRes.milliseconds; duration.M = diffRes.months; } ret = new Duration(duration); if (isDuration(input) && hasOwnProp(input, '_locale')) { ret._locale = input._locale; } if (isDuration(input) && hasOwnProp(input, '_isValid')) { ret._isValid = input._isValid; } return ret; } createDuration.fn = Duration.prototype; createDuration.invalid = createInvalid$1; function parseIso(inp, sign) { // We'd normally use ~~inp for this, but unfortunately it also // converts floats to ints. // inp may be undefined, so careful calling replace on it. var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it return (isNaN(res) ? 0 : res) * sign; } function positiveMomentsDifference(base, other) { var res = {}; res.months = other.month() - base.month() + (other.year() - base.year()) * 12; if (base.clone().add(res.months, 'M').isAfter(other)) { --res.months; } res.milliseconds = +other - +base.clone().add(res.months, 'M'); return res; } function momentsDifference(base, other) { var res; if (!(base.isValid() && other.isValid())) { return { milliseconds: 0, months: 0 }; } other = cloneWithOffset(other, base); if (base.isBefore(other)) { res = positiveMomentsDifference(base, other); } else { res = positiveMomentsDifference(other, base); res.milliseconds = -res.milliseconds; res.months = -res.months; } return res; } // TODO: remove 'name' arg after deprecation is removed function createAdder(direction, name) { return function (val, period) { var dur, tmp; //invert the arguments, but complain about it if (period !== null && !isNaN(+period)) { deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); tmp = val; val = period; period = tmp; } dur = createDuration(val, period); addSubtract(this, dur, direction); return this; }; } function addSubtract(mom, duration, isAdding, updateOffset) { var milliseconds = duration._milliseconds, days = absRound(duration._days), months = absRound(duration._months); if (!mom.isValid()) { // No op return; } updateOffset = updateOffset == null ? true : updateOffset; if (months) { setMonth(mom, get(mom, 'Month') + months * isAdding); } if (days) { set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); } if (milliseconds) { mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); } if (updateOffset) { hooks.updateOffset(mom, days || months); } } var add = createAdder(1, 'add'), subtract = createAdder(-1, 'subtract'); function isString(input) { return typeof input === 'string' || input instanceof String; } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined function isMomentInput(input) { return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined; } function isMomentInputObject(input) { var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'], i, property, propertyLen = properties.length; for (i = 0; i < propertyLen; i += 1) { property = properties[i]; propertyTest = propertyTest || hasOwnProp(input, property); } return objectTest && propertyTest; } function isNumberOrStringArray(input) { var arrayTest = isArray(input), dataTypeTest = false; if (arrayTest) { dataTypeTest = input.filter(function (item) { return !isNumber(item) && isString(input); }).length === 0; } return arrayTest && dataTypeTest; } function isCalendarSpec(input) { var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'], i, property; for (i = 0; i < properties.length; i += 1) { property = properties[i]; propertyTest = propertyTest || hasOwnProp(input, property); } return objectTest && propertyTest; } function getCalendarFormat(myMoment, now) { var diff = myMoment.diff(now, 'days', true); return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse'; } function calendar$1(time, formats) { // Support for single parameter, formats only overload to the calendar function if (arguments.length === 1) { if (!arguments[0]) { time = undefined; formats = undefined; } else if (isMomentInput(arguments[0])) { time = arguments[0]; formats = undefined; } else if (isCalendarSpec(arguments[0])) { formats = arguments[0]; time = undefined; } } // We want to compare the start of today, vs this. // Getting start-of-today depends on whether we're local/utc/offset or not. var now = time || createLocal(), sod = cloneWithOffset(now, this).startOf('day'), format = hooks.calendarFormat(this, sod) || 'sameElse', output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); return this.format(output || this.localeData().calendar(format, this, createLocal(now))); } function clone() { return new Moment(this); } function isAfter(input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || 'millisecond'; if (units === 'millisecond') { return this.valueOf() > localInput.valueOf(); } else { return localInput.valueOf() < this.clone().startOf(units).valueOf(); } } function isBefore(input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || 'millisecond'; if (units === 'millisecond') { return this.valueOf() < localInput.valueOf(); } else { return this.clone().endOf(units).valueOf() < localInput.valueOf(); } } function isBetween(from, to, units, inclusivity) { var localFrom = isMoment(from) ? from : createLocal(from), localTo = isMoment(to) ? to : createLocal(to); if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { return false; } inclusivity = inclusivity || '()'; return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); } function isSame(input, units) { var localInput = isMoment(input) ? input : createLocal(input), inputMs; if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || 'millisecond'; if (units === 'millisecond') { return this.valueOf() === localInput.valueOf(); } else { inputMs = localInput.valueOf(); return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); } } function isSameOrAfter(input, units) { return this.isSame(input, units) || this.isAfter(input, units); } function isSameOrBefore(input, units) { return this.isSame(input, units) || this.isBefore(input, units); } function diff(input, units, asFloat) { var that, zoneDelta, output; if (!this.isValid()) { return NaN; } that = cloneWithOffset(input, this); if (!that.isValid()) { return NaN; } zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; units = normalizeUnits(units); switch (units) { case 'year': output = monthDiff(this, that) / 12; break; case 'month': output = monthDiff(this, that); break; case 'quarter': output = monthDiff(this, that) / 3; break; case 'second': output = (this - that) / 1e3; break; // 1000 case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst default: output = this - that; } return asFloat ? output : absFloor(output); } function monthDiff(a, b) { if (a.date() < b.date()) { // end-of-month calculations work correct when the start month has more // days than the end month. return -monthDiff(b, a); } // difference in months var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), // b is in (anchor - 1 month, anchor + 1 month) anchor = a.clone().add(wholeMonthDiff, 'months'), anchor2, adjust; if (b - anchor < 0) { anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month adjust = (b - anchor) / (anchor - anchor2); } else { anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month adjust = (b - anchor) / (anchor2 - anchor); } //check for negative zero, return zero if negative zero return -(wholeMonthDiff + adjust) || 0; } hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; function toString() { return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); } function toISOString(keepOffset) { if (!this.isValid()) { return null; } var utc = keepOffset !== true, m = utc ? this.clone().utc() : this; if (m.year() < 0 || m.year() > 9999) { return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); } if (isFunction(Date.prototype.toISOString)) { // native implementation is ~50x faster, use it when we can if (utc) { return this.toDate().toISOString(); } else { return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); } } return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); } /** * Return a human readable representation of a moment that can * also be evaluated to get a new moment which is the same * * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects */ function inspect() { if (!this.isValid()) { return 'moment.invalid(/* ' + this._i + ' */)'; } var func = 'moment', zone = '', prefix, year, datetime, suffix; if (!this.isLocal()) { func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; zone = 'Z'; } prefix = '[' + func + '("]'; year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; datetime = '-MM-DD[T]HH:mm:ss.SSS'; suffix = zone + '[")]'; return this.format(prefix + year + datetime + suffix); } function format(inputString) { if (!inputString) { inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; } var output = formatMoment(this, inputString); return this.localeData().postformat(output); } function from(time, withoutSuffix) { if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { return createDuration({ to: this, from: time }).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function fromNow(withoutSuffix) { return this.from(createLocal(), withoutSuffix); } function to(time, withoutSuffix) { if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { return createDuration({ from: this, to: time }).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function toNow(withoutSuffix) { return this.to(createLocal(), withoutSuffix); } // If passed a locale key, it will set the locale for this // instance. Otherwise, it will return the locale configuration // variables for this instance. function locale(key) { var newLocaleData; if (key === undefined) { return this._locale._abbr; } else { newLocaleData = getLocale(key); if (newLocaleData != null) { this._locale = newLocaleData; } return this; } } var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) { if (key === undefined) { return this.localeData(); } else { return this.locale(key); } }); function localeData() { return this._locale; } var MS_PER_SECOND = 1000, MS_PER_MINUTE = 60 * MS_PER_SECOND, MS_PER_HOUR = 60 * MS_PER_MINUTE, MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970): function mod$1(dividend, divisor) { return (dividend % divisor + divisor) % divisor; } function localStartOfDate(y, m, d) { // the date constructor remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { // preserve leap years using a full 400 year cycle, then reset return new Date(y + 400, m, d) - MS_PER_400_YEARS; } else { return new Date(y, m, d).valueOf(); } } function utcStartOfDate(y, m, d) { // Date.UTC remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0) { // preserve leap years using a full 400 year cycle, then reset return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; } else { return Date.UTC(y, m, d); } } function startOf(units) { var time, startOfDate; units = normalizeUnits(units); if (units === undefined || units === 'millisecond' || !this.isValid()) { return this; } startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case 'year': time = startOfDate(this.year(), 0, 1); break; case 'quarter': time = startOfDate(this.year(), this.month() - this.month() % 3, 1); break; case 'month': time = startOfDate(this.year(), this.month(), 1); break; case 'week': time = startOfDate(this.year(), this.month(), this.date() - this.weekday()); break; case 'isoWeek': time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); break; case 'day': case 'date': time = startOfDate(this.year(), this.month(), this.date()); break; case 'hour': time = this._d.valueOf(); time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR); break; case 'minute': time = this._d.valueOf(); time -= mod$1(time, MS_PER_MINUTE); break; case 'second': time = this._d.valueOf(); time -= mod$1(time, MS_PER_SECOND); break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function endOf(units) { var time, startOfDate; units = normalizeUnits(units); if (units === undefined || units === 'millisecond' || !this.isValid()) { return this; } startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case 'year': time = startOfDate(this.year() + 1, 0, 1) - 1; break; case 'quarter': time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; break; case 'month': time = startOfDate(this.year(), this.month() + 1, 1) - 1; break; case 'week': time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; break; case 'isoWeek': time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; break; case 'day': case 'date': time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; break; case 'hour': time = this._d.valueOf(); time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1; break; case 'minute': time = this._d.valueOf(); time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; break; case 'second': time = this._d.valueOf(); time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function valueOf() { return this._d.valueOf() - (this._offset || 0) * 60000; } function unix() { return Math.floor(this.valueOf() / 1000); } function toDate() { return new Date(this.valueOf()); } function toArray() { var m = this; return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; } function toObject() { var m = this; return { years: m.year(), months: m.month(), date: m.date(), hours: m.hours(), minutes: m.minutes(), seconds: m.seconds(), milliseconds: m.milliseconds() }; } function toJSON() { // new Date(NaN).toJSON() === null return this.isValid() ? this.toISOString() : null; } function isValid$2() { return isValid(this); } function parsingFlags() { return extend({}, getParsingFlags(this)); } function invalidAt() { return getParsingFlags(this).overflow; } function creationData() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } addFormatToken('N', 0, 0, 'eraAbbr'); addFormatToken('NN', 0, 0, 'eraAbbr'); addFormatToken('NNN', 0, 0, 'eraAbbr'); addFormatToken('NNNN', 0, 0, 'eraName'); addFormatToken('NNNNN', 0, 0, 'eraNarrow'); addFormatToken('y', ['y', 1], 'yo', 'eraYear'); addFormatToken('y', ['yy', 2], 0, 'eraYear'); addFormatToken('y', ['yyy', 3], 0, 'eraYear'); addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); addRegexToken('N', matchEraAbbr); addRegexToken('NN', matchEraAbbr); addRegexToken('NNN', matchEraAbbr); addRegexToken('NNNN', matchEraName); addRegexToken('NNNNN', matchEraNarrow); addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) { var era = config._locale.erasParse(input, token, config._strict); if (era) { getParsingFlags(config).era = era; } else { getParsingFlags(config).invalidEra = input; } }); addRegexToken('y', matchUnsigned); addRegexToken('yy', matchUnsigned); addRegexToken('yyy', matchUnsigned); addRegexToken('yyyy', matchUnsigned); addRegexToken('yo', matchEraYearOrdinal); addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); addParseToken(['yo'], function (input, array, config, token) { var match; if (config._locale._eraYearOrdinalRegex) { match = input.match(config._locale._eraYearOrdinalRegex); } if (config._locale.eraYearOrdinalParse) { array[YEAR] = config._locale.eraYearOrdinalParse(input, match); } else { array[YEAR] = parseInt(input, 10); } }); function localeEras(m, format) { var i, l, date, eras = this._eras || getLocale('en')._eras; for (i = 0, l = eras.length; i < l; ++i) { switch (_typeof(eras[i].since)) { case 'string': // truncate time date = hooks(eras[i].since).startOf('day'); eras[i].since = date.valueOf(); break; } switch (_typeof(eras[i].until)) { case 'undefined': eras[i].until = +Infinity; break; case 'string': // truncate time date = hooks(eras[i].until).startOf('day').valueOf(); eras[i].until = date.valueOf(); break; } } return eras; } function localeErasParse(eraName, format, strict) { var i, l, eras = this.eras(), name, abbr, narrow; eraName = eraName.toUpperCase(); for (i = 0, l = eras.length; i < l; ++i) { name = eras[i].name.toUpperCase(); abbr = eras[i].abbr.toUpperCase(); narrow = eras[i].narrow.toUpperCase(); if (strict) { switch (format) { case 'N': case 'NN': case 'NNN': if (abbr === eraName) { return eras[i]; } break; case 'NNNN': if (name === eraName) { return eras[i]; } break; case 'NNNNN': if (narrow === eraName) { return eras[i]; } break; } } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { return eras[i]; } } } function localeErasConvertYear(era, year) { var dir = era.since <= era.until ? +1 : -1; if (year === undefined) { return hooks(era.since).year(); } else { return hooks(era.since).year() + (year - era.offset) * dir; } } function getEraName() { var i, l, val, eras = this.localeData().eras(); for (i = 0, l = eras.length; i < l; ++i) { // truncate time val = this.clone().startOf('day').valueOf(); if (eras[i].since <= val && val <= eras[i].until) { return eras[i].name; } if (eras[i].until <= val && val <= eras[i].since) { return eras[i].name; } } return ''; } function getEraNarrow() { var i, l, val, eras = this.localeData().eras(); for (i = 0, l = eras.length; i < l; ++i) { // truncate time val = this.clone().startOf('day').valueOf(); if (eras[i].since <= val && val <= eras[i].until) { return eras[i].narrow; } if (eras[i].until <= val && val <= eras[i].since) { return eras[i].narrow; } } return ''; } function getEraAbbr() { var i, l, val, eras = this.localeData().eras(); for (i = 0, l = eras.length; i < l; ++i) { // truncate time val = this.clone().startOf('day').valueOf(); if (eras[i].since <= val && val <= eras[i].until) { return eras[i].abbr; } if (eras[i].until <= val && val <= eras[i].since) { return eras[i].abbr; } } return ''; } function getEraYear() { var i, l, dir, val, eras = this.localeData().eras(); for (i = 0, l = eras.length; i < l; ++i) { dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time val = this.clone().startOf('day').valueOf(); if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) { return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset; } } return this.year(); } function erasNameRegex(isStrict) { if (!hasOwnProp(this, '_erasNameRegex')) { computeErasParse.call(this); } return isStrict ? this._erasNameRegex : this._erasRegex; } function erasAbbrRegex(isStrict) { if (!hasOwnProp(this, '_erasAbbrRegex')) { computeErasParse.call(this); } return isStrict ? this._erasAbbrRegex : this._erasRegex; } function erasNarrowRegex(isStrict) { if (!hasOwnProp(this, '_erasNarrowRegex')) { computeErasParse.call(this); } return isStrict ? this._erasNarrowRegex : this._erasRegex; } function matchEraAbbr(isStrict, locale) { return locale.erasAbbrRegex(isStrict); } function matchEraName(isStrict, locale) { return locale.erasNameRegex(isStrict); } function matchEraNarrow(isStrict, locale) { return locale.erasNarrowRegex(isStrict); } function matchEraYearOrdinal(isStrict, locale) { return locale._eraYearOrdinalRegex || matchUnsigned; } function computeErasParse() { var abbrPieces = [], namePieces = [], narrowPieces = [], mixedPieces = [], i, l, erasName, erasAbbr, erasNarrow, eras = this.eras(); for (i = 0, l = eras.length; i < l; ++i) { erasName = regexEscape(eras[i].name); erasAbbr = regexEscape(eras[i].abbr); erasNarrow = regexEscape(eras[i].narrow); namePieces.push(erasName); abbrPieces.push(erasAbbr); narrowPieces.push(erasNarrow); mixedPieces.push(erasName); mixedPieces.push(erasAbbr); mixedPieces.push(erasNarrow); } this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i'); } // FORMATTING addFormatToken(0, ['gg', 2], 0, function () { return this.weekYear() % 100; }); addFormatToken(0, ['GG', 2], 0, function () { return this.isoWeekYear() % 100; }); function addWeekYearFormatToken(token, getter) { addFormatToken(0, [token, token.length], 0, getter); } addWeekYearFormatToken('gggg', 'weekYear'); addWeekYearFormatToken('ggggg', 'weekYear'); addWeekYearFormatToken('GGGG', 'isoWeekYear'); addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES // PARSING addRegexToken('G', matchSigned); addRegexToken('g', matchSigned); addRegexToken('GG', match1to2, match2); addRegexToken('gg', match1to2, match2); addRegexToken('GGGG', match1to4, match4); addRegexToken('gggg', match1to4, match4); addRegexToken('GGGGG', match1to6, match6); addRegexToken('ggggg', match1to6, match6); addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { week[token.substr(0, 2)] = toInt(input); }); addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { week[token] = hooks.parseTwoDigitYear(input); }); // MOMENTS function getSetWeekYear(input) { return getSetWeekYearHelper.call(this, input, this.week(), this.weekday() + this.localeData()._week.dow, this.localeData()._week.dow, this.localeData()._week.doy); } function getSetISOWeekYear(input) { return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4); } function getISOWeeksInYear() { return weeksInYear(this.year(), 1, 4); } function getISOWeeksInISOWeekYear() { return weeksInYear(this.isoWeekYear(), 1, 4); } function getWeeksInYear() { var weekInfo = this.localeData()._week; return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); } function getWeeksInWeekYear() { var weekInfo = this.localeData()._week; return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); } function getSetWeekYearHelper(input, week, weekday, dow, doy) { var weeksTarget; if (input == null) { return weekOfYear(this, dow, doy).year; } else { weeksTarget = weeksInYear(input, dow, doy); if (week > weeksTarget) { week = weeksTarget; } return setWeekAll.call(this, input, week, weekday, dow, doy); } } function setWeekAll(weekYear, week, weekday, dow, doy) { var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); this.year(date.getUTCFullYear()); this.month(date.getUTCMonth()); this.date(date.getUTCDate()); return this; } // FORMATTING addFormatToken('Q', 0, 'Qo', 'quarter'); // PARSING addRegexToken('Q', match1); addParseToken('Q', function (input, array) { array[MONTH] = (toInt(input) - 1) * 3; }); // MOMENTS function getSetQuarter(input) { return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); } // FORMATTING addFormatToken('D', ['DD', 2], 'Do', 'date'); // PARSING addRegexToken('D', match1to2, match1to2NoLeadingZero); addRegexToken('DD', match1to2, match2); addRegexToken('Do', function (isStrict, locale) { // TODO: Remove "ordinalParse" fallback in next major release. return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient; }); addParseToken(['D', 'DD'], DATE); addParseToken('Do', function (input, array) { array[DATE] = toInt(input.match(match1to2)[0]); }); // MOMENTS var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // PARSING addRegexToken('DDD', match1to3); addRegexToken('DDDD', match3); addParseToken(['DDD', 'DDDD'], function (input, array, config) { config._dayOfYear = toInt(input); }); // HELPERS // MOMENTS function getSetDayOfYear(input) { var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); } // FORMATTING addFormatToken('m', ['mm', 2], 0, 'minute'); // PARSING addRegexToken('m', match1to2, match1to2HasZero); addRegexToken('mm', match1to2, match2); addParseToken(['m', 'mm'], MINUTE); // MOMENTS var getSetMinute = makeGetSet('Minutes', false); // FORMATTING addFormatToken('s', ['ss', 2], 0, 'second'); // PARSING addRegexToken('s', match1to2, match1to2HasZero); addRegexToken('ss', match1to2, match2); addParseToken(['s', 'ss'], SECOND); // MOMENTS var getSetSecond = makeGetSet('Seconds', false); // FORMATTING addFormatToken('S', 0, 0, function () { return ~~(this.millisecond() / 100); }); addFormatToken(0, ['SS', 2], 0, function () { return ~~(this.millisecond() / 10); }); addFormatToken(0, ['SSS', 3], 0, 'millisecond'); addFormatToken(0, ['SSSS', 4], 0, function () { return this.millisecond() * 10; }); addFormatToken(0, ['SSSSS', 5], 0, function () { return this.millisecond() * 100; }); addFormatToken(0, ['SSSSSS', 6], 0, function () { return this.millisecond() * 1000; }); addFormatToken(0, ['SSSSSSS', 7], 0, function () { return this.millisecond() * 10000; }); addFormatToken(0, ['SSSSSSSS', 8], 0, function () { return this.millisecond() * 100000; }); addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { return this.millisecond() * 1000000; }); // PARSING addRegexToken('S', match1to3, match1); addRegexToken('SS', match1to3, match2); addRegexToken('SSS', match1to3, match3); var token, getSetMillisecond; for (token = 'SSSS'; token.length <= 9; token += 'S') { addRegexToken(token, matchUnsigned); } function parseMs(input, array) { array[MILLISECOND] = toInt(('0.' + input) * 1000); } for (token = 'S'; token.length <= 9; token += 'S') { addParseToken(token, parseMs); } getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING addFormatToken('z', 0, 0, 'zoneAbbr'); addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS function getZoneAbbr() { return this._isUTC ? 'UTC' : ''; } function getZoneName() { return this._isUTC ? 'Coordinated Universal Time' : ''; } var proto = Moment.prototype; proto.add = add; proto.calendar = calendar$1; proto.clone = clone; proto.diff = diff; proto.endOf = endOf; proto.format = format; proto.from = from; proto.fromNow = fromNow; proto.to = to; proto.toNow = toNow; proto.get = stringGet; proto.invalidAt = invalidAt; proto.isAfter = isAfter; proto.isBefore = isBefore; proto.isBetween = isBetween; proto.isSame = isSame; proto.isSameOrAfter = isSameOrAfter; proto.isSameOrBefore = isSameOrBefore; proto.isValid = isValid$2; proto.lang = lang; proto.locale = locale; proto.localeData = localeData; proto.max = prototypeMax; proto.min = prototypeMin; proto.parsingFlags = parsingFlags; proto.set = stringSet; proto.startOf = startOf; proto.subtract = subtract; proto.toArray = toArray; proto.toObject = toObject; proto.toDate = toDate; proto.toISOString = toISOString; proto.inspect = inspect; if (typeof Symbol !== 'undefined' && Symbol.for != null) { proto[Symbol.for('nodejs.util.inspect.custom')] = function () { return 'Moment<' + this.format() + '>'; }; } proto.toJSON = toJSON; proto.toString = toString; proto.unix = unix; proto.valueOf = valueOf; proto.creationData = creationData; proto.eraName = getEraName; proto.eraNarrow = getEraNarrow; proto.eraAbbr = getEraAbbr; proto.eraYear = getEraYear; proto.year = getSetYear; proto.isLeapYear = getIsLeapYear; proto.weekYear = getSetWeekYear; proto.isoWeekYear = getSetISOWeekYear; proto.quarter = proto.quarters = getSetQuarter; proto.month = getSetMonth; proto.daysInMonth = getDaysInMonth; proto.week = proto.weeks = getSetWeek; proto.isoWeek = proto.isoWeeks = getSetISOWeek; proto.weeksInYear = getWeeksInYear; proto.weeksInWeekYear = getWeeksInWeekYear; proto.isoWeeksInYear = getISOWeeksInYear; proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; proto.date = getSetDayOfMonth; proto.day = proto.days = getSetDayOfWeek; proto.weekday = getSetLocaleDayOfWeek; proto.isoWeekday = getSetISODayOfWeek; proto.dayOfYear = getSetDayOfYear; proto.hour = proto.hours = getSetHour; proto.minute = proto.minutes = getSetMinute; proto.second = proto.seconds = getSetSecond; proto.millisecond = proto.milliseconds = getSetMillisecond; proto.utcOffset = getSetOffset; proto.utc = setOffsetToUTC; proto.local = setOffsetToLocal; proto.parseZone = setOffsetToParsedOffset; proto.hasAlignedHourOffset = hasAlignedHourOffset; proto.isDST = isDaylightSavingTime; proto.isLocal = isLocal; proto.isUtcOffset = isUtcOffset; proto.isUtc = isUtc; proto.isUTC = isUtc; proto.zoneAbbr = getZoneAbbr; proto.zoneName = getZoneName; proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); function createUnix(input) { return createLocal(input * 1000); } function createInZone() { return createLocal.apply(null, arguments).parseZone(); } function preParsePostFormat(string) { return string; } var proto$1 = Locale.prototype; proto$1.calendar = calendar; proto$1.longDateFormat = longDateFormat; proto$1.invalidDate = invalidDate; proto$1.ordinal = ordinal; proto$1.preparse = preParsePostFormat; proto$1.postformat = preParsePostFormat; proto$1.relativeTime = relativeTime; proto$1.pastFuture = pastFuture; proto$1.set = set; proto$1.eras = localeEras; proto$1.erasParse = localeErasParse; proto$1.erasConvertYear = localeErasConvertYear; proto$1.erasAbbrRegex = erasAbbrRegex; proto$1.erasNameRegex = erasNameRegex; proto$1.erasNarrowRegex = erasNarrowRegex; proto$1.months = localeMonths; proto$1.monthsShort = localeMonthsShort; proto$1.monthsParse = localeMonthsParse; proto$1.monthsRegex = monthsRegex; proto$1.monthsShortRegex = monthsShortRegex; proto$1.week = localeWeek; proto$1.firstDayOfYear = localeFirstDayOfYear; proto$1.firstDayOfWeek = localeFirstDayOfWeek; proto$1.weekdays = localeWeekdays; proto$1.weekdaysMin = localeWeekdaysMin; proto$1.weekdaysShort = localeWeekdaysShort; proto$1.weekdaysParse = localeWeekdaysParse; proto$1.weekdaysRegex = weekdaysRegex; proto$1.weekdaysShortRegex = weekdaysShortRegex; proto$1.weekdaysMinRegex = weekdaysMinRegex; proto$1.isPM = localeIsPM; proto$1.meridiem = localeMeridiem; function get$1(format, index, field, setter) { var locale = getLocale(), utc = createUTC().set(setter, index); return locale[field](utc, format); } function listMonthsImpl(format, index, field) { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; if (index != null) { return get$1(format, index, field, 'month'); } var i, out = []; for (i = 0; i < 12; i++) { out[i] = get$1(format, i, field, 'month'); } return out; } // () // (5) // (fmt, 5) // (fmt) // (true) // (true, 5) // (true, fmt, 5) // (true, fmt) function listWeekdaysImpl(localeSorted, format, index, field) { if (typeof localeSorted === 'boolean') { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } else { format = localeSorted; index = format; localeSorted = false; if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } var locale = getLocale(), shift = localeSorted ? locale._week.dow : 0, i, out = []; if (index != null) { return get$1(format, (index + shift) % 7, field, 'day'); } for (i = 0; i < 7; i++) { out[i] = get$1(format, (i + shift) % 7, field, 'day'); } return out; } function listMonths(format, index) { return listMonthsImpl(format, index, 'months'); } function listMonthsShort(format, index) { return listMonthsImpl(format, index, 'monthsShort'); } function listWeekdays(localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); } function listWeekdaysShort(localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); } function listWeekdaysMin(localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); } getSetGlobalLocale('en', { eras: [{ since: '0001-01-01', until: +Infinity, offset: 1, name: 'Anno Domini', narrow: 'AD', abbr: 'AD' }, { since: '0000-12-31', until: -Infinity, offset: 1, name: 'Before Christ', narrow: 'BC', abbr: 'BC' }], dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function ordinal(number) { var b = number % 10, output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; } }); // Side effect imports hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); var mathAbs = Math.abs; function abs() { var data = this._data; this._milliseconds = mathAbs(this._milliseconds); this._days = mathAbs(this._days); this._months = mathAbs(this._months); data.milliseconds = mathAbs(data.milliseconds); data.seconds = mathAbs(data.seconds); data.minutes = mathAbs(data.minutes); data.hours = mathAbs(data.hours); data.months = mathAbs(data.months); data.years = mathAbs(data.years); return this; } function addSubtract$1(duration, input, value, direction) { var other = createDuration(input, value); duration._milliseconds += direction * other._milliseconds; duration._days += direction * other._days; duration._months += direction * other._months; return duration._bubble(); } // supports only 2.0-style add(1, 's') or add(duration) function add$1(input, value) { return addSubtract$1(this, input, value, 1); } // supports only 2.0-style subtract(1, 's') or subtract(duration) function subtract$1(input, value) { return addSubtract$1(this, input, value, -1); } function absCeil(number) { if (number < 0) { return Math.floor(number); } else { return Math.ceil(number); } } function bubble() { var milliseconds = this._milliseconds, days = this._days, months = this._months, data = this._data, seconds, minutes, hours, years, monthsFromDays; // if we have a mix of positive and negative values, bubble down first // check: https://github.com/moment/moment/issues/2166 if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) { milliseconds += absCeil(monthsToDays(months) + days) * 864e5; days = 0; months = 0; } // The following code bubbles up values, see the tests for // examples of what that means. data.milliseconds = milliseconds % 1000; seconds = absFloor(milliseconds / 1000); data.seconds = seconds % 60; minutes = absFloor(seconds / 60); data.minutes = minutes % 60; hours = absFloor(minutes / 60); data.hours = hours % 24; days += absFloor(hours / 24); // convert days to months monthsFromDays = absFloor(daysToMonths(days)); months += monthsFromDays; days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year years = absFloor(months / 12); months %= 12; data.days = days; data.months = months; data.years = years; return this; } function daysToMonths(days) { // 400 years have 146097 days (taking into account leap year rules) // 400 years have 12 months === 4800 return days * 4800 / 146097; } function monthsToDays(months) { // the reverse of daysToMonths return months * 146097 / 4800; } function as(units) { if (!this.isValid()) { return NaN; } var days, months, milliseconds = this._milliseconds; units = normalizeUnits(units); if (units === 'month' || units === 'quarter' || units === 'year') { days = this._days + milliseconds / 864e5; months = this._months + daysToMonths(days); switch (units) { case 'month': return months; case 'quarter': return months / 3; case 'year': return months / 12; } } else { // handle milliseconds separately because of floating point math errors (issue #1867) days = this._days + Math.round(monthsToDays(this._months)); switch (units) { case 'week': return days / 7 + milliseconds / 6048e5; case 'day': return days + milliseconds / 864e5; case 'hour': return days * 24 + milliseconds / 36e5; case 'minute': return days * 1440 + milliseconds / 6e4; case 'second': return days * 86400 + milliseconds / 1000; // Math.floor prevents floating point math errors here case 'millisecond': return Math.floor(days * 864e5) + milliseconds; default: throw new Error('Unknown unit ' + units); } } } function makeAs(alias) { return function () { return this.as(alias); }; } var asMilliseconds = makeAs('ms'), asSeconds = makeAs('s'), asMinutes = makeAs('m'), asHours = makeAs('h'), asDays = makeAs('d'), asWeeks = makeAs('w'), asMonths = makeAs('M'), asQuarters = makeAs('Q'), asYears = makeAs('y'), valueOf$1 = asMilliseconds; function clone$1() { return createDuration(this); } function get$2(units) { units = normalizeUnits(units); return this.isValid() ? this[units + 's']() : NaN; } function makeGetter(name) { return function () { return this.isValid() ? this._data[name] : NaN; }; } var milliseconds = makeGetter('milliseconds'), seconds = makeGetter('seconds'), minutes = makeGetter('minutes'), hours = makeGetter('hours'), days = makeGetter('days'), months = makeGetter('months'), years = makeGetter('years'); function weeks() { return absFloor(this.days() / 7); } var round = Math.round, thresholds = { ss: 44, // a few seconds to seconds s: 45, // seconds to minute m: 45, // minutes to hour h: 22, // hours to day d: 26, // days to month/week w: null, // weeks to month M: 11 // months to year }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); } function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { var duration = createDuration(posNegDuration).abs(), seconds = round(duration.as('s')), minutes = round(duration.as('m')), hours = round(duration.as('h')), days = round(duration.as('d')), months = round(duration.as('M')), weeks = round(duration.as('w')), years = round(duration.as('y')), a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days]; if (thresholds.w != null) { a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks]; } a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years]; a[2] = withoutSuffix; a[3] = +posNegDuration > 0; a[4] = locale; return substituteTimeAgo.apply(null, a); } // This function allows you to set the rounding function for relative time strings function getSetRelativeTimeRounding(roundingFunction) { if (roundingFunction === undefined) { return round; } if (typeof roundingFunction === 'function') { round = roundingFunction; return true; } return false; } // This function allows you to set a threshold for relative time strings function getSetRelativeTimeThreshold(threshold, limit) { if (thresholds[threshold] === undefined) { return false; } if (limit === undefined) { return thresholds[threshold]; } thresholds[threshold] = limit; if (threshold === 's') { thresholds.ss = limit - 1; } return true; } function humanize(argWithSuffix, argThresholds) { if (!this.isValid()) { return this.localeData().invalidDate(); } var withSuffix = false, th = thresholds, locale, output; if (_typeof(argWithSuffix) === 'object') { argThresholds = argWithSuffix; argWithSuffix = false; } if (typeof argWithSuffix === 'boolean') { withSuffix = argWithSuffix; } if (_typeof(argThresholds) === 'object') { th = Object.assign({}, thresholds, argThresholds); if (argThresholds.s != null && argThresholds.ss == null) { th.ss = argThresholds.s - 1; } } locale = this.localeData(); output = relativeTime$1(this, !withSuffix, th, locale); if (withSuffix) { output = locale.pastFuture(+this, output); } return locale.postformat(output); } var abs$1 = Math.abs; function sign(x) { return (x > 0) - (x < 0) || +x; } function toISOString$1() { // for ISO strings we do not use the normal bubbling rules: // * milliseconds bubble up until they become hours // * days do not bubble at all // * months bubble up until they become years // This is because there is no context-free conversion between hours and days // (think of clock changes) // and also not between days and months (28-31 days per month) if (!this.isValid()) { return this.localeData().invalidDate(); } var seconds = abs$1(this._milliseconds) / 1000, days = abs$1(this._days), months = abs$1(this._months), minutes, hours, years, s, total = this.asSeconds(), totalSign, ymSign, daysSign, hmsSign; if (!total) { // this is the same as C#'s (Noda) and python (isodate)... // but not other JS (goog.date) return 'P0D'; } // 3600 seconds -> 60 minutes -> 1 hour minutes = absFloor(seconds / 60); hours = absFloor(minutes / 60); seconds %= 60; minutes %= 60; // 12 months -> 1 year years = absFloor(months / 12); months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; totalSign = total < 0 ? '-' : ''; ymSign = sign(this._months) !== sign(total) ? '-' : ''; daysSign = sign(this._days) !== sign(total) ? '-' : ''; hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : ''); } var proto$2 = Duration.prototype; proto$2.isValid = isValid$1; proto$2.abs = abs; proto$2.add = add$1; proto$2.subtract = subtract$1; proto$2.as = as; proto$2.asMilliseconds = asMilliseconds; proto$2.asSeconds = asSeconds; proto$2.asMinutes = asMinutes; proto$2.asHours = asHours; proto$2.asDays = asDays; proto$2.asWeeks = asWeeks; proto$2.asMonths = asMonths; proto$2.asQuarters = asQuarters; proto$2.asYears = asYears; proto$2.valueOf = valueOf$1; proto$2._bubble = bubble; proto$2.clone = clone$1; proto$2.get = get$2; proto$2.milliseconds = milliseconds; proto$2.seconds = seconds; proto$2.minutes = minutes; proto$2.hours = hours; proto$2.days = days; proto$2.weeks = weeks; proto$2.months = months; proto$2.years = years; proto$2.humanize = humanize; proto$2.toISOString = toISOString$1; proto$2.toString = toISOString$1; proto$2.toJSON = toISOString$1; proto$2.locale = locale; proto$2.localeData = localeData; proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); proto$2.lang = lang; // FORMATTING addFormatToken('X', 0, 0, 'unix'); addFormatToken('x', 0, 0, 'valueOf'); // PARSING addRegexToken('x', matchSigned); addRegexToken('X', matchTimestamp); addParseToken('X', function (input, array, config) { config._d = new Date(parseFloat(input) * 1000); }); addParseToken('x', function (input, array, config) { config._d = new Date(toInt(input)); }); //! moment.js hooks.version = '2.30.1'; setHookCallback(createLocal); hooks.fn = proto; hooks.min = min; hooks.max = max; hooks.now = now; hooks.utc = createUTC; hooks.unix = createUnix; hooks.months = listMonths; hooks.isDate = isDate; hooks.locale = getSetGlobalLocale; hooks.invalid = createInvalid; hooks.duration = createDuration; hooks.isMoment = isMoment; hooks.weekdays = listWeekdays; hooks.parseZone = createInZone; hooks.localeData = getLocale; hooks.isDuration = isDuration; hooks.monthsShort = listMonthsShort; hooks.weekdaysMin = listWeekdaysMin; hooks.defineLocale = defineLocale; hooks.updateLocale = updateLocale; hooks.locales = listLocales; hooks.weekdaysShort = listWeekdaysShort; hooks.normalizeUnits = normalizeUnits; hooks.relativeTimeRounding = getSetRelativeTimeRounding; hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; hooks.calendarFormat = getCalendarFormat; hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats hooks.HTML5_FMT = { DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // DATE: 'YYYY-MM-DD', // TIME: 'HH:mm', // TIME_SECONDS: 'HH:mm:ss', // TIME_MS: 'HH:mm:ss.SSS', // WEEK: 'GGGG-[W]WW', // MONTH: 'YYYY-MM' // }; return hooks; }); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)["default"], __webpack_require__(/*! ./../../../../HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/module.js */ 174)(module))) /***/ }), /* 174 */ /*!***********************************!*\ !*** (webpack)/buildin/module.js ***! \***********************************/ /*! no static exports found */ /***/ (function(module, exports) { module.exports = function(module) { if (!module.webpackPolyfill) { module.deprecate = function() {}; module.paths = []; // module.parent = undefined by default if (!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function() { return module.i; } }); module.webpackPolyfill = 1; } return module; }; /***/ }), /* 175 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale sync ^\.\/.*$ ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var map = { "./af": 176, "./af.js": 176, "./ar": 177, "./ar-dz": 178, "./ar-dz.js": 178, "./ar-kw": 179, "./ar-kw.js": 179, "./ar-ly": 180, "./ar-ly.js": 180, "./ar-ma": 181, "./ar-ma.js": 181, "./ar-ps": 182, "./ar-ps.js": 182, "./ar-sa": 183, "./ar-sa.js": 183, "./ar-tn": 184, "./ar-tn.js": 184, "./ar.js": 177, "./az": 185, "./az.js": 185, "./be": 186, "./be.js": 186, "./bg": 187, "./bg.js": 187, "./bm": 188, "./bm.js": 188, "./bn": 189, "./bn-bd": 190, "./bn-bd.js": 190, "./bn.js": 189, "./bo": 191, "./bo.js": 191, "./br": 192, "./br.js": 192, "./bs": 193, "./bs.js": 193, "./ca": 194, "./ca.js": 194, "./cs": 195, "./cs.js": 195, "./cv": 196, "./cv.js": 196, "./cy": 197, "./cy.js": 197, "./da": 198, "./da.js": 198, "./de": 199, "./de-at": 200, "./de-at.js": 200, "./de-ch": 201, "./de-ch.js": 201, "./de.js": 199, "./dv": 202, "./dv.js": 202, "./el": 203, "./el.js": 203, "./en-au": 204, "./en-au.js": 204, "./en-ca": 205, "./en-ca.js": 205, "./en-gb": 206, "./en-gb.js": 206, "./en-ie": 207, "./en-ie.js": 207, "./en-il": 208, "./en-il.js": 208, "./en-in": 209, "./en-in.js": 209, "./en-nz": 210, "./en-nz.js": 210, "./en-sg": 211, "./en-sg.js": 211, "./eo": 212, "./eo.js": 212, "./es": 213, "./es-do": 214, "./es-do.js": 214, "./es-mx": 215, "./es-mx.js": 215, "./es-us": 216, "./es-us.js": 216, "./es.js": 213, "./et": 217, "./et.js": 217, "./eu": 218, "./eu.js": 218, "./fa": 219, "./fa.js": 219, "./fi": 220, "./fi.js": 220, "./fil": 221, "./fil.js": 221, "./fo": 222, "./fo.js": 222, "./fr": 223, "./fr-ca": 224, "./fr-ca.js": 224, "./fr-ch": 225, "./fr-ch.js": 225, "./fr.js": 223, "./fy": 226, "./fy.js": 226, "./ga": 227, "./ga.js": 227, "./gd": 228, "./gd.js": 228, "./gl": 229, "./gl.js": 229, "./gom-deva": 230, "./gom-deva.js": 230, "./gom-latn": 231, "./gom-latn.js": 231, "./gu": 232, "./gu.js": 232, "./he": 233, "./he.js": 233, "./hi": 234, "./hi.js": 234, "./hr": 235, "./hr.js": 235, "./hu": 236, "./hu.js": 236, "./hy-am": 237, "./hy-am.js": 237, "./id": 238, "./id.js": 238, "./is": 239, "./is.js": 239, "./it": 240, "./it-ch": 241, "./it-ch.js": 241, "./it.js": 240, "./ja": 242, "./ja.js": 242, "./jv": 243, "./jv.js": 243, "./ka": 244, "./ka.js": 244, "./kk": 245, "./kk.js": 245, "./km": 246, "./km.js": 246, "./kn": 247, "./kn.js": 247, "./ko": 248, "./ko.js": 248, "./ku": 249, "./ku-kmr": 250, "./ku-kmr.js": 250, "./ku.js": 249, "./ky": 251, "./ky.js": 251, "./lb": 252, "./lb.js": 252, "./lo": 253, "./lo.js": 253, "./lt": 254, "./lt.js": 254, "./lv": 255, "./lv.js": 255, "./me": 256, "./me.js": 256, "./mi": 257, "./mi.js": 257, "./mk": 258, "./mk.js": 258, "./ml": 259, "./ml.js": 259, "./mn": 260, "./mn.js": 260, "./mr": 261, "./mr.js": 261, "./ms": 262, "./ms-my": 263, "./ms-my.js": 263, "./ms.js": 262, "./mt": 264, "./mt.js": 264, "./my": 265, "./my.js": 265, "./nb": 266, "./nb.js": 266, "./ne": 267, "./ne.js": 267, "./nl": 268, "./nl-be": 269, "./nl-be.js": 269, "./nl.js": 268, "./nn": 270, "./nn.js": 270, "./oc-lnc": 271, "./oc-lnc.js": 271, "./pa-in": 272, "./pa-in.js": 272, "./pl": 273, "./pl.js": 273, "./pt": 274, "./pt-br": 275, "./pt-br.js": 275, "./pt.js": 274, "./ro": 276, "./ro.js": 276, "./ru": 277, "./ru.js": 277, "./sd": 278, "./sd.js": 278, "./se": 279, "./se.js": 279, "./si": 280, "./si.js": 280, "./sk": 281, "./sk.js": 281, "./sl": 282, "./sl.js": 282, "./sq": 283, "./sq.js": 283, "./sr": 284, "./sr-cyrl": 285, "./sr-cyrl.js": 285, "./sr.js": 284, "./ss": 286, "./ss.js": 286, "./sv": 287, "./sv.js": 287, "./sw": 288, "./sw.js": 288, "./ta": 289, "./ta.js": 289, "./te": 290, "./te.js": 290, "./tet": 291, "./tet.js": 291, "./tg": 292, "./tg.js": 292, "./th": 293, "./th.js": 293, "./tk": 294, "./tk.js": 294, "./tl-ph": 295, "./tl-ph.js": 295, "./tlh": 296, "./tlh.js": 296, "./tr": 297, "./tr.js": 297, "./tzl": 298, "./tzl.js": 298, "./tzm": 299, "./tzm-latn": 300, "./tzm-latn.js": 300, "./tzm.js": 299, "./ug-cn": 301, "./ug-cn.js": 301, "./uk": 302, "./uk.js": 302, "./ur": 303, "./ur.js": 303, "./uz": 304, "./uz-latn": 305, "./uz-latn.js": 305, "./uz.js": 304, "./vi": 306, "./vi.js": 306, "./x-pseudo": 307, "./x-pseudo.js": 307, "./yo": 308, "./yo.js": 308, "./zh-cn": 309, "./zh-cn.js": 309, "./zh-hk": 310, "./zh-hk.js": 310, "./zh-mo": 311, "./zh-mo.js": 311, "./zh-tw": 312, "./zh-tw.js": 312 }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if(!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 175; /***/ }), /* 176 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/af.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Afrikaans [af] //! author : Werner Mollentze : https://github.com/wernerm ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var af = moment.defineLocale('af', { months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), meridiemParse: /vm|nm/i, isPM: function isPM(input) { return /^nm$/i.test(input); }, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 12) { return isLower ? 'vm' : 'VM'; } else { return isLower ? 'nm' : 'NM'; } }, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Vandag om] LT', nextDay: '[Môre om] LT', nextWeek: 'dddd [om] LT', lastDay: '[Gister om] LT', lastWeek: '[Laas] dddd [om] LT', sameElse: 'L' }, relativeTime: { future: 'oor %s', past: '%s gelede', s: "'n paar sekondes", ss: '%d sekondes', m: "'n minuut", mm: '%d minute', h: "'n uur", hh: '%d ure', d: "'n dag", dd: '%d dae', M: "'n maand", MM: '%d maande', y: "'n jaar", yy: '%d jaar' }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function ordinal(number) { return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter }, week: { dow: 1, // Maandag is die eerste dag van die week. doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. } }); return af; }); /***/ }), /* 177 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic [ar] //! author : Abdel Said: https://github.com/abdelsaid //! author : Ahmed Elkhatib //! author : forabi https://github.com/forabi ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '١', 2: '٢', 3: '٣', 4: '٤', 5: '٥', 6: '٦', 7: '٧', 8: '٨', 9: '٩', 0: '٠' }, numberMap = { '١': '1', '٢': '2', '٣': '3', '٤': '4', '٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9', '٠': '0' }, pluralForm = function pluralForm(n) { return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; }, plurals = { s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] }, pluralize = function pluralize(u) { return function (number, withoutSuffix, string, isFuture) { var f = pluralForm(number), str = plurals[u][pluralForm(number)]; if (f === 2) { str = str[withoutSuffix ? 0 : 1]; } return str.replace(/%d/i, number); }; }, months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر']; var ar = moment.defineLocale('ar', { months: months, monthsShort: months, weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: "D/\u200FM/\u200FYYYY", LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, meridiemParse: /ص|م/, isPM: function isPM(input) { return 'م' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ص'; } else { return 'م'; } }, calendar: { sameDay: '[اليوم عند الساعة] LT', nextDay: '[غدًا عند الساعة] LT', nextWeek: 'dddd [عند الساعة] LT', lastDay: '[أمس عند الساعة] LT', lastWeek: 'dddd [عند الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'بعد %s', past: 'منذ %s', s: pluralize('s'), ss: pluralize('s'), m: pluralize('m'), mm: pluralize('m'), h: pluralize('h'), hh: pluralize('h'), d: pluralize('d'), dd: pluralize('d'), M: pluralize('M'), MM: pluralize('M'), y: pluralize('y'), yy: pluralize('y') }, preparse: function preparse(string) { return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { return numberMap[match]; }).replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }).replace(/,/g, '،'); }, week: { dow: 6, // Saturday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return ar; }); /***/ }), /* 178 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar-dz.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic (Algeria) [ar-dz] //! author : Amine Roukh: https://github.com/Amine27 //! author : Abdel Said: https://github.com/abdelsaid //! author : Ahmed Elkhatib //! author : forabi https://github.com/forabi //! author : Noureddine LOUAHEDJ : https://github.com/noureddinem ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var pluralForm = function pluralForm(n) { return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; }, plurals = { s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] }, pluralize = function pluralize(u) { return function (number, withoutSuffix, string, isFuture) { var f = pluralForm(number), str = plurals[u][pluralForm(number)]; if (f === 2) { str = str[withoutSuffix ? 0 : 1]; } return str.replace(/%d/i, number); }; }, months = ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر']; var arDz = moment.defineLocale('ar-dz', { months: months, monthsShort: months, weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: "D/\u200FM/\u200FYYYY", LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, meridiemParse: /ص|م/, isPM: function isPM(input) { return 'م' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ص'; } else { return 'م'; } }, calendar: { sameDay: '[اليوم عند الساعة] LT', nextDay: '[غدًا عند الساعة] LT', nextWeek: 'dddd [عند الساعة] LT', lastDay: '[أمس عند الساعة] LT', lastWeek: 'dddd [عند الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'بعد %s', past: 'منذ %s', s: pluralize('s'), ss: pluralize('s'), m: pluralize('m'), mm: pluralize('m'), h: pluralize('h'), hh: pluralize('h'), d: pluralize('d'), dd: pluralize('d'), M: pluralize('M'), MM: pluralize('M'), y: pluralize('y'), yy: pluralize('y') }, postformat: function postformat(string) { return string.replace(/,/g, '،'); }, week: { dow: 0, // Sunday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return arDz; }); /***/ }), /* 179 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar-kw.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic (Kuwait) [ar-kw] //! author : Nusret Parlak: https://github.com/nusretparlak ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var arKw = moment.defineLocale('ar-kw', { months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[اليوم على الساعة] LT', nextDay: '[غدا على الساعة] LT', nextWeek: 'dddd [على الساعة] LT', lastDay: '[أمس على الساعة] LT', lastWeek: 'dddd [على الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'في %s', past: 'منذ %s', s: 'ثوان', ss: '%d ثانية', m: 'دقيقة', mm: '%d دقائق', h: 'ساعة', hh: '%d ساعات', d: 'يوم', dd: '%d أيام', M: 'شهر', MM: '%d أشهر', y: 'سنة', yy: '%d سنوات' }, week: { dow: 0, // Sunday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return arKw; }); /***/ }), /* 180 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar-ly.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic (Libya) [ar-ly] //! author : Ali Hmer: https://github.com/kikoanis ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9', 0: '0' }, pluralForm = function pluralForm(n) { return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; }, plurals = { s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] }, pluralize = function pluralize(u) { return function (number, withoutSuffix, string, isFuture) { var f = pluralForm(number), str = plurals[u][pluralForm(number)]; if (f === 2) { str = str[withoutSuffix ? 0 : 1]; } return str.replace(/%d/i, number); }; }, months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر']; var arLy = moment.defineLocale('ar-ly', { months: months, monthsShort: months, weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: "D/\u200FM/\u200FYYYY", LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, meridiemParse: /ص|م/, isPM: function isPM(input) { return 'م' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ص'; } else { return 'م'; } }, calendar: { sameDay: '[اليوم عند الساعة] LT', nextDay: '[غدًا عند الساعة] LT', nextWeek: 'dddd [عند الساعة] LT', lastDay: '[أمس عند الساعة] LT', lastWeek: 'dddd [عند الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'بعد %s', past: 'منذ %s', s: pluralize('s'), ss: pluralize('s'), m: pluralize('m'), mm: pluralize('m'), h: pluralize('h'), hh: pluralize('h'), d: pluralize('d'), dd: pluralize('d'), M: pluralize('M'), MM: pluralize('M'), y: pluralize('y'), yy: pluralize('y') }, preparse: function preparse(string) { return string.replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }).replace(/,/g, '،'); }, week: { dow: 6, // Saturday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return arLy; }); /***/ }), /* 181 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar-ma.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic (Morocco) [ar-ma] //! author : ElFadili Yassine : https://github.com/ElFadiliY //! author : Abdel Said : https://github.com/abdelsaid ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var arMa = moment.defineLocale('ar-ma', { months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[اليوم على الساعة] LT', nextDay: '[غدا على الساعة] LT', nextWeek: 'dddd [على الساعة] LT', lastDay: '[أمس على الساعة] LT', lastWeek: 'dddd [على الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'في %s', past: 'منذ %s', s: 'ثوان', ss: '%d ثانية', m: 'دقيقة', mm: '%d دقائق', h: 'ساعة', hh: '%d ساعات', d: 'يوم', dd: '%d أيام', M: 'شهر', MM: '%d أشهر', y: 'سنة', yy: '%d سنوات' }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return arMa; }); /***/ }), /* 182 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar-ps.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic (Palestine) [ar-ps] //! author : Majd Al-Shihabi : https://github.com/majdal ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '١', 2: '٢', 3: '٣', 4: '٤', 5: '٥', 6: '٦', 7: '٧', 8: '٨', 9: '٩', 0: '٠' }, numberMap = { '١': '1', '٢': '2', '٣': '3', '٤': '4', '٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9', '٠': '0' }; var arPs = moment.defineLocale('ar-ps', { months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split('_'), monthsShort: 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'), weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, meridiemParse: /ص|م/, isPM: function isPM(input) { return 'م' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ص'; } else { return 'م'; } }, calendar: { sameDay: '[اليوم على الساعة] LT', nextDay: '[غدا على الساعة] LT', nextWeek: 'dddd [على الساعة] LT', lastDay: '[أمس على الساعة] LT', lastWeek: 'dddd [على الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'في %s', past: 'منذ %s', s: 'ثوان', ss: '%d ثانية', m: 'دقيقة', mm: '%d دقائق', h: 'ساعة', hh: '%d ساعات', d: 'يوم', dd: '%d أيام', M: 'شهر', MM: '%d أشهر', y: 'سنة', yy: '%d سنوات' }, preparse: function preparse(string) { return string.replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { return numberMap[match]; }).split('') // reversed since negative lookbehind not supported everywhere .reverse().join('').replace(/[١٢](?![\u062a\u0643])/g, function (match) { return numberMap[match]; }).split('').reverse().join('').replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }).replace(/,/g, '،'); }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return arPs; }); /***/ }), /* 183 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar-sa.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic (Saudi Arabia) [ar-sa] //! author : Suhail Alkowaileet : https://github.com/xsoh ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '١', 2: '٢', 3: '٣', 4: '٤', 5: '٥', 6: '٦', 7: '٧', 8: '٨', 9: '٩', 0: '٠' }, numberMap = { '١': '1', '٢': '2', '٣': '3', '٤': '4', '٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9', '٠': '0' }; var arSa = moment.defineLocale('ar-sa', { months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, meridiemParse: /ص|م/, isPM: function isPM(input) { return 'م' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ص'; } else { return 'م'; } }, calendar: { sameDay: '[اليوم على الساعة] LT', nextDay: '[غدا على الساعة] LT', nextWeek: 'dddd [على الساعة] LT', lastDay: '[أمس على الساعة] LT', lastWeek: 'dddd [على الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'في %s', past: 'منذ %s', s: 'ثوان', ss: '%d ثانية', m: 'دقيقة', mm: '%d دقائق', h: 'ساعة', hh: '%d ساعات', d: 'يوم', dd: '%d أيام', M: 'شهر', MM: '%d أشهر', y: 'سنة', yy: '%d سنوات' }, preparse: function preparse(string) { return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { return numberMap[match]; }).replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }).replace(/,/g, '،'); }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return arSa; }); /***/ }), /* 184 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ar-tn.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Arabic (Tunisia) [ar-tn] //! author : Nader Toukabri : https://github.com/naderio ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var arTn = moment.defineLocale('ar-tn', { months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[اليوم على الساعة] LT', nextDay: '[غدا على الساعة] LT', nextWeek: 'dddd [على الساعة] LT', lastDay: '[أمس على الساعة] LT', lastWeek: 'dddd [على الساعة] LT', sameElse: 'L' }, relativeTime: { future: 'في %s', past: 'منذ %s', s: 'ثوان', ss: '%d ثانية', m: 'دقيقة', mm: '%d دقائق', h: 'ساعة', hh: '%d ساعات', d: 'يوم', dd: '%d أيام', M: 'شهر', MM: '%d أشهر', y: 'سنة', yy: '%d سنوات' }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return arTn; }); /***/ }), /* 185 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/az.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Azerbaijani [az] //! author : topchiyev : https://github.com/topchiyev ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var suffixes = { 1: '-inci', 5: '-inci', 8: '-inci', 70: '-inci', 80: '-inci', 2: '-nci', 7: '-nci', 20: '-nci', 50: '-nci', 3: '-üncü', 4: '-üncü', 100: '-üncü', 6: '-ncı', 9: '-uncu', 10: '-uncu', 30: '-uncu', 60: '-ıncı', 90: '-ıncı' }; var az = moment.defineLocale('az', { months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[bugün saat] LT', nextDay: '[sabah saat] LT', nextWeek: '[gələn həftə] dddd [saat] LT', lastDay: '[dünən] LT', lastWeek: '[keçən həftə] dddd [saat] LT', sameElse: 'L' }, relativeTime: { future: '%s sonra', past: '%s əvvəl', s: 'bir neçə saniyə', ss: '%d saniyə', m: 'bir dəqiqə', mm: '%d dəqiqə', h: 'bir saat', hh: '%d saat', d: 'bir gün', dd: '%d gün', M: 'bir ay', MM: '%d ay', y: 'bir il', yy: '%d il' }, meridiemParse: /gecə|səhər|gündüz|axşam/, isPM: function isPM(input) { return /^(gündüz|axşam)$/.test(input); }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'gecə'; } else if (hour < 12) { return 'səhər'; } else if (hour < 17) { return 'gündüz'; } else { return 'axşam'; } }, dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, ordinal: function ordinal(number) { if (number === 0) { // special case for zero return number + '-ıncı'; } var a = number % 10, b = number % 100 - a, c = number >= 100 ? 100 : null; return number + (suffixes[a] || suffixes[b] || suffixes[c]); }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return az; }); /***/ }), /* 186 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/be.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Belarusian [be] //! author : Dmitry Demidov : https://github.com/demidov91 //! author: Praleska: http://praleska.pro/ //! Author : Menelion Elensúle : https://github.com/Oire ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function plural(word, num) { var forms = word.split('_'); return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; } function relativeTimeWithPlural(number, withoutSuffix, key) { var format = { ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', dd: 'дзень_дні_дзён', MM: 'месяц_месяцы_месяцаў', yy: 'год_гады_гадоў' }; if (key === 'm') { return withoutSuffix ? 'хвіліна' : 'хвіліну'; } else if (key === 'h') { return withoutSuffix ? 'гадзіна' : 'гадзіну'; } else { return number + ' ' + plural(format[key], +number); } } var be = moment.defineLocale('be', { months: { format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'), standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_') }, monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), weekdays: { format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'), standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'), isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/ }, weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY г.', LLL: 'D MMMM YYYY г., HH:mm', LLLL: 'dddd, D MMMM YYYY г., HH:mm' }, calendar: { sameDay: '[Сёння ў] LT', nextDay: '[Заўтра ў] LT', lastDay: '[Учора ў] LT', nextWeek: function nextWeek() { return '[У] dddd [ў] LT'; }, lastWeek: function lastWeek() { switch (this.day()) { case 0: case 3: case 5: case 6: return '[У мінулую] dddd [ў] LT'; case 1: case 2: case 4: return '[У мінулы] dddd [ў] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'праз %s', past: '%s таму', s: 'некалькі секунд', m: relativeTimeWithPlural, mm: relativeTimeWithPlural, h: relativeTimeWithPlural, hh: relativeTimeWithPlural, d: 'дзень', dd: relativeTimeWithPlural, M: 'месяц', MM: relativeTimeWithPlural, y: 'год', yy: relativeTimeWithPlural }, meridiemParse: /ночы|раніцы|дня|вечара/, isPM: function isPM(input) { return /^(дня|вечара)$/.test(input); }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'ночы'; } else if (hour < 12) { return 'раніцы'; } else if (hour < 17) { return 'дня'; } else { return 'вечара'; } }, dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, ordinal: function ordinal(number, period) { switch (period) { case 'M': case 'd': case 'DDD': case 'w': case 'W': return (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? number + '-і' : number + '-ы'; case 'D': return number + '-га'; default: return number; } }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return be; }); /***/ }), /* 187 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/bg.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Bulgarian [bg] //! author : Krasen Borisov : https://github.com/kraz ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var bg = moment.defineLocale('bg', { months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'D.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY H:mm', LLLL: 'dddd, D MMMM YYYY H:mm' }, calendar: { sameDay: '[Днес в] LT', nextDay: '[Утре в] LT', nextWeek: 'dddd [в] LT', lastDay: '[Вчера в] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: case 3: case 6: return '[Миналата] dddd [в] LT'; case 1: case 2: case 4: case 5: return '[Миналия] dddd [в] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'след %s', past: 'преди %s', s: 'няколко секунди', ss: '%d секунди', m: 'минута', mm: '%d минути', h: 'час', hh: '%d часа', d: 'ден', dd: '%d дена', w: 'седмица', ww: '%d седмици', M: 'месец', MM: '%d месеца', y: 'година', yy: '%d години' }, dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, ordinal: function ordinal(number) { var lastDigit = number % 10, last2Digits = number % 100; if (number === 0) { return number + '-ев'; } else if (last2Digits === 0) { return number + '-ен'; } else if (last2Digits > 10 && last2Digits < 20) { return number + '-ти'; } else if (lastDigit === 1) { return number + '-ви'; } else if (lastDigit === 2) { return number + '-ри'; } else if (lastDigit === 7 || lastDigit === 8) { return number + '-ми'; } else { return number + '-ти'; } }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return bg; }); /***/ }), /* 188 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/bm.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Bambara [bm] //! author : Estelle Comment : https://github.com/estellecomment ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var bm = moment.defineLocale('bm', { months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'), monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'MMMM [tile] D [san] YYYY', LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm' }, calendar: { sameDay: '[Bi lɛrɛ] LT', nextDay: '[Sini lɛrɛ] LT', nextWeek: 'dddd [don lɛrɛ] LT', lastDay: '[Kunu lɛrɛ] LT', lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', sameElse: 'L' }, relativeTime: { future: '%s kɔnɔ', past: 'a bɛ %s bɔ', s: 'sanga dama dama', ss: 'sekondi %d', m: 'miniti kelen', mm: 'miniti %d', h: 'lɛrɛ kelen', hh: 'lɛrɛ %d', d: 'tile kelen', dd: 'tile %d', M: 'kalo kelen', MM: 'kalo %d', y: 'san kelen', yy: 'san %d' }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return bm; }); /***/ }), /* 189 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/bn.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Bengali [bn] //! author : Kaushik Gandhi : https://github.com/kaushikgandhi ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '১', 2: '২', 3: '৩', 4: '৪', 5: '৫', 6: '৬', 7: '৭', 8: '৮', 9: '৯', 0: '০' }, numberMap = { '১': '1', '২': '2', '৩': '3', '৪': '4', '৫': '5', '৬': '6', '৭': '7', '৮': '8', '৯': '9', '০': '0' }; var bn = moment.defineLocale('bn', { months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), longDateFormat: { LT: 'A h:mm সময়', LTS: 'A h:mm:ss সময়', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm সময়', LLLL: 'dddd, D MMMM YYYY, A h:mm সময়' }, calendar: { sameDay: '[আজ] LT', nextDay: '[আগামীকাল] LT', nextWeek: 'dddd, LT', lastDay: '[গতকাল] LT', lastWeek: '[গত] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s পরে', past: '%s আগে', s: 'কয়েক সেকেন্ড', ss: '%d সেকেন্ড', m: 'এক মিনিট', mm: '%d মিনিট', h: 'এক ঘন্টা', hh: '%d ঘন্টা', d: 'এক দিন', dd: '%d দিন', M: 'এক মাস', MM: '%d মাস', y: 'এক বছর', yy: '%d বছর' }, preparse: function preparse(string) { return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দুপুর' && hour < 5 || meridiem === 'বিকাল') { return hour + 12; } else { return hour; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'রাত'; } else if (hour < 10) { return 'সকাল'; } else if (hour < 17) { return 'দুপুর'; } else if (hour < 20) { return 'বিকাল'; } else { return 'রাত'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return bn; }); /***/ }), /* 190 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/bn-bd.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Bengali (Bangladesh) [bn-bd] //! author : Asraf Hossain Patoary : https://github.com/ashwoolford ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '১', 2: '২', 3: '৩', 4: '৪', 5: '৫', 6: '৬', 7: '৭', 8: '৮', 9: '৯', 0: '০' }, numberMap = { '১': '1', '২': '2', '৩': '3', '৪': '4', '৫': '5', '৬': '6', '৭': '7', '৮': '8', '৯': '9', '০': '0' }; var bnBd = moment.defineLocale('bn-bd', { months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), longDateFormat: { LT: 'A h:mm সময়', LTS: 'A h:mm:ss সময়', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm সময়', LLLL: 'dddd, D MMMM YYYY, A h:mm সময়' }, calendar: { sameDay: '[আজ] LT', nextDay: '[আগামীকাল] LT', nextWeek: 'dddd, LT', lastDay: '[গতকাল] LT', lastWeek: '[গত] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s পরে', past: '%s আগে', s: 'কয়েক সেকেন্ড', ss: '%d সেকেন্ড', m: 'এক মিনিট', mm: '%d মিনিট', h: 'এক ঘন্টা', hh: '%d ঘন্টা', d: 'এক দিন', dd: '%d দিন', M: 'এক মাস', MM: '%d মাস', y: 'এক বছর', yy: '%d বছর' }, preparse: function preparse(string) { return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'রাত') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'ভোর') { return hour; } else if (meridiem === 'সকাল') { return hour; } else if (meridiem === 'দুপুর') { return hour >= 3 ? hour : hour + 12; } else if (meridiem === 'বিকাল') { return hour + 12; } else if (meridiem === 'সন্ধ্যা') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'রাত'; } else if (hour < 6) { return 'ভোর'; } else if (hour < 12) { return 'সকাল'; } else if (hour < 15) { return 'দুপুর'; } else if (hour < 18) { return 'বিকাল'; } else if (hour < 20) { return 'সন্ধ্যা'; } else { return 'রাত'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return bnBd; }); /***/ }), /* 191 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/bo.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Tibetan [bo] //! author : Thupten N. Chakrishar : https://github.com/vajradog ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '༡', 2: '༢', 3: '༣', 4: '༤', 5: '༥', 6: '༦', 7: '༧', 8: '༨', 9: '༩', 0: '༠' }, numberMap = { '༡': '1', '༢': '2', '༣': '3', '༤': '4', '༥': '5', '༦': '6', '༧': '7', '༨': '8', '༩': '9', '༠': '0' }; var bo = moment.defineLocale('bo', { months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split('_'), monthsShortRegex: /^(ཟླ་\d{1,2})/, monthsParseExact: true, weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), longDateFormat: { LT: 'A h:mm', LTS: 'A h:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm', LLLL: 'dddd, D MMMM YYYY, A h:mm' }, calendar: { sameDay: '[དི་རིང] LT', nextDay: '[སང་ཉིན] LT', nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', lastDay: '[ཁ་སང] LT', lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s ལ་', past: '%s སྔན་ལ', s: 'ལམ་སང', ss: '%d སྐར་ཆ།', m: 'སྐར་མ་གཅིག', mm: '%d སྐར་མ', h: 'ཆུ་ཚོད་གཅིག', hh: '%d ཆུ་ཚོད', d: 'ཉིན་གཅིག', dd: '%d ཉིན་', M: 'ཟླ་བ་གཅིག', MM: '%d ཟླ་བ', y: 'ལོ་གཅིག', yy: '%d ལོ' }, preparse: function preparse(string) { return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'མཚན་མོ' && hour >= 4 || meridiem === 'ཉིན་གུང' && hour < 5 || meridiem === 'དགོང་དག') { return hour + 12; } else { return hour; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'མཚན་མོ'; } else if (hour < 10) { return 'ཞོགས་ཀས'; } else if (hour < 17) { return 'ཉིན་གུང'; } else if (hour < 20) { return 'དགོང་དག'; } else { return 'མཚན་མོ'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return bo; }); /***/ }), /* 192 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/br.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Breton [br] //! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function relativeTimeWithMutation(number, withoutSuffix, key) { var format = { mm: 'munutenn', MM: 'miz', dd: 'devezh' }; return number + ' ' + mutation(format[key], number); } function specialMutationForYears(number) { switch (lastNumber(number)) { case 1: case 3: case 4: case 5: case 9: return number + ' bloaz'; default: return number + ' vloaz'; } } function lastNumber(number) { if (number > 9) { return lastNumber(number % 10); } return number; } function mutation(text, number) { if (number === 2) { return softMutation(text); } return text; } function softMutation(text) { var mutationTable = { m: 'v', b: 'v', d: 'z' }; if (mutationTable[text.charAt(0)] === undefined) { return text; } return mutationTable[text.charAt(0)] + text.substring(1); } var monthsParse = [/^gen/i, /^c[ʼ\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i], monthsRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i], shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i], minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i]; var br = moment.defineLocale('br', { months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'), monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), weekdaysParse: minWeekdaysParse, fullWeekdaysParse: fullWeekdaysParse, shortWeekdaysParse: shortWeekdaysParse, minWeekdaysParse: minWeekdaysParse, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: monthsStrictRegex, monthsShortStrictRegex: monthsShortStrictRegex, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D [a viz] MMMM YYYY', LLL: 'D [a viz] MMMM YYYY HH:mm', LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm' }, calendar: { sameDay: '[Hiziv da] LT', nextDay: '[Warcʼhoazh da] LT', nextWeek: 'dddd [da] LT', lastDay: '[Decʼh da] LT', lastWeek: 'dddd [paset da] LT', sameElse: 'L' }, relativeTime: { future: 'a-benn %s', past: '%s ʼzo', s: 'un nebeud segondennoù', ss: '%d eilenn', m: 'ur vunutenn', mm: relativeTimeWithMutation, h: 'un eur', hh: '%d eur', d: 'un devezh', dd: relativeTimeWithMutation, M: 'ur miz', MM: relativeTimeWithMutation, y: 'ur bloaz', yy: specialMutationForYears }, dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, ordinal: function ordinal(number) { var output = number === 1 ? 'añ' : 'vet'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. }, meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn isPM: function isPM(token) { return token === 'g.m.'; }, meridiem: function meridiem(hour, minute, isLower) { return hour < 12 ? 'a.m.' : 'g.m.'; } }); return br; }); /***/ }), /* 193 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/bs.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Bosnian [bs] //! author : Nedim Cholich : https://github.com/frontyard //! author : Rasid Redzic : https://github.com/rasidre //! based on (hr) translation by Bojan Marković ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { switch (key) { case 'm': return withoutSuffix ? 'jedna minuta' : isFuture ? 'jednu minutu' : 'jedne minute'; } } function translate(number, withoutSuffix, key) { var result = number + ' '; switch (key) { case 'ss': if (number === 1) { result += 'sekunda'; } else if (number === 2 || number === 3 || number === 4) { result += 'sekunde'; } else { result += 'sekundi'; } return result; case 'mm': if (number === 1) { result += 'minuta'; } else if (number === 2 || number === 3 || number === 4) { result += 'minute'; } else { result += 'minuta'; } return result; case 'h': return withoutSuffix ? 'jedan sat' : 'jedan sat'; case 'hh': if (number === 1) { result += 'sat'; } else if (number === 2 || number === 3 || number === 4) { result += 'sata'; } else { result += 'sati'; } return result; case 'dd': if (number === 1) { result += 'dan'; } else { result += 'dana'; } return result; case 'MM': if (number === 1) { result += 'mjesec'; } else if (number === 2 || number === 3 || number === 4) { result += 'mjeseca'; } else { result += 'mjeseci'; } return result; case 'yy': if (number === 1) { result += 'godina'; } else if (number === 2 || number === 3 || number === 4) { result += 'godine'; } else { result += 'godina'; } return result; } } var bs = moment.defineLocale('bs', { months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY H:mm', LLLL: 'dddd, D. MMMM YYYY H:mm' }, calendar: { sameDay: '[danas u] LT', nextDay: '[sutra u] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[u] [nedjelju] [u] LT'; case 3: return '[u] [srijedu] [u] LT'; case 6: return '[u] [subotu] [u] LT'; case 1: case 2: case 4: case 5: return '[u] dddd [u] LT'; } }, lastDay: '[jučer u] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: case 3: return '[prošlu] dddd [u] LT'; case 6: return '[prošle] [subote] [u] LT'; case 1: case 2: case 4: case 5: return '[prošli] dddd [u] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'za %s', past: 'prije %s', s: 'par sekundi', ss: translate, m: processRelativeTime, mm: translate, h: translate, hh: translate, d: 'dan', dd: translate, M: 'mjesec', MM: translate, y: 'godinu', yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return bs; }); /***/ }), /* 194 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ca.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Catalan [ca] //! author : Juan G. Hurtado : https://github.com/juanghurtado ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ca = moment.defineLocale('ca', { months: { standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split('_'), isFormat: /D[oD]?(\s)+MMMM/ }, monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'), monthsParseExact: true, weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'), weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM [de] YYYY', ll: 'D MMM YYYY', LLL: 'D MMMM [de] YYYY [a les] H:mm', lll: 'D MMM YYYY, H:mm', LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', llll: 'ddd D MMM YYYY, H:mm' }, calendar: { sameDay: function sameDay() { return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; }, nextDay: function nextDay() { return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; }, nextWeek: function nextWeek() { return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; }, lastDay: function lastDay() { return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; }, lastWeek: function lastWeek() { return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; }, sameElse: 'L' }, relativeTime: { future: "d'aquí %s", past: 'fa %s', s: 'uns segons', ss: '%d segons', m: 'un minut', mm: '%d minuts', h: 'una hora', hh: '%d hores', d: 'un dia', dd: '%d dies', M: 'un mes', MM: '%d mesos', y: 'un any', yy: '%d anys' }, dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, ordinal: function ordinal(number, period) { var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è'; if (period === 'w' || period === 'W') { output = 'a'; } return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return ca; }); /***/ }), /* 195 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/cs.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Czech [cs] //! author : petrbela : https://github.com/petrbela ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var months = { standalone: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'), format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split('_'), isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/ }, monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), monthsParse = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i], // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; function plural(n) { return n > 1 && n < 5 && ~~(n / 10) !== 1; } function translate(number, withoutSuffix, key, isFuture) { var result = number + ' '; switch (key) { case 's': // a few seconds / in a few seconds / a few seconds ago return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'sekundy' : 'sekund'); } else { return result + 'sekundami'; } case 'm': // a minute / in a minute / a minute ago return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'minuty' : 'minut'); } else { return result + 'minutami'; } case 'h': // an hour / in an hour / an hour ago return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; case 'hh': // 9 hours / in 9 hours / 9 hours ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'hodiny' : 'hodin'); } else { return result + 'hodinami'; } case 'd': // a day / in a day / a day ago return withoutSuffix || isFuture ? 'den' : 'dnem'; case 'dd': // 9 days / in 9 days / 9 days ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'dny' : 'dní'); } else { return result + 'dny'; } case 'M': // a month / in a month / a month ago return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; case 'MM': // 9 months / in 9 months / 9 months ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'měsíce' : 'měsíců'); } else { return result + 'měsíci'; } case 'y': // a year / in a year / a year ago return withoutSuffix || isFuture ? 'rok' : 'rokem'; case 'yy': // 9 years / in 9 years / 9 years ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'roky' : 'let'); } else { return result + 'lety'; } } } var cs = moment.defineLocale('cs', { months: months, monthsShort: monthsShort, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY H:mm', LLLL: 'dddd D. MMMM YYYY H:mm', l: 'D. M. YYYY' }, calendar: { sameDay: '[dnes v] LT', nextDay: '[zítra v] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[v neděli v] LT'; case 1: case 2: return '[v] dddd [v] LT'; case 3: return '[ve středu v] LT'; case 4: return '[ve čtvrtek v] LT'; case 5: return '[v pátek v] LT'; case 6: return '[v sobotu v] LT'; } }, lastDay: '[včera v] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: return '[minulou neděli v] LT'; case 1: case 2: return '[minulé] dddd [v] LT'; case 3: return '[minulou středu v] LT'; case 4: case 5: return '[minulý] dddd [v] LT'; case 6: return '[minulou sobotu v] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'za %s', past: 'před %s', s: translate, ss: translate, m: translate, mm: translate, h: translate, hh: translate, d: translate, dd: translate, M: translate, MM: translate, y: translate, yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return cs; }); /***/ }), /* 196 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/cv.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Chuvash [cv] //! author : Anatoly Mironov : https://github.com/mirontoli ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var cv = moment.defineLocale('cv', { months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD-MM-YYYY', LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' }, calendar: { sameDay: '[Паян] LT [сехетре]', nextDay: '[Ыран] LT [сехетре]', lastDay: '[Ӗнер] LT [сехетре]', nextWeek: '[Ҫитес] dddd LT [сехетре]', lastWeek: '[Иртнӗ] dddd LT [сехетре]', sameElse: 'L' }, relativeTime: { future: function future(output) { var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; return output + affix; }, past: '%s каялла', s: 'пӗр-ик ҫеккунт', ss: '%d ҫеккунт', m: 'пӗр минут', mm: '%d минут', h: 'пӗр сехет', hh: '%d сехет', d: 'пӗр кун', dd: '%d кун', M: 'пӗр уйӑх', MM: '%d уйӑх', y: 'пӗр ҫул', yy: '%d ҫул' }, dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, ordinal: '%d-мӗш', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return cv; }); /***/ }), /* 197 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/cy.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Welsh [cy] //! author : Robert Allen : https://github.com/robgallen //! author : https://github.com/ryangreaves ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var cy = moment.defineLocale('cy', { months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), weekdaysParseExact: true, // time formats are the same as en-gb longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Heddiw am] LT', nextDay: '[Yfory am] LT', nextWeek: 'dddd [am] LT', lastDay: '[Ddoe am] LT', lastWeek: 'dddd [diwethaf am] LT', sameElse: 'L' }, relativeTime: { future: 'mewn %s', past: '%s yn ôl', s: 'ychydig eiliadau', ss: '%d eiliad', m: 'munud', mm: '%d munud', h: 'awr', hh: '%d awr', d: 'diwrnod', dd: '%d diwrnod', M: 'mis', MM: '%d mis', y: 'blwyddyn', yy: '%d flynedd' }, dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh ordinal: function ordinal(number) { var b = number, output = '', lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed ]; if (b > 20) { if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { output = 'fed'; // not 30ain, 70ain or 90ain } else { output = 'ain'; } } else if (b > 0) { output = lookup[b]; } return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return cy; }); /***/ }), /* 198 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/da.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Danish [da] //! author : Ulrik Nielsen : https://github.com/mrbase ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var da = moment.defineLocale('da', { months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'), monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY HH:mm', LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' }, calendar: { sameDay: '[i dag kl.] LT', nextDay: '[i morgen kl.] LT', nextWeek: 'på dddd [kl.] LT', lastDay: '[i går kl.] LT', lastWeek: '[i] dddd[s kl.] LT', sameElse: 'L' }, relativeTime: { future: 'om %s', past: '%s siden', s: 'få sekunder', ss: '%d sekunder', m: 'et minut', mm: '%d minutter', h: 'en time', hh: '%d timer', d: 'en dag', dd: '%d dage', M: 'en måned', MM: '%d måneder', y: 'et år', yy: '%d år' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return da; }); /***/ }), /* 199 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/de.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : German [de] //! author : lluchs : https://github.com/lluchs //! author: Menelion Elensúle: https://github.com/Oire //! author : Mikolaj Dadela : https://github.com/mik01aj ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { m: ['eine Minute', 'einer Minute'], h: ['eine Stunde', 'einer Stunde'], d: ['ein Tag', 'einem Tag'], dd: [number + ' Tage', number + ' Tagen'], w: ['eine Woche', 'einer Woche'], M: ['ein Monat', 'einem Monat'], MM: [number + ' Monate', number + ' Monaten'], y: ['ein Jahr', 'einem Jahr'], yy: [number + ' Jahre', number + ' Jahren'] }; return withoutSuffix ? format[key][0] : format[key][1]; } var de = moment.defineLocale('de', { months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), monthsParseExact: true, weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY HH:mm', LLLL: 'dddd, D. MMMM YYYY HH:mm' }, calendar: { sameDay: '[heute um] LT [Uhr]', sameElse: 'L', nextDay: '[morgen um] LT [Uhr]', nextWeek: 'dddd [um] LT [Uhr]', lastDay: '[gestern um] LT [Uhr]', lastWeek: '[letzten] dddd [um] LT [Uhr]' }, relativeTime: { future: 'in %s', past: 'vor %s', s: 'ein paar Sekunden', ss: '%d Sekunden', m: processRelativeTime, mm: '%d Minuten', h: processRelativeTime, hh: '%d Stunden', d: processRelativeTime, dd: processRelativeTime, w: processRelativeTime, ww: '%d Wochen', M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return de; }); /***/ }), /* 200 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/de-at.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : German (Austria) [de-at] //! author : lluchs : https://github.com/lluchs //! author: Menelion Elensúle: https://github.com/Oire //! author : Martin Groller : https://github.com/MadMG //! author : Mikolaj Dadela : https://github.com/mik01aj ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { m: ['eine Minute', 'einer Minute'], h: ['eine Stunde', 'einer Stunde'], d: ['ein Tag', 'einem Tag'], dd: [number + ' Tage', number + ' Tagen'], w: ['eine Woche', 'einer Woche'], M: ['ein Monat', 'einem Monat'], MM: [number + ' Monate', number + ' Monaten'], y: ['ein Jahr', 'einem Jahr'], yy: [number + ' Jahre', number + ' Jahren'] }; return withoutSuffix ? format[key][0] : format[key][1]; } var deAt = moment.defineLocale('de-at', { months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), monthsParseExact: true, weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY HH:mm', LLLL: 'dddd, D. MMMM YYYY HH:mm' }, calendar: { sameDay: '[heute um] LT [Uhr]', sameElse: 'L', nextDay: '[morgen um] LT [Uhr]', nextWeek: 'dddd [um] LT [Uhr]', lastDay: '[gestern um] LT [Uhr]', lastWeek: '[letzten] dddd [um] LT [Uhr]' }, relativeTime: { future: 'in %s', past: 'vor %s', s: 'ein paar Sekunden', ss: '%d Sekunden', m: processRelativeTime, mm: '%d Minuten', h: processRelativeTime, hh: '%d Stunden', d: processRelativeTime, dd: processRelativeTime, w: processRelativeTime, ww: '%d Wochen', M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return deAt; }); /***/ }), /* 201 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/de-ch.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : German (Switzerland) [de-ch] //! author : sschueller : https://github.com/sschueller ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { m: ['eine Minute', 'einer Minute'], h: ['eine Stunde', 'einer Stunde'], d: ['ein Tag', 'einem Tag'], dd: [number + ' Tage', number + ' Tagen'], w: ['eine Woche', 'einer Woche'], M: ['ein Monat', 'einem Monat'], MM: [number + ' Monate', number + ' Monaten'], y: ['ein Jahr', 'einem Jahr'], yy: [number + ' Jahre', number + ' Jahren'] }; return withoutSuffix ? format[key][0] : format[key][1]; } var deCh = moment.defineLocale('de-ch', { months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), monthsParseExact: true, weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY HH:mm', LLLL: 'dddd, D. MMMM YYYY HH:mm' }, calendar: { sameDay: '[heute um] LT [Uhr]', sameElse: 'L', nextDay: '[morgen um] LT [Uhr]', nextWeek: 'dddd [um] LT [Uhr]', lastDay: '[gestern um] LT [Uhr]', lastWeek: '[letzten] dddd [um] LT [Uhr]' }, relativeTime: { future: 'in %s', past: 'vor %s', s: 'ein paar Sekunden', ss: '%d Sekunden', m: processRelativeTime, mm: '%d Minuten', h: processRelativeTime, hh: '%d Stunden', d: processRelativeTime, dd: processRelativeTime, w: processRelativeTime, ww: '%d Wochen', M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return deCh; }); /***/ }), /* 202 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/dv.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Maldivian [dv] //! author : Jawish Hameed : https://github.com/jawish ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var months = ['ޖެނުއަރީ', 'ފެބްރުއަރީ', 'މާރިޗު', 'އޭޕްރީލު', 'މޭ', 'ޖޫން', 'ޖުލައި', 'އޯގަސްޓު', 'ސެޕްޓެމްބަރު', 'އޮކްޓޯބަރު', 'ނޮވެމްބަރު', 'ޑިސެމްބަރު'], weekdays = ['އާދިއްތަ', 'ހޯމަ', 'އަންގާރަ', 'ބުދަ', 'ބުރާސްފަތި', 'ހުކުރު', 'ހޮނިހިރު']; var dv = moment.defineLocale('dv', { months: months, monthsShort: months, weekdays: weekdays, weekdaysShort: weekdays, weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'D/M/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, meridiemParse: /މކ|މފ/, isPM: function isPM(input) { return 'މފ' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'މކ'; } else { return 'މފ'; } }, calendar: { sameDay: '[މިއަދު] LT', nextDay: '[މާދަމާ] LT', nextWeek: 'dddd LT', lastDay: '[އިއްޔެ] LT', lastWeek: '[ފާއިތުވި] dddd LT', sameElse: 'L' }, relativeTime: { future: 'ތެރޭގައި %s', past: 'ކުރިން %s', s: 'ސިކުންތުކޮޅެއް', ss: 'd% ސިކުންތު', m: 'މިނިޓެއް', mm: 'މިނިޓު %d', h: 'ގަޑިއިރެއް', hh: 'ގަޑިއިރު %d', d: 'ދުވަހެއް', dd: 'ދުވަސް %d', M: 'މަހެއް', MM: 'މަސް %d', y: 'އަހަރެއް', yy: 'އަހަރު %d' }, preparse: function preparse(string) { return string.replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/,/g, '،'); }, week: { dow: 7, // Sunday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return dv; }); /***/ }), /* 203 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/el.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Greek [el] //! author : Aggelos Karalias : https://github.com/mehiel ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function isFunction(input) { return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; } var el = moment.defineLocale('el', { monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), months: function months(momentToFormat, format) { if (!momentToFormat) { return this._monthsNominativeEl; } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' return this._monthsGenitiveEl[momentToFormat.month()]; } else { return this._monthsNominativeEl[momentToFormat.month()]; } }, monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), meridiem: function meridiem(hours, minutes, isLower) { if (hours > 11) { return isLower ? 'μμ' : 'ΜΜ'; } else { return isLower ? 'πμ' : 'ΠΜ'; } }, isPM: function isPM(input) { return (input + '').toLowerCase()[0] === 'μ'; }, meridiemParse: /[ΠΜ]\.?Μ?\.?/i, longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY h:mm A', LLLL: 'dddd, D MMMM YYYY h:mm A' }, calendarEl: { sameDay: '[Σήμερα {}] LT', nextDay: '[Αύριο {}] LT', nextWeek: 'dddd [{}] LT', lastDay: '[Χθες {}] LT', lastWeek: function lastWeek() { switch (this.day()) { case 6: return '[το προηγούμενο] dddd [{}] LT'; default: return '[την προηγούμενη] dddd [{}] LT'; } }, sameElse: 'L' }, calendar: function calendar(key, mom) { var output = this._calendarEl[key], hours = mom && mom.hours(); if (isFunction(output)) { output = output.apply(mom); } return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); }, relativeTime: { future: 'σε %s', past: '%s πριν', s: 'λίγα δευτερόλεπτα', ss: '%d δευτερόλεπτα', m: 'ένα λεπτό', mm: '%d λεπτά', h: 'μία ώρα', hh: '%d ώρες', d: 'μία μέρα', dd: '%d μέρες', M: 'ένας μήνας', MM: '%d μήνες', y: 'ένας χρόνος', yy: '%d χρόνια' }, dayOfMonthOrdinalParse: /\d{1,2}η/, ordinal: '%dη', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4st is the first week of the year. } }); return el; }); /***/ }), /* 204 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-au.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (Australia) [en-au] //! author : Jared Morse : https://github.com/jarcoal ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enAu = moment.defineLocale('en-au', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY h:mm A', LLLL: 'dddd, D MMMM YYYY h:mm A' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 0, // Sunday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return enAu; }); /***/ }), /* 205 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-ca.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (Canada) [en-ca] //! author : Jonathan Abourbih : https://github.com/jonbca ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enCa = moment.defineLocale('en-ca', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'YYYY-MM-DD', LL: 'MMMM D, YYYY', LLL: 'MMMM D, YYYY h:mm A', LLLL: 'dddd, MMMM D, YYYY h:mm A' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; } }); return enCa; }); /***/ }), /* 206 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-gb.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (United Kingdom) [en-gb] //! author : Chris Gedrim : https://github.com/chrisgedrim ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enGb = moment.defineLocale('en-gb', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return enGb; }); /***/ }), /* 207 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-ie.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (Ireland) [en-ie] //! author : Chris Cartlidge : https://github.com/chriscartlidge ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enIe = moment.defineLocale('en-ie', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return enIe; }); /***/ }), /* 208 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-il.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (Israel) [en-il] //! author : Chris Gedrim : https://github.com/chrisgedrim ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enIl = moment.defineLocale('en-il', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; } }); return enIl; }); /***/ }), /* 209 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-in.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (India) [en-in] //! author : Jatin Agrawal : https://github.com/jatinag22 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enIn = moment.defineLocale('en-in', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY h:mm A', LLLL: 'dddd, D MMMM YYYY h:mm A' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 1st is the first week of the year. } }); return enIn; }); /***/ }), /* 210 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-nz.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (New Zealand) [en-nz] //! author : Luke McGregor : https://github.com/lukemcgregor ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enNz = moment.defineLocale('en-nz', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY h:mm A', LLLL: 'dddd, D MMMM YYYY h:mm A' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return enNz; }); /***/ }), /* 211 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/en-sg.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : English (Singapore) [en-sg] //! author : Matthew Castrillon-Madrigal : https://github.com/techdimension ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var enSg = moment.defineLocale('en-sg', { months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L' }, relativeTime: { future: 'in %s', past: '%s ago', s: 'a few seconds', ss: '%d seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return enSg; }); /***/ }), /* 212 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/eo.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Esperanto [eo] //! author : Colin Dean : https://github.com/colindean //! author : Mia Nordentoft Imperatori : https://github.com/miestasmia //! comment : miestasmia corrected the translation by colindean //! comment : Vivakvo corrected the translation by colindean and miestasmia ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var eo = moment.defineLocale('eo', { months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'), monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', LL: '[la] D[-an de] MMMM, YYYY', LLL: '[la] D[-an de] MMMM, YYYY HH:mm', LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm' }, meridiemParse: /[ap]\.t\.m/i, isPM: function isPM(input) { return input.charAt(0).toLowerCase() === 'p'; }, meridiem: function meridiem(hours, minutes, isLower) { if (hours > 11) { return isLower ? 'p.t.m.' : 'P.T.M.'; } else { return isLower ? 'a.t.m.' : 'A.T.M.'; } }, calendar: { sameDay: '[Hodiaŭ je] LT', nextDay: '[Morgaŭ je] LT', nextWeek: 'dddd[n je] LT', lastDay: '[Hieraŭ je] LT', lastWeek: '[pasintan] dddd[n je] LT', sameElse: 'L' }, relativeTime: { future: 'post %s', past: 'antaŭ %s', s: 'kelkaj sekundoj', ss: '%d sekundoj', m: 'unu minuto', mm: '%d minutoj', h: 'unu horo', hh: '%d horoj', d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo dd: '%d tagoj', M: 'unu monato', MM: '%d monatoj', y: 'unu jaro', yy: '%d jaroj' }, dayOfMonthOrdinalParse: /\d{1,2}a/, ordinal: '%da', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return eo; }); /***/ }), /* 213 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/es.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Spanish [es] //! author : Julio Napurí : https://github.com/julionc ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; var es = moment.defineLocale('es', { months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), monthsShort: function monthsShort(m, format) { if (!m) { return monthsShortDot; } else if (/-MMM-/.test(format)) { return _monthsShort[m.month()]; } else { return monthsShortDot[m.month()]; } }, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD/MM/YYYY', LL: 'D [de] MMMM [de] YYYY', LLL: 'D [de] MMMM [de] YYYY H:mm', LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' }, calendar: { sameDay: function sameDay() { return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextDay: function nextDay() { return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextWeek: function nextWeek() { return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastDay: function lastDay() { return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastWeek: function lastWeek() { return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, sameElse: 'L' }, relativeTime: { future: 'en %s', past: 'hace %s', s: 'unos segundos', ss: '%d segundos', m: 'un minuto', mm: '%d minutos', h: 'una hora', hh: '%d horas', d: 'un día', dd: '%d días', w: 'una semana', ww: '%d semanas', M: 'un mes', MM: '%d meses', y: 'un año', yy: '%d años' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. }, invalidDate: 'Fecha inválida' }); return es; }); /***/ }), /* 214 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/es-do.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Spanish (Dominican Republic) [es-do] ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; var esDo = moment.defineLocale('es-do', { months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), monthsShort: function monthsShort(m, format) { if (!m) { return monthsShortDot; } else if (/-MMM-/.test(format)) { return _monthsShort[m.month()]; } else { return monthsShortDot[m.month()]; } }, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D [de] MMMM [de] YYYY', LLL: 'D [de] MMMM [de] YYYY h:mm A', LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A' }, calendar: { sameDay: function sameDay() { return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextDay: function nextDay() { return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextWeek: function nextWeek() { return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastDay: function lastDay() { return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastWeek: function lastWeek() { return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, sameElse: 'L' }, relativeTime: { future: 'en %s', past: 'hace %s', s: 'unos segundos', ss: '%d segundos', m: 'un minuto', mm: '%d minutos', h: 'una hora', hh: '%d horas', d: 'un día', dd: '%d días', w: 'una semana', ww: '%d semanas', M: 'un mes', MM: '%d meses', y: 'un año', yy: '%d años' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return esDo; }); /***/ }), /* 215 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/es-mx.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Spanish (Mexico) [es-mx] //! author : JC Franco : https://github.com/jcfranco ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; var esMx = moment.defineLocale('es-mx', { months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), monthsShort: function monthsShort(m, format) { if (!m) { return monthsShortDot; } else if (/-MMM-/.test(format)) { return _monthsShort[m.month()]; } else { return monthsShortDot[m.month()]; } }, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD/MM/YYYY', LL: 'D [de] MMMM [de] YYYY', LLL: 'D [de] MMMM [de] YYYY H:mm', LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' }, calendar: { sameDay: function sameDay() { return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextDay: function nextDay() { return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextWeek: function nextWeek() { return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastDay: function lastDay() { return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastWeek: function lastWeek() { return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, sameElse: 'L' }, relativeTime: { future: 'en %s', past: 'hace %s', s: 'unos segundos', ss: '%d segundos', m: 'un minuto', mm: '%d minutos', h: 'una hora', hh: '%d horas', d: 'un día', dd: '%d días', w: 'una semana', ww: '%d semanas', M: 'un mes', MM: '%d meses', y: 'un año', yy: '%d años' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 0, // Sunday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. }, invalidDate: 'Fecha inválida' }); return esMx; }); /***/ }), /* 216 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/es-us.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Spanish (United States) [es-us] //! author : bustta : https://github.com/bustta //! author : chrisrodz : https://github.com/chrisrodz ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; var esUs = moment.defineLocale('es-us', { months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), monthsShort: function monthsShort(m, format) { if (!m) { return monthsShortDot; } else if (/-MMM-/.test(format)) { return _monthsShort[m.month()]; } else { return monthsShortDot[m.month()]; } }, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'MM/DD/YYYY', LL: 'D [de] MMMM [de] YYYY', LLL: 'D [de] MMMM [de] YYYY h:mm A', LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A' }, calendar: { sameDay: function sameDay() { return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextDay: function nextDay() { return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, nextWeek: function nextWeek() { return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastDay: function lastDay() { return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, lastWeek: function lastWeek() { return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; }, sameElse: 'L' }, relativeTime: { future: 'en %s', past: 'hace %s', s: 'unos segundos', ss: '%d segundos', m: 'un minuto', mm: '%d minutos', h: 'una hora', hh: '%d horas', d: 'un día', dd: '%d días', w: 'una semana', ww: '%d semanas', M: 'un mes', MM: '%d meses', y: 'un año', yy: '%d años' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return esUs; }); /***/ }), /* 217 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/et.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Estonian [et] //! author : Henry Kehlmann : https://github.com/madhenry //! improvements : Illimar Tambek : https://github.com/ragulka ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], ss: [number + 'sekundi', number + 'sekundit'], m: ['ühe minuti', 'üks minut'], mm: [number + ' minuti', number + ' minutit'], h: ['ühe tunni', 'tund aega', 'üks tund'], hh: [number + ' tunni', number + ' tundi'], d: ['ühe päeva', 'üks päev'], M: ['kuu aja', 'kuu aega', 'üks kuu'], MM: [number + ' kuu', number + ' kuud'], y: ['ühe aasta', 'aasta', 'üks aasta'], yy: [number + ' aasta', number + ' aastat'] }; if (withoutSuffix) { return format[key][2] ? format[key][2] : format[key][1]; } return isFuture ? format[key][0] : format[key][1]; } var et = moment.defineLocale('et', { months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'), monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'), weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY H:mm', LLLL: 'dddd, D. MMMM YYYY H:mm' }, calendar: { sameDay: '[Täna,] LT', nextDay: '[Homme,] LT', nextWeek: '[Järgmine] dddd LT', lastDay: '[Eile,] LT', lastWeek: '[Eelmine] dddd LT', sameElse: 'L' }, relativeTime: { future: '%s pärast', past: '%s tagasi', s: processRelativeTime, ss: processRelativeTime, m: processRelativeTime, mm: processRelativeTime, h: processRelativeTime, hh: processRelativeTime, d: processRelativeTime, dd: '%d päeva', M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return et; }); /***/ }), /* 218 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/eu.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Basque [eu] //! author : Eneko Illarramendi : https://github.com/eillarra ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var eu = moment.defineLocale('eu', { months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'), monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'), monthsParseExact: true, weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'), weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', LL: 'YYYY[ko] MMMM[ren] D[a]', LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', l: 'YYYY-M-D', ll: 'YYYY[ko] MMM D[a]', lll: 'YYYY[ko] MMM D[a] HH:mm', llll: 'ddd, YYYY[ko] MMM D[a] HH:mm' }, calendar: { sameDay: '[gaur] LT[etan]', nextDay: '[bihar] LT[etan]', nextWeek: 'dddd LT[etan]', lastDay: '[atzo] LT[etan]', lastWeek: '[aurreko] dddd LT[etan]', sameElse: 'L' }, relativeTime: { future: '%s barru', past: 'duela %s', s: 'segundo batzuk', ss: '%d segundo', m: 'minutu bat', mm: '%d minutu', h: 'ordu bat', hh: '%d ordu', d: 'egun bat', dd: '%d egun', M: 'hilabete bat', MM: '%d hilabete', y: 'urte bat', yy: '%d urte' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return eu; }); /***/ }), /* 219 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fa.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Persian [fa] //! author : Ebrahim Byagowi : https://github.com/ebraminio ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '۱', 2: '۲', 3: '۳', 4: '۴', 5: '۵', 6: '۶', 7: '۷', 8: '۸', 9: '۹', 0: '۰' }, numberMap = { '۱': '1', '۲': '2', '۳': '3', '۴': '4', '۵': '5', '۶': '6', '۷': '7', '۸': '8', '۹': '9', '۰': '0' }; var fa = moment.defineLocale('fa', { months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), weekdays: "\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split('_'), weekdaysShort: "\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split('_'), weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, meridiemParse: /قبل از ظهر|بعد از ظهر/, isPM: function isPM(input) { return /بعد از ظهر/.test(input); }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'قبل از ظهر'; } else { return 'بعد از ظهر'; } }, calendar: { sameDay: '[امروز ساعت] LT', nextDay: '[فردا ساعت] LT', nextWeek: 'dddd [ساعت] LT', lastDay: '[دیروز ساعت] LT', lastWeek: 'dddd [پیش] [ساعت] LT', sameElse: 'L' }, relativeTime: { future: 'در %s', past: '%s پیش', s: 'چند ثانیه', ss: '%d ثانیه', m: 'یک دقیقه', mm: '%d دقیقه', h: 'یک ساعت', hh: '%d ساعت', d: 'یک روز', dd: '%d روز', M: 'یک ماه', MM: '%d ماه', y: 'یک سال', yy: '%d سال' }, preparse: function preparse(string) { return string.replace(/[۰-۹]/g, function (match) { return numberMap[match]; }).replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }).replace(/,/g, '،'); }, dayOfMonthOrdinalParse: /\d{1,2}م/, ordinal: '%dم', week: { dow: 6, // Saturday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return fa; }); /***/ }), /* 220 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fi.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Finnish [fi] //! author : Tarmo Aidantausta : https://github.com/bleadof ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '), numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]]; function translate(number, withoutSuffix, key, isFuture) { var result = ''; switch (key) { case 's': return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; case 'ss': result = isFuture ? 'sekunnin' : 'sekuntia'; break; case 'm': return isFuture ? 'minuutin' : 'minuutti'; case 'mm': result = isFuture ? 'minuutin' : 'minuuttia'; break; case 'h': return isFuture ? 'tunnin' : 'tunti'; case 'hh': result = isFuture ? 'tunnin' : 'tuntia'; break; case 'd': return isFuture ? 'päivän' : 'päivä'; case 'dd': result = isFuture ? 'päivän' : 'päivää'; break; case 'M': return isFuture ? 'kuukauden' : 'kuukausi'; case 'MM': result = isFuture ? 'kuukauden' : 'kuukautta'; break; case 'y': return isFuture ? 'vuoden' : 'vuosi'; case 'yy': result = isFuture ? 'vuoden' : 'vuotta'; break; } result = verbalNumber(number, isFuture) + ' ' + result; return result; } function verbalNumber(number, isFuture) { return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number; } var fi = moment.defineLocale('fi', { months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'), monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'), weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'), weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), longDateFormat: { LT: 'HH.mm', LTS: 'HH.mm.ss', L: 'DD.MM.YYYY', LL: 'Do MMMM[ta] YYYY', LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', l: 'D.M.YYYY', ll: 'Do MMM YYYY', lll: 'Do MMM YYYY, [klo] HH.mm', llll: 'ddd, Do MMM YYYY, [klo] HH.mm' }, calendar: { sameDay: '[tänään] [klo] LT', nextDay: '[huomenna] [klo] LT', nextWeek: 'dddd [klo] LT', lastDay: '[eilen] [klo] LT', lastWeek: '[viime] dddd[na] [klo] LT', sameElse: 'L' }, relativeTime: { future: '%s päästä', past: '%s sitten', s: translate, ss: translate, m: translate, mm: translate, h: translate, hh: translate, d: translate, dd: translate, M: translate, MM: translate, y: translate, yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return fi; }); /***/ }), /* 221 */ /*!******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fil.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Filipino [fil] //! author : Dan Hagman : https://github.com/hagmandan //! author : Matthew Co : https://github.com/matthewdeeco ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var fil = moment.defineLocale('fil', { months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'MM/D/YYYY', LL: 'MMMM D, YYYY', LLL: 'MMMM D, YYYY HH:mm', LLLL: 'dddd, MMMM DD, YYYY HH:mm' }, calendar: { sameDay: 'LT [ngayong araw]', nextDay: '[Bukas ng] LT', nextWeek: 'LT [sa susunod na] dddd', lastDay: 'LT [kahapon]', lastWeek: 'LT [noong nakaraang] dddd', sameElse: 'L' }, relativeTime: { future: 'sa loob ng %s', past: '%s ang nakalipas', s: 'ilang segundo', ss: '%d segundo', m: 'isang minuto', mm: '%d minuto', h: 'isang oras', hh: '%d oras', d: 'isang araw', dd: '%d araw', M: 'isang buwan', MM: '%d buwan', y: 'isang taon', yy: '%d taon' }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: function ordinal(number) { return number; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return fil; }); /***/ }), /* 222 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fo.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Faroese [fo] //! author : Ragnar Johannesen : https://github.com/ragnar123 //! author : Kristian Sakarisson : https://github.com/sakarisson ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var fo = moment.defineLocale('fo', { months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D. MMMM, YYYY HH:mm' }, calendar: { sameDay: '[Í dag kl.] LT', nextDay: '[Í morgin kl.] LT', nextWeek: 'dddd [kl.] LT', lastDay: '[Í gjár kl.] LT', lastWeek: '[síðstu] dddd [kl] LT', sameElse: 'L' }, relativeTime: { future: 'um %s', past: '%s síðani', s: 'fá sekund', ss: '%d sekundir', m: 'ein minuttur', mm: '%d minuttir', h: 'ein tími', hh: '%d tímar', d: 'ein dagur', dd: '%d dagar', M: 'ein mánaður', MM: '%d mánaðir', y: 'eitt ár', yy: '%d ár' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return fo; }); /***/ }), /* 223 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fr.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : French [fr] //! author : John Fischer : https://github.com/jfroffice ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, monthsShortStrictRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, monthsRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i]; var fr = moment.defineLocale('fr', { months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: monthsStrictRegex, monthsShortStrictRegex: monthsShortStrictRegex, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Aujourd’hui à] LT', nextDay: '[Demain à] LT', nextWeek: 'dddd [à] LT', lastDay: '[Hier à] LT', lastWeek: 'dddd [dernier à] LT', sameElse: 'L' }, relativeTime: { future: 'dans %s', past: 'il y a %s', s: 'quelques secondes', ss: '%d secondes', m: 'une minute', mm: '%d minutes', h: 'une heure', hh: '%d heures', d: 'un jour', dd: '%d jours', w: 'une semaine', ww: '%d semaines', M: 'un mois', MM: '%d mois', y: 'un an', yy: '%d ans' }, dayOfMonthOrdinalParse: /\d{1,2}(er|)/, ordinal: function ordinal(number, period) { switch (period) { // TODO: Return 'e' when day of month > 1. Move this case inside // block for masculine words below. // See https://github.com/moment/moment/issues/3375 case 'D': return number + (number === 1 ? 'er' : ''); // Words with masculine grammatical gender: mois, trimestre, jour default: case 'M': case 'Q': case 'DDD': case 'd': return number + (number === 1 ? 'er' : 'e'); // Words with feminine grammatical gender: semaine case 'w': case 'W': return number + (number === 1 ? 're' : 'e'); } }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return fr; }); /***/ }), /* 224 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fr-ca.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : French (Canada) [fr-ca] //! author : Jonathan Abourbih : https://github.com/jonbca ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var frCa = moment.defineLocale('fr-ca', { months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), monthsParseExact: true, weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Aujourd’hui à] LT', nextDay: '[Demain à] LT', nextWeek: 'dddd [à] LT', lastDay: '[Hier à] LT', lastWeek: 'dddd [dernier à] LT', sameElse: 'L' }, relativeTime: { future: 'dans %s', past: 'il y a %s', s: 'quelques secondes', ss: '%d secondes', m: 'une minute', mm: '%d minutes', h: 'une heure', hh: '%d heures', d: 'un jour', dd: '%d jours', M: 'un mois', MM: '%d mois', y: 'un an', yy: '%d ans' }, dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, ordinal: function ordinal(number, period) { switch (period) { // Words with masculine grammatical gender: mois, trimestre, jour default: case 'M': case 'Q': case 'D': case 'DDD': case 'd': return number + (number === 1 ? 'er' : 'e'); // Words with feminine grammatical gender: semaine case 'w': case 'W': return number + (number === 1 ? 're' : 'e'); } } }); return frCa; }); /***/ }), /* 225 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fr-ch.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : French (Switzerland) [fr-ch] //! author : Gaspard Bucher : https://github.com/gaspard ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var frCh = moment.defineLocale('fr-ch', { months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), monthsParseExact: true, weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Aujourd’hui à] LT', nextDay: '[Demain à] LT', nextWeek: 'dddd [à] LT', lastDay: '[Hier à] LT', lastWeek: 'dddd [dernier à] LT', sameElse: 'L' }, relativeTime: { future: 'dans %s', past: 'il y a %s', s: 'quelques secondes', ss: '%d secondes', m: 'une minute', mm: '%d minutes', h: 'une heure', hh: '%d heures', d: 'un jour', dd: '%d jours', M: 'un mois', MM: '%d mois', y: 'un an', yy: '%d ans' }, dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, ordinal: function ordinal(number, period) { switch (period) { // Words with masculine grammatical gender: mois, trimestre, jour default: case 'M': case 'Q': case 'D': case 'DDD': case 'd': return number + (number === 1 ? 'er' : 'e'); // Words with feminine grammatical gender: semaine case 'w': case 'W': return number + (number === 1 ? 're' : 'e'); } }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return frCh; }); /***/ }), /* 226 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/fy.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Frisian [fy] //! author : Robin van der Vliet : https://github.com/robin0van0der0v ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); var fy = moment.defineLocale('fy', { months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), monthsShort: function monthsShort(m, format) { if (!m) { return monthsShortWithDots; } else if (/-MMM-/.test(format)) { return monthsShortWithoutDots[m.month()]; } else { return monthsShortWithDots[m.month()]; } }, monthsParseExact: true, weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD-MM-YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[hjoed om] LT', nextDay: '[moarn om] LT', nextWeek: 'dddd [om] LT', lastDay: '[juster om] LT', lastWeek: '[ôfrûne] dddd [om] LT', sameElse: 'L' }, relativeTime: { future: 'oer %s', past: '%s lyn', s: 'in pear sekonden', ss: '%d sekonden', m: 'ien minút', mm: '%d minuten', h: 'ien oere', hh: '%d oeren', d: 'ien dei', dd: '%d dagen', M: 'ien moanne', MM: '%d moannen', y: 'ien jier', yy: '%d jierren' }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function ordinal(number) { return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return fy; }); /***/ }), /* 227 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ga.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Irish or Irish Gaelic [ga] //! author : André Silva : https://github.com/askpt ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'], monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'], weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'], weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; var ga = moment.defineLocale('ga', { months: months, monthsShort: monthsShort, monthsParseExact: true, weekdays: weekdays, weekdaysShort: weekdaysShort, weekdaysMin: weekdaysMin, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Inniu ag] LT', nextDay: '[Amárach ag] LT', nextWeek: 'dddd [ag] LT', lastDay: '[Inné ag] LT', lastWeek: 'dddd [seo caite] [ag] LT', sameElse: 'L' }, relativeTime: { future: 'i %s', past: '%s ó shin', s: 'cúpla soicind', ss: '%d soicind', m: 'nóiméad', mm: '%d nóiméad', h: 'uair an chloig', hh: '%d uair an chloig', d: 'lá', dd: '%d lá', M: 'mí', MM: '%d míonna', y: 'bliain', yy: '%d bliain' }, dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, ordinal: function ordinal(number) { var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return ga; }); /***/ }), /* 228 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/gd.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Scottish Gaelic [gd] //! author : Jon Ashdown : https://github.com/jonashdown ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var months = ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'], monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'], weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'], weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; var gd = moment.defineLocale('gd', { months: months, monthsShort: monthsShort, monthsParseExact: true, weekdays: weekdays, weekdaysShort: weekdaysShort, weekdaysMin: weekdaysMin, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[An-diugh aig] LT', nextDay: '[A-màireach aig] LT', nextWeek: 'dddd [aig] LT', lastDay: '[An-dè aig] LT', lastWeek: 'dddd [seo chaidh] [aig] LT', sameElse: 'L' }, relativeTime: { future: 'ann an %s', past: 'bho chionn %s', s: 'beagan diogan', ss: '%d diogan', m: 'mionaid', mm: '%d mionaidean', h: 'uair', hh: '%d uairean', d: 'latha', dd: '%d latha', M: 'mìos', MM: '%d mìosan', y: 'bliadhna', yy: '%d bliadhna' }, dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, ordinal: function ordinal(number) { var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return gd; }); /***/ }), /* 229 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/gl.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Galician [gl] //! author : Juan G. Hurtado : https://github.com/juanghurtado ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var gl = moment.defineLocale('gl', { months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'), monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD/MM/YYYY', LL: 'D [de] MMMM [de] YYYY', LLL: 'D [de] MMMM [de] YYYY H:mm', LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm' }, calendar: { sameDay: function sameDay() { return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; }, nextDay: function nextDay() { return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; }, nextWeek: function nextWeek() { return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; }, lastDay: function lastDay() { return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; }, lastWeek: function lastWeek() { return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; }, sameElse: 'L' }, relativeTime: { future: function future(str) { if (str.indexOf('un') === 0) { return 'n' + str; } return 'en ' + str; }, past: 'hai %s', s: 'uns segundos', ss: '%d segundos', m: 'un minuto', mm: '%d minutos', h: 'unha hora', hh: '%d horas', d: 'un día', dd: '%d días', M: 'un mes', MM: '%d meses', y: 'un ano', yy: '%d anos' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return gl; }); /***/ }), /* 230 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/gom-deva.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Konkani Devanagari script [gom-deva] //! author : The Discoverer : https://github.com/WikiDiscoverer ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], m: ['एका मिणटान', 'एक मिनूट'], mm: [number + ' मिणटांनी', number + ' मिणटां'], h: ['एका वरान', 'एक वर'], hh: [number + ' वरांनी', number + ' वरां'], d: ['एका दिसान', 'एक दीस'], dd: [number + ' दिसांनी', number + ' दीस'], M: ['एका म्हयन्यान', 'एक म्हयनो'], MM: [number + ' म्हयन्यानी', number + ' म्हयने'], y: ['एका वर्सान', 'एक वर्स'], yy: [number + ' वर्सांनी', number + ' वर्सां'] }; return isFuture ? format[key][0] : format[key][1]; } var gomDeva = moment.defineLocale('gom-deva', { months: { standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split('_'), isFormat: /MMMM(\s)+D[oD]?/ }, monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), monthsParseExact: true, weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'A h:mm [वाजतां]', LTS: 'A h:mm:ss [वाजतां]', L: 'DD-MM-YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY A h:mm [वाजतां]', LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]' }, calendar: { sameDay: '[आयज] LT', nextDay: '[फाल्यां] LT', nextWeek: '[फुडलो] dddd[,] LT', lastDay: '[काल] LT', lastWeek: '[फाटलो] dddd[,] LT', sameElse: 'L' }, relativeTime: { future: '%s', past: '%s आदीं', s: processRelativeTime, ss: processRelativeTime, m: processRelativeTime, mm: processRelativeTime, h: processRelativeTime, hh: processRelativeTime, d: processRelativeTime, dd: processRelativeTime, M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, ordinal: function ordinal(number, period) { switch (period) { // the ordinal 'वेर' only applies to day of the month case 'D': return number + 'वेर'; default: case 'M': case 'Q': case 'DDD': case 'd': case 'w': case 'W': return number; } }, week: { dow: 0, // Sunday is the first day of the week doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) }, meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'राती') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'सकाळीं') { return hour; } else if (meridiem === 'दनपारां') { return hour > 12 ? hour : hour + 12; } else if (meridiem === 'सांजे') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'राती'; } else if (hour < 12) { return 'सकाळीं'; } else if (hour < 16) { return 'दनपारां'; } else if (hour < 20) { return 'सांजे'; } else { return 'राती'; } } }); return gomDeva; }); /***/ }), /* 231 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/gom-latn.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Konkani Latin script [gom-latn] //! author : The Discoverer : https://github.com/WikiDiscoverer ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { s: ['thoddea sekondamni', 'thodde sekond'], ss: [number + ' sekondamni', number + ' sekond'], m: ['eka mintan', 'ek minut'], mm: [number + ' mintamni', number + ' mintam'], h: ['eka voran', 'ek vor'], hh: [number + ' voramni', number + ' voram'], d: ['eka disan', 'ek dis'], dd: [number + ' disamni', number + ' dis'], M: ['eka mhoinean', 'ek mhoino'], MM: [number + ' mhoineamni', number + ' mhoine'], y: ['eka vorsan', 'ek voros'], yy: [number + ' vorsamni', number + ' vorsam'] }; return isFuture ? format[key][0] : format[key][1]; } var gomLatn = moment.defineLocale('gom-latn', { months: { standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'), isFormat: /MMMM(\s)+D[oD]?/ }, monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), monthsParseExact: true, weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'A h:mm [vazta]', LTS: 'A h:mm:ss [vazta]', L: 'DD-MM-YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY A h:mm [vazta]', LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', llll: 'ddd, D MMM YYYY, A h:mm [vazta]' }, calendar: { sameDay: '[Aiz] LT', nextDay: '[Faleam] LT', nextWeek: '[Fuddlo] dddd[,] LT', lastDay: '[Kal] LT', lastWeek: '[Fattlo] dddd[,] LT', sameElse: 'L' }, relativeTime: { future: '%s', past: '%s adim', s: processRelativeTime, ss: processRelativeTime, m: processRelativeTime, mm: processRelativeTime, h: processRelativeTime, hh: processRelativeTime, d: processRelativeTime, dd: processRelativeTime, M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}(er)/, ordinal: function ordinal(number, period) { switch (period) { // the ordinal 'er' only applies to day of the month case 'D': return number + 'er'; default: case 'M': case 'Q': case 'DDD': case 'd': case 'w': case 'W': return number; } }, week: { dow: 0, // Sunday is the first day of the week doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) }, meridiemParse: /rati|sokallim|donparam|sanje/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'rati') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'sokallim') { return hour; } else if (meridiem === 'donparam') { return hour > 12 ? hour : hour + 12; } else if (meridiem === 'sanje') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'rati'; } else if (hour < 12) { return 'sokallim'; } else if (hour < 16) { return 'donparam'; } else if (hour < 20) { return 'sanje'; } else { return 'rati'; } } }); return gomLatn; }); /***/ }), /* 232 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/gu.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Gujarati [gu] //! author : Kaushik Thanki : https://github.com/Kaushik1987 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '૧', 2: '૨', 3: '૩', 4: '૪', 5: '૫', 6: '૬', 7: '૭', 8: '૮', 9: '૯', 0: '૦' }, numberMap = { '૧': '1', '૨': '2', '૩': '3', '૪': '4', '૫': '5', '૬': '6', '૭': '7', '૮': '8', '૯': '9', '૦': '0' }; var gu = moment.defineLocale('gu', { months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'), monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'), monthsParseExact: true, weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'), weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), longDateFormat: { LT: 'A h:mm વાગ્યે', LTS: 'A h:mm:ss વાગ્યે', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm વાગ્યે', LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે' }, calendar: { sameDay: '[આજ] LT', nextDay: '[કાલે] LT', nextWeek: 'dddd, LT', lastDay: '[ગઇકાલે] LT', lastWeek: '[પાછલા] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s મા', past: '%s પહેલા', s: 'અમુક પળો', ss: '%d સેકંડ', m: 'એક મિનિટ', mm: '%d મિનિટ', h: 'એક કલાક', hh: '%d કલાક', d: 'એક દિવસ', dd: '%d દિવસ', M: 'એક મહિનો', MM: '%d મહિનો', y: 'એક વર્ષ', yy: '%d વર્ષ' }, preparse: function preparse(string) { return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, // Gujarati notation for meridiems are quite fuzzy in practice. While there exists // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. meridiemParse: /રાત|બપોર|સવાર|સાંજ/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'રાત') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'સવાર') { return hour; } else if (meridiem === 'બપોર') { return hour >= 10 ? hour : hour + 12; } else if (meridiem === 'સાંજ') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'રાત'; } else if (hour < 10) { return 'સવાર'; } else if (hour < 17) { return 'બપોર'; } else if (hour < 20) { return 'સાંજ'; } else { return 'રાત'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return gu; }); /***/ }), /* 233 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/he.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Hebrew [he] //! author : Tomer Cohen : https://github.com/tomer //! author : Moshe Simantov : https://github.com/DevelopmentIL //! author : Tal Ater : https://github.com/TalAter ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var he = moment.defineLocale('he', { months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D [ב]MMMM YYYY', LLL: 'D [ב]MMMM YYYY HH:mm', LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', l: 'D/M/YYYY', ll: 'D MMM YYYY', lll: 'D MMM YYYY HH:mm', llll: 'ddd, D MMM YYYY HH:mm' }, calendar: { sameDay: '[היום ב־]LT', nextDay: '[מחר ב־]LT', nextWeek: 'dddd [בשעה] LT', lastDay: '[אתמול ב־]LT', lastWeek: '[ביום] dddd [האחרון בשעה] LT', sameElse: 'L' }, relativeTime: { future: 'בעוד %s', past: 'לפני %s', s: 'מספר שניות', ss: '%d שניות', m: 'דקה', mm: '%d דקות', h: 'שעה', hh: function hh(number) { if (number === 2) { return 'שעתיים'; } return number + ' שעות'; }, d: 'יום', dd: function dd(number) { if (number === 2) { return 'יומיים'; } return number + ' ימים'; }, M: 'חודש', MM: function MM(number) { if (number === 2) { return 'חודשיים'; } return number + ' חודשים'; }, y: 'שנה', yy: function yy(number) { if (number === 2) { return 'שנתיים'; } else if (number % 10 === 0 && number !== 10) { return number + ' שנה'; } return number + ' שנים'; } }, meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, isPM: function isPM(input) { return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 5) { return 'לפנות בוקר'; } else if (hour < 10) { return 'בבוקר'; } else if (hour < 12) { return isLower ? 'לפנה"צ' : 'לפני הצהריים'; } else if (hour < 18) { return isLower ? 'אחה"צ' : 'אחרי הצהריים'; } else { return 'בערב'; } } }); return he; }); /***/ }), /* 234 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/hi.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Hindi [hi] //! author : Mayank Singhal : https://github.com/mayanksinghal ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '१', 2: '२', 3: '३', 4: '४', 5: '५', 6: '६', 7: '७', 8: '८', 9: '९', 0: '०' }, numberMap = { '१': '1', '२': '2', '३': '3', '४': '4', '५': '5', '६': '6', '७': '7', '८': '8', '९': '9', '०': '0' }, monthsParse = [/^जन/i, /^फ़र|फर/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सितं|सित/i, /^अक्टू/i, /^नव|नवं/i, /^दिसं|दिस/i], shortMonthsParse = [/^जन/i, /^फ़र/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सित/i, /^अक्टू/i, /^नव/i, /^दिस/i]; var hi = moment.defineLocale('hi', { months: { format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split('_') }, monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), longDateFormat: { LT: 'A h:mm बजे', LTS: 'A h:mm:ss बजे', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm बजे', LLLL: 'dddd, D MMMM YYYY, A h:mm बजे' }, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: shortMonthsParse, monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, calendar: { sameDay: '[आज] LT', nextDay: '[कल] LT', nextWeek: 'dddd, LT', lastDay: '[कल] LT', lastWeek: '[पिछले] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s में', past: '%s पहले', s: 'कुछ ही क्षण', ss: '%d सेकंड', m: 'एक मिनट', mm: '%d मिनट', h: 'एक घंटा', hh: '%d घंटे', d: 'एक दिन', dd: '%d दिन', M: 'एक महीने', MM: '%d महीने', y: 'एक वर्ष', yy: '%d वर्ष' }, preparse: function preparse(string) { return string.replace(/[१२३४५६७८९०]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, // Hindi notation for meridiems are quite fuzzy in practice. While there exists // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. meridiemParse: /रात|सुबह|दोपहर|शाम/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'रात') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'सुबह') { return hour; } else if (meridiem === 'दोपहर') { return hour >= 10 ? hour : hour + 12; } else if (meridiem === 'शाम') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'रात'; } else if (hour < 10) { return 'सुबह'; } else if (hour < 17) { return 'दोपहर'; } else if (hour < 20) { return 'शाम'; } else { return 'रात'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return hi; }); /***/ }), /* 235 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/hr.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Croatian [hr] //! author : Bojan Marković : https://github.com/bmarkovic ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function translate(number, withoutSuffix, key) { var result = number + ' '; switch (key) { case 'ss': if (number === 1) { result += 'sekunda'; } else if (number === 2 || number === 3 || number === 4) { result += 'sekunde'; } else { result += 'sekundi'; } return result; case 'm': return withoutSuffix ? 'jedna minuta' : 'jedne minute'; case 'mm': if (number === 1) { result += 'minuta'; } else if (number === 2 || number === 3 || number === 4) { result += 'minute'; } else { result += 'minuta'; } return result; case 'h': return withoutSuffix ? 'jedan sat' : 'jednog sata'; case 'hh': if (number === 1) { result += 'sat'; } else if (number === 2 || number === 3 || number === 4) { result += 'sata'; } else { result += 'sati'; } return result; case 'dd': if (number === 1) { result += 'dan'; } else { result += 'dana'; } return result; case 'MM': if (number === 1) { result += 'mjesec'; } else if (number === 2 || number === 3 || number === 4) { result += 'mjeseca'; } else { result += 'mjeseci'; } return result; case 'yy': if (number === 1) { result += 'godina'; } else if (number === 2 || number === 3 || number === 4) { result += 'godine'; } else { result += 'godina'; } return result; } } var hr = moment.defineLocale('hr', { months: { format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'), standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_') }, monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), monthsParseExact: true, weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'Do MMMM YYYY', LLL: 'Do MMMM YYYY H:mm', LLLL: 'dddd, Do MMMM YYYY H:mm' }, calendar: { sameDay: '[danas u] LT', nextDay: '[sutra u] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[u] [nedjelju] [u] LT'; case 3: return '[u] [srijedu] [u] LT'; case 6: return '[u] [subotu] [u] LT'; case 1: case 2: case 4: case 5: return '[u] dddd [u] LT'; } }, lastDay: '[jučer u] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: return '[prošlu] [nedjelju] [u] LT'; case 3: return '[prošlu] [srijedu] [u] LT'; case 6: return '[prošle] [subote] [u] LT'; case 1: case 2: case 4: case 5: return '[prošli] dddd [u] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'za %s', past: 'prije %s', s: 'par sekundi', ss: translate, m: translate, mm: translate, h: translate, hh: translate, d: 'dan', dd: translate, M: 'mjesec', MM: translate, y: 'godinu', yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return hr; }); /***/ }), /* 236 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/hu.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Hungarian [hu] //! author : Adam Brunner : https://github.com/adambrunner //! author : Peter Viszt : https://github.com/passatgt ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); function translate(number, withoutSuffix, key, isFuture) { var num = number; switch (key) { case 's': return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce'; case 'ss': return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce'; case 'm': return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); case 'mm': return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); case 'h': return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); case 'hh': return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); case 'd': return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); case 'dd': return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); case 'M': return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); case 'MM': return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); case 'y': return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); case 'yy': return num + (isFuture || withoutSuffix ? ' év' : ' éve'); } return ''; } function week(isFuture) { return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; } var hu = moment.defineLocale('hu', { months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'), monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'YYYY.MM.DD.', LL: 'YYYY. MMMM D.', LLL: 'YYYY. MMMM D. H:mm', LLLL: 'YYYY. MMMM D., dddd H:mm' }, meridiemParse: /de|du/i, isPM: function isPM(input) { return input.charAt(1).toLowerCase() === 'u'; }, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 12) { return isLower === true ? 'de' : 'DE'; } else { return isLower === true ? 'du' : 'DU'; } }, calendar: { sameDay: '[ma] LT[-kor]', nextDay: '[holnap] LT[-kor]', nextWeek: function nextWeek() { return week.call(this, true); }, lastDay: '[tegnap] LT[-kor]', lastWeek: function lastWeek() { return week.call(this, false); }, sameElse: 'L' }, relativeTime: { future: '%s múlva', past: '%s', s: translate, ss: translate, m: translate, mm: translate, h: translate, hh: translate, d: translate, dd: translate, M: translate, MM: translate, y: translate, yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return hu; }); /***/ }), /* 237 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/hy-am.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Armenian [hy-am] //! author : Armendarabyan : https://github.com/armendarabyan ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var hyAm = moment.defineLocale('hy-am', { months: { format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'), standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_') }, monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'), weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY թ.', LLL: 'D MMMM YYYY թ., HH:mm', LLLL: 'dddd, D MMMM YYYY թ., HH:mm' }, calendar: { sameDay: '[այսօր] LT', nextDay: '[վաղը] LT', lastDay: '[երեկ] LT', nextWeek: function nextWeek() { return 'dddd [օրը ժամը] LT'; }, lastWeek: function lastWeek() { return '[անցած] dddd [օրը ժամը] LT'; }, sameElse: 'L' }, relativeTime: { future: '%s հետո', past: '%s առաջ', s: 'մի քանի վայրկյան', ss: '%d վայրկյան', m: 'րոպե', mm: '%d րոպե', h: 'ժամ', hh: '%d ժամ', d: 'օր', dd: '%d օր', M: 'ամիս', MM: '%d ամիս', y: 'տարի', yy: '%d տարի' }, meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, isPM: function isPM(input) { return /^(ցերեկվա|երեկոյան)$/.test(input); }, meridiem: function meridiem(hour) { if (hour < 4) { return 'գիշերվա'; } else if (hour < 12) { return 'առավոտվա'; } else if (hour < 17) { return 'ցերեկվա'; } else { return 'երեկոյան'; } }, dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, ordinal: function ordinal(number, period) { switch (period) { case 'DDD': case 'w': case 'W': case 'DDDo': if (number === 1) { return number + '-ին'; } return number + '-րդ'; default: return number; } }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return hyAm; }); /***/ }), /* 238 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/id.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Indonesian [id] //! author : Mohammad Satrio Utomo : https://github.com/tyok //! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var id = moment.defineLocale('id', { months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), longDateFormat: { LT: 'HH.mm', LTS: 'HH.mm.ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY [pukul] HH.mm', LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' }, meridiemParse: /pagi|siang|sore|malam/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'pagi') { return hour; } else if (meridiem === 'siang') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === 'sore' || meridiem === 'malam') { return hour + 12; } }, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 11) { return 'pagi'; } else if (hours < 15) { return 'siang'; } else if (hours < 19) { return 'sore'; } else { return 'malam'; } }, calendar: { sameDay: '[Hari ini pukul] LT', nextDay: '[Besok pukul] LT', nextWeek: 'dddd [pukul] LT', lastDay: '[Kemarin pukul] LT', lastWeek: 'dddd [lalu pukul] LT', sameElse: 'L' }, relativeTime: { future: 'dalam %s', past: '%s yang lalu', s: 'beberapa detik', ss: '%d detik', m: 'semenit', mm: '%d menit', h: 'sejam', hh: '%d jam', d: 'sehari', dd: '%d hari', M: 'sebulan', MM: '%d bulan', y: 'setahun', yy: '%d tahun' }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return id; }); /***/ }), /* 239 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/is.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Icelandic [is] //! author : Hinrik Örn Sigurðsson : https://github.com/hinrik ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function plural(n) { if (n % 100 === 11) { return true; } else if (n % 10 === 1) { return false; } return true; } function translate(number, withoutSuffix, key, isFuture) { var result = number + ' '; switch (key) { case 's': return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; case 'ss': if (plural(number)) { return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum'); } return result + 'sekúnda'; case 'm': return withoutSuffix ? 'mínúta' : 'mínútu'; case 'mm': if (plural(number)) { return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum'); } else if (withoutSuffix) { return result + 'mínúta'; } return result + 'mínútu'; case 'hh': if (plural(number)) { return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); } return result + 'klukkustund'; case 'd': if (withoutSuffix) { return 'dagur'; } return isFuture ? 'dag' : 'degi'; case 'dd': if (plural(number)) { if (withoutSuffix) { return result + 'dagar'; } return result + (isFuture ? 'daga' : 'dögum'); } else if (withoutSuffix) { return result + 'dagur'; } return result + (isFuture ? 'dag' : 'degi'); case 'M': if (withoutSuffix) { return 'mánuður'; } return isFuture ? 'mánuð' : 'mánuði'; case 'MM': if (plural(number)) { if (withoutSuffix) { return result + 'mánuðir'; } return result + (isFuture ? 'mánuði' : 'mánuðum'); } else if (withoutSuffix) { return result + 'mánuður'; } return result + (isFuture ? 'mánuð' : 'mánuði'); case 'y': return withoutSuffix || isFuture ? 'ár' : 'ári'; case 'yy': if (plural(number)) { return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); } return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); } } var is = moment.defineLocale('is', { months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'), monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'), weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY [kl.] H:mm', LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm' }, calendar: { sameDay: '[í dag kl.] LT', nextDay: '[á morgun kl.] LT', nextWeek: 'dddd [kl.] LT', lastDay: '[í gær kl.] LT', lastWeek: '[síðasta] dddd [kl.] LT', sameElse: 'L' }, relativeTime: { future: 'eftir %s', past: 'fyrir %s síðan', s: translate, ss: translate, m: translate, mm: translate, h: 'klukkustund', hh: translate, d: translate, dd: translate, M: translate, MM: translate, y: translate, yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return is; }); /***/ }), /* 240 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/it.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Italian [it] //! author : Lorenzo : https://github.com/aliem //! author: Mattia Larentis: https://github.com/nostalgiaz //! author: Marco : https://github.com/Manfre98 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var it = moment.defineLocale('it', { months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: function sameDay() { return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; }, nextDay: function nextDay() { return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; }, nextWeek: function nextWeek() { return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; }, lastDay: function lastDay() { return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; }, lastWeek: function lastWeek() { switch (this.day()) { case 0: return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; default: return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + ']LT'; } }, sameElse: 'L' }, relativeTime: { future: 'tra %s', past: '%s fa', s: 'alcuni secondi', ss: '%d secondi', m: 'un minuto', mm: '%d minuti', h: "un'ora", hh: '%d ore', d: 'un giorno', dd: '%d giorni', w: 'una settimana', ww: '%d settimane', M: 'un mese', MM: '%d mesi', y: 'un anno', yy: '%d anni' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return it; }); /***/ }), /* 241 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/it-ch.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Italian (Switzerland) [it-ch] //! author : xfh : https://github.com/xfh ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var itCh = moment.defineLocale('it-ch', { months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Oggi alle] LT', nextDay: '[Domani alle] LT', nextWeek: 'dddd [alle] LT', lastDay: '[Ieri alle] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: return '[la scorsa] dddd [alle] LT'; default: return '[lo scorso] dddd [alle] LT'; } }, sameElse: 'L' }, relativeTime: { future: function future(s) { return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; }, past: '%s fa', s: 'alcuni secondi', ss: '%d secondi', m: 'un minuto', mm: '%d minuti', h: "un'ora", hh: '%d ore', d: 'un giorno', dd: '%d giorni', M: 'un mese', MM: '%d mesi', y: 'un anno', yy: '%d anni' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return itCh; }); /***/ }), /* 242 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ja.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Japanese [ja] //! author : LI Long : https://github.com/baryon ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ja = moment.defineLocale('ja', { eras: [{ since: '2019-05-01', offset: 1, name: '令和', narrow: '㋿', abbr: 'R' }, { since: '1989-01-08', until: '2019-04-30', offset: 1, name: '平成', narrow: '㍻', abbr: 'H' }, { since: '1926-12-25', until: '1989-01-07', offset: 1, name: '昭和', narrow: '㍼', abbr: 'S' }, { since: '1912-07-30', until: '1926-12-24', offset: 1, name: '大正', narrow: '㍽', abbr: 'T' }, { since: '1873-01-01', until: '1912-07-29', offset: 6, name: '明治', narrow: '㍾', abbr: 'M' }, { since: '0001-01-01', until: '1873-12-31', offset: 1, name: '西暦', narrow: 'AD', abbr: 'AD' }, { since: '0000-12-31', until: -Infinity, offset: 1, name: '紀元前', narrow: 'BC', abbr: 'BC' }], eraYearOrdinalRegex: /(元|\d+)年/, eraYearOrdinalParse: function eraYearOrdinalParse(input, match) { return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); }, months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), weekdaysShort: '日_月_火_水_木_金_土'.split('_'), weekdaysMin: '日_月_火_水_木_金_土'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY/MM/DD', LL: 'YYYY年M月D日', LLL: 'YYYY年M月D日 HH:mm', LLLL: 'YYYY年M月D日 dddd HH:mm', l: 'YYYY/MM/DD', ll: 'YYYY年M月D日', lll: 'YYYY年M月D日 HH:mm', llll: 'YYYY年M月D日(ddd) HH:mm' }, meridiemParse: /午前|午後/i, isPM: function isPM(input) { return input === '午後'; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return '午前'; } else { return '午後'; } }, calendar: { sameDay: '[今日] LT', nextDay: '[明日] LT', nextWeek: function nextWeek(now) { if (now.week() !== this.week()) { return '[来週]dddd LT'; } else { return 'dddd LT'; } }, lastDay: '[昨日] LT', lastWeek: function lastWeek(now) { if (this.week() !== now.week()) { return '[先週]dddd LT'; } else { return 'dddd LT'; } }, sameElse: 'L' }, dayOfMonthOrdinalParse: /\d{1,2}日/, ordinal: function ordinal(number, period) { switch (period) { case 'y': return number === 1 ? '元年' : number + '年'; case 'd': case 'D': case 'DDD': return number + '日'; default: return number; } }, relativeTime: { future: '%s後', past: '%s前', s: '数秒', ss: '%d秒', m: '1分', mm: '%d分', h: '1時間', hh: '%d時間', d: '1日', dd: '%d日', M: '1ヶ月', MM: '%dヶ月', y: '1年', yy: '%d年' } }); return ja; }); /***/ }), /* 243 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/jv.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Javanese [jv] //! author : Rony Lantip : https://github.com/lantip //! reference: http://jv.wikipedia.org/wiki/Basa_Jawa ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var jv = moment.defineLocale('jv', { months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), longDateFormat: { LT: 'HH.mm', LTS: 'HH.mm.ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY [pukul] HH.mm', LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' }, meridiemParse: /enjing|siyang|sonten|ndalu/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'enjing') { return hour; } else if (meridiem === 'siyang') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === 'sonten' || meridiem === 'ndalu') { return hour + 12; } }, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 11) { return 'enjing'; } else if (hours < 15) { return 'siyang'; } else if (hours < 19) { return 'sonten'; } else { return 'ndalu'; } }, calendar: { sameDay: '[Dinten puniko pukul] LT', nextDay: '[Mbenjang pukul] LT', nextWeek: 'dddd [pukul] LT', lastDay: '[Kala wingi pukul] LT', lastWeek: 'dddd [kepengker pukul] LT', sameElse: 'L' }, relativeTime: { future: 'wonten ing %s', past: '%s ingkang kepengker', s: 'sawetawis detik', ss: '%d detik', m: 'setunggal menit', mm: '%d menit', h: 'setunggal jam', hh: '%d jam', d: 'sedinten', dd: '%d dinten', M: 'sewulan', MM: '%d wulan', y: 'setaun', yy: '%d taun' }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return jv; }); /***/ }), /* 244 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ka.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Georgian [ka] //! author : Irakli Janiashvili : https://github.com/IrakliJani ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ka = moment.defineLocale('ka', { months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), weekdays: { standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'), isFormat: /(წინა|შემდეგ)/ }, weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[დღეს] LT[-ზე]', nextDay: '[ხვალ] LT[-ზე]', lastDay: '[გუშინ] LT[-ზე]', nextWeek: '[შემდეგ] dddd LT[-ზე]', lastWeek: '[წინა] dddd LT-ზე', sameElse: 'L' }, relativeTime: { future: function future(s) { return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) { return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; }); }, past: function past(s) { if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { return s.replace(/(ი|ე)$/, 'ის წინ'); } if (/წელი/.test(s)) { return s.replace(/წელი$/, 'წლის წინ'); } return s; }, s: 'რამდენიმე წამი', ss: '%d წამი', m: 'წუთი', mm: '%d წუთი', h: 'საათი', hh: '%d საათი', d: 'დღე', dd: '%d დღე', M: 'თვე', MM: '%d თვე', y: 'წელი', yy: '%d წელი' }, dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, ordinal: function ordinal(number) { if (number === 0) { return number; } if (number === 1) { return number + '-ლი'; } if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) { return 'მე-' + number; } return number + '-ე'; }, week: { dow: 1, doy: 7 } }); return ka; }); /***/ }), /* 245 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/kk.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Kazakh [kk] //! authors : Nurlan Rakhimzhanov : https://github.com/nurlan ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var suffixes = { 0: '-ші', 1: '-ші', 2: '-ші', 3: '-ші', 4: '-ші', 5: '-ші', 6: '-шы', 7: '-ші', 8: '-ші', 9: '-шы', 10: '-шы', 20: '-шы', 30: '-шы', 40: '-шы', 50: '-ші', 60: '-шы', 70: '-ші', 80: '-ші', 90: '-шы', 100: '-ші' }; var kk = moment.defineLocale('kk', { months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Бүгін сағат] LT', nextDay: '[Ертең сағат] LT', nextWeek: 'dddd [сағат] LT', lastDay: '[Кеше сағат] LT', lastWeek: '[Өткен аптаның] dddd [сағат] LT', sameElse: 'L' }, relativeTime: { future: '%s ішінде', past: '%s бұрын', s: 'бірнеше секунд', ss: '%d секунд', m: 'бір минут', mm: '%d минут', h: 'бір сағат', hh: '%d сағат', d: 'бір күн', dd: '%d күн', M: 'бір ай', MM: '%d ай', y: 'бір жыл', yy: '%d жыл' }, dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, ordinal: function ordinal(number) { var a = number % 10, b = number >= 100 ? 100 : null; return number + (suffixes[number] || suffixes[a] || suffixes[b]); }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return kk; }); /***/ }), /* 246 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/km.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Cambodian [km] //! author : Kruy Vanna : https://github.com/kruyvanna ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '១', 2: '២', 3: '៣', 4: '៤', 5: '៥', 6: '៦', 7: '៧', 8: '៨', 9: '៩', 0: '០' }, numberMap = { '១': '1', '២': '2', '៣': '3', '៤': '4', '៥': '5', '៦': '6', '៧': '7', '៨': '8', '៩': '9', '០': '0' }; var km = moment.defineLocale('km', { months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, meridiemParse: /ព្រឹក|ល្ងាច/, isPM: function isPM(input) { return input === 'ល្ងាច'; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ព្រឹក'; } else { return 'ល្ងាច'; } }, calendar: { sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', nextDay: '[ស្អែក ម៉ោង] LT', nextWeek: 'dddd [ម៉ោង] LT', lastDay: '[ម្សិលមិញ ម៉ោង] LT', lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', sameElse: 'L' }, relativeTime: { future: '%sទៀត', past: '%sមុន', s: 'ប៉ុន្មានវិនាទី', ss: '%d វិនាទី', m: 'មួយនាទី', mm: '%d នាទី', h: 'មួយម៉ោង', hh: '%d ម៉ោង', d: 'មួយថ្ងៃ', dd: '%d ថ្ងៃ', M: 'មួយខែ', MM: '%d ខែ', y: 'មួយឆ្នាំ', yy: '%d ឆ្នាំ' }, dayOfMonthOrdinalParse: /ទី\d{1,2}/, ordinal: 'ទី%d', preparse: function preparse(string) { return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return km; }); /***/ }), /* 247 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/kn.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Kannada [kn] //! author : Rajeev Naik : https://github.com/rajeevnaikte ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '೧', 2: '೨', 3: '೩', 4: '೪', 5: '೫', 6: '೬', 7: '೭', 8: '೮', 9: '೯', 0: '೦' }, numberMap = { '೧': '1', '೨': '2', '೩': '3', '೪': '4', '೫': '5', '೬': '6', '೭': '7', '೮': '8', '೯': '9', '೦': '0' }; var kn = moment.defineLocale('kn', { months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'), monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'), monthsParseExact: true, weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'), weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), longDateFormat: { LT: 'A h:mm', LTS: 'A h:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm', LLLL: 'dddd, D MMMM YYYY, A h:mm' }, calendar: { sameDay: '[ಇಂದು] LT', nextDay: '[ನಾಳೆ] LT', nextWeek: 'dddd, LT', lastDay: '[ನಿನ್ನೆ] LT', lastWeek: '[ಕೊನೆಯ] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s ನಂತರ', past: '%s ಹಿಂದೆ', s: 'ಕೆಲವು ಕ್ಷಣಗಳು', ss: '%d ಸೆಕೆಂಡುಗಳು', m: 'ಒಂದು ನಿಮಿಷ', mm: '%d ನಿಮಿಷ', h: 'ಒಂದು ಗಂಟೆ', hh: '%d ಗಂಟೆ', d: 'ಒಂದು ದಿನ', dd: '%d ದಿನ', M: 'ಒಂದು ತಿಂಗಳು', MM: '%d ತಿಂಗಳು', y: 'ಒಂದು ವರ್ಷ', yy: '%d ವರ್ಷ' }, preparse: function preparse(string) { return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'ರಾತ್ರಿ') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { return hour; } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { return hour >= 10 ? hour : hour + 12; } else if (meridiem === 'ಸಂಜೆ') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'ರಾತ್ರಿ'; } else if (hour < 10) { return 'ಬೆಳಿಗ್ಗೆ'; } else if (hour < 17) { return 'ಮಧ್ಯಾಹ್ನ'; } else if (hour < 20) { return 'ಸಂಜೆ'; } else { return 'ರಾತ್ರಿ'; } }, dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, ordinal: function ordinal(number) { return number + 'ನೇ'; }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return kn; }); /***/ }), /* 248 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ko.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Korean [ko] //! author : Kyungwook, Park : https://github.com/kyungw00k //! author : Jeeeyul Lee ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ko = moment.defineLocale('ko', { months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), weekdaysShort: '일_월_화_수_목_금_토'.split('_'), weekdaysMin: '일_월_화_수_목_금_토'.split('_'), longDateFormat: { LT: 'A h:mm', LTS: 'A h:mm:ss', L: 'YYYY.MM.DD.', LL: 'YYYY년 MMMM D일', LLL: 'YYYY년 MMMM D일 A h:mm', LLLL: 'YYYY년 MMMM D일 dddd A h:mm', l: 'YYYY.MM.DD.', ll: 'YYYY년 MMMM D일', lll: 'YYYY년 MMMM D일 A h:mm', llll: 'YYYY년 MMMM D일 dddd A h:mm' }, calendar: { sameDay: '오늘 LT', nextDay: '내일 LT', nextWeek: 'dddd LT', lastDay: '어제 LT', lastWeek: '지난주 dddd LT', sameElse: 'L' }, relativeTime: { future: '%s 후', past: '%s 전', s: '몇 초', ss: '%d초', m: '1분', mm: '%d분', h: '한 시간', hh: '%d시간', d: '하루', dd: '%d일', M: '한 달', MM: '%d달', y: '일 년', yy: '%d년' }, dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'DDD': return number + '일'; case 'M': return number + '월'; case 'w': case 'W': return number + '주'; default: return number; } }, meridiemParse: /오전|오후/, isPM: function isPM(token) { return token === '오후'; }, meridiem: function meridiem(hour, minute, isUpper) { return hour < 12 ? '오전' : '오후'; } }); return ko; }); /***/ }), /* 249 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ku.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Kurdish [ku] //! author : Shahram Mebashar : https://github.com/ShahramMebashar ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '١', 2: '٢', 3: '٣', 4: '٤', 5: '٥', 6: '٦', 7: '٧', 8: '٨', 9: '٩', 0: '٠' }, numberMap = { '١': '1', '٢': '2', '٣': '3', '٤': '4', '٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9', '٠': '0' }, months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'حوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم']; var ku = moment.defineLocale('ku', { months: months, monthsShort: months, weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'), weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, meridiemParse: /ئێواره‌|به‌یانی/, isPM: function isPM(input) { return /ئێواره‌/.test(input); }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'به‌یانی'; } else { return 'ئێواره‌'; } }, calendar: { sameDay: '[ئه‌مرۆ كاتژمێر] LT', nextDay: '[به‌یانی كاتژمێر] LT', nextWeek: 'dddd [كاتژمێر] LT', lastDay: '[دوێنێ كاتژمێر] LT', lastWeek: 'dddd [كاتژمێر] LT', sameElse: 'L' }, relativeTime: { future: 'له‌ %s', past: '%s', s: 'چه‌ند چركه‌یه‌ك', ss: 'چركه‌ %d', m: 'یه‌ك خوله‌ك', mm: '%d خوله‌ك', h: 'یه‌ك كاتژمێر', hh: '%d كاتژمێر', d: 'یه‌ك ڕۆژ', dd: '%d ڕۆژ', M: 'یه‌ك مانگ', MM: '%d مانگ', y: 'یه‌ك ساڵ', yy: '%d ساڵ' }, preparse: function preparse(string) { return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { return numberMap[match]; }).replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }).replace(/,/g, '،'); }, week: { dow: 6, // Saturday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return ku; }); /***/ }), /* 250 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ku-kmr.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Northern Kurdish [ku-kmr] //! authors : Mazlum Özdogan : https://github.com/mergehez ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(num, withoutSuffix, key, isFuture) { var format = { s: ['çend sanîye', 'çend sanîyeyan'], ss: [num + ' sanîye', num + ' sanîyeyan'], m: ['deqîqeyek', 'deqîqeyekê'], mm: [num + ' deqîqe', num + ' deqîqeyan'], h: ['saetek', 'saetekê'], hh: [num + ' saet', num + ' saetan'], d: ['rojek', 'rojekê'], dd: [num + ' roj', num + ' rojan'], w: ['hefteyek', 'hefteyekê'], ww: [num + ' hefte', num + ' hefteyan'], M: ['mehek', 'mehekê'], MM: [num + ' meh', num + ' mehan'], y: ['salek', 'salekê'], yy: [num + ' sal', num + ' salan'] }; return withoutSuffix ? format[key][0] : format[key][1]; } // function obliqueNumSuffix(num) { // if(num.includes(':')) // num = parseInt(num.split(':')[0]); // else // num = parseInt(num); // return num == 0 || num % 10 == 1 ? 'ê' // : (num > 10 && num % 10 == 0 ? 'î' : 'an'); // } function ezafeNumSuffix(num) { num = '' + num; var l = num.substring(num.length - 1), ll = num.length > 1 ? num.substring(num.length - 2) : ''; if (!(ll == 12 || ll == 13) && (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')) return 'yê'; return 'ê'; } var kuKmr = moment.defineLocale('ku-kmr', { // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn' // But the names below are more well known and handy months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split('_'), monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'), monthsParseExact: true, weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'), weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'), weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'), meridiem: function meridiem(hours, minutes, isLower) { if (hours < 12) { return isLower ? 'bn' : 'BN'; } else { return isLower ? 'pn' : 'PN'; } }, meridiemParse: /bn|BN|pn|PN/, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'Do MMMM[a] YYYY[an]', LLL: 'Do MMMM[a] YYYY[an] HH:mm', LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', ll: 'Do MMM[.] YYYY[an]', lll: 'Do MMM[.] YYYY[an] HH:mm', llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm' }, calendar: { sameDay: '[Îro di saet] LT [de]', nextDay: '[Sibê di saet] LT [de]', nextWeek: 'dddd [di saet] LT [de]', lastDay: '[Duh di saet] LT [de]', lastWeek: 'dddd[a borî di saet] LT [de]', sameElse: 'L' }, relativeTime: { future: 'di %s de', past: 'berî %s', s: processRelativeTime, ss: processRelativeTime, m: processRelativeTime, mm: processRelativeTime, h: processRelativeTime, hh: processRelativeTime, d: processRelativeTime, dd: processRelativeTime, w: processRelativeTime, ww: processRelativeTime, M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, ordinal: function ordinal(num, period) { var p = period.toLowerCase(); if (p.includes('w') || p.includes('m')) return num + '.'; return num + ezafeNumSuffix(num); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return kuKmr; }); /***/ }), /* 251 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ky.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Kyrgyz [ky] //! author : Chyngyz Arystan uulu : https://github.com/chyngyz ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var suffixes = { 0: '-чү', 1: '-чи', 2: '-чи', 3: '-чү', 4: '-чү', 5: '-чи', 6: '-чы', 7: '-чи', 8: '-чи', 9: '-чу', 10: '-чу', 20: '-чы', 30: '-чу', 40: '-чы', 50: '-чү', 60: '-чы', 70: '-чи', 80: '-чи', 90: '-чу', 100: '-чү' }; var ky = moment.defineLocale('ky', { months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'), weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Бүгүн саат] LT', nextDay: '[Эртең саат] LT', nextWeek: 'dddd [саат] LT', lastDay: '[Кечээ саат] LT', lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', sameElse: 'L' }, relativeTime: { future: '%s ичинде', past: '%s мурун', s: 'бирнече секунд', ss: '%d секунд', m: 'бир мүнөт', mm: '%d мүнөт', h: 'бир саат', hh: '%d саат', d: 'бир күн', dd: '%d күн', M: 'бир ай', MM: '%d ай', y: 'бир жыл', yy: '%d жыл' }, dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, ordinal: function ordinal(number) { var a = number % 10, b = number >= 100 ? 100 : null; return number + (suffixes[number] || suffixes[a] || suffixes[b]); }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return ky; }); /***/ }), /* 252 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/lb.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Luxembourgish [lb] //! author : mweimerskirch : https://github.com/mweimerskirch //! author : David Raison : https://github.com/kwisatz ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { m: ['eng Minutt', 'enger Minutt'], h: ['eng Stonn', 'enger Stonn'], d: ['een Dag', 'engem Dag'], M: ['ee Mount', 'engem Mount'], y: ['ee Joer', 'engem Joer'] }; return withoutSuffix ? format[key][0] : format[key][1]; } function processFutureTime(string) { var number = string.substr(0, string.indexOf(' ')); if (eifelerRegelAppliesToNumber(number)) { return 'a ' + string; } return 'an ' + string; } function processPastTime(string) { var number = string.substr(0, string.indexOf(' ')); if (eifelerRegelAppliesToNumber(number)) { return 'viru ' + string; } return 'virun ' + string; } /** * Returns true if the word before the given number loses the '-n' ending. * e.g. 'an 10 Deeg' but 'a 5 Deeg' * * @param number {integer} * @returns {boolean} */ function eifelerRegelAppliesToNumber(number) { number = parseInt(number, 10); if (isNaN(number)) { return false; } if (number < 0) { // Negative Number --> always true return true; } else if (number < 10) { // Only 1 digit if (4 <= number && number <= 7) { return true; } return false; } else if (number < 100) { // 2 digits var lastDigit = number % 10, firstDigit = number / 10; if (lastDigit === 0) { return eifelerRegelAppliesToNumber(firstDigit); } return eifelerRegelAppliesToNumber(lastDigit); } else if (number < 10000) { // 3 or 4 digits --> recursively check first digit while (number >= 10) { number = number / 10; } return eifelerRegelAppliesToNumber(number); } else { // Anything larger than 4 digits: recursively check first n-3 digits number = number / 1000; return eifelerRegelAppliesToNumber(number); } } var lb = moment.defineLocale('lb', { months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), monthsParseExact: true, weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm [Auer]', LTS: 'H:mm:ss [Auer]', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY H:mm [Auer]', LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' }, calendar: { sameDay: '[Haut um] LT', sameElse: 'L', nextDay: '[Muer um] LT', nextWeek: 'dddd [um] LT', lastDay: '[Gëschter um] LT', lastWeek: function lastWeek() { // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule switch (this.day()) { case 2: case 4: return '[Leschten] dddd [um] LT'; default: return '[Leschte] dddd [um] LT'; } } }, relativeTime: { future: processFutureTime, past: processPastTime, s: 'e puer Sekonnen', ss: '%d Sekonnen', m: processRelativeTime, mm: '%d Minutten', h: processRelativeTime, hh: '%d Stonnen', d: processRelativeTime, dd: '%d Deeg', M: processRelativeTime, MM: '%d Méint', y: processRelativeTime, yy: '%d Joer' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return lb; }); /***/ }), /* 253 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/lo.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Lao [lo] //! author : Ryan Hart : https://github.com/ryanhart2 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var lo = moment.defineLocale('lo', { months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'ວັນdddd D MMMM YYYY HH:mm' }, meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, isPM: function isPM(input) { return input === 'ຕອນແລງ'; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ຕອນເຊົ້າ'; } else { return 'ຕອນແລງ'; } }, calendar: { sameDay: '[ມື້ນີ້ເວລາ] LT', nextDay: '[ມື້ອື່ນເວລາ] LT', nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', lastDay: '[ມື້ວານນີ້ເວລາ] LT', lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', sameElse: 'L' }, relativeTime: { future: 'ອີກ %s', past: '%sຜ່ານມາ', s: 'ບໍ່ເທົ່າໃດວິນາທີ', ss: '%d ວິນາທີ', m: '1 ນາທີ', mm: '%d ນາທີ', h: '1 ຊົ່ວໂມງ', hh: '%d ຊົ່ວໂມງ', d: '1 ມື້', dd: '%d ມື້', M: '1 ເດືອນ', MM: '%d ເດືອນ', y: '1 ປີ', yy: '%d ປີ' }, dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, ordinal: function ordinal(number) { return 'ທີ່' + number; } }); return lo; }); /***/ }), /* 254 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/lt.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Lithuanian [lt] //! author : Mindaugas Mozūras : https://github.com/mmozuras ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var units = { ss: 'sekundė_sekundžių_sekundes', m: 'minutė_minutės_minutę', mm: 'minutės_minučių_minutes', h: 'valanda_valandos_valandą', hh: 'valandos_valandų_valandas', d: 'diena_dienos_dieną', dd: 'dienos_dienų_dienas', M: 'mėnuo_mėnesio_mėnesį', MM: 'mėnesiai_mėnesių_mėnesius', y: 'metai_metų_metus', yy: 'metai_metų_metus' }; function translateSeconds(number, withoutSuffix, key, isFuture) { if (withoutSuffix) { return 'kelios sekundės'; } else { return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; } } function translateSingular(number, withoutSuffix, key, isFuture) { return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2]; } function special(number) { return number % 10 === 0 || number > 10 && number < 20; } function forms(key) { return units[key].split('_'); } function translate(number, withoutSuffix, key, isFuture) { var result = number + ' '; if (number === 1) { return result + translateSingular(number, withoutSuffix, key[0], isFuture); } else if (withoutSuffix) { return result + (special(number) ? forms(key)[1] : forms(key)[0]); } else { if (isFuture) { return result + forms(key)[1]; } else { return result + (special(number) ? forms(key)[1] : forms(key)[2]); } } } var lt = moment.defineLocale('lt', { months: { format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'), standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'), isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ }, monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), weekdays: { format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'), standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'), isFormat: /dddd HH:mm/ }, weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', LL: 'YYYY [m.] MMMM D [d.]', LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', l: 'YYYY-MM-DD', ll: 'YYYY [m.] MMMM D [d.]', lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' }, calendar: { sameDay: '[Šiandien] LT', nextDay: '[Rytoj] LT', nextWeek: 'dddd LT', lastDay: '[Vakar] LT', lastWeek: '[Praėjusį] dddd LT', sameElse: 'L' }, relativeTime: { future: 'po %s', past: 'prieš %s', s: translateSeconds, ss: translate, m: translateSingular, mm: translate, h: translateSingular, hh: translate, d: translateSingular, dd: translate, M: translateSingular, MM: translate, y: translateSingular, yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}-oji/, ordinal: function ordinal(number) { return number + '-oji'; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return lt; }); /***/ }), /* 255 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/lv.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Latvian [lv] //! author : Kristaps Karlsons : https://github.com/skakri //! author : Jānis Elmeris : https://github.com/JanisE ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var units = { ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), h: 'stundas_stundām_stunda_stundas'.split('_'), hh: 'stundas_stundām_stunda_stundas'.split('_'), d: 'dienas_dienām_diena_dienas'.split('_'), dd: 'dienas_dienām_diena_dienas'.split('_'), M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), y: 'gada_gadiem_gads_gadi'.split('_'), yy: 'gada_gadiem_gads_gadi'.split('_') }; /** * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. */ function format(forms, number, withoutSuffix) { if (withoutSuffix) { // E.g. "21 minūte", "3 minūtes". return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; } else { // E.g. "21 minūtes" as in "pēc 21 minūtes". // E.g. "3 minūtēm" as in "pēc 3 minūtēm". return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; } } function relativeTimeWithPlural(number, withoutSuffix, key) { return number + ' ' + format(units[key], number, withoutSuffix); } function relativeTimeWithSingular(number, withoutSuffix, key) { return format(units[key], number, withoutSuffix); } function relativeSeconds(number, withoutSuffix) { return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; } var lv = moment.defineLocale('lv', { months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'), monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'), weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY.', LL: 'YYYY. [gada] D. MMMM', LLL: 'YYYY. [gada] D. MMMM, HH:mm', LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm' }, calendar: { sameDay: '[Šodien pulksten] LT', nextDay: '[Rīt pulksten] LT', nextWeek: 'dddd [pulksten] LT', lastDay: '[Vakar pulksten] LT', lastWeek: '[Pagājušā] dddd [pulksten] LT', sameElse: 'L' }, relativeTime: { future: 'pēc %s', past: 'pirms %s', s: relativeSeconds, ss: relativeTimeWithPlural, m: relativeTimeWithSingular, mm: relativeTimeWithPlural, h: relativeTimeWithSingular, hh: relativeTimeWithPlural, d: relativeTimeWithSingular, dd: relativeTimeWithPlural, M: relativeTimeWithSingular, MM: relativeTimeWithPlural, y: relativeTimeWithSingular, yy: relativeTimeWithPlural }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return lv; }); /***/ }), /* 256 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/me.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Montenegrin [me] //! author : Miodrag Nikač : https://github.com/miodragnikac ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var translator = { words: { //Different grammatical cases ss: ['sekund', 'sekunda', 'sekundi'], m: ['jedan minut', 'jednog minuta'], mm: ['minut', 'minuta', 'minuta'], h: ['jedan sat', 'jednog sata'], hh: ['sat', 'sata', 'sati'], dd: ['dan', 'dana', 'dana'], MM: ['mjesec', 'mjeseca', 'mjeseci'], yy: ['godina', 'godine', 'godina'] }, correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) { return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]; }, translate: function translate(number, withoutSuffix, key) { var wordKey = translator.words[key]; if (key.length === 1) { return withoutSuffix ? wordKey[0] : wordKey[1]; } else { return number + ' ' + translator.correctGrammaticalCase(number, wordKey); } } }; var me = moment.defineLocale('me', { months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY H:mm', LLLL: 'dddd, D. MMMM YYYY H:mm' }, calendar: { sameDay: '[danas u] LT', nextDay: '[sjutra u] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[u] [nedjelju] [u] LT'; case 3: return '[u] [srijedu] [u] LT'; case 6: return '[u] [subotu] [u] LT'; case 1: case 2: case 4: case 5: return '[u] dddd [u] LT'; } }, lastDay: '[juče u] LT', lastWeek: function lastWeek() { var lastWeekDays = ['[prošle] [nedjelje] [u] LT', '[prošlog] [ponedjeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srijede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT']; return lastWeekDays[this.day()]; }, sameElse: 'L' }, relativeTime: { future: 'za %s', past: 'prije %s', s: 'nekoliko sekundi', ss: translator.translate, m: translator.translate, mm: translator.translate, h: translator.translate, hh: translator.translate, d: 'dan', dd: translator.translate, M: 'mjesec', MM: translator.translate, y: 'godinu', yy: translator.translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return me; }); /***/ }), /* 257 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/mi.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Maori [mi] //! author : John Corrigan : https://github.com/johnideal ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var mi = moment.defineLocale('mi', { months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'), monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'), monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY [i] HH:mm', LLLL: 'dddd, D MMMM YYYY [i] HH:mm' }, calendar: { sameDay: '[i teie mahana, i] LT', nextDay: '[apopo i] LT', nextWeek: 'dddd [i] LT', lastDay: '[inanahi i] LT', lastWeek: 'dddd [whakamutunga i] LT', sameElse: 'L' }, relativeTime: { future: 'i roto i %s', past: '%s i mua', s: 'te hēkona ruarua', ss: '%d hēkona', m: 'he meneti', mm: '%d meneti', h: 'te haora', hh: '%d haora', d: 'he ra', dd: '%d ra', M: 'he marama', MM: '%d marama', y: 'he tau', yy: '%d tau' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return mi; }); /***/ }), /* 258 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/mk.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Macedonian [mk] //! author : Borislav Mickov : https://github.com/B0k0 //! author : Sashko Todorov : https://github.com/bkyceh ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var mk = moment.defineLocale('mk', { months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'D.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY H:mm', LLLL: 'dddd, D MMMM YYYY H:mm' }, calendar: { sameDay: '[Денес во] LT', nextDay: '[Утре во] LT', nextWeek: '[Во] dddd [во] LT', lastDay: '[Вчера во] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: case 3: case 6: return '[Изминатата] dddd [во] LT'; case 1: case 2: case 4: case 5: return '[Изминатиот] dddd [во] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'за %s', past: 'пред %s', s: 'неколку секунди', ss: '%d секунди', m: 'една минута', mm: '%d минути', h: 'еден час', hh: '%d часа', d: 'еден ден', dd: '%d дена', M: 'еден месец', MM: '%d месеци', y: 'една година', yy: '%d години' }, dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, ordinal: function ordinal(number) { var lastDigit = number % 10, last2Digits = number % 100; if (number === 0) { return number + '-ев'; } else if (last2Digits === 0) { return number + '-ен'; } else if (last2Digits > 10 && last2Digits < 20) { return number + '-ти'; } else if (lastDigit === 1) { return number + '-ви'; } else if (lastDigit === 2) { return number + '-ри'; } else if (lastDigit === 7 || lastDigit === 8) { return number + '-ми'; } else { return number + '-ти'; } }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return mk; }); /***/ }), /* 259 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ml.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Malayalam [ml] //! author : Floyd Pink : https://github.com/floydpink ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ml = moment.defineLocale('ml', { months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), monthsParseExact: true, weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), longDateFormat: { LT: 'A h:mm -നു', LTS: 'A h:mm:ss -നു', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm -നു', LLLL: 'dddd, D MMMM YYYY, A h:mm -നു' }, calendar: { sameDay: '[ഇന്ന്] LT', nextDay: '[നാളെ] LT', nextWeek: 'dddd, LT', lastDay: '[ഇന്നലെ] LT', lastWeek: '[കഴിഞ്ഞ] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s കഴിഞ്ഞ്', past: '%s മുൻപ്', s: 'അൽപ നിമിഷങ്ങൾ', ss: '%d സെക്കൻഡ്', m: 'ഒരു മിനിറ്റ്', mm: '%d മിനിറ്റ്', h: 'ഒരു മണിക്കൂർ', hh: '%d മണിക്കൂർ', d: 'ഒരു ദിവസം', dd: '%d ദിവസം', M: 'ഒരു മാസം', MM: '%d മാസം', y: 'ഒരു വർഷം', yy: '%d വർഷം' }, meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'രാത്രി' && hour >= 4 || meridiem === 'ഉച്ച കഴിഞ്ഞ്' || meridiem === 'വൈകുന്നേരം') { return hour + 12; } else { return hour; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'രാത്രി'; } else if (hour < 12) { return 'രാവിലെ'; } else if (hour < 17) { return 'ഉച്ച കഴിഞ്ഞ്'; } else if (hour < 20) { return 'വൈകുന്നേരം'; } else { return 'രാത്രി'; } } }); return ml; }); /***/ }), /* 260 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/mn.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Mongolian [mn] //! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function translate(number, withoutSuffix, key, isFuture) { switch (key) { case 's': return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; case 'ss': return number + (withoutSuffix ? ' секунд' : ' секундын'); case 'm': case 'mm': return number + (withoutSuffix ? ' минут' : ' минутын'); case 'h': case 'hh': return number + (withoutSuffix ? ' цаг' : ' цагийн'); case 'd': case 'dd': return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); case 'M': case 'MM': return number + (withoutSuffix ? ' сар' : ' сарын'); case 'y': case 'yy': return number + (withoutSuffix ? ' жил' : ' жилийн'); default: return number; } } var mn = moment.defineLocale('mn', { months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'), monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'), monthsParseExact: true, weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', LL: 'YYYY оны MMMMын D', LLL: 'YYYY оны MMMMын D HH:mm', LLLL: 'dddd, YYYY оны MMMMын D HH:mm' }, meridiemParse: /ҮӨ|ҮХ/i, isPM: function isPM(input) { return input === 'ҮХ'; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ҮӨ'; } else { return 'ҮХ'; } }, calendar: { sameDay: '[Өнөөдөр] LT', nextDay: '[Маргааш] LT', nextWeek: '[Ирэх] dddd LT', lastDay: '[Өчигдөр] LT', lastWeek: '[Өнгөрсөн] dddd LT', sameElse: 'L' }, relativeTime: { future: '%s дараа', past: '%s өмнө', s: translate, ss: translate, m: translate, mm: translate, h: translate, hh: translate, d: translate, dd: translate, M: translate, MM: translate, y: translate, yy: translate }, dayOfMonthOrdinalParse: /\d{1,2} өдөр/, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'DDD': return number + ' өдөр'; default: return number; } } }); return mn; }); /***/ }), /* 261 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/mr.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Marathi [mr] //! author : Harshad Kale : https://github.com/kalehv //! author : Vivek Athalye : https://github.com/vnathalye ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '१', 2: '२', 3: '३', 4: '४', 5: '५', 6: '६', 7: '७', 8: '८', 9: '९', 0: '०' }, numberMap = { '१': '1', '२': '2', '३': '3', '४': '4', '५': '5', '६': '6', '७': '7', '८': '8', '९': '9', '०': '0' }; function relativeTimeMr(number, withoutSuffix, string, isFuture) { var output = ''; if (withoutSuffix) { switch (string) { case 's': output = 'काही सेकंद'; break; case 'ss': output = '%d सेकंद'; break; case 'm': output = 'एक मिनिट'; break; case 'mm': output = '%d मिनिटे'; break; case 'h': output = 'एक तास'; break; case 'hh': output = '%d तास'; break; case 'd': output = 'एक दिवस'; break; case 'dd': output = '%d दिवस'; break; case 'M': output = 'एक महिना'; break; case 'MM': output = '%d महिने'; break; case 'y': output = 'एक वर्ष'; break; case 'yy': output = '%d वर्षे'; break; } } else { switch (string) { case 's': output = 'काही सेकंदां'; break; case 'ss': output = '%d सेकंदां'; break; case 'm': output = 'एका मिनिटा'; break; case 'mm': output = '%d मिनिटां'; break; case 'h': output = 'एका तासा'; break; case 'hh': output = '%d तासां'; break; case 'd': output = 'एका दिवसा'; break; case 'dd': output = '%d दिवसां'; break; case 'M': output = 'एका महिन्या'; break; case 'MM': output = '%d महिन्यां'; break; case 'y': output = 'एका वर्षा'; break; case 'yy': output = '%d वर्षां'; break; } } return output.replace(/%d/i, number); } var mr = moment.defineLocale('mr', { months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), monthsParseExact: true, weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), longDateFormat: { LT: 'A h:mm वाजता', LTS: 'A h:mm:ss वाजता', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm वाजता', LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता' }, calendar: { sameDay: '[आज] LT', nextDay: '[उद्या] LT', nextWeek: 'dddd, LT', lastDay: '[काल] LT', lastWeek: '[मागील] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%sमध्ये', past: '%sपूर्वी', s: relativeTimeMr, ss: relativeTimeMr, m: relativeTimeMr, mm: relativeTimeMr, h: relativeTimeMr, hh: relativeTimeMr, d: relativeTimeMr, dd: relativeTimeMr, M: relativeTimeMr, MM: relativeTimeMr, y: relativeTimeMr, yy: relativeTimeMr }, preparse: function preparse(string) { return string.replace(/[१२३४५६७८९०]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { return hour; } else if (meridiem === 'दुपारी' || meridiem === 'सायंकाळी' || meridiem === 'रात्री') { return hour >= 12 ? hour : hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour >= 0 && hour < 6) { return 'पहाटे'; } else if (hour < 12) { return 'सकाळी'; } else if (hour < 17) { return 'दुपारी'; } else if (hour < 20) { return 'सायंकाळी'; } else { return 'रात्री'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return mr; }); /***/ }), /* 262 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ms.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Malay [ms] //! author : Weldan Jamili : https://github.com/weldan ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ms = moment.defineLocale('ms', { months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), longDateFormat: { LT: 'HH.mm', LTS: 'HH.mm.ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY [pukul] HH.mm', LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' }, meridiemParse: /pagi|tengahari|petang|malam/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'pagi') { return hour; } else if (meridiem === 'tengahari') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === 'petang' || meridiem === 'malam') { return hour + 12; } }, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 11) { return 'pagi'; } else if (hours < 15) { return 'tengahari'; } else if (hours < 19) { return 'petang'; } else { return 'malam'; } }, calendar: { sameDay: '[Hari ini pukul] LT', nextDay: '[Esok pukul] LT', nextWeek: 'dddd [pukul] LT', lastDay: '[Kelmarin pukul] LT', lastWeek: 'dddd [lepas pukul] LT', sameElse: 'L' }, relativeTime: { future: 'dalam %s', past: '%s yang lepas', s: 'beberapa saat', ss: '%d saat', m: 'seminit', mm: '%d minit', h: 'sejam', hh: '%d jam', d: 'sehari', dd: '%d hari', M: 'sebulan', MM: '%d bulan', y: 'setahun', yy: '%d tahun' }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return ms; }); /***/ }), /* 263 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ms-my.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Malay [ms-my] //! note : DEPRECATED, the correct one is [ms] //! author : Weldan Jamili : https://github.com/weldan ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var msMy = moment.defineLocale('ms-my', { months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), longDateFormat: { LT: 'HH.mm', LTS: 'HH.mm.ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY [pukul] HH.mm', LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm' }, meridiemParse: /pagi|tengahari|petang|malam/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'pagi') { return hour; } else if (meridiem === 'tengahari') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === 'petang' || meridiem === 'malam') { return hour + 12; } }, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 11) { return 'pagi'; } else if (hours < 15) { return 'tengahari'; } else if (hours < 19) { return 'petang'; } else { return 'malam'; } }, calendar: { sameDay: '[Hari ini pukul] LT', nextDay: '[Esok pukul] LT', nextWeek: 'dddd [pukul] LT', lastDay: '[Kelmarin pukul] LT', lastWeek: 'dddd [lepas pukul] LT', sameElse: 'L' }, relativeTime: { future: 'dalam %s', past: '%s yang lepas', s: 'beberapa saat', ss: '%d saat', m: 'seminit', mm: '%d minit', h: 'sejam', hh: '%d jam', d: 'sehari', dd: '%d hari', M: 'sebulan', MM: '%d bulan', y: 'setahun', yy: '%d tahun' }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return msMy; }); /***/ }), /* 264 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/mt.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Maltese (Malta) [mt] //! author : Alessandro Maruccia : https://github.com/alesma ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var mt = moment.defineLocale('mt', { months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'), monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'), weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Illum fil-]LT', nextDay: '[Għada fil-]LT', nextWeek: 'dddd [fil-]LT', lastDay: '[Il-bieraħ fil-]LT', lastWeek: 'dddd [li għadda] [fil-]LT', sameElse: 'L' }, relativeTime: { future: 'f’ %s', past: '%s ilu', s: 'ftit sekondi', ss: '%d sekondi', m: 'minuta', mm: '%d minuti', h: 'siegħa', hh: '%d siegħat', d: 'ġurnata', dd: '%d ġranet', M: 'xahar', MM: '%d xhur', y: 'sena', yy: '%d sni' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return mt; }); /***/ }), /* 265 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/my.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Burmese [my] //! author : Squar team, mysquar.com //! author : David Rossellat : https://github.com/gholadr //! author : Tin Aung Lin : https://github.com/thanyawzinmin ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '၁', 2: '၂', 3: '၃', 4: '၄', 5: '၅', 6: '၆', 7: '၇', 8: '၈', 9: '၉', 0: '၀' }, numberMap = { '၁': '1', '၂': '2', '၃': '3', '၄': '4', '၅': '5', '၆': '6', '၇': '7', '၈': '8', '၉': '9', '၀': '0' }; var my = moment.defineLocale('my', { months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[ယနေ.] LT [မှာ]', nextDay: '[မနက်ဖြန်] LT [မှာ]', nextWeek: 'dddd LT [မှာ]', lastDay: '[မနေ.က] LT [မှာ]', lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', sameElse: 'L' }, relativeTime: { future: 'လာမည့် %s မှာ', past: 'လွန်ခဲ့သော %s က', s: 'စက္ကန်.အနည်းငယ်', ss: '%d စက္ကန့်', m: 'တစ်မိနစ်', mm: '%d မိနစ်', h: 'တစ်နာရီ', hh: '%d နာရီ', d: 'တစ်ရက်', dd: '%d ရက်', M: 'တစ်လ', MM: '%d လ', y: 'တစ်နှစ်', yy: '%d နှစ်' }, preparse: function preparse(string) { return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return my; }); /***/ }), /* 266 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/nb.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Norwegian Bokmål [nb] //! authors : Espen Hovlandsdal : https://github.com/rexxars //! Sigurd Gartmann : https://github.com/sigurdga //! Stephen Ramthun : https://github.com/stephenramthun ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var nb = moment.defineLocale('nb', { months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), monthsParseExact: true, weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY [kl.] HH:mm', LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm' }, calendar: { sameDay: '[i dag kl.] LT', nextDay: '[i morgen kl.] LT', nextWeek: 'dddd [kl.] LT', lastDay: '[i går kl.] LT', lastWeek: '[forrige] dddd [kl.] LT', sameElse: 'L' }, relativeTime: { future: 'om %s', past: '%s siden', s: 'noen sekunder', ss: '%d sekunder', m: 'ett minutt', mm: '%d minutter', h: 'én time', hh: '%d timer', d: 'én dag', dd: '%d dager', w: 'én uke', ww: '%d uker', M: 'én måned', MM: '%d måneder', y: 'ett år', yy: '%d år' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return nb; }); /***/ }), /* 267 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ne.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Nepalese [ne] //! author : suvash : https://github.com/suvash ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '१', 2: '२', 3: '३', 4: '४', 5: '५', 6: '६', 7: '७', 8: '८', 9: '९', 0: '०' }, numberMap = { '१': '1', '२': '2', '३': '3', '४': '4', '५': '5', '६': '6', '७': '7', '८': '8', '९': '9', '०': '0' }; var ne = moment.defineLocale('ne', { months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), monthsParseExact: true, weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'Aको h:mm बजे', LTS: 'Aको h:mm:ss बजे', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, Aको h:mm बजे', LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे' }, preparse: function preparse(string) { return string.replace(/[१२३४५६७८९०]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, meridiemParse: /राति|बिहान|दिउँसो|साँझ/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'राति') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'बिहान') { return hour; } else if (meridiem === 'दिउँसो') { return hour >= 10 ? hour : hour + 12; } else if (meridiem === 'साँझ') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 3) { return 'राति'; } else if (hour < 12) { return 'बिहान'; } else if (hour < 16) { return 'दिउँसो'; } else if (hour < 20) { return 'साँझ'; } else { return 'राति'; } }, calendar: { sameDay: '[आज] LT', nextDay: '[भोलि] LT', nextWeek: '[आउँदो] dddd[,] LT', lastDay: '[हिजो] LT', lastWeek: '[गएको] dddd[,] LT', sameElse: 'L' }, relativeTime: { future: '%sमा', past: '%s अगाडि', s: 'केही क्षण', ss: '%d सेकेण्ड', m: 'एक मिनेट', mm: '%d मिनेट', h: 'एक घण्टा', hh: '%d घण्टा', d: 'एक दिन', dd: '%d दिन', M: 'एक महिना', MM: '%d महिना', y: 'एक बर्ष', yy: '%d बर्ष' }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return ne; }); /***/ }), /* 268 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/nl.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Dutch [nl] //! author : Joris Röling : https://github.com/jorisroling //! author : Jacob Middag : https://github.com/middagj ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), monthsParse = [/^jan/i, /^feb/i, /^(maart|mrt\.?)$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; var nl = moment.defineLocale('nl', { months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), monthsShort: function monthsShort(m, format) { if (!m) { return monthsShortWithDots; } else if (/-MMM-/.test(format)) { return monthsShortWithoutDots[m.month()]; } else { return monthsShortWithDots[m.month()]; } }, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD-MM-YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[vandaag om] LT', nextDay: '[morgen om] LT', nextWeek: 'dddd [om] LT', lastDay: '[gisteren om] LT', lastWeek: '[afgelopen] dddd [om] LT', sameElse: 'L' }, relativeTime: { future: 'over %s', past: '%s geleden', s: 'een paar seconden', ss: '%d seconden', m: 'één minuut', mm: '%d minuten', h: 'één uur', hh: '%d uur', d: 'één dag', dd: '%d dagen', w: 'één week', ww: '%d weken', M: 'één maand', MM: '%d maanden', y: 'één jaar', yy: '%d jaar' }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function ordinal(number) { return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return nl; }); /***/ }), /* 269 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/nl-be.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Dutch (Belgium) [nl-be] //! author : Joris Röling : https://github.com/jorisroling //! author : Jacob Middag : https://github.com/middagj ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), monthsParse = [/^jan/i, /^feb/i, /^(maart|mrt\.?)$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; var nlBe = moment.defineLocale('nl-be', { months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), monthsShort: function monthsShort(m, format) { if (!m) { return monthsShortWithDots; } else if (/-MMM-/.test(format)) { return monthsShortWithoutDots[m.month()]; } else { return monthsShortWithDots[m.month()]; } }, monthsRegex: monthsRegex, monthsShortRegex: monthsRegex, monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[vandaag om] LT', nextDay: '[morgen om] LT', nextWeek: 'dddd [om] LT', lastDay: '[gisteren om] LT', lastWeek: '[afgelopen] dddd [om] LT', sameElse: 'L' }, relativeTime: { future: 'over %s', past: '%s geleden', s: 'een paar seconden', ss: '%d seconden', m: 'één minuut', mm: '%d minuten', h: 'één uur', hh: '%d uur', d: 'één dag', dd: '%d dagen', M: 'één maand', MM: '%d maanden', y: 'één jaar', yy: '%d jaar' }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function ordinal(number) { return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return nlBe; }); /***/ }), /* 270 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/nn.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Nynorsk [nn] //! authors : https://github.com/mechuwind //! Stephen Ramthun : https://github.com/stephenramthun ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var nn = moment.defineLocale('nn', { months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), monthsParseExact: true, weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY [kl.] H:mm', LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm' }, calendar: { sameDay: '[I dag klokka] LT', nextDay: '[I morgon klokka] LT', nextWeek: 'dddd [klokka] LT', lastDay: '[I går klokka] LT', lastWeek: '[Føregåande] dddd [klokka] LT', sameElse: 'L' }, relativeTime: { future: 'om %s', past: '%s sidan', s: 'nokre sekund', ss: '%d sekund', m: 'eit minutt', mm: '%d minutt', h: 'ein time', hh: '%d timar', d: 'ein dag', dd: '%d dagar', w: 'ei veke', ww: '%d veker', M: 'ein månad', MM: '%d månader', y: 'eit år', yy: '%d år' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return nn; }); /***/ }), /* 271 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/oc-lnc.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Occitan, lengadocian dialecte [oc-lnc] //! author : Quentin PAGÈS : https://github.com/Quenty31 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ocLnc = moment.defineLocale('oc-lnc', { months: { standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'), format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split('_'), isFormat: /D[oD]?(\s)+MMMM/ }, monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'), weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM [de] YYYY', ll: 'D MMM YYYY', LLL: 'D MMMM [de] YYYY [a] H:mm', lll: 'D MMM YYYY, H:mm', LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', llll: 'ddd D MMM YYYY, H:mm' }, calendar: { sameDay: '[uèi a] LT', nextDay: '[deman a] LT', nextWeek: 'dddd [a] LT', lastDay: '[ièr a] LT', lastWeek: 'dddd [passat a] LT', sameElse: 'L' }, relativeTime: { future: "d'aquí %s", past: 'fa %s', s: 'unas segondas', ss: '%d segondas', m: 'una minuta', mm: '%d minutas', h: 'una ora', hh: '%d oras', d: 'un jorn', dd: '%d jorns', M: 'un mes', MM: '%d meses', y: 'un an', yy: '%d ans' }, dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, ordinal: function ordinal(number, period) { var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è'; if (period === 'w' || period === 'W') { output = 'a'; } return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 } }); return ocLnc; }); /***/ }), /* 272 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/pa-in.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Punjabi (India) [pa-in] //! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '੧', 2: '੨', 3: '੩', 4: '੪', 5: '੫', 6: '੬', 7: '੭', 8: '੮', 9: '੯', 0: '੦' }, numberMap = { '੧': '1', '੨': '2', '੩': '3', '੪': '4', '੫': '5', '੬': '6', '੭': '7', '੮': '8', '੯': '9', '੦': '0' }; var paIn = moment.defineLocale('pa-in', { // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'), weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), longDateFormat: { LT: 'A h:mm ਵਜੇ', LTS: 'A h:mm:ss ਵਜੇ', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ' }, calendar: { sameDay: '[ਅਜ] LT', nextDay: '[ਕਲ] LT', nextWeek: '[ਅਗਲਾ] dddd, LT', lastDay: '[ਕਲ] LT', lastWeek: '[ਪਿਛਲੇ] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s ਵਿੱਚ', past: '%s ਪਿਛਲੇ', s: 'ਕੁਝ ਸਕਿੰਟ', ss: '%d ਸਕਿੰਟ', m: 'ਇਕ ਮਿੰਟ', mm: '%d ਮਿੰਟ', h: 'ਇੱਕ ਘੰਟਾ', hh: '%d ਘੰਟੇ', d: 'ਇੱਕ ਦਿਨ', dd: '%d ਦਿਨ', M: 'ਇੱਕ ਮਹੀਨਾ', MM: '%d ਮਹੀਨੇ', y: 'ਇੱਕ ਸਾਲ', yy: '%d ਸਾਲ' }, preparse: function preparse(string) { return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, // Punjabi notation for meridiems are quite fuzzy in practice. While there exists // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'ਰਾਤ') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'ਸਵੇਰ') { return hour; } else if (meridiem === 'ਦੁਪਹਿਰ') { return hour >= 10 ? hour : hour + 12; } else if (meridiem === 'ਸ਼ਾਮ') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'ਰਾਤ'; } else if (hour < 10) { return 'ਸਵੇਰ'; } else if (hour < 17) { return 'ਦੁਪਹਿਰ'; } else if (hour < 20) { return 'ਸ਼ਾਮ'; } else { return 'ਰਾਤ'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return paIn; }); /***/ }), /* 273 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/pl.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Polish [pl] //! author : Rafal Hirsz : https://github.com/evoL ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'), monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'), monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i]; function plural(n) { return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; } function translate(number, withoutSuffix, key) { var result = number + ' '; switch (key) { case 'ss': return result + (plural(number) ? 'sekundy' : 'sekund'); case 'm': return withoutSuffix ? 'minuta' : 'minutę'; case 'mm': return result + (plural(number) ? 'minuty' : 'minut'); case 'h': return withoutSuffix ? 'godzina' : 'godzinę'; case 'hh': return result + (plural(number) ? 'godziny' : 'godzin'); case 'ww': return result + (plural(number) ? 'tygodnie' : 'tygodni'); case 'MM': return result + (plural(number) ? 'miesiące' : 'miesięcy'); case 'yy': return result + (plural(number) ? 'lata' : 'lat'); } } var pl = moment.defineLocale('pl', { months: function months(momentToFormat, format) { if (!momentToFormat) { return monthsNominative; } else if (/D MMMM/.test(format)) { return monthsSubjective[momentToFormat.month()]; } else { return monthsNominative[momentToFormat.month()]; } }, monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Dziś o] LT', nextDay: '[Jutro o] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[W niedzielę o] LT'; case 2: return '[We wtorek o] LT'; case 3: return '[W środę o] LT'; case 6: return '[W sobotę o] LT'; default: return '[W] dddd [o] LT'; } }, lastDay: '[Wczoraj o] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: return '[W zeszłą niedzielę o] LT'; case 3: return '[W zeszłą środę o] LT'; case 6: return '[W zeszłą sobotę o] LT'; default: return '[W zeszły] dddd [o] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'za %s', past: '%s temu', s: 'kilka sekund', ss: translate, m: translate, mm: translate, h: translate, hh: translate, d: '1 dzień', dd: '%d dni', w: 'tydzień', ww: translate, M: 'miesiąc', MM: translate, y: 'rok', yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return pl; }); /***/ }), /* 274 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/pt.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Portuguese [pt] //! author : Jefferson : https://github.com/jalex79 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var pt = moment.defineLocale('pt', { months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'), monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'), weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D [de] MMMM [de] YYYY', LLL: 'D [de] MMMM [de] YYYY HH:mm', LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm' }, calendar: { sameDay: '[Hoje às] LT', nextDay: '[Amanhã às] LT', nextWeek: 'dddd [às] LT', lastDay: '[Ontem às] LT', lastWeek: function lastWeek() { return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday : '[Última] dddd [às] LT'; // Monday - Friday }, sameElse: 'L' }, relativeTime: { future: 'em %s', past: 'há %s', s: 'segundos', ss: '%d segundos', m: 'um minuto', mm: '%d minutos', h: 'uma hora', hh: '%d horas', d: 'um dia', dd: '%d dias', w: 'uma semana', ww: '%d semanas', M: 'um mês', MM: '%d meses', y: 'um ano', yy: '%d anos' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return pt; }); /***/ }), /* 275 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/pt-br.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Portuguese (Brazil) [pt-br] //! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ptBr = moment.defineLocale('pt-br', { months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'), monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'), weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D [de] MMMM [de] YYYY', LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' }, calendar: { sameDay: '[Hoje às] LT', nextDay: '[Amanhã às] LT', nextWeek: 'dddd [às] LT', lastDay: '[Ontem às] LT', lastWeek: function lastWeek() { return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday : '[Última] dddd [às] LT'; // Monday - Friday }, sameElse: 'L' }, relativeTime: { future: 'em %s', past: 'há %s', s: 'poucos segundos', ss: '%d segundos', m: 'um minuto', mm: '%d minutos', h: 'uma hora', hh: '%d horas', d: 'um dia', dd: '%d dias', M: 'um mês', MM: '%d meses', y: 'um ano', yy: '%d anos' }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: '%dº', invalidDate: 'Data inválida' }); return ptBr; }); /***/ }), /* 276 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ro.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Romanian [ro] //! author : Vlad Gurdiga : https://github.com/gurdiga //! author : Valentin Agachi : https://github.com/avaly //! author : Emanuel Cepoi : https://github.com/cepem ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function relativeTimeWithPlural(number, withoutSuffix, key) { var format = { ss: 'secunde', mm: 'minute', hh: 'ore', dd: 'zile', ww: 'săptămâni', MM: 'luni', yy: 'ani' }, separator = ' '; if (number % 100 >= 20 || number >= 100 && number % 100 === 0) { separator = ' de '; } return number + separator + format[key]; } var ro = moment.defineLocale('ro', { months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY H:mm', LLLL: 'dddd, D MMMM YYYY H:mm' }, calendar: { sameDay: '[azi la] LT', nextDay: '[mâine la] LT', nextWeek: 'dddd [la] LT', lastDay: '[ieri la] LT', lastWeek: '[fosta] dddd [la] LT', sameElse: 'L' }, relativeTime: { future: 'peste %s', past: '%s în urmă', s: 'câteva secunde', ss: relativeTimeWithPlural, m: 'un minut', mm: relativeTimeWithPlural, h: 'o oră', hh: relativeTimeWithPlural, d: 'o zi', dd: relativeTimeWithPlural, w: 'o săptămână', ww: relativeTimeWithPlural, M: 'o lună', MM: relativeTimeWithPlural, y: 'un an', yy: relativeTimeWithPlural }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return ro; }); /***/ }), /* 277 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ru.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Russian [ru] //! author : Viktorminator : https://github.com/Viktorminator //! author : Menelion Elensúle : https://github.com/Oire //! author : Коренберг Марк : https://github.com/socketpair ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function plural(word, num) { var forms = word.split('_'); return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; } function relativeTimeWithPlural(number, withoutSuffix, key) { var format = { ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', hh: 'час_часа_часов', dd: 'день_дня_дней', ww: 'неделя_недели_недель', MM: 'месяц_месяца_месяцев', yy: 'год_года_лет' }; if (key === 'm') { return withoutSuffix ? 'минута' : 'минуту'; } else { return number + ' ' + plural(format[key], +number); } } var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; // http://new.gramota.ru/spravka/rules/139-prop : § 103 // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 var ru = moment.defineLocale('ru', { months: { format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'), standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_') }, monthsShort: { // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'), standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_') }, weekdays: { standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'), isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/ }, weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), monthsParse: monthsParse, longMonthsParse: monthsParse, shortMonthsParse: monthsParse, // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, // копия предыдущего monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, // полные названия с падежами monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, // Выражение, которое соответствует только сокращённым формам monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY г.', LLL: 'D MMMM YYYY г., H:mm', LLLL: 'dddd, D MMMM YYYY г., H:mm' }, calendar: { sameDay: '[Сегодня, в] LT', nextDay: '[Завтра, в] LT', lastDay: '[Вчера, в] LT', nextWeek: function nextWeek(now) { if (now.week() !== this.week()) { switch (this.day()) { case 0: return '[В следующее] dddd, [в] LT'; case 1: case 2: case 4: return '[В следующий] dddd, [в] LT'; case 3: case 5: case 6: return '[В следующую] dddd, [в] LT'; } } else { if (this.day() === 2) { return '[Во] dddd, [в] LT'; } else { return '[В] dddd, [в] LT'; } } }, lastWeek: function lastWeek(now) { if (now.week() !== this.week()) { switch (this.day()) { case 0: return '[В прошлое] dddd, [в] LT'; case 1: case 2: case 4: return '[В прошлый] dddd, [в] LT'; case 3: case 5: case 6: return '[В прошлую] dddd, [в] LT'; } } else { if (this.day() === 2) { return '[Во] dddd, [в] LT'; } else { return '[В] dddd, [в] LT'; } } }, sameElse: 'L' }, relativeTime: { future: 'через %s', past: '%s назад', s: 'несколько секунд', ss: relativeTimeWithPlural, m: relativeTimeWithPlural, mm: relativeTimeWithPlural, h: 'час', hh: relativeTimeWithPlural, d: 'день', dd: relativeTimeWithPlural, w: 'неделя', ww: relativeTimeWithPlural, M: 'месяц', MM: relativeTimeWithPlural, y: 'год', yy: relativeTimeWithPlural }, meridiemParse: /ночи|утра|дня|вечера/i, isPM: function isPM(input) { return /^(дня|вечера)$/.test(input); }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'ночи'; } else if (hour < 12) { return 'утра'; } else if (hour < 17) { return 'дня'; } else { return 'вечера'; } }, dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, ordinal: function ordinal(number, period) { switch (period) { case 'M': case 'd': case 'DDD': return number + '-й'; case 'D': return number + '-го'; case 'w': case 'W': return number + '-я'; default: return number; } }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return ru; }); /***/ }), /* 278 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sd.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Sindhi [sd] //! author : Narain Sagar : https://github.com/narainsagar ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var months = ['جنوري', 'فيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'], days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; var sd = moment.defineLocale('sd', { months: months, monthsShort: months, weekdays: days, weekdaysShort: days, weekdaysMin: days, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd، D MMMM YYYY HH:mm' }, meridiemParse: /صبح|شام/, isPM: function isPM(input) { return 'شام' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'صبح'; } return 'شام'; }, calendar: { sameDay: '[اڄ] LT', nextDay: '[سڀاڻي] LT', nextWeek: 'dddd [اڳين هفتي تي] LT', lastDay: '[ڪالهه] LT', lastWeek: '[گزريل هفتي] dddd [تي] LT', sameElse: 'L' }, relativeTime: { future: '%s پوء', past: '%s اڳ', s: 'چند سيڪنڊ', ss: '%d سيڪنڊ', m: 'هڪ منٽ', mm: '%d منٽ', h: 'هڪ ڪلاڪ', hh: '%d ڪلاڪ', d: 'هڪ ڏينهن', dd: '%d ڏينهن', M: 'هڪ مهينو', MM: '%d مهينا', y: 'هڪ سال', yy: '%d سال' }, preparse: function preparse(string) { return string.replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/,/g, '،'); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return sd; }); /***/ }), /* 279 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/se.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Northern Sami [se] //! authors : Bård Rolstad Henriksen : https://github.com/karamell ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var se = moment.defineLocale('se', { months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), weekdaysMin: 's_v_m_g_d_b_L'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'MMMM D. [b.] YYYY', LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' }, calendar: { sameDay: '[otne ti] LT', nextDay: '[ihttin ti] LT', nextWeek: 'dddd [ti] LT', lastDay: '[ikte ti] LT', lastWeek: '[ovddit] dddd [ti] LT', sameElse: 'L' }, relativeTime: { future: '%s geažes', past: 'maŋit %s', s: 'moadde sekunddat', ss: '%d sekunddat', m: 'okta minuhta', mm: '%d minuhtat', h: 'okta diimmu', hh: '%d diimmut', d: 'okta beaivi', dd: '%d beaivvit', M: 'okta mánnu', MM: '%d mánut', y: 'okta jahki', yy: '%d jagit' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return se; }); /***/ }), /* 280 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/si.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Sinhalese [si] //! author : Sampath Sitinamaluwa : https://github.com/sampathsris ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration /*jshint -W100*/ var si = moment.defineLocale('si', { months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'), monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'), weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'a h:mm', LTS: 'a h:mm:ss', L: 'YYYY/MM/DD', LL: 'YYYY MMMM D', LLL: 'YYYY MMMM D, a h:mm', LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' }, calendar: { sameDay: '[අද] LT[ට]', nextDay: '[හෙට] LT[ට]', nextWeek: 'dddd LT[ට]', lastDay: '[ඊයේ] LT[ට]', lastWeek: '[පසුගිය] dddd LT[ට]', sameElse: 'L' }, relativeTime: { future: '%sකින්', past: '%sකට පෙර', s: 'තත්පර කිහිපය', ss: 'තත්පර %d', m: 'මිනිත්තුව', mm: 'මිනිත්තු %d', h: 'පැය', hh: 'පැය %d', d: 'දිනය', dd: 'දින %d', M: 'මාසය', MM: 'මාස %d', y: 'වසර', yy: 'වසර %d' }, dayOfMonthOrdinalParse: /\d{1,2} වැනි/, ordinal: function ordinal(number) { return number + ' වැනි'; }, meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, isPM: function isPM(input) { return input === 'ප.ව.' || input === 'පස් වරු'; }, meridiem: function meridiem(hours, minutes, isLower) { if (hours > 11) { return isLower ? 'ප.ව.' : 'පස් වරු'; } else { return isLower ? 'පෙ.ව.' : 'පෙර වරු'; } } }); return si; }); /***/ }), /* 281 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sk.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Slovak [sk] //! author : Martin Minka : https://github.com/k2s //! based on work of petrbela : https://github.com/petrbela ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'), monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); function plural(n) { return n > 1 && n < 5; } function translate(number, withoutSuffix, key, isFuture) { var result = number + ' '; switch (key) { case 's': // a few seconds / in a few seconds / a few seconds ago return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'sekundy' : 'sekúnd'); } else { return result + 'sekundami'; } case 'm': // a minute / in a minute / a minute ago return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'minúty' : 'minút'); } else { return result + 'minútami'; } case 'h': // an hour / in an hour / an hour ago return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; case 'hh': // 9 hours / in 9 hours / 9 hours ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'hodiny' : 'hodín'); } else { return result + 'hodinami'; } case 'd': // a day / in a day / a day ago return withoutSuffix || isFuture ? 'deň' : 'dňom'; case 'dd': // 9 days / in 9 days / 9 days ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'dni' : 'dní'); } else { return result + 'dňami'; } case 'M': // a month / in a month / a month ago return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; case 'MM': // 9 months / in 9 months / 9 months ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'mesiace' : 'mesiacov'); } else { return result + 'mesiacmi'; } case 'y': // a year / in a year / a year ago return withoutSuffix || isFuture ? 'rok' : 'rokom'; case 'yy': // 9 years / in 9 years / 9 years ago if (withoutSuffix || isFuture) { return result + (plural(number) ? 'roky' : 'rokov'); } else { return result + 'rokmi'; } } } var sk = moment.defineLocale('sk', { months: months, monthsShort: monthsShort, weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD.MM.YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY H:mm', LLLL: 'dddd D. MMMM YYYY H:mm' }, calendar: { sameDay: '[dnes o] LT', nextDay: '[zajtra o] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[v nedeľu o] LT'; case 1: case 2: return '[v] dddd [o] LT'; case 3: return '[v stredu o] LT'; case 4: return '[vo štvrtok o] LT'; case 5: return '[v piatok o] LT'; case 6: return '[v sobotu o] LT'; } }, lastDay: '[včera o] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: return '[minulú nedeľu o] LT'; case 1: case 2: return '[minulý] dddd [o] LT'; case 3: return '[minulú stredu o] LT'; case 4: case 5: return '[minulý] dddd [o] LT'; case 6: return '[minulú sobotu o] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'za %s', past: 'pred %s', s: translate, ss: translate, m: translate, mm: translate, h: translate, hh: translate, d: translate, dd: translate, M: translate, MM: translate, y: translate, yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return sk; }); /***/ }), /* 282 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sl.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Slovenian [sl] //! author : Robert Sedovšek : https://github.com/sedovsek ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function processRelativeTime(number, withoutSuffix, key, isFuture) { var result = number + ' '; switch (key) { case 's': return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; case 'ss': if (number === 1) { result += withoutSuffix ? 'sekundo' : 'sekundi'; } else if (number === 2) { result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; } else if (number < 5) { result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; } else { result += 'sekund'; } return result; case 'm': return withoutSuffix ? 'ena minuta' : 'eno minuto'; case 'mm': if (number === 1) { result += withoutSuffix ? 'minuta' : 'minuto'; } else if (number === 2) { result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; } else if (number < 5) { result += withoutSuffix || isFuture ? 'minute' : 'minutami'; } else { result += withoutSuffix || isFuture ? 'minut' : 'minutami'; } return result; case 'h': return withoutSuffix ? 'ena ura' : 'eno uro'; case 'hh': if (number === 1) { result += withoutSuffix ? 'ura' : 'uro'; } else if (number === 2) { result += withoutSuffix || isFuture ? 'uri' : 'urama'; } else if (number < 5) { result += withoutSuffix || isFuture ? 'ure' : 'urami'; } else { result += withoutSuffix || isFuture ? 'ur' : 'urami'; } return result; case 'd': return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; case 'dd': if (number === 1) { result += withoutSuffix || isFuture ? 'dan' : 'dnem'; } else if (number === 2) { result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; } else { result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; } return result; case 'M': return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; case 'MM': if (number === 1) { result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; } else if (number === 2) { result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; } else if (number < 5) { result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; } else { result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; } return result; case 'y': return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; case 'yy': if (number === 1) { result += withoutSuffix || isFuture ? 'leto' : 'letom'; } else if (number === 2) { result += withoutSuffix || isFuture ? 'leti' : 'letoma'; } else if (number < 5) { result += withoutSuffix || isFuture ? 'leta' : 'leti'; } else { result += withoutSuffix || isFuture ? 'let' : 'leti'; } return result; } } var sl = moment.defineLocale('sl', { months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'), monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD. MM. YYYY', LL: 'D. MMMM YYYY', LLL: 'D. MMMM YYYY H:mm', LLLL: 'dddd, D. MMMM YYYY H:mm' }, calendar: { sameDay: '[danes ob] LT', nextDay: '[jutri ob] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[v] [nedeljo] [ob] LT'; case 3: return '[v] [sredo] [ob] LT'; case 6: return '[v] [soboto] [ob] LT'; case 1: case 2: case 4: case 5: return '[v] dddd [ob] LT'; } }, lastDay: '[včeraj ob] LT', lastWeek: function lastWeek() { switch (this.day()) { case 0: return '[prejšnjo] [nedeljo] [ob] LT'; case 3: return '[prejšnjo] [sredo] [ob] LT'; case 6: return '[prejšnjo] [soboto] [ob] LT'; case 1: case 2: case 4: case 5: return '[prejšnji] dddd [ob] LT'; } }, sameElse: 'L' }, relativeTime: { future: 'čez %s', past: 'pred %s', s: processRelativeTime, ss: processRelativeTime, m: processRelativeTime, mm: processRelativeTime, h: processRelativeTime, hh: processRelativeTime, d: processRelativeTime, dd: processRelativeTime, M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return sl; }); /***/ }), /* 283 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sq.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Albanian [sq] //! author : Flakërim Ismani : https://github.com/flakerimi //! author : Menelion Elensúle : https://github.com/Oire //! author : Oerd Cukalla : https://github.com/oerd ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var sq = moment.defineLocale('sq', { months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'), monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'), weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), weekdaysParseExact: true, meridiemParse: /PD|MD/, isPM: function isPM(input) { return input.charAt(0) === 'M'; }, meridiem: function meridiem(hours, minutes, isLower) { return hours < 12 ? 'PD' : 'MD'; }, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Sot në] LT', nextDay: '[Nesër në] LT', nextWeek: 'dddd [në] LT', lastDay: '[Dje në] LT', lastWeek: 'dddd [e kaluar në] LT', sameElse: 'L' }, relativeTime: { future: 'në %s', past: '%s më parë', s: 'disa sekonda', ss: '%d sekonda', m: 'një minutë', mm: '%d minuta', h: 'një orë', hh: '%d orë', d: 'një ditë', dd: '%d ditë', M: 'një muaj', MM: '%d muaj', y: 'një vit', yy: '%d vite' }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return sq; }); /***/ }), /* 284 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sr.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Serbian [sr] //! author : Milan Janačković : https://github.com/milan-j //! author : Stefan Crnjaković : https://github.com/crnjakovic ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var translator = { words: { //Different grammatical cases ss: ['sekunda', 'sekunde', 'sekundi'], m: ['jedan minut', 'jednog minuta'], mm: ['minut', 'minuta', 'minuta'], h: ['jedan sat', 'jednog sata'], hh: ['sat', 'sata', 'sati'], d: ['jedan dan', 'jednog dana'], dd: ['dan', 'dana', 'dana'], M: ['jedan mesec', 'jednog meseca'], MM: ['mesec', 'meseca', 'meseci'], y: ['jednu godinu', 'jedne godine'], yy: ['godinu', 'godine', 'godina'] }, correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) { if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) { return number % 10 === 1 ? wordKey[0] : wordKey[1]; } return wordKey[2]; }, translate: function translate(number, withoutSuffix, key, isFuture) { var wordKey = translator.words[key], word; if (key.length === 1) { // Nominativ if (key === 'y' && withoutSuffix) return 'jedna godina'; return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; } word = translator.correctGrammaticalCase(number, wordKey); // Nominativ if (key === 'yy' && withoutSuffix && word === 'godinu') { return number + ' godina'; } return number + ' ' + word; } }; var sr = moment.defineLocale('sr', { months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'), monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), monthsParseExact: true, weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'), weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'D. M. YYYY.', LL: 'D. MMMM YYYY.', LLL: 'D. MMMM YYYY. H:mm', LLLL: 'dddd, D. MMMM YYYY. H:mm' }, calendar: { sameDay: '[danas u] LT', nextDay: '[sutra u] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[u] [nedelju] [u] LT'; case 3: return '[u] [sredu] [u] LT'; case 6: return '[u] [subotu] [u] LT'; case 1: case 2: case 4: case 5: return '[u] dddd [u] LT'; } }, lastDay: '[juče u] LT', lastWeek: function lastWeek() { var lastWeekDays = ['[prošle] [nedelje] [u] LT', '[prošlog] [ponedeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT']; return lastWeekDays[this.day()]; }, sameElse: 'L' }, relativeTime: { future: 'za %s', past: 'pre %s', s: 'nekoliko sekundi', ss: translator.translate, m: translator.translate, mm: translator.translate, h: translator.translate, hh: translator.translate, d: translator.translate, dd: translator.translate, M: translator.translate, MM: translator.translate, y: translator.translate, yy: translator.translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return sr; }); /***/ }), /* 285 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sr-cyrl.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Serbian Cyrillic [sr-cyrl] //! author : Milan Janačković : https://github.com/milan-j //! author : Stefan Crnjaković : https://github.com/crnjakovic ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var translator = { words: { //Different grammatical cases ss: ['секунда', 'секунде', 'секунди'], m: ['један минут', 'једног минута'], mm: ['минут', 'минута', 'минута'], h: ['један сат', 'једног сата'], hh: ['сат', 'сата', 'сати'], d: ['један дан', 'једног дана'], dd: ['дан', 'дана', 'дана'], M: ['један месец', 'једног месеца'], MM: ['месец', 'месеца', 'месеци'], y: ['једну годину', 'једне године'], yy: ['годину', 'године', 'година'] }, correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) { if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) { return number % 10 === 1 ? wordKey[0] : wordKey[1]; } return wordKey[2]; }, translate: function translate(number, withoutSuffix, key, isFuture) { var wordKey = translator.words[key], word; if (key.length === 1) { // Nominativ if (key === 'y' && withoutSuffix) return 'једна година'; return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; } word = translator.correctGrammaticalCase(number, wordKey); // Nominativ if (key === 'yy' && withoutSuffix && word === 'годину') { return number + ' година'; } return number + ' ' + word; } }; var srCyrl = moment.defineLocale('sr-cyrl', { months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'), monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), monthsParseExact: true, weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'D. M. YYYY.', LL: 'D. MMMM YYYY.', LLL: 'D. MMMM YYYY. H:mm', LLLL: 'dddd, D. MMMM YYYY. H:mm' }, calendar: { sameDay: '[данас у] LT', nextDay: '[сутра у] LT', nextWeek: function nextWeek() { switch (this.day()) { case 0: return '[у] [недељу] [у] LT'; case 3: return '[у] [среду] [у] LT'; case 6: return '[у] [суботу] [у] LT'; case 1: case 2: case 4: case 5: return '[у] dddd [у] LT'; } }, lastDay: '[јуче у] LT', lastWeek: function lastWeek() { var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [среде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [суботе] [у] LT']; return lastWeekDays[this.day()]; }, sameElse: 'L' }, relativeTime: { future: 'за %s', past: 'пре %s', s: 'неколико секунди', ss: translator.translate, m: translator.translate, mm: translator.translate, h: translator.translate, hh: translator.translate, d: translator.translate, dd: translator.translate, M: translator.translate, MM: translator.translate, y: translator.translate, yy: translator.translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 1st is the first week of the year. } }); return srCyrl; }); /***/ }), /* 286 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ss.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : siSwati [ss] //! author : Nicolai Davies : https://github.com/nicolaidavies ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ss = moment.defineLocale('ss', { months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY h:mm A', LLLL: 'dddd, D MMMM YYYY h:mm A' }, calendar: { sameDay: '[Namuhla nga] LT', nextDay: '[Kusasa nga] LT', nextWeek: 'dddd [nga] LT', lastDay: '[Itolo nga] LT', lastWeek: 'dddd [leliphelile] [nga] LT', sameElse: 'L' }, relativeTime: { future: 'nga %s', past: 'wenteka nga %s', s: 'emizuzwana lomcane', ss: '%d mzuzwana', m: 'umzuzu', mm: '%d emizuzu', h: 'lihora', hh: '%d emahora', d: 'lilanga', dd: '%d emalanga', M: 'inyanga', MM: '%d tinyanga', y: 'umnyaka', yy: '%d iminyaka' }, meridiemParse: /ekuseni|emini|entsambama|ebusuku/, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 11) { return 'ekuseni'; } else if (hours < 15) { return 'emini'; } else if (hours < 19) { return 'entsambama'; } else { return 'ebusuku'; } }, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'ekuseni') { return hour; } else if (meridiem === 'emini') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { if (hour === 0) { return 0; } return hour + 12; } }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: '%d', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return ss; }); /***/ }), /* 287 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sv.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Swedish [sv] //! author : Jens Alm : https://github.com/ulmus ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var sv = moment.defineLocale('sv', { months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'), monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY [kl.] HH:mm', LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', lll: 'D MMM YYYY HH:mm', llll: 'ddd D MMM YYYY HH:mm' }, calendar: { sameDay: '[Idag] LT', nextDay: '[Imorgon] LT', lastDay: '[Igår] LT', nextWeek: '[På] dddd LT', lastWeek: '[I] dddd[s] LT', sameElse: 'L' }, relativeTime: { future: 'om %s', past: 'för %s sedan', s: 'några sekunder', ss: '%d sekunder', m: 'en minut', mm: '%d minuter', h: 'en timme', hh: '%d timmar', d: 'en dag', dd: '%d dagar', M: 'en månad', MM: '%d månader', y: 'ett år', yy: '%d år' }, dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? ':e' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return sv; }); /***/ }), /* 288 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/sw.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Swahili [sw] //! author : Fahad Kassim : https://github.com/fadsel ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var sw = moment.defineLocale('sw', { months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'hh:mm A', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[leo saa] LT', nextDay: '[kesho saa] LT', nextWeek: '[wiki ijayo] dddd [saat] LT', lastDay: '[jana] LT', lastWeek: '[wiki iliyopita] dddd [saat] LT', sameElse: 'L' }, relativeTime: { future: '%s baadaye', past: 'tokea %s', s: 'hivi punde', ss: 'sekunde %d', m: 'dakika moja', mm: 'dakika %d', h: 'saa limoja', hh: 'masaa %d', d: 'siku moja', dd: 'siku %d', M: 'mwezi mmoja', MM: 'miezi %d', y: 'mwaka mmoja', yy: 'miaka %d' }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return sw; }); /***/ }), /* 289 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ta.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Tamil [ta] //! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var symbolMap = { 1: '௧', 2: '௨', 3: '௩', 4: '௪', 5: '௫', 6: '௬', 7: '௭', 8: '௮', 9: '௯', 0: '௦' }, numberMap = { '௧': '1', '௨': '2', '௩': '3', '௪': '4', '௫': '5', '௬': '6', '௭': '7', '௮': '8', '௯': '9', '௦': '0' }; var ta = moment.defineLocale('ta', { months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, HH:mm', LLLL: 'dddd, D MMMM YYYY, HH:mm' }, calendar: { sameDay: '[இன்று] LT', nextDay: '[நாளை] LT', nextWeek: 'dddd, LT', lastDay: '[நேற்று] LT', lastWeek: '[கடந்த வாரம்] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s இல்', past: '%s முன்', s: 'ஒரு சில விநாடிகள்', ss: '%d விநாடிகள்', m: 'ஒரு நிமிடம்', mm: '%d நிமிடங்கள்', h: 'ஒரு மணி நேரம்', hh: '%d மணி நேரம்', d: 'ஒரு நாள்', dd: '%d நாட்கள்', M: 'ஒரு மாதம்', MM: '%d மாதங்கள்', y: 'ஒரு வருடம்', yy: '%d ஆண்டுகள்' }, dayOfMonthOrdinalParse: /\d{1,2}வது/, ordinal: function ordinal(number) { return number + 'வது'; }, preparse: function preparse(string) { return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { return numberMap[match]; }); }, postformat: function postformat(string) { return string.replace(/\d/g, function (match) { return symbolMap[match]; }); }, // refer http://ta.wikipedia.org/s/1er1 meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, meridiem: function meridiem(hour, minute, isLower) { if (hour < 2) { return ' யாமம்'; } else if (hour < 6) { return ' வைகறை'; // வைகறை } else if (hour < 10) { return ' காலை'; // காலை } else if (hour < 14) { return ' நண்பகல்'; // நண்பகல் } else if (hour < 18) { return ' எற்பாடு'; // எற்பாடு } else if (hour < 22) { return ' மாலை'; // மாலை } else { return ' யாமம்'; } }, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'யாமம்') { return hour < 2 ? hour : hour + 12; } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { return hour; } else if (meridiem === 'நண்பகல்') { return hour >= 10 ? hour : hour + 12; } else { return hour + 12; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return ta; }); /***/ }), /* 290 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/te.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Telugu [te] //! author : Krishna Chaitanya Thota : https://github.com/kcthota ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var te = moment.defineLocale('te', { months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), monthsParseExact: true, weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), longDateFormat: { LT: 'A h:mm', LTS: 'A h:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY, A h:mm', LLLL: 'dddd, D MMMM YYYY, A h:mm' }, calendar: { sameDay: '[నేడు] LT', nextDay: '[రేపు] LT', nextWeek: 'dddd, LT', lastDay: '[నిన్న] LT', lastWeek: '[గత] dddd, LT', sameElse: 'L' }, relativeTime: { future: '%s లో', past: '%s క్రితం', s: 'కొన్ని క్షణాలు', ss: '%d సెకన్లు', m: 'ఒక నిమిషం', mm: '%d నిమిషాలు', h: 'ఒక గంట', hh: '%d గంటలు', d: 'ఒక రోజు', dd: '%d రోజులు', M: 'ఒక నెల', MM: '%d నెలలు', y: 'ఒక సంవత్సరం', yy: '%d సంవత్సరాలు' }, dayOfMonthOrdinalParse: /\d{1,2}వ/, ordinal: '%dవ', meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'రాత్రి') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'ఉదయం') { return hour; } else if (meridiem === 'మధ్యాహ్నం') { return hour >= 10 ? hour : hour + 12; } else if (meridiem === 'సాయంత్రం') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'రాత్రి'; } else if (hour < 10) { return 'ఉదయం'; } else if (hour < 17) { return 'మధ్యాహ్నం'; } else if (hour < 20) { return 'సాయంత్రం'; } else { return 'రాత్రి'; } }, week: { dow: 0, // Sunday is the first day of the week. doy: 6 // The week that contains Jan 6th is the first week of the year. } }); return te; }); /***/ }), /* 291 */ /*!******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tet.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Tetun Dili (East Timor) [tet] //! author : Joshua Brooks : https://github.com/joshbrooks //! author : Onorio De J. Afonso : https://github.com/marobo //! author : Sonia Simoes : https://github.com/soniasimoes ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var tet = moment.defineLocale('tet', { months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Ohin iha] LT', nextDay: '[Aban iha] LT', nextWeek: 'dddd [iha] LT', lastDay: '[Horiseik iha] LT', lastWeek: 'dddd [semana kotuk] [iha] LT', sameElse: 'L' }, relativeTime: { future: 'iha %s', past: '%s liuba', s: 'segundu balun', ss: 'segundu %d', m: 'minutu ida', mm: 'minutu %d', h: 'oras ida', hh: 'oras %d', d: 'loron ida', dd: 'loron %d', M: 'fulan ida', MM: 'fulan %d', y: 'tinan ida', yy: 'tinan %d' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return tet; }); /***/ }), /* 292 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tg.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Tajik [tg] //! author : Orif N. Jr. : https://github.com/orif-jr ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var suffixes = { 0: '-ум', 1: '-ум', 2: '-юм', 3: '-юм', 4: '-ум', 5: '-ум', 6: '-ум', 7: '-ум', 8: '-ум', 9: '-ум', 10: '-ум', 12: '-ум', 13: '-ум', 20: '-ум', 30: '-юм', 40: '-ум', 50: '-ум', 60: '-ум', 70: '-ум', 80: '-ум', 90: '-ум', 100: '-ум' }; var tg = moment.defineLocale('tg', { months: { format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split('_'), standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_') }, monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'), weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[Имрӯз соати] LT', nextDay: '[Фардо соати] LT', lastDay: '[Дирӯз соати] LT', nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', sameElse: 'L' }, relativeTime: { future: 'баъди %s', past: '%s пеш', s: 'якчанд сония', m: 'як дақиқа', mm: '%d дақиқа', h: 'як соат', hh: '%d соат', d: 'як рӯз', dd: '%d рӯз', M: 'як моҳ', MM: '%d моҳ', y: 'як сол', yy: '%d сол' }, meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'шаб') { return hour < 4 ? hour : hour + 12; } else if (meridiem === 'субҳ') { return hour; } else if (meridiem === 'рӯз') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === 'бегоҳ') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'шаб'; } else if (hour < 11) { return 'субҳ'; } else if (hour < 16) { return 'рӯз'; } else if (hour < 19) { return 'бегоҳ'; } else { return 'шаб'; } }, dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, ordinal: function ordinal(number) { var a = number % 10, b = number >= 100 ? 100 : null; return number + (suffixes[number] || suffixes[a] || suffixes[b]); }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 1th is the first week of the year. } }); return tg; }); /***/ }), /* 293 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/th.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Thai [th] //! author : Kridsada Thanabulpong : https://github.com/sirn ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var th = moment.defineLocale('th', { months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), monthsParseExact: true, weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'H:mm', LTS: 'H:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY เวลา H:mm', LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm' }, meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, isPM: function isPM(input) { return input === 'หลังเที่ยง'; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'ก่อนเที่ยง'; } else { return 'หลังเที่ยง'; } }, calendar: { sameDay: '[วันนี้ เวลา] LT', nextDay: '[พรุ่งนี้ เวลา] LT', nextWeek: 'dddd[หน้า เวลา] LT', lastDay: '[เมื่อวานนี้ เวลา] LT', lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', sameElse: 'L' }, relativeTime: { future: 'อีก %s', past: '%sที่แล้ว', s: 'ไม่กี่วินาที', ss: '%d วินาที', m: '1 นาที', mm: '%d นาที', h: '1 ชั่วโมง', hh: '%d ชั่วโมง', d: '1 วัน', dd: '%d วัน', w: '1 สัปดาห์', ww: '%d สัปดาห์', M: '1 เดือน', MM: '%d เดือน', y: '1 ปี', yy: '%d ปี' } }); return th; }); /***/ }), /* 294 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tk.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Turkmen [tk] //! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var suffixes = { 1: "'inji", 5: "'inji", 8: "'inji", 70: "'inji", 80: "'inji", 2: "'nji", 7: "'nji", 20: "'nji", 50: "'nji", 3: "'ünji", 4: "'ünji", 100: "'ünji", 6: "'njy", 9: "'unjy", 10: "'unjy", 30: "'unjy", 60: "'ynjy", 90: "'ynjy" }; var tk = moment.defineLocale('tk', { months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'), monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split('_'), weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[bugün sagat] LT', nextDay: '[ertir sagat] LT', nextWeek: '[indiki] dddd [sagat] LT', lastDay: '[düýn] LT', lastWeek: '[geçen] dddd [sagat] LT', sameElse: 'L' }, relativeTime: { future: '%s soň', past: '%s öň', s: 'birnäçe sekunt', m: 'bir minut', mm: '%d minut', h: 'bir sagat', hh: '%d sagat', d: 'bir gün', dd: '%d gün', M: 'bir aý', MM: '%d aý', y: 'bir ýyl', yy: '%d ýyl' }, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'Do': case 'DD': return number; default: if (number === 0) { // special case for zero return number + "'unjy"; } var a = number % 10, b = number % 100 - a, c = number >= 100 ? 100 : null; return number + (suffixes[a] || suffixes[b] || suffixes[c]); } }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return tk; }); /***/ }), /* 295 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tl-ph.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Tagalog (Philippines) [tl-ph] //! author : Dan Hagman : https://github.com/hagmandan ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var tlPh = moment.defineLocale('tl-ph', { months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'MM/D/YYYY', LL: 'MMMM D, YYYY', LLL: 'MMMM D, YYYY HH:mm', LLLL: 'dddd, MMMM DD, YYYY HH:mm' }, calendar: { sameDay: 'LT [ngayong araw]', nextDay: '[Bukas ng] LT', nextWeek: 'LT [sa susunod na] dddd', lastDay: 'LT [kahapon]', lastWeek: 'LT [noong nakaraang] dddd', sameElse: 'L' }, relativeTime: { future: 'sa loob ng %s', past: '%s ang nakalipas', s: 'ilang segundo', ss: '%d segundo', m: 'isang minuto', mm: '%d minuto', h: 'isang oras', hh: '%d oras', d: 'isang araw', dd: '%d araw', M: 'isang buwan', MM: '%d buwan', y: 'isang taon', yy: '%d taon' }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: function ordinal(number) { return number; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return tlPh; }); /***/ }), /* 296 */ /*!******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tlh.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Klingon [tlh] //! author : Dominika Kruk : https://github.com/amaranthrose ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); function translateFuture(output) { var time = output; time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq'; return time; } function translatePast(output) { var time = output; time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret'; return time; } function translate(number, withoutSuffix, string, isFuture) { var numberNoun = numberAsNoun(number); switch (string) { case 'ss': return numberNoun + ' lup'; case 'mm': return numberNoun + ' tup'; case 'hh': return numberNoun + ' rep'; case 'dd': return numberNoun + ' jaj'; case 'MM': return numberNoun + ' jar'; case 'yy': return numberNoun + ' DIS'; } } function numberAsNoun(number) { var hundred = Math.floor(number % 1000 / 100), ten = Math.floor(number % 100 / 10), one = number % 10, word = ''; if (hundred > 0) { word += numbersNouns[hundred] + 'vatlh'; } if (ten > 0) { word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; } if (one > 0) { word += (word !== '' ? ' ' : '') + numbersNouns[one]; } return word === '' ? 'pagh' : word; } var tlh = moment.defineLocale('tlh', { months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), monthsParseExact: true, weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[DaHjaj] LT', nextDay: '[wa’leS] LT', nextWeek: 'LLL', lastDay: '[wa’Hu’] LT', lastWeek: 'LLL', sameElse: 'L' }, relativeTime: { future: translateFuture, past: translatePast, s: 'puS lup', ss: translate, m: 'wa’ tup', mm: translate, h: 'wa’ rep', hh: translate, d: 'wa’ jaj', dd: translate, M: 'wa’ jar', MM: translate, y: 'wa’ DIS', yy: translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return tlh; }); /***/ }), /* 297 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tr.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Turkish [tr] //! authors : Erhan Gundogan : https://github.com/erhangundogan, //! Burak Yiğit Kaya: https://github.com/BYK ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var suffixes = { 1: "'inci", 5: "'inci", 8: "'inci", 70: "'inci", 80: "'inci", 2: "'nci", 7: "'nci", 20: "'nci", 50: "'nci", 3: "'üncü", 4: "'üncü", 100: "'üncü", 6: "'ncı", 9: "'uncu", 10: "'uncu", 30: "'uncu", 60: "'ıncı", 90: "'ıncı" }; var tr = moment.defineLocale('tr', { months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'), monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'), weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), meridiem: function meridiem(hours, minutes, isLower) { if (hours < 12) { return isLower ? 'öö' : 'ÖÖ'; } else { return isLower ? 'ös' : 'ÖS'; } }, meridiemParse: /öö|ÖÖ|ös|ÖS/, isPM: function isPM(input) { return input === 'ös' || input === 'ÖS'; }, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[bugün saat] LT', nextDay: '[yarın saat] LT', nextWeek: '[gelecek] dddd [saat] LT', lastDay: '[dün] LT', lastWeek: '[geçen] dddd [saat] LT', sameElse: 'L' }, relativeTime: { future: '%s sonra', past: '%s önce', s: 'birkaç saniye', ss: '%d saniye', m: 'bir dakika', mm: '%d dakika', h: 'bir saat', hh: '%d saat', d: 'bir gün', dd: '%d gün', w: 'bir hafta', ww: '%d hafta', M: 'bir ay', MM: '%d ay', y: 'bir yıl', yy: '%d yıl' }, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'Do': case 'DD': return number; default: if (number === 0) { // special case for zero return number + "'ıncı"; } var a = number % 10, b = number % 100 - a, c = number >= 100 ? 100 : null; return number + (suffixes[a] || suffixes[b] || suffixes[c]); } }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return tr; }); /***/ }), /* 298 */ /*!******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tzl.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Talossan [tzl] //! author : Robin van der Vliet : https://github.com/robin0van0der0v //! author : Iustì Canun ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. // This is currently too difficult (maybe even impossible) to add. var tzl = moment.defineLocale('tzl', { months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), longDateFormat: { LT: 'HH.mm', LTS: 'HH.mm.ss', L: 'DD.MM.YYYY', LL: 'D. MMMM [dallas] YYYY', LLL: 'D. MMMM [dallas] YYYY HH.mm', LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' }, meridiemParse: /d\'o|d\'a/i, isPM: function isPM(input) { return "d'o" === input.toLowerCase(); }, meridiem: function meridiem(hours, minutes, isLower) { if (hours > 11) { return isLower ? "d'o" : "D'O"; } else { return isLower ? "d'a" : "D'A"; } }, calendar: { sameDay: '[oxhi à] LT', nextDay: '[demà à] LT', nextWeek: 'dddd [à] LT', lastDay: '[ieiri à] LT', lastWeek: '[sür el] dddd [lasteu à] LT', sameElse: 'L' }, relativeTime: { future: 'osprei %s', past: 'ja%s', s: processRelativeTime, ss: processRelativeTime, m: processRelativeTime, mm: processRelativeTime, h: processRelativeTime, hh: processRelativeTime, d: processRelativeTime, dd: processRelativeTime, M: processRelativeTime, MM: processRelativeTime, y: processRelativeTime, yy: processRelativeTime }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: '%d.', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); function processRelativeTime(number, withoutSuffix, key, isFuture) { var format = { s: ['viensas secunds', "'iensas secunds"], ss: [number + ' secunds', '' + number + ' secunds'], m: ["'n míut", "'iens míut"], mm: [number + ' míuts', '' + number + ' míuts'], h: ["'n þora", "'iensa þora"], hh: [number + ' þoras', '' + number + ' þoras'], d: ["'n ziua", "'iensa ziua"], dd: [number + ' ziuas', '' + number + ' ziuas'], M: ["'n mes", "'iens mes"], MM: [number + ' mesen', '' + number + ' mesen'], y: ["'n ar", "'iens ar"], yy: [number + ' ars', '' + number + ' ars'] }; return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1]; } return tzl; }); /***/ }), /* 299 */ /*!******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tzm.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Central Atlas Tamazight [tzm] //! author : Abdel Said : https://github.com/abdelsaid ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var tzm = moment.defineLocale('tzm', { months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', nextWeek: 'dddd [ⴴ] LT', lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', lastWeek: 'dddd [ⴴ] LT', sameElse: 'L' }, relativeTime: { future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', past: 'ⵢⴰⵏ %s', s: 'ⵉⵎⵉⴽ', ss: '%d ⵉⵎⵉⴽ', m: 'ⵎⵉⵏⵓⴺ', mm: '%d ⵎⵉⵏⵓⴺ', h: 'ⵙⴰⵄⴰ', hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', d: 'ⴰⵙⵙ', dd: '%d oⵙⵙⴰⵏ', M: 'ⴰⵢoⵓⵔ', MM: '%d ⵉⵢⵢⵉⵔⵏ', y: 'ⴰⵙⴳⴰⵙ', yy: '%d ⵉⵙⴳⴰⵙⵏ' }, week: { dow: 6, // Saturday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return tzm; }); /***/ }), /* 300 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/tzm-latn.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Central Atlas Tamazight Latin [tzm-latn] //! author : Abdel Said : https://github.com/abdelsaid ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var tzmLatn = moment.defineLocale('tzm-latn', { months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd D MMMM YYYY HH:mm' }, calendar: { sameDay: '[asdkh g] LT', nextDay: '[aska g] LT', nextWeek: 'dddd [g] LT', lastDay: '[assant g] LT', lastWeek: 'dddd [g] LT', sameElse: 'L' }, relativeTime: { future: 'dadkh s yan %s', past: 'yan %s', s: 'imik', ss: '%d imik', m: 'minuḍ', mm: '%d minuḍ', h: 'saɛa', hh: '%d tassaɛin', d: 'ass', dd: '%d ossan', M: 'ayowr', MM: '%d iyyirn', y: 'asgas', yy: '%d isgasn' }, week: { dow: 6, // Saturday is the first day of the week. doy: 12 // The week that contains Jan 12th is the first week of the year. } }); return tzmLatn; }); /***/ }), /* 301 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ug-cn.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Uyghur (China) [ug-cn] //! author: boyaq : https://github.com/boyaq ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var ugCn = moment.defineLocale('ug-cn', { months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'), monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'), weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'), weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY-MM-DD', LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm' }, meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === 'يېرىم كېچە' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') { return hour; } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { return hour + 12; } else { return hour >= 11 ? hour : hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { var hm = hour * 100 + minute; if (hm < 600) { return 'يېرىم كېچە'; } else if (hm < 900) { return 'سەھەر'; } else if (hm < 1130) { return 'چۈشتىن بۇرۇن'; } else if (hm < 1230) { return 'چۈش'; } else if (hm < 1800) { return 'چۈشتىن كېيىن'; } else { return 'كەچ'; } }, calendar: { sameDay: '[بۈگۈن سائەت] LT', nextDay: '[ئەتە سائەت] LT', nextWeek: '[كېلەركى] dddd [سائەت] LT', lastDay: '[تۆنۈگۈن] LT', lastWeek: '[ئالدىنقى] dddd [سائەت] LT', sameElse: 'L' }, relativeTime: { future: '%s كېيىن', past: '%s بۇرۇن', s: 'نەچچە سېكونت', ss: '%d سېكونت', m: 'بىر مىنۇت', mm: '%d مىنۇت', h: 'بىر سائەت', hh: '%d سائەت', d: 'بىر كۈن', dd: '%d كۈن', M: 'بىر ئاي', MM: '%d ئاي', y: 'بىر يىل', yy: '%d يىل' }, dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'DDD': return number + '-كۈنى'; case 'w': case 'W': return number + '-ھەپتە'; default: return number; } }, preparse: function preparse(string) { return string.replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/,/g, '،'); }, week: { // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 1st is the first week of the year. } }); return ugCn; }); /***/ }), /* 302 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/uk.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Ukrainian [uk] //! author : zemlanin : https://github.com/zemlanin //! Author : Menelion Elensúle : https://github.com/Oire ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration function plural(word, num) { var forms = word.split('_'); return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; } function relativeTimeWithPlural(number, withoutSuffix, key) { var format = { ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', dd: 'день_дні_днів', MM: 'місяць_місяці_місяців', yy: 'рік_роки_років' }; if (key === 'm') { return withoutSuffix ? 'хвилина' : 'хвилину'; } else if (key === 'h') { return withoutSuffix ? 'година' : 'годину'; } else { return number + ' ' + plural(format[key], +number); } } function weekdaysCaseReplace(m, format) { var weekdays = { nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') }, nounCase; if (m === true) { return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1)); } if (!m) { return weekdays['nominative']; } nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) ? 'accusative' : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) ? 'genitive' : 'nominative'; return weekdays[nounCase][m.day()]; } function processHoursFunction(str) { return function () { return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; }; } var uk = moment.defineLocale('uk', { months: { format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'), standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') }, monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), weekdays: weekdaysCaseReplace, weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD.MM.YYYY', LL: 'D MMMM YYYY р.', LLL: 'D MMMM YYYY р., HH:mm', LLLL: 'dddd, D MMMM YYYY р., HH:mm' }, calendar: { sameDay: processHoursFunction('[Сьогодні '), nextDay: processHoursFunction('[Завтра '), lastDay: processHoursFunction('[Вчора '), nextWeek: processHoursFunction('[У] dddd ['), lastWeek: function lastWeek() { switch (this.day()) { case 0: case 3: case 5: case 6: return processHoursFunction('[Минулої] dddd [').call(this); case 1: case 2: case 4: return processHoursFunction('[Минулого] dddd [').call(this); } }, sameElse: 'L' }, relativeTime: { future: 'за %s', past: '%s тому', s: 'декілька секунд', ss: relativeTimeWithPlural, m: relativeTimeWithPlural, mm: relativeTimeWithPlural, h: 'годину', hh: relativeTimeWithPlural, d: 'день', dd: relativeTimeWithPlural, M: 'місяць', MM: relativeTimeWithPlural, y: 'рік', yy: relativeTimeWithPlural }, // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason meridiemParse: /ночі|ранку|дня|вечора/, isPM: function isPM(input) { return /^(дня|вечора)$/.test(input); }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 4) { return 'ночі'; } else if (hour < 12) { return 'ранку'; } else if (hour < 17) { return 'дня'; } else { return 'вечора'; } }, dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, ordinal: function ordinal(number, period) { switch (period) { case 'M': case 'd': case 'DDD': case 'w': case 'W': return number + '-й'; case 'D': return number + '-го'; default: return number; } }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return uk; }); /***/ }), /* 303 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/ur.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Urdu [ur] //! author : Sawood Alam : https://github.com/ibnesayeed //! author : Zack : https://github.com/ZackVision ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var months = ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'], days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; var ur = moment.defineLocale('ur', { months: months, monthsShort: months, weekdays: days, weekdaysShort: days, weekdaysMin: days, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd، D MMMM YYYY HH:mm' }, meridiemParse: /صبح|شام/, isPM: function isPM(input) { return 'شام' === input; }, meridiem: function meridiem(hour, minute, isLower) { if (hour < 12) { return 'صبح'; } return 'شام'; }, calendar: { sameDay: '[آج بوقت] LT', nextDay: '[کل بوقت] LT', nextWeek: 'dddd [بوقت] LT', lastDay: '[گذشتہ روز بوقت] LT', lastWeek: '[گذشتہ] dddd [بوقت] LT', sameElse: 'L' }, relativeTime: { future: '%s بعد', past: '%s قبل', s: 'چند سیکنڈ', ss: '%d سیکنڈ', m: 'ایک منٹ', mm: '%d منٹ', h: 'ایک گھنٹہ', hh: '%d گھنٹے', d: 'ایک دن', dd: '%d دن', M: 'ایک ماہ', MM: '%d ماہ', y: 'ایک سال', yy: '%d سال' }, preparse: function preparse(string) { return string.replace(/،/g, ','); }, postformat: function postformat(string) { return string.replace(/,/g, '،'); }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return ur; }); /***/ }), /* 304 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/uz.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Uzbek [uz] //! author : Sardor Muminov : https://github.com/muminoff ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var uz = moment.defineLocale('uz', { months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'D MMMM YYYY, dddd HH:mm' }, calendar: { sameDay: '[Бугун соат] LT [да]', nextDay: '[Эртага] LT [да]', nextWeek: 'dddd [куни соат] LT [да]', lastDay: '[Кеча соат] LT [да]', lastWeek: '[Утган] dddd [куни соат] LT [да]', sameElse: 'L' }, relativeTime: { future: 'Якин %s ичида', past: 'Бир неча %s олдин', s: 'фурсат', ss: '%d фурсат', m: 'бир дакика', mm: '%d дакика', h: 'бир соат', hh: '%d соат', d: 'бир кун', dd: '%d кун', M: 'бир ой', MM: '%d ой', y: 'бир йил', yy: '%d йил' }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 4th is the first week of the year. } }); return uz; }); /***/ }), /* 305 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/uz-latn.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Uzbek Latin [uz-latn] //! author : Rasulbek Mirzayev : github.com/Rasulbeeek ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var uzLatn = moment.defineLocale('uz-latn', { months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'D MMMM YYYY, dddd HH:mm' }, calendar: { sameDay: '[Bugun soat] LT [da]', nextDay: '[Ertaga] LT [da]', nextWeek: 'dddd [kuni soat] LT [da]', lastDay: '[Kecha soat] LT [da]', lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", sameElse: 'L' }, relativeTime: { future: 'Yaqin %s ichida', past: 'Bir necha %s oldin', s: 'soniya', ss: '%d soniya', m: 'bir daqiqa', mm: '%d daqiqa', h: 'bir soat', hh: '%d soat', d: 'bir kun', dd: '%d kun', M: 'bir oy', MM: '%d oy', y: 'bir yil', yy: '%d yil' }, week: { dow: 1, // Monday is the first day of the week. doy: 7 // The week that contains Jan 7th is the first week of the year. } }); return uzLatn; }); /***/ }), /* 306 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/vi.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Vietnamese [vi] //! author : Bang Nguyen : https://github.com/bangnk //! author : Chien Kira : https://github.com/chienkira ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var vi = moment.defineLocale('vi', { months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split('_'), monthsParseExact: true, weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), weekdaysParseExact: true, meridiemParse: /sa|ch/i, isPM: function isPM(input) { return /^ch$/i.test(input); }, meridiem: function meridiem(hours, minutes, isLower) { if (hours < 12) { return isLower ? 'sa' : 'SA'; } else { return isLower ? 'ch' : 'CH'; } }, longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'D MMMM [năm] YYYY', LLL: 'D MMMM [năm] YYYY HH:mm', LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', l: 'DD/M/YYYY', ll: 'D MMM YYYY', lll: 'D MMM YYYY HH:mm', llll: 'ddd, D MMM YYYY HH:mm' }, calendar: { sameDay: '[Hôm nay lúc] LT', nextDay: '[Ngày mai lúc] LT', nextWeek: 'dddd [tuần tới lúc] LT', lastDay: '[Hôm qua lúc] LT', lastWeek: 'dddd [tuần trước lúc] LT', sameElse: 'L' }, relativeTime: { future: '%s tới', past: '%s trước', s: 'vài giây', ss: '%d giây', m: 'một phút', mm: '%d phút', h: 'một giờ', hh: '%d giờ', d: 'một ngày', dd: '%d ngày', w: 'một tuần', ww: '%d tuần', M: 'một tháng', MM: '%d tháng', y: 'một năm', yy: '%d năm' }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: function ordinal(number) { return number; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return vi; }); /***/ }), /* 307 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/x-pseudo.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Pseudo [x-pseudo] //! author : Andrew Hood : https://github.com/andrewhood125 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var xPseudo = moment.defineLocale('x-pseudo', { months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'), monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'), monthsParseExact: true, weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'), weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), weekdaysParseExact: true, longDateFormat: { LT: 'HH:mm', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY HH:mm', LLLL: 'dddd, D MMMM YYYY HH:mm' }, calendar: { sameDay: '[T~ódá~ý át] LT', nextDay: '[T~ómó~rró~w át] LT', nextWeek: 'dddd [át] LT', lastDay: '[Ý~ést~érdá~ý át] LT', lastWeek: '[L~ást] dddd [át] LT', sameElse: 'L' }, relativeTime: { future: 'í~ñ %s', past: '%s á~gó', s: 'á ~féw ~sécó~ñds', ss: '%d s~écóñ~ds', m: 'á ~míñ~úté', mm: '%d m~íñú~tés', h: 'á~ñ hó~úr', hh: '%d h~óúrs', d: 'á ~dáý', dd: '%d d~áýs', M: 'á ~móñ~th', MM: '%d m~óñt~hs', y: 'á ~ýéár', yy: '%d ý~éárs' }, dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function ordinal(number) { var b = number % 10, output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'; return number + output; }, week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return xPseudo; }); /***/ }), /* 308 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/yo.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Yoruba Nigeria [yo] //! author : Atolagbe Abisoye : https://github.com/andela-batolagbe ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var yo = moment.defineLocale('yo', { months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), longDateFormat: { LT: 'h:mm A', LTS: 'h:mm:ss A', L: 'DD/MM/YYYY', LL: 'D MMMM YYYY', LLL: 'D MMMM YYYY h:mm A', LLLL: 'dddd, D MMMM YYYY h:mm A' }, calendar: { sameDay: '[Ònì ni] LT', nextDay: '[Ọ̀la ni] LT', nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", lastDay: '[Àna ni] LT', lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', sameElse: 'L' }, relativeTime: { future: 'ní %s', past: '%s kọjá', s: 'ìsẹjú aayá die', ss: 'aayá %d', m: 'ìsẹjú kan', mm: 'ìsẹjú %d', h: 'wákati kan', hh: 'wákati %d', d: 'ọjọ́ kan', dd: 'ọjọ́ %d', M: 'osù kan', MM: 'osù %d', y: 'ọdún kan', yy: 'ọdún %d' }, dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, ordinal: 'ọjọ́ %d', week: { dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return yo; }); /***/ }), /* 309 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/zh-cn.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Chinese (China) [zh-cn] //! author : suupic : https://github.com/suupic //! author : Zeno Zeng : https://github.com/zenozeng //! author : uu109 : https://github.com/uu109 ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var zhCn = moment.defineLocale('zh-cn', { months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY/MM/DD', LL: 'YYYY年M月D日', LLL: 'YYYY年M月D日Ah点mm分', LLLL: 'YYYY年M月D日ddddAh点mm分', l: 'YYYY/M/D', ll: 'YYYY年M月D日', lll: 'YYYY年M月D日 HH:mm', llll: 'YYYY年M月D日dddd HH:mm' }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { return hour; } else if (meridiem === '下午' || meridiem === '晚上') { return hour + 12; } else { // '中午' return hour >= 11 ? hour : hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { var hm = hour * 100 + minute; if (hm < 600) { return '凌晨'; } else if (hm < 900) { return '早上'; } else if (hm < 1130) { return '上午'; } else if (hm < 1230) { return '中午'; } else if (hm < 1800) { return '下午'; } else { return '晚上'; } }, calendar: { sameDay: '[今天]LT', nextDay: '[明天]LT', nextWeek: function nextWeek(now) { if (now.week() !== this.week()) { return '[下]dddLT'; } else { return '[本]dddLT'; } }, lastDay: '[昨天]LT', lastWeek: function lastWeek(now) { if (this.week() !== now.week()) { return '[上]dddLT'; } else { return '[本]dddLT'; } }, sameElse: 'L' }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'DDD': return number + '日'; case 'M': return number + '月'; case 'w': case 'W': return number + '周'; default: return number; } }, relativeTime: { future: '%s后', past: '%s前', s: '几秒', ss: '%d 秒', m: '1 分钟', mm: '%d 分钟', h: '1 小时', hh: '%d 小时', d: '1 天', dd: '%d 天', w: '1 周', ww: '%d 周', M: '1 个月', MM: '%d 个月', y: '1 年', yy: '%d 年' }, week: { // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 dow: 1, // Monday is the first day of the week. doy: 4 // The week that contains Jan 4th is the first week of the year. } }); return zhCn; }); /***/ }), /* 310 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/zh-hk.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Chinese (Hong Kong) [zh-hk] //! author : Ben : https://github.com/ben-lin //! author : Chris Lam : https://github.com/hehachris //! author : Konstantin : https://github.com/skfd //! author : Anthony : https://github.com/anthonylau ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var zhHk = moment.defineLocale('zh-hk', { months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY/MM/DD', LL: 'YYYY年M月D日', LLL: 'YYYY年M月D日 HH:mm', LLLL: 'YYYY年M月D日dddd HH:mm', l: 'YYYY/M/D', ll: 'YYYY年M月D日', lll: 'YYYY年M月D日 HH:mm', llll: 'YYYY年M月D日dddd HH:mm' }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { return hour; } else if (meridiem === '中午') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === '下午' || meridiem === '晚上') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { var hm = hour * 100 + minute; if (hm < 600) { return '凌晨'; } else if (hm < 900) { return '早上'; } else if (hm < 1200) { return '上午'; } else if (hm === 1200) { return '中午'; } else if (hm < 1800) { return '下午'; } else { return '晚上'; } }, calendar: { sameDay: '[今天]LT', nextDay: '[明天]LT', nextWeek: '[下]ddddLT', lastDay: '[昨天]LT', lastWeek: '[上]ddddLT', sameElse: 'L' }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'DDD': return number + '日'; case 'M': return number + '月'; case 'w': case 'W': return number + '週'; default: return number; } }, relativeTime: { future: '%s後', past: '%s前', s: '幾秒', ss: '%d 秒', m: '1 分鐘', mm: '%d 分鐘', h: '1 小時', hh: '%d 小時', d: '1 天', dd: '%d 天', M: '1 個月', MM: '%d 個月', y: '1 年', yy: '%d 年' } }); return zhHk; }); /***/ }), /* 311 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/zh-mo.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Chinese (Macau) [zh-mo] //! author : Ben : https://github.com/ben-lin //! author : Chris Lam : https://github.com/hehachris //! author : Tan Yuanhong : https://github.com/le0tan ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var zhMo = moment.defineLocale('zh-mo', { months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'DD/MM/YYYY', LL: 'YYYY年M月D日', LLL: 'YYYY年M月D日 HH:mm', LLLL: 'YYYY年M月D日dddd HH:mm', l: 'D/M/YYYY', ll: 'YYYY年M月D日', lll: 'YYYY年M月D日 HH:mm', llll: 'YYYY年M月D日dddd HH:mm' }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { return hour; } else if (meridiem === '中午') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === '下午' || meridiem === '晚上') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { var hm = hour * 100 + minute; if (hm < 600) { return '凌晨'; } else if (hm < 900) { return '早上'; } else if (hm < 1130) { return '上午'; } else if (hm < 1230) { return '中午'; } else if (hm < 1800) { return '下午'; } else { return '晚上'; } }, calendar: { sameDay: '[今天] LT', nextDay: '[明天] LT', nextWeek: '[下]dddd LT', lastDay: '[昨天] LT', lastWeek: '[上]dddd LT', sameElse: 'L' }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'DDD': return number + '日'; case 'M': return number + '月'; case 'w': case 'W': return number + '週'; default: return number; } }, relativeTime: { future: '%s內', past: '%s前', s: '幾秒', ss: '%d 秒', m: '1 分鐘', mm: '%d 分鐘', h: '1 小時', hh: '%d 小時', d: '1 天', dd: '%d 天', M: '1 個月', MM: '%d 個月', y: '1 年', yy: '%d 年' } }); return zhMo; }); /***/ }), /* 312 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/moment/locale/zh-tw.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); //! moment.js locale configuration //! locale : Chinese (Taiwan) [zh-tw] //! author : Ben : https://github.com/ben-lin //! author : Chris Lam : https://github.com/hehachris ; (function (global, factory) { ( false ? undefined : _typeof(exports)) === 'object' && typeof module !== 'undefined' && "function" === 'function' ? factory(__webpack_require__(/*! ../moment */ 173)) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! ../moment */ 173)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; })(this, function (moment) { 'use strict'; //! moment.js locale configuration var zhTw = moment.defineLocale('zh-tw', { months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), weekdaysMin: '日_一_二_三_四_五_六'.split('_'), longDateFormat: { LT: 'HH:mm', LTS: 'HH:mm:ss', L: 'YYYY/MM/DD', LL: 'YYYY年M月D日', LLL: 'YYYY年M月D日 HH:mm', LLLL: 'YYYY年M月D日dddd HH:mm', l: 'YYYY/M/D', ll: 'YYYY年M月D日', lll: 'YYYY年M月D日 HH:mm', llll: 'YYYY年M月D日dddd HH:mm' }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function meridiemHour(hour, meridiem) { if (hour === 12) { hour = 0; } if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { return hour; } else if (meridiem === '中午') { return hour >= 11 ? hour : hour + 12; } else if (meridiem === '下午' || meridiem === '晚上') { return hour + 12; } }, meridiem: function meridiem(hour, minute, isLower) { var hm = hour * 100 + minute; if (hm < 600) { return '凌晨'; } else if (hm < 900) { return '早上'; } else if (hm < 1130) { return '上午'; } else if (hm < 1230) { return '中午'; } else if (hm < 1800) { return '下午'; } else { return '晚上'; } }, calendar: { sameDay: '[今天] LT', nextDay: '[明天] LT', nextWeek: '[下]dddd LT', lastDay: '[昨天] LT', lastWeek: '[上]dddd LT', sameElse: 'L' }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, ordinal: function ordinal(number, period) { switch (period) { case 'd': case 'D': case 'DDD': return number + '日'; case 'M': return number + '月'; case 'w': case 'W': return number + '週'; default: return number; } }, relativeTime: { future: '%s後', past: '%s前', s: '幾秒', ss: '%d 秒', m: '1 分鐘', mm: '%d 分鐘', h: '1 小時', hh: '%d 小時', d: '1 天', dd: '%d 天', M: '1 個月', MM: '%d 個月', y: '1 年', yy: '%d 年' } }); return zhTw; }); /***/ }), /* 313 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/xcrw/detail/index.vue?mpType=page ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=519e407a&scoped=true&mpType=page */ 314);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 332);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"519e407a\",\n null,\n false,\n _index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/xcrw/detail/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUk7QUFDekk7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ3NLO0FBQ3RLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSx1R0FBTTtBQUNSLEVBQUUsZ0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzEzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTE5ZTQwN2Emc2NvcGVkPXRydWUmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjUxOWU0MDdhXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL3hjcncvZGV0YWlsL2luZGV4LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///313\n"); /***/ }), /* 314 */ /*!******************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/xcrw/detail/index.vue?vue&type=template&id=519e407a&scoped=true&mpType=page ***! \******************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=519e407a&scoped=true&mpType=page */ 315); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_519e407a_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 315 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/xcrw/detail/index.vue?vue&type=template&id=519e407a&scoped=true&mpType=page ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uStatusBar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue */ 91) .default, uNavbar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-navbar/u-navbar.vue */ 97) .default, uniCollapse: __webpack_require__(/*! @/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue */ 316) .default, uniCollapseItem: __webpack_require__(/*! @/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue */ 321) .default, uSubsection: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-subsection/u-subsection.vue */ 326) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { style: _vm._$s(0, "s", { height: "100vh", overflow: "hidden" }), attrs: { _i: 0 }, }, [ _c("u-status-bar", { attrs: { _i: 1 } }), _c("u-navbar", { attrs: { title: _vm.taskTitle, autoBack: true, titleStyle: { fontSize: "18px", }, height: 44, safeAreaInsetTop: true, leftIconSize: "20", leftIconColor: "rgb(153, 153, 153)", _i: 2, }, }), _c("view", [ _c("view", [ _c( "view", { staticClass: _vm._$s(5, "sc", "item"), attrs: { _i: 5 } }, [ _c("view", { staticClass: _vm._$s(6, "sc", "blueTiao"), attrs: { _i: 6 }, }), _c("view", { staticClass: _vm._$s(7, "sc", "title"), attrs: { _i: 7 }, }), ] ), _c( "view", { staticClass: _vm._$s(8, "sc", "contentItem"), attrs: { _i: 8 } }, [ _c( "view", { staticClass: _vm._$s(9, "sc", "itemC"), attrs: { _i: 9 } }, [ _c("text"), _c("text", [ _vm._v(_vm._$s(11, "t0-0", _vm._s(_vm.taskTitle))), ]), ] ), _c( "view", { staticClass: _vm._$s(12, "sc", "itemC"), attrs: { _i: 12 } }, [ _c("text"), _c("text", [ _vm._v( _vm._$s( 14, "t0-0", _vm._s( _vm.taskType == 1 ? "日常巡查" : _vm.taskType == 2 ? "特别检查" : _vm.taskType == 3 ? "汛前巡检" : "" ) ) ), ]), ] ), _c( "view", { staticClass: _vm._$s(15, "sc", "itemC"), attrs: { _i: 15 } }, [ _c("text"), _c("text", [ _vm._v( _vm._$s( 17, "t0-0", _vm._s(_vm.taskContent ? _vm.taskContent : "") ) ), ]), ] ), _c( "view", { staticClass: _vm._$s(18, "sc", "itemC"), attrs: { _i: 18 } }, [ _c("text"), _c("text", [ _vm._v(_vm._$s(20, "t0-0", _vm._s(_vm.startDate))), ]), ] ), _c( "view", { staticClass: _vm._$s(21, "sc", "itemC"), attrs: { _i: 21 } }, [ _c("text"), _c("text", [ _vm._v(_vm._$s(23, "t0-0", _vm._s(_vm.endDate))), ]), ] ), ] ), ]), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s( 24, "v-show", _vm.status == 0 && _vm.btnStatus == 0 ), expression: "_$s(24,'v-show',status == 0 && btnStatus == 0)", }, ], attrs: { _i: 24 }, }, [ _c("view", { staticClass: _vm._$s(25, "sc", "circle-btn"), attrs: { _i: 25 }, on: { click: _vm.startXc }, }), ] ), _c( "view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(26, "v-show", _vm.btnStatus != 0), expression: "_$s(26,'v-show',btnStatus != 0)", }, ], attrs: { _i: 26 }, }, [ _c( "view", { staticClass: _vm._$s(27, "sc", "item"), attrs: { _i: 27 } }, [ _c("view", { staticClass: _vm._$s(28, "sc", "blueTiao"), attrs: { _i: 28 }, }), _c("view", { staticClass: _vm._$s(29, "sc", "title"), attrs: { _i: 29 }, }), ] ), _c( "view", { staticClass: _vm._$s(30, "sc", "contentItem"), attrs: { _i: 30 }, }, [ _c( "uni-collapse", { attrs: { _i: 31 } }, _vm._l( _vm._$s(32, "f", { forItems: _vm.xjItem }), function (item, index, $20, $30) { return _c( "uni-collapse-item", { key: _vm._$s(32, "f", { forIndex: $20, key: index }), attrs: { "title-border": "none", border: false, "show-animation": true, _i: "32-" + $30, }, scopedSlots: _vm._u( [ { key: "title", fn: function (_empty_, _svm, _si) { return [ _c( "view", { staticStyle: { display: "flex", "align-items": "center", }, attrs: { _i: "34-" + $30 + "-" + _si }, }, [ _c("text", { staticClass: _svm._$s( "35-" + $30 + "-" + _si, "sc", "yuandian" ), attrs: { _i: "35-" + $30 + "-" + _si, }, }), _c( "text", { attrs: { _i: "36-" + $30 + "-" + _si, }, }, [ _vm._v( _svm._$s( "36-" + $30 + "-" + _si, "t0-0", _vm._s(item.name) ) ), ] ), _c( "text", { staticStyle: { "margin-left": "auto", color: "#ff0000", }, attrs: { _i: "37-" + $30 + "-" + _si, }, }, [ _vm._v( _svm._$s( "37-" + $30 + "-" + _si, "t0-0", _vm._s(item.children.length) ) ), ] ), ] ), ] }, }, ], null, true ), }, [ _c( "view", { staticClass: _vm._$s( "38-" + $30, "sc", "xj-content" ), attrs: { _i: "38-" + $30 }, }, _vm._l( _vm._$s(39 + "-" + $30, "f", { forItems: item.children, }), function (o, i, $21, $31) { return _c( "view", { key: _vm._$s(39 + "-" + $30, "f", { forIndex: $21, key: i, }), staticClass: _vm._$s( "39-" + $30 + "-" + $31, "sc", "xj-text" ), attrs: { _i: "39-" + $30 + "-" + $31 }, }, [ _c("text", [ _vm._v( _vm._$s( "40-" + $30 + "-" + $31, "t0-0", _vm._s(o.itemDesc) ) ), ]), _c( "view", { staticClass: _vm._$s( "41-" + $30 + "-" + $31, "sc", "subsectioin" ), attrs: { _i: "41-" + $30 + "-" + $31 }, }, [ _c("text"), _c("u-subsection", { attrs: { list: _vm.list, current: _vm.current, mode: "subsection", _i: "43-" + $30 + "-" + $31, }, on: { change: _vm.change }, }), ], 1 ), ] ) } ), 0 ), ] ) } ), 1 ), ], 1 ), ] ), ]), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 316 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-collapse.vue?vue&type=template&id=275068f4& */ 317);\n/* harmony import */ var _uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-collapse.vue?vue&type=script&lang=js& */ 319);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_collapse_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 _uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzE2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91bmktY29sbGFwc2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTI3NTA2OGY0JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdW5pLWNvbGxhcHNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdW5pLWNvbGxhcHNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy91bmktY29sbGFwc2UvY29tcG9uZW50cy91bmktY29sbGFwc2UvdW5pLWNvbGxhcHNlLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///316\n"); /***/ }), /* 317 */ /*!*********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue?vue&type=template&id=275068f4& ***! \*********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-collapse.vue?vue&type=template&id=275068f4& */ 318); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_template_id_275068f4___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 318 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue?vue&type=template&id=275068f4& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-collapse"), attrs: { _i: 0 } }, [_vm._t("default", null, { _i: 1 })], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 319 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-collapse.vue?vue&type=script&lang=js& */ 320);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdrQixDQUFnQixra0JBQUcsRUFBQyIsImZpbGUiOiIzMTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktY29sbGFwc2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktY29sbGFwc2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///319\n"); /***/ }), /* 320 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n/**\n * Collapse 折叠面板\n * @description 展示可以折叠 / 展开的内容区域\n * @tutorial https://ext.dcloud.net.cn/plugin?id=23\n * @property {String|Array} value 当前激活面板改变时触发(如果是手风琴模式,参数类型为string,否则为array)\n * @property {Boolean} accordion = [true|false] 是否开启手风琴效果是否开启手风琴效果\n * @event {Function} change 切换面板时触发,如果是手风琴模式,返回类型为string,否则为array\n */\nvar _default = {\n name: 'uniCollapse',\n emits: ['change', 'activeItem', 'input', 'update:modelValue'],\n props: {\n value: {\n type: [String, Array],\n default: ''\n },\n modelValue: {\n type: [String, Array],\n default: ''\n },\n accordion: {\n // 是否开启手风琴效果\n type: [Boolean, String],\n default: false\n }\n },\n data: function data() {\n return {};\n },\n computed: {\n // TODO 兼容 vue2 和 vue3\n dataValue: function dataValue() {\n var value = typeof this.value === 'string' && this.value === '' || Array.isArray(this.value) && this.value.length === 0;\n var modelValue = typeof this.modelValue === 'string' && this.modelValue === '' || Array.isArray(this.modelValue) && this.modelValue.length === 0;\n if (value) {\n return this.modelValue;\n }\n if (modelValue) {\n return this.value;\n }\n return this.value;\n }\n },\n watch: {\n dataValue: function dataValue(val) {\n this.setOpen(val);\n }\n },\n created: function created() {\n this.childrens = [];\n this.names = [];\n },\n mounted: function mounted() {\n var _this = this;\n this.$nextTick(function () {\n _this.setOpen(_this.dataValue);\n });\n },\n methods: {\n setOpen: function setOpen(val) {\n var _this2 = this;\n var str = typeof val === 'string';\n var arr = Array.isArray(val);\n this.childrens.forEach(function (vm, index) {\n if (str) {\n if (val === vm.nameSync) {\n if (!_this2.accordion) {\n __f__(\"warn\", 'accordion 属性为 false ,v-model 类型应该为 array', \" at uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue:75\");\n return;\n }\n vm.isOpen = true;\n }\n }\n if (arr) {\n val.forEach(function (v) {\n if (v === vm.nameSync) {\n if (_this2.accordion) {\n __f__(\"warn\", 'accordion 属性为 true ,v-model 类型应该为 string', \" at uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue:85\");\n return;\n }\n vm.isOpen = true;\n }\n });\n }\n });\n this.emit(val);\n },\n setAccordion: function setAccordion(self) {\n if (!this.accordion) return;\n this.childrens.forEach(function (vm, index) {\n if (self !== vm) {\n vm.isOpen = false;\n }\n });\n },\n resize: function resize() {\n this.childrens.forEach(function (vm, index) {\n vm.getCollapseHeight();\n });\n },\n onChange: function onChange(isOpen, self) {\n var activeItem = [];\n if (this.accordion) {\n activeItem = isOpen ? self.nameSync : '';\n } else {\n this.childrens.forEach(function (vm, index) {\n if (vm.isOpen) {\n activeItem.push(vm.nameSync);\n }\n });\n }\n this.$emit('change', activeItem);\n this.emit(activeItem);\n },\n emit: function emit(val) {\n this.$emit('input', val);\n this.$emit('update:modelValue', val);\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWNvbGxhcHNlL2NvbXBvbmVudHMvdW5pLWNvbGxhcHNlL3VuaS1jb2xsYXBzZS52dWUiXSwibmFtZXMiOlsibmFtZSIsImVtaXRzIiwicHJvcHMiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0IiwibW9kZWxWYWx1ZSIsImFjY29yZGlvbiIsImRhdGEiLCJjb21wdXRlZCIsImRhdGFWYWx1ZSIsIkFycmF5Iiwid2F0Y2giLCJjcmVhdGVkIiwibW91bnRlZCIsIm1ldGhvZHMiLCJzZXRPcGVuIiwidm0iLCJ2YWwiLCJzZXRBY2NvcmRpb24iLCJyZXNpemUiLCJvbkNoYW5nZSIsImFjdGl2ZUl0ZW0iLCJlbWl0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQSxlQVFBO0VBQ0FBO0VBQ0FDO0VBQ0FDO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUNBRTtNQUNBO01BQ0FIO01BQ0FDO0lBQ0E7RUFDQTtFQUNBRztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBQztNQUNBLG1FQUNBQztNQUNBLGtGQUNBQTtNQUNBO1FBQ0E7TUFDQTtNQUNBO1FBQ0E7TUFDQTtNQUVBO0lBQ0E7RUFDQTtFQUNBQztJQUNBRjtNQUNBO0lBQ0E7RUFDQTtFQUNBRztJQUNBO0lBQ0E7RUFDQTtFQUNBQztJQUFBO0lBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFBQTtNQUNBO01BQ0E7TUFDQTtRQUNBO1VBQ0E7WUFDQTtjQUNBO2NBQ0E7WUFDQTtZQUNBQztVQUNBO1FBQ0E7UUFDQTtVQUNBQztZQUNBO2NBQ0E7Z0JBQ0E7Z0JBQ0E7Y0FDQTtjQUNBRDtZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBRTtNQUNBO01BQ0E7UUFDQTtVQUNBRjtRQUNBO01BQ0E7SUFDQTtJQUNBRztNQUNBO1FBRUFIO01BS0E7SUFDQTtJQUNBSTtNQUNBO01BRUE7UUFDQUM7TUFDQTtRQUNBO1VBQ0E7WUFDQUE7VUFDQTtRQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMzIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwidW5pLWNvbGxhcHNlXCI+XHJcblx0XHQ8c2xvdCAvPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuPHNjcmlwdD5cclxuXHQvKipcclxuXHQgKiBDb2xsYXBzZSDmipjlj6DpnaLmnb9cclxuXHQgKiBAZGVzY3JpcHRpb24g5bGV56S65Y+v5Lul5oqY5Y+gIC8g5bGV5byA55qE5YaF5a655Yy65Z+fXHJcblx0ICogQHR1dG9yaWFsIGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTIzXHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd8QXJyYXl9IHZhbHVlIOW9k+WJjea/gOa0u+mdouadv+aUueWPmOaXtuinpuWPkSjlpoLmnpzmmK/miYvpo47nkLTmqKHlvI/vvIzlj4LmlbDnsbvlnovkuLpzdHJpbmfvvIzlkKbliJnkuLphcnJheSlcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IGFjY29yZGlvbiA9IFt0cnVlfGZhbHNlXSDmmK/lkKblvIDlkK/miYvpo47nkLTmlYjmnpzmmK/lkKblvIDlkK/miYvpo47nkLTmlYjmnpxcclxuXHQgKiBAZXZlbnQge0Z1bmN0aW9ufSBjaGFuZ2Ug5YiH5o2i6Z2i5p2/5pe26Kem5Y+R77yM5aaC5p6c5piv5omL6aOO55C05qih5byP77yM6L+U5Zue57G75Z6L5Li6c3RyaW5n77yM5ZCm5YiZ5Li6YXJyYXlcclxuXHQgKi9cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiAndW5pQ29sbGFwc2UnLFxyXG5cdFx0ZW1pdHM6WydjaGFuZ2UnLCdhY3RpdmVJdGVtJywnaW5wdXQnLCd1cGRhdGU6bW9kZWxWYWx1ZSddLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0dmFsdWU6IHtcclxuXHRcdFx0XHR0eXBlOiBbU3RyaW5nLCBBcnJheV0sXHJcblx0XHRcdFx0ZGVmYXVsdDogJydcclxuXHRcdFx0fSxcclxuXHRcdFx0bW9kZWxWYWx1ZToge1xyXG5cdFx0XHRcdHR5cGU6IFtTdHJpbmcsIEFycmF5XSxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRhY2NvcmRpb246IHtcclxuXHRcdFx0XHQvLyDmmK/lkKblvIDlkK/miYvpo47nkLTmlYjmnpxcclxuXHRcdFx0XHR0eXBlOiBbQm9vbGVhbiwgU3RyaW5nXSxcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7fVxyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdC8vIFRPRE8g5YW85a65IHZ1ZTIg5ZKMIHZ1ZTNcclxuXHRcdFx0ZGF0YVZhbHVlKCkge1xyXG5cdFx0XHRcdGxldCB2YWx1ZSA9ICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgJiYgdGhpcy52YWx1ZSA9PT0gJycpIHx8XHJcblx0XHRcdFx0XHQoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMClcclxuXHRcdFx0XHRsZXQgbW9kZWxWYWx1ZSA9ICh0eXBlb2YgdGhpcy5tb2RlbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLm1vZGVsVmFsdWUgPT09ICcnKSB8fFxyXG5cdFx0XHRcdFx0KEFycmF5LmlzQXJyYXkodGhpcy5tb2RlbFZhbHVlKSAmJiB0aGlzLm1vZGVsVmFsdWUubGVuZ3RoID09PSAwKVxyXG5cdFx0XHRcdGlmICh2YWx1ZSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMubW9kZWxWYWx1ZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAobW9kZWxWYWx1ZSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMudmFsdWVcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHJldHVybiB0aGlzLnZhbHVlXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHR3YXRjaDoge1xyXG5cdFx0XHRkYXRhVmFsdWUodmFsKSB7XHJcblx0XHRcdFx0dGhpcy5zZXRPcGVuKHZhbClcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNyZWF0ZWQoKSB7XHJcblx0XHRcdHRoaXMuY2hpbGRyZW5zID0gW11cclxuXHRcdFx0dGhpcy5uYW1lcyA9IFtdXHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCk9PntcclxuXHRcdFx0XHR0aGlzLnNldE9wZW4odGhpcy5kYXRhVmFsdWUpXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRzZXRPcGVuKHZhbCkge1xyXG5cdFx0XHRcdGxldCBzdHIgPSB0eXBlb2YgdmFsID09PSAnc3RyaW5nJ1xyXG5cdFx0XHRcdGxldCBhcnIgPSBBcnJheS5pc0FycmF5KHZhbClcclxuXHRcdFx0XHR0aGlzLmNoaWxkcmVucy5mb3JFYWNoKCh2bSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdGlmIChzdHIpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHZhbCA9PT0gdm0ubmFtZVN5bmMpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMuYWNjb3JkaW9uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ2FjY29yZGlvbiDlsZ7mgKfkuLogZmFsc2UgLHYtbW9kZWwg57G75Z6L5bqU6K+l5Li6IGFycmF5JylcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR2bS5pc09wZW4gPSB0cnVlXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChhcnIpIHtcclxuXHRcdFx0XHRcdFx0dmFsLmZvckVhY2godiA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHYgPT09IHZtLm5hbWVTeW5jKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhpcy5hY2NvcmRpb24pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS53YXJuKCdhY2NvcmRpb24g5bGe5oCn5Li6IHRydWUgLHYtbW9kZWwg57G75Z6L5bqU6K+l5Li6IHN0cmluZycpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0dm0uaXNPcGVuID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdHRoaXMuZW1pdCh2YWwpXHJcblx0XHRcdH0sXHJcblx0XHRcdHNldEFjY29yZGlvbihzZWxmKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmFjY29yZGlvbikgcmV0dXJuXHJcblx0XHRcdFx0dGhpcy5jaGlsZHJlbnMuZm9yRWFjaCgodm0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoc2VsZiAhPT0gdm0pIHtcclxuXHRcdFx0XHRcdFx0dm0uaXNPcGVuID0gZmFsc2VcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZXNpemUoKSB7XHJcblx0XHRcdFx0dGhpcy5jaGlsZHJlbnMuZm9yRWFjaCgodm0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHQvLyAjaWZuZGVmIEFQUC1OVlVFXHJcblx0XHRcdFx0XHR2bS5nZXRDb2xsYXBzZUhlaWdodCgpXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHRcdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdFx0XHRcdFx0dm0uZ2V0TnZ1ZUh3aWdodCgpXHJcblx0XHRcdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRvbkNoYW5nZShpc09wZW4sIHNlbGYpIHtcclxuXHRcdFx0XHRsZXQgYWN0aXZlSXRlbSA9IFtdXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLmFjY29yZGlvbikge1xyXG5cdFx0XHRcdFx0YWN0aXZlSXRlbSA9IGlzT3BlbiA/IHNlbGYubmFtZVN5bmMgOiAnJ1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmNoaWxkcmVucy5mb3JFYWNoKCh2bSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHZtLmlzT3Blbikge1xyXG5cdFx0XHRcdFx0XHRcdGFjdGl2ZUl0ZW0ucHVzaCh2bS5uYW1lU3luYylcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy4kZW1pdCgnY2hhbmdlJywgYWN0aXZlSXRlbSlcclxuXHRcdFx0XHR0aGlzLmVtaXQoYWN0aXZlSXRlbSlcclxuXHRcdFx0fSxcclxuXHRcdFx0ZW1pdCh2YWwpe1xyXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2lucHV0JywgdmFsKVxyXG5cdFx0XHRcdHRoaXMuJGVtaXQoJ3VwZGF0ZTptb2RlbFZhbHVlJywgdmFsKVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgPlxyXG5cdC51bmktY29sbGFwc2Uge1xyXG5cdFx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHQvKiAjaWZkZWYgQVBQLU5WVUUgKi9cclxuXHRcdGZsZXg6IDE7XHJcblx0XHQvKiAjZW5kaWYgKi9cclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///320\n"); /***/ }), /* 321 */ /*!************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue ***! \************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uni-collapse-item.vue?vue&type=template&id=41027c34& */ 322);\n/* harmony import */ var _uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uni-collapse-item.vue?vue&type=script&lang=js& */ 324);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _uni_collapse_item_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 _uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBOEg7QUFDOUg7QUFDcUU7QUFDTDs7O0FBR2hFO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLHVGQUFNO0FBQ1IsRUFBRSw0RkFBTTtBQUNSLEVBQUUscUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsZ0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91bmktY29sbGFwc2UtaXRlbS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NDEwMjdjMzQmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi91bmktY29sbGFwc2UtaXRlbS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3VuaS1jb2xsYXBzZS1pdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy91bmktY29sbGFwc2UvY29tcG9uZW50cy91bmktY29sbGFwc2UtaXRlbS91bmktY29sbGFwc2UtaXRlbS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///321\n"); /***/ }), /* 322 */ /*!*******************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue?vue&type=template&id=41027c34& ***! \*******************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-collapse-item.vue?vue&type=template&id=41027c34& */ 323); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_template_id_41027c34___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 323 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue?vue&type=template&id=41027c34& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uniIcons: __webpack_require__(/*! @/uni_modules/uni-icons/components/uni-icons/uni-icons.vue */ 38) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "uni-collapse-item"), attrs: { _i: 0 } }, [ _c( "view", { staticClass: _vm._$s(1, "sc", "uni-collapse-item__title"), class: _vm._$s(1, "c", { "is-open": _vm.isOpen && _vm.titleBorder === "auto", "uni-collapse-item-border": _vm.titleBorder !== "none", }), attrs: { _i: 1 }, on: { click: function ($event) { return _vm.onClick(!_vm.isOpen) }, }, }, [ _c( "view", { staticClass: _vm._$s(2, "sc", "uni-collapse-item__title-wrap"), attrs: { _i: 2 }, }, [ _vm._t( "title", [ _c( "view", { staticClass: _vm._$s( 4, "sc", "uni-collapse-item__title-box" ), class: _vm._$s(4, "c", { "is-disabled": _vm.disabled }), attrs: { _i: 4 }, }, [ _vm._$s(5, "i", _vm.thumb) ? _c("image", { staticClass: _vm._$s( 5, "sc", "uni-collapse-item__title-img" ), attrs: { src: _vm._$s(5, "a-src", _vm.thumb), _i: 5, }, }) : _vm._e(), _c( "text", { staticClass: _vm._$s( 6, "sc", "uni-collapse-item__title-text" ), attrs: { _i: 6 }, }, [_vm._v(_vm._$s(6, "t0-0", _vm._s(_vm.title)))] ), ] ), ], { _i: 3 } ), ], 2 ), _vm._$s(7, "i", _vm.showArrow) ? _c( "view", { staticClass: _vm._$s( 7, "sc", "uni-collapse-item__title-arrow" ), class: _vm._$s(7, "c", { "uni-collapse-item__title-arrow-active": _vm.isOpen, "uni-collapse-item--animation": _vm.showAnimation === true, }), attrs: { _i: 7 }, }, [ _c("uni-icons", { attrs: { color: _vm.disabled ? "#ddd" : "#bbb", size: "14", type: "bottom", _i: 8, }, }), ], 1 ) : _vm._e(), ] ), _c( "view", { staticClass: _vm._$s(9, "sc", "uni-collapse-item__wrap"), class: _vm._$s(9, "c", { "is--transition": _vm.showAnimation }), style: _vm._$s(9, "s", { height: (_vm.isOpen ? _vm.height : 0) + "px", }), attrs: { _i: 9 }, }, [ _c( "view", { ref: "collapse--hook", staticClass: _vm._$s(10, "sc", "uni-collapse-item__wrap-content"), class: _vm._$s(10, "c", { open: _vm.isheight, "uni-collapse-item--border": _vm.border && _vm.isOpen, }), attrs: { id: _vm._$s(10, "a-id", _vm.elId), _i: 10 }, }, [_vm._t("default", null, { _i: 11 })], 2 ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 324 */ /*!*************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue?vue&type=script&lang=js& ***! \*************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./uni-collapse-item.vue?vue&type=script&lang=js& */ 325);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_uni_collapse_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXFrQixDQUFnQix1a0JBQUcsRUFBQyIsImZpbGUiOiIzMjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91bmktY29sbGFwc2UtaXRlbS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3VuaS1jb2xsYXBzZS1pdGVtLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///324\n"); /***/ }), /* 325 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue?vue&type=script&lang=js& ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * CollapseItem 折叠面板子组件\n * @description 折叠面板子组件\n * @property {String} title 标题文字\n * @property {String} thumb 标题左侧缩略图\n * @property {String} name 唯一标志符\n * @property {Boolean} open = [true|false] 是否展开组件\n * @property {Boolean} titleBorder = [true|false] 是否显示标题分隔线\n * @property {Boolean} border = [true|false] 是否显示分隔线\n * @property {Boolean} disabled = [true|false] 是否展开面板\n * @property {Boolean} showAnimation = [true|false] 开启动画\n * @property {Boolean} showArrow = [true|false] 是否显示右侧箭头\n */\nvar _default = {\n name: 'uniCollapseItem',\n props: {\n // 列表标题\n title: {\n type: String,\n default: ''\n },\n name: {\n type: [Number, String],\n default: ''\n },\n // 是否禁用\n disabled: {\n type: Boolean,\n default: false\n },\n // 是否显示动画,app 端默认不开启动画,卡顿严重\n showAnimation: {\n type: Boolean,\n default: false\n },\n // 是否展开\n open: {\n type: Boolean,\n default: false\n },\n // 缩略图\n thumb: {\n type: String,\n default: ''\n },\n // 标题分隔线显示类型\n titleBorder: {\n type: String,\n default: 'auto'\n },\n border: {\n type: Boolean,\n default: true\n },\n showArrow: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n // TODO 随机生生元素ID,解决百度小程序获取同一个元素位置信息的bug\n var elId = \"Uni_\".concat(Math.ceil(Math.random() * 10e5).toString(36));\n return {\n isOpen: false,\n isheight: null,\n height: 0,\n elId: elId,\n nameSync: 0\n };\n },\n watch: {\n open: function open(val) {\n this.isOpen = val;\n this.onClick(val, 'init');\n }\n },\n updated: function updated(e) {\n var _this = this;\n this.$nextTick(function () {\n _this.init(true);\n });\n },\n created: function created() {\n this.collapse = this.getCollapse();\n this.oldHeight = 0;\n this.onClick(this.open, 'init');\n },\n // TODO vue2\n destroyed: function destroyed() {\n if (this.__isUnmounted) return;\n this.uninstall();\n },\n mounted: function mounted() {\n if (!this.collapse) return;\n if (this.name !== '') {\n this.nameSync = this.name;\n } else {\n this.nameSync = this.collapse.childrens.length + '';\n }\n if (this.collapse.names.indexOf(this.nameSync) === -1) {\n this.collapse.names.push(this.nameSync);\n } else {\n __f__(\"warn\", \"name \\u503C \".concat(this.nameSync, \" \\u91CD\\u590D\"), \" at uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue:154\");\n }\n if (this.collapse.childrens.indexOf(this) === -1) {\n this.collapse.childrens.push(this);\n }\n this.init();\n },\n methods: {\n init: function init(type) {\n this.getCollapseHeight(type);\n },\n uninstall: function uninstall() {\n var _this2 = this;\n if (this.collapse) {\n this.collapse.childrens.forEach(function (item, index) {\n if (item === _this2) {\n _this2.collapse.childrens.splice(index, 1);\n }\n });\n this.collapse.names.forEach(function (item, index) {\n if (item === _this2.nameSync) {\n _this2.collapse.names.splice(index, 1);\n }\n });\n }\n },\n onClick: function onClick(isOpen, type) {\n if (this.disabled) return;\n this.isOpen = isOpen;\n if (this.isOpen && this.collapse) {\n this.collapse.setAccordion(this);\n }\n if (type !== 'init') {\n this.collapse.onChange(isOpen, this);\n }\n },\n getCollapseHeight: function getCollapseHeight(type) {\n var _this3 = this;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var views = uni.createSelectorQuery().in(this);\n views.select(\"#\".concat(this.elId)).fields({\n size: true\n }, function (data) {\n // TODO 百度中可能获取不到节点信息 ,需要循环获取\n if (index >= 10) return;\n if (!data) {\n index++;\n _this3.getCollapseHeight(false, index);\n return;\n }\n _this3.height = data.height;\n _this3.isheight = true;\n if (type) return;\n _this3.onClick(_this3.isOpen, 'init');\n }).exec();\n },\n getNvueHwight: function getNvueHwight(type) {\n var _this4 = this;\n var result = dom.getComponentRect(this.$refs['collapse--hook'], function (option) {\n if (option && option.result && option.size) {\n _this4.height = option.size.height;\n _this4.isheight = true;\n if (type) return;\n _this4.onClick(_this4.open, 'init');\n }\n });\n },\n /**\n * 获取父元素实例\n */\n getCollapse: function getCollapse() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'uniCollapse';\n var parent = this.$parent;\n var parentName = parent.$options.name;\n while (parentName !== name) {\n parent = parent.$parent;\n if (!parent) return false;\n parentName = parent.$options.name;\n }\n return parent;\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdW5pLWNvbGxhcHNlL2NvbXBvbmVudHMvdW5pLWNvbGxhcHNlLWl0ZW0vdW5pLWNvbGxhcHNlLWl0ZW0udnVlIl0sIm5hbWVzIjpbIm5hbWUiLCJwcm9wcyIsInRpdGxlIiwidHlwZSIsImRlZmF1bHQiLCJkaXNhYmxlZCIsInNob3dBbmltYXRpb24iLCJvcGVuIiwidGh1bWIiLCJ0aXRsZUJvcmRlciIsImJvcmRlciIsInNob3dBcnJvdyIsImRhdGEiLCJpc09wZW4iLCJpc2hlaWdodCIsImhlaWdodCIsImVsSWQiLCJuYW1lU3luYyIsIndhdGNoIiwidXBkYXRlZCIsImNyZWF0ZWQiLCJkZXN0cm95ZWQiLCJtb3VudGVkIiwibWV0aG9kcyIsImluaXQiLCJ1bmluc3RhbGwiLCJvbkNsaWNrIiwiZ2V0Q29sbGFwc2VIZWlnaHQiLCJ2aWV3cyIsInNlbGVjdCIsImZpZWxkcyIsInNpemUiLCJpbmRleCIsImV4ZWMiLCJnZXROdnVlSHdpZ2h0IiwiZ2V0Q29sbGFwc2UiLCJwYXJlbnQiLCJwYXJlbnROYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQSxlQWFBO0VBQ0FBO0VBQ0FDO0lBQ0E7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtJQUNBSjtNQUNBRztNQUNBQztJQUNBO0lBQ0E7SUFDQUM7TUFDQUY7TUFDQUM7SUFDQTtJQUVBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFTQTtJQUNBRztNQUNBSjtNQUNBQztJQUNBO0lBQ0E7SUFDQUk7TUFDQUw7TUFDQUM7SUFDQTtJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO0lBQ0E7SUFDQU07TUFDQVA7TUFDQUM7SUFDQTtJQUNBTztNQUNBUjtNQUNBQztJQUNBO0VBQ0E7RUFDQVE7SUFDQTtJQUNBO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FYO01BQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQVk7SUFBQTtJQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0VBQ0E7RUFFQTtFQUNBQztJQUNBO0lBQ0E7RUFDQTtFQVNBQztJQUNBO0lBQ0E7TUFDQTtJQUNBO01BQ0E7SUFDQTtJQUNBO01BQ0E7SUFDQTtNQUNBO0lBQ0E7SUFDQTtNQUNBO0lBQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BRUE7SUFLQTtJQUNBQztNQUFBO01BQ0E7UUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO01BQ0E7TUFDQUMsTUFDQUMsOEJBQ0FDO1FBQ0FDO01BQ0E7UUFDQTtRQUNBO1FBQ0E7VUFDQUM7VUFDQTtVQUNBO1FBQ0E7UUFLQTtRQUVBO1FBQ0E7UUFDQTtNQUNBLEdBQ0FDO0lBQ0E7SUFDQUM7TUFBQTtNQUNBO1FBQ0E7VUFLQTtVQUVBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0FBQ0E7QUFDQTtJQUNBQztNQUFBO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO1FBQ0E7UUFDQUM7TUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMzI1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwidW5pLWNvbGxhcHNlLWl0ZW1cIj5cclxuXHRcdDwhLS0gb25DbGljayghaXNPcGVuKSAtLT5cclxuXHRcdDx2aWV3IEBjbGljaz1cIm9uQ2xpY2soIWlzT3BlbilcIiBjbGFzcz1cInVuaS1jb2xsYXBzZS1pdGVtX190aXRsZVwiXHJcblx0XHRcdDpjbGFzcz1cInsnaXMtb3Blbic6aXNPcGVuICYmdGl0bGVCb3JkZXIgPT09ICdhdXRvJyAsJ3VuaS1jb2xsYXBzZS1pdGVtLWJvcmRlcic6dGl0bGVCb3JkZXIgIT09ICdub25lJ31cIj5cclxuXHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktY29sbGFwc2UtaXRlbV9fdGl0bGUtd3JhcFwiPlxyXG5cdFx0XHRcdDxzbG90IG5hbWU9XCJ0aXRsZVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bmktY29sbGFwc2UtaXRlbV9fdGl0bGUtYm94XCIgOmNsYXNzPVwieydpcy1kaXNhYmxlZCc6ZGlzYWJsZWR9XCI+XHJcblx0XHRcdFx0XHRcdDxpbWFnZSB2LWlmPVwidGh1bWJcIiA6c3JjPVwidGh1bWJcIiBjbGFzcz1cInVuaS1jb2xsYXBzZS1pdGVtX190aXRsZS1pbWdcIiAvPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInVuaS1jb2xsYXBzZS1pdGVtX190aXRsZS10ZXh0XCI+e3sgdGl0bGUgfX08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC9zbG90PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdDx2aWV3IHYtaWY9XCJzaG93QXJyb3dcIlxyXG5cdFx0XHRcdDpjbGFzcz1cInsgJ3VuaS1jb2xsYXBzZS1pdGVtX190aXRsZS1hcnJvdy1hY3RpdmUnOiBpc09wZW4sICd1bmktY29sbGFwc2UtaXRlbS0tYW5pbWF0aW9uJzogc2hvd0FuaW1hdGlvbiA9PT0gdHJ1ZSB9XCJcclxuXHRcdFx0XHRjbGFzcz1cInVuaS1jb2xsYXBzZS1pdGVtX190aXRsZS1hcnJvd1wiPlxyXG5cdFx0XHRcdDx1bmktaWNvbnMgOmNvbG9yPVwiZGlzYWJsZWQ/JyNkZGQnOicjYmJiJ1wiIHNpemU9XCIxNFwiIHR5cGU9XCJib3R0b21cIiAvPlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInVuaS1jb2xsYXBzZS1pdGVtX193cmFwXCIgOmNsYXNzPVwieydpcy0tdHJhbnNpdGlvbic6c2hvd0FuaW1hdGlvbn1cIlxyXG5cdFx0XHQ6c3R5bGU9XCJ7aGVpZ2h0OiAoaXNPcGVuP2hlaWdodDowKSArJ3B4J31cIj5cclxuXHRcdFx0PHZpZXcgOmlkPVwiZWxJZFwiIHJlZj1cImNvbGxhcHNlLS1ob29rXCIgY2xhc3M9XCJ1bmktY29sbGFwc2UtaXRlbV9fd3JhcC1jb250ZW50XCJcclxuXHRcdFx0XHQ6Y2xhc3M9XCJ7b3Blbjppc2hlaWdodCwndW5pLWNvbGxhcHNlLWl0ZW0tLWJvcmRlcic6Ym9yZGVyJiZpc09wZW59XCI+XHJcblx0XHRcdFx0PHNsb3Q+PC9zbG90PlxyXG5cdFx0XHQ8L3ZpZXc+XHJcblx0XHQ8L3ZpZXc+XHJcblxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0Ly8gI2lmZGVmIEFQUC1OVlVFXHJcblx0Y29uc3QgZG9tID0gd2VleC5yZXF1aXJlTW9kdWxlKCdkb20nKVxyXG5cdC8vICNlbmRpZlxyXG5cdC8qKlxyXG5cdCAqIENvbGxhcHNlSXRlbSDmipjlj6DpnaLmnb/lrZDnu4Tku7ZcclxuXHQgKiBAZGVzY3JpcHRpb24g5oqY5Y+g6Z2i5p2/5a2Q57uE5Lu2XHJcblx0ICogQHByb3BlcnR5IHtTdHJpbmd9IHRpdGxlIOagh+mimOaWh+Wtl1xyXG5cdCAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB0aHVtYiDmoIfpopjlt6bkvqfnvKnnlaXlm75cclxuXHQgKiBAcHJvcGVydHkge1N0cmluZ30gbmFtZSDllK/kuIDmoIflv5fnrKZcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IG9wZW4gPSBbdHJ1ZXxmYWxzZV0g5piv5ZCm5bGV5byA57uE5Lu2XHJcblx0ICogQHByb3BlcnR5IHtCb29sZWFufSB0aXRsZUJvcmRlciA9IFt0cnVlfGZhbHNlXSDmmK/lkKbmmL7npLrmoIfpopjliIbpmpTnur9cclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IGJvcmRlciA9IFt0cnVlfGZhbHNlXSDmmK/lkKbmmL7npLrliIbpmpTnur9cclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IGRpc2FibGVkID0gW3RydWV8ZmFsc2VdIOaYr+WQpuWxleW8gOmdouadv1xyXG5cdCAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gc2hvd0FuaW1hdGlvbiA9IFt0cnVlfGZhbHNlXSDlvIDlkK/liqjnlLtcclxuXHQgKiBAcHJvcGVydHkge0Jvb2xlYW59IHNob3dBcnJvdyA9IFt0cnVlfGZhbHNlXSDmmK/lkKbmmL7npLrlj7Pkvqfnrq3lpLRcclxuXHQgKi9cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiAndW5pQ29sbGFwc2VJdGVtJyxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdC8vIOWIl+ihqOagh+mimFxyXG5cdFx0XHR0aXRsZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRuYW1lOiB7XHJcblx0XHRcdFx0dHlwZTogW051bWJlciwgU3RyaW5nXSxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmmK/lkKbnpoHnlKhcclxuXHRcdFx0ZGlzYWJsZWQ6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xyXG5cdFx0XHQvLyDmmK/lkKbmmL7npLrliqjnlLssYXBwIOerr+m7mOiupOS4jeW8gOWQr+WKqOeUu++8jOWNoemhv+S4pemHjVxyXG5cdFx0XHRzaG93QW5pbWF0aW9uOiB7XHJcblx0XHRcdFx0dHlwZTogQm9vbGVhbixcclxuXHRcdFx0XHRkZWZhdWx0OiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0Ly8gI2lmbmRlZiBBUFAtUExVU1xyXG5cdFx0XHQvLyDmmK/lkKbmmL7npLrliqjnlLtcclxuXHRcdFx0c2hvd0FuaW1hdGlvbjoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHRcdFx0Ly8g5piv5ZCm5bGV5byAXHJcblx0XHRcdG9wZW46IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOe8qeeVpeWbvlxyXG5cdFx0XHR0aHVtYjoge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiAnJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmoIfpopjliIbpmpTnur/mmL7npLrnsbvlnotcclxuXHRcdFx0dGl0bGVCb3JkZXI6IHtcclxuXHRcdFx0XHR0eXBlOiBTdHJpbmcsXHJcblx0XHRcdFx0ZGVmYXVsdDogJ2F1dG8nXHJcblx0XHRcdH0sXHJcblx0XHRcdGJvcmRlcjoge1xyXG5cdFx0XHRcdHR5cGU6IEJvb2xlYW4sXHJcblx0XHRcdFx0ZGVmYXVsdDogdHJ1ZVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzaG93QXJyb3c6IHtcclxuXHRcdFx0XHR0eXBlOiBCb29sZWFuLFxyXG5cdFx0XHRcdGRlZmF1bHQ6IHRydWVcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdC8vIFRPRE8g6ZqP5py655Sf55Sf5YWD57SgSUTvvIzop6PlhrPnmb7luqblsI/nqIvluo/ojrflj5blkIzkuIDkuKrlhYPntKDkvY3nva7kv6Hmga/nmoRidWdcclxuXHRcdFx0Y29uc3QgZWxJZCA9IGBVbmlfJHtNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDEwZTUpLnRvU3RyaW5nKDM2KX1gXHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0aXNPcGVuOiBmYWxzZSxcclxuXHRcdFx0XHRpc2hlaWdodDogbnVsbCxcclxuXHRcdFx0XHRoZWlnaHQ6IDAsXHJcblx0XHRcdFx0ZWxJZCxcclxuXHRcdFx0XHRuYW1lU3luYzogMFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0d2F0Y2g6IHtcclxuXHRcdFx0b3Blbih2YWwpIHtcclxuXHRcdFx0XHR0aGlzLmlzT3BlbiA9IHZhbFxyXG5cdFx0XHRcdHRoaXMub25DbGljayh2YWwsICdpbml0JylcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdHVwZGF0ZWQoZSkge1xyXG5cdFx0XHR0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5pbml0KHRydWUpXHJcblx0XHRcdH0pXHJcblx0XHR9LFxyXG5cdFx0Y3JlYXRlZCgpIHtcclxuXHRcdFx0dGhpcy5jb2xsYXBzZSA9IHRoaXMuZ2V0Q29sbGFwc2UoKVxyXG5cdFx0XHR0aGlzLm9sZEhlaWdodCA9IDBcclxuXHRcdFx0dGhpcy5vbkNsaWNrKHRoaXMub3BlbiwgJ2luaXQnKVxyXG5cdFx0fSxcclxuXHRcdC8vICNpZm5kZWYgVlVFM1xyXG5cdFx0Ly8gVE9ETyB2dWUyXHJcblx0XHRkZXN0cm95ZWQoKSB7XHJcblx0XHRcdGlmICh0aGlzLl9faXNVbm1vdW50ZWQpIHJldHVyblxyXG5cdFx0XHR0aGlzLnVuaW5zdGFsbCgpXHJcblx0XHR9LFxyXG5cdFx0Ly8gI2VuZGlmXHJcblx0XHQvLyAjaWZkZWYgVlVFM1xyXG5cdFx0Ly8gVE9ETyB2dWUzXHJcblx0XHR1bm1vdW50ZWQoKSB7XHJcblx0XHRcdHRoaXMuX19pc1VubW91bnRlZCA9IHRydWVcclxuXHRcdFx0dGhpcy51bmluc3RhbGwoKVxyXG5cdFx0fSxcclxuXHRcdC8vICNlbmRpZlxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0aWYgKCF0aGlzLmNvbGxhcHNlKSByZXR1cm5cclxuXHRcdFx0aWYgKHRoaXMubmFtZSAhPT0gJycpIHtcclxuXHRcdFx0XHR0aGlzLm5hbWVTeW5jID0gdGhpcy5uYW1lXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5uYW1lU3luYyA9IHRoaXMuY29sbGFwc2UuY2hpbGRyZW5zLmxlbmd0aCArICcnXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuY29sbGFwc2UubmFtZXMuaW5kZXhPZih0aGlzLm5hbWVTeW5jKSA9PT0gLTEpIHtcclxuXHRcdFx0XHR0aGlzLmNvbGxhcHNlLm5hbWVzLnB1c2godGhpcy5uYW1lU3luYylcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRjb25zb2xlLndhcm4oYG5hbWUg5YC8ICR7dGhpcy5uYW1lU3luY30g6YeN5aSNYCk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuY29sbGFwc2UuY2hpbGRyZW5zLmluZGV4T2YodGhpcykgPT09IC0xKSB7XHJcblx0XHRcdFx0dGhpcy5jb2xsYXBzZS5jaGlsZHJlbnMucHVzaCh0aGlzKVxyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuaW5pdCgpXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRpbml0KHR5cGUpIHtcclxuXHRcdFx0XHQvLyAjaWZuZGVmIEFQUC1OVlVFXHJcblx0XHRcdFx0dGhpcy5nZXRDb2xsYXBzZUhlaWdodCh0eXBlKVxyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdFx0XHRcdHRoaXMuZ2V0TnZ1ZUh3aWdodCh0eXBlKVxyXG5cdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHR9LFxyXG5cdFx0XHR1bmluc3RhbGwoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuY29sbGFwc2UpIHtcclxuXHRcdFx0XHRcdHRoaXMuY29sbGFwc2UuY2hpbGRyZW5zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChpdGVtID09PSB0aGlzKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5jb2xsYXBzZS5jaGlsZHJlbnMuc3BsaWNlKGluZGV4LCAxKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0dGhpcy5jb2xsYXBzZS5uYW1lcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoaXRlbSA9PT0gdGhpcy5uYW1lU3luYykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY29sbGFwc2UubmFtZXMuc3BsaWNlKGluZGV4LCAxKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0b25DbGljayhpc09wZW4sIHR5cGUpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXHJcblx0XHRcdFx0dGhpcy5pc09wZW4gPSBpc09wZW5cclxuXHRcdFx0XHRpZiAodGhpcy5pc09wZW4gJiYgdGhpcy5jb2xsYXBzZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5jb2xsYXBzZS5zZXRBY2NvcmRpb24odGhpcylcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHR5cGUgIT09ICdpbml0Jykge1xyXG5cdFx0XHRcdFx0dGhpcy5jb2xsYXBzZS5vbkNoYW5nZShpc09wZW4sIHRoaXMpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRDb2xsYXBzZUhlaWdodCh0eXBlLCBpbmRleCA9IDApIHtcclxuXHRcdFx0XHRjb25zdCB2aWV3cyA9IHVuaS5jcmVhdGVTZWxlY3RvclF1ZXJ5KCkuaW4odGhpcylcclxuXHRcdFx0XHR2aWV3c1xyXG5cdFx0XHRcdFx0LnNlbGVjdChgIyR7dGhpcy5lbElkfWApXHJcblx0XHRcdFx0XHQuZmllbGRzKHtcclxuXHRcdFx0XHRcdFx0c2l6ZTogdHJ1ZVxyXG5cdFx0XHRcdFx0fSwgZGF0YSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIFRPRE8g55m+5bqm5Lit5Y+v6IO96I635Y+W5LiN5Yiw6IqC54K55L+h5oGvIO+8jOmcgOimgeW+queOr+iOt+WPllxyXG5cdFx0XHRcdFx0XHRpZiAoaW5kZXggPj0gMTApIHJldHVyblxyXG5cdFx0XHRcdFx0XHRpZiAoIWRhdGEpIHtcclxuXHRcdFx0XHRcdFx0XHRpbmRleCsrXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5nZXRDb2xsYXBzZUhlaWdodChmYWxzZSwgaW5kZXgpXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ly8gI2lmZGVmIEFQUC1OVlVFXHJcblx0XHRcdFx0XHRcdHRoaXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKyAxXHJcblx0XHRcdFx0XHRcdC8vICNlbmRpZlxyXG5cdFx0XHRcdFx0XHQvLyAjaWZuZGVmIEFQUC1OVlVFXHJcblx0XHRcdFx0XHRcdHRoaXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHRcclxuXHRcdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRcdHRoaXMuaXNoZWlnaHQgPSB0cnVlXHJcblx0XHRcdFx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0XHRcdFx0dGhpcy5vbkNsaWNrKHRoaXMuaXNPcGVuLCAnaW5pdCcpXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmV4ZWMoKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXROdnVlSHdpZ2h0KHR5cGUpIHtcclxuXHRcdFx0XHRjb25zdCByZXN1bHQgPSBkb20uZ2V0Q29tcG9uZW50UmVjdCh0aGlzLiRyZWZzWydjb2xsYXBzZS0taG9vayddLCBvcHRpb24gPT4ge1xyXG5cdFx0XHRcdFx0aWYgKG9wdGlvbiAmJiBvcHRpb24ucmVzdWx0ICYmIG9wdGlvbi5zaXplKSB7XHJcblx0XHRcdFx0XHRcdC8vICNpZmRlZiBBUFAtTlZVRVxyXG5cdFx0XHRcdFx0XHR0aGlzLmhlaWdodCA9IG9wdGlvbi5zaXplLmhlaWdodCArIDFcclxuXHRcdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRcdC8vICNpZm5kZWYgQVBQLU5WVUVcclxuXHRcdFx0XHRcdFx0dGhpcy5oZWlnaHQgPSBvcHRpb24uc2l6ZS5oZWlnaHRcclxuXHRcdFx0XHRcdFx0Ly8gI2VuZGlmXHJcblx0XHRcdFx0XHRcdHRoaXMuaXNoZWlnaHQgPSB0cnVlXHJcblx0XHRcdFx0XHRcdGlmICh0eXBlKSByZXR1cm5cclxuXHRcdFx0XHRcdFx0dGhpcy5vbkNsaWNrKHRoaXMub3BlbiwgJ2luaXQnKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKlxyXG5cdFx0XHQgKiDojrflj5bniLblhYPntKDlrp7kvotcclxuXHRcdFx0ICovXHJcblx0XHRcdGdldENvbGxhcHNlKG5hbWUgPSAndW5pQ29sbGFwc2UnKSB7XHJcblx0XHRcdFx0bGV0IHBhcmVudCA9IHRoaXMuJHBhcmVudDtcclxuXHRcdFx0XHRsZXQgcGFyZW50TmFtZSA9IHBhcmVudC4kb3B0aW9ucy5uYW1lO1xyXG5cdFx0XHRcdHdoaWxlIChwYXJlbnROYW1lICE9PSBuYW1lKSB7XHJcblx0XHRcdFx0XHRwYXJlbnQgPSBwYXJlbnQuJHBhcmVudDtcclxuXHRcdFx0XHRcdGlmICghcGFyZW50KSByZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHRwYXJlbnROYW1lID0gcGFyZW50LiRvcHRpb25zLm5hbWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBwYXJlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XHJcblx0LnVuaS1jb2xsYXBzZS1pdGVtIHtcclxuXHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblxyXG5cdFx0LyogI2VuZGlmICovXHJcblx0XHQmX190aXRsZSB7XHJcblx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHR0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tLWNvbG9yIC4zcztcclxuXHJcblx0XHRcdC8vIHRyYW5zaXRpb24tcHJvcGVydHk6IGJvcmRlci1ib3R0b20tY29sb3I7XHJcblx0XHRcdC8vIHRyYW5zaXRpb24tZHVyYXRpb246IDVzO1xyXG5cdFx0XHQmLXdyYXAge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdGZsZXg6IDE7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLWJveCB7XHJcblx0XHRcdFx0cGFkZGluZzogMCAxNXB4O1xyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRoZWlnaHQ6IDQ4cHg7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDQ4cHg7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdFx0XHRjb2xvcjogIzMwMzEzMztcclxuXHRcdFx0XHRmb250LXNpemU6IDEzcHg7XHJcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcclxuXHRcdFx0XHQvKiAjaWZkZWYgSDUgKi9cclxuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcclxuXHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0Ji5pcy1kaXNhYmxlZCB7XHJcblx0XHRcdFx0XHQudW5pLWNvbGxhcHNlLWl0ZW1fX3RpdGxlLXRleHQge1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogIzk5OTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLnVuaS1jb2xsYXBzZS1pdGVtLWJvcmRlciB7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmVlZjU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYuaXMtb3BlbiB7XHJcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtaW1nIHtcclxuXHRcdFx0XHRoZWlnaHQ6IDIycHg7XHJcblx0XHRcdFx0d2lkdGg6IDIycHg7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLXRleHQge1xyXG5cdFx0XHRcdGZsZXg6IDE7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0XHRcdGNvbG9yOiBpbmhlcml0O1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHRcdC8qICNpZmRlZiBBUFAtTlZVRSAqL1xyXG5cdFx0XHRcdGxpbmVzOiAxO1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtYXJyb3cge1xyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdFx0LyogI2VuZGlmICovXHJcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0XHR3aWR0aDogMjBweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDIwcHg7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG5cclxuXHRcdFx0XHQmLWFjdGl2ZSB7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3dyYXAge1xyXG5cdFx0XHQvKiAjaWZuZGVmIEFQUC1OVlVFICovXHJcblx0XHRcdHdpbGwtY2hhbmdlOiBoZWlnaHQ7XHJcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdGhlaWdodDogMDtcclxuXHJcblx0XHRcdCYuaXMtLXRyYW5zaXRpb24ge1xyXG5cdFx0XHRcdC8vIHRyYW5zaXRpb246IGFsbCAwLjNzO1xyXG5cdFx0XHRcdHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgYm9yZGVyLWJvdHRvbS13aWR0aDtcclxuXHRcdFx0XHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG5cdFx0XHRcdC8qICNpZm5kZWYgQVBQLU5WVUUgKi9cclxuXHRcdFx0XHR3aWxsLWNoYW5nZTogaGVpZ2h0O1xyXG5cdFx0XHRcdC8qICNlbmRpZiAqL1xyXG5cdFx0XHR9XHJcblxyXG5cclxuXHJcblx0XHRcdCYtY29udGVudCB7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcclxuXHRcdFx0XHRjb2xvcjogIzMwMzEzMztcclxuXHRcdFx0XHQvLyB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcztcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAwO1xyXG5cclxuXHRcdFx0XHQmLnVuaS1jb2xsYXBzZS1pdGVtLS1ib3JkZXIge1xyXG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xyXG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogcmVkO1xyXG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI2ViZWVmNTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCYub3BlbiB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ji0tYW5pbWF0aW9uIHtcclxuXHRcdFx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xyXG5cdFx0XHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjNzO1xyXG5cdFx0XHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///325\n"); /***/ }), /* 326 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-subsection/u-subsection.vue ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./u-subsection.vue?vue&type=template&id=78c1286e&scoped=true& */ 327);\n/* harmony import */ var _u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./u-subsection.vue?vue&type=script&lang=js& */ 329);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _u_subsection_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 _u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"78c1286e\",\n null,\n false,\n _u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/uview-ui/components/u-subsection/u-subsection.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBcUk7QUFDckk7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSxtR0FBTTtBQUNSLEVBQUUsNEdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsdUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi91LXN1YnNlY3Rpb24udnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTc4YzEyODZlJnNjb3BlZD10cnVlJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vdS1zdWJzZWN0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vdS1zdWJzZWN0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjc4YzEyODZlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3V2aWV3LXVpL2NvbXBvbmVudHMvdS1zdWJzZWN0aW9uL3Utc3Vic2VjdGlvbi52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///326\n"); /***/ }), /* 327 */ /*!*****************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-subsection/u-subsection.vue?vue&type=template&id=78c1286e&scoped=true& ***! \*****************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-subsection.vue?vue&type=template&id=78c1286e&scoped=true& */ 328); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_template_id_78c1286e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 328 */ /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-subsection/u-subsection.vue?vue&type=template&id=78c1286e&scoped=true& ***! \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { ref: "u-subsection", staticClass: _vm._$s(0, "sc", "u-subsection"), class: _vm._$s(0, "c", ["u-subsection--" + _vm.mode]), style: _vm._$s(0, "s", [ _vm.$u.addStyle(_vm.customStyle), _vm.wrapperStyle, ]), attrs: { _i: 0 }, }, [ _c("view", { ref: "u-subsection__bar", staticClass: _vm._$s(1, "sc", "u-subsection__bar"), class: _vm._$s(1, "c", [ _vm.mode === "button" && "u-subsection--button__bar", _vm.current === 0 && _vm.mode === "subsection" && "u-subsection__bar--first", _vm.current > 0 && _vm.current < _vm.list.length - 1 && _vm.mode === "subsection" && "u-subsection__bar--center", _vm.current === _vm.list.length - 1 && _vm.mode === "subsection" && "u-subsection__bar--last", ]), style: _vm._$s(1, "s", [_vm.barStyle]), attrs: { _i: 1 }, }), _vm._l( _vm._$s(2, "f", { forItems: _vm.list }), function (item, index, $20, $30) { return _c( "view", { key: _vm._$s(2, "f", { forIndex: $20, key: index }), ref: _vm._$s("2-" + $30, "ref", "u-subsection__item--" + index), refInFor: true, staticClass: _vm._$s("2-" + $30, "sc", "u-subsection__item"), class: _vm._$s("2-" + $30, "c", [ "u-subsection__item--" + index, index < _vm.list.length - 1 && "u-subsection__item--no-border-right", index === 0 && "u-subsection__item--first", index === _vm.list.length - 1 && "u-subsection__item--last", ]), style: _vm._$s("2-" + $30, "s", [_vm.itemStyle(index)]), attrs: { _i: "2-" + $30 }, on: { click: function ($event) { return _vm.clickHandler(index) }, }, }, [ _c( "text", { staticClass: _vm._$s( "3-" + $30, "sc", "u-subsection__item__text" ), style: _vm._$s("3-" + $30, "s", [_vm.textStyle(index)]), attrs: { _i: "3-" + $30 }, }, [_vm._v(_vm._$s("3-" + $30, "t0-0", _vm._s(_vm.getText(item))))] ), ] ) } ), ], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 329 */ /*!***********************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-subsection/u-subsection.vue?vue&type=script&lang=js& ***! \***********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./u-subsection.vue?vue&type=script&lang=js& */ 330);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_u_subsection_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdrQixDQUFnQixra0JBQUcsRUFBQyIsImZpbGUiOiIzMjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXN1YnNlY3Rpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi91LXN1YnNlY3Rpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///329\n"); /***/ }), /* 330 */ /*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-subsection/u-subsection.vue?vue&type=script&lang=js& ***! \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _props = _interopRequireDefault(__webpack_require__(/*! ./props.js */ 331));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\r\n * Subsection 分段器\r\n * @description 该分段器一般用于用户从几个选项中选择某一个的场景\r\n * @tutorial https://www.uviewui.com/components/subsection.html\r\n * @property {Array}\t\t\tlist\t\t\ttab的数据\r\n * @property {String | Number}\tcurrent\t\t\t当前活动的tab的index(默认 0 )\r\n * @property {String}\t\t\tactiveColor\t\t激活时的颜色(默认 '#3c9cff' )\r\n * @property {String}\t\t\tinactiveColor\t未激活时的颜色(默认 '#303133' )\r\n * @property {String}\t\t\tmode\t\t\t模式选择,mode=button为按钮形式,mode=subsection时为分段模式(默认 'button' )\r\n * @property {String | Number}\tfontSize\t\t字体大小,单位px(默认 12 )\r\n * @property {Boolean}\t\t\tbold\t\t\t激活选项的字体是否加粗(默认 true )\r\n * @property {String}\t\t\tbgColor\t\t\t组件背景颜色,mode为button时有效(默认 '#eeeeef' )\r\n * @property {Object}\t\t\tcustomStyle\t\t定义需要用到的外部样式\r\n * @property {String}\t keyName\t 从`list`元素对象中读取的键名(默认 'name' )\r\n *\r\n * @event {Function} change\t\t分段器选项发生改变时触发 回调 index:选项的index索引值,从0开始\r\n * @example \r\n */\nvar _default = {\n name: \"u-subsection\",\n mixins: [uni.$u.mpMixin, uni.$u.mixin, _props.default],\n data: function data() {\n return {\n // 组件尺寸\n itemRect: {\n width: 0,\n height: 0\n }\n };\n },\n watch: {\n list: function list(newValue, oldValue) {\n this.init();\n },\n current: {\n immediate: true,\n handler: function handler(n) {}\n }\n },\n computed: {\n wrapperStyle: function wrapperStyle() {\n var style = {};\n // button模式时,设置背景色\n if (this.mode === \"button\") {\n style.backgroundColor = this.bgColor;\n }\n return style;\n },\n // 滑块的样式\n barStyle: function barStyle() {\n var style = {};\n style.width = \"\".concat(this.itemRect.width, \"px\");\n style.height = \"\".concat(this.itemRect.height, \"px\");\n // 通过translateX移动滑块,其移动的距离为索引*item的宽度\n\n style.transform = \"translateX(\".concat(this.current * this.itemRect.width, \"px)\");\n if (this.mode === \"subsection\") {\n // 在subsection模式下,需要动态设置滑块的圆角,因为移动滑块使用的是translateX,无法通过父元素设置overflow: hidden隐藏滑块的直角\n style.backgroundColor = this.activeColor;\n }\n return style;\n },\n // 分段器item的样式\n itemStyle: function itemStyle(index) {\n var _this = this;\n return function (index) {\n var style = {};\n if (_this.mode === \"subsection\") {\n // 设置border的样式\n style.borderColor = _this.activeColor;\n style.borderWidth = \"1px\";\n style.borderStyle = \"solid\";\n }\n return style;\n };\n },\n // 分段器文字颜色\n textStyle: function textStyle(index) {\n var _this2 = this;\n return function (index) {\n var style = {};\n style.fontWeight = _this2.bold && _this2.current === index ? \"bold\" : \"normal\";\n style.fontSize = uni.$u.addUnit(_this2.fontSize);\n // subsection模式下,激活时默认为白色的文字\n if (_this2.mode === \"subsection\") {\n style.color = _this2.current === index ? \"#fff\" : _this2.inactiveColor;\n } else {\n // button模式下,激活时文字颜色默认为activeColor\n style.color = _this2.current === index ? _this2.activeColor : _this2.inactiveColor;\n }\n return style;\n };\n }\n },\n mounted: function mounted() {\n this.init();\n },\n methods: {\n init: function init() {\n var _this3 = this;\n uni.$u.sleep().then(function () {\n return _this3.getRect();\n });\n },\n // 判断展示文本\n getText: function getText(item) {\n return (0, _typeof2.default)(item) === 'object' ? item[this.keyName] : item;\n },\n // 获取组件的尺寸\n getRect: function getRect() {\n var _this4 = this;\n this.$uGetRect(\".u-subsection__item--0\").then(function (size) {\n _this4.itemRect = size;\n });\n },\n clickHandler: function clickHandler(index) {\n this.$emit(\"change\", index);\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXN1YnNlY3Rpb24vdS1zdWJzZWN0aW9uLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwibWl4aW5zIiwiZGF0YSIsIml0ZW1SZWN0Iiwid2lkdGgiLCJoZWlnaHQiLCJ3YXRjaCIsImxpc3QiLCJjdXJyZW50IiwiaW1tZWRpYXRlIiwiaGFuZGxlciIsImNvbXB1dGVkIiwid3JhcHBlclN0eWxlIiwic3R5bGUiLCJiYXJTdHlsZSIsIml0ZW1TdHlsZSIsInRleHRTdHlsZSIsIm1vdW50ZWQiLCJtZXRob2RzIiwiaW5pdCIsInVuaSIsImdldFRleHQiLCJnZXRSZWN0IiwiY2xpY2tIYW5kbGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQXNEQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkEsZUFrQkE7RUFDQUE7RUFDQUM7RUFDQUM7SUFDQTtNQUNBO01BQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBQztNQUNBQyw4QkFrQkE7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO1FBQ0FDO01BQ0E7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBRDtNQUNBQTtNQUNBOztNQUVBQSx1Q0FDQSwwQ0FDQTtNQUVBO1FBQ0E7UUFDQUE7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBRTtNQUFBO01BQ0E7UUFDQTtRQUNBO1VBQ0E7VUFDQUY7VUFDQUE7VUFDQUE7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBO0lBQ0FHO01BQUE7TUFDQTtRQUNBO1FBQ0FILG1CQUNBO1FBQ0FBO1FBQ0E7UUFDQTtVQUNBQSxjQUNBO1FBQ0E7VUFDQTtVQUNBQSxjQUNBLDJCQUNBLHFCQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7RUFDQTtFQUNBSTtJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFBQTtNQUNBQztRQUFBO01BQUE7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQUE7TUFFQTtRQUNBO01BQ0E7SUFVQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMzMwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gICAgPHZpZXdcclxuICAgICAgICBjbGFzcz1cInUtc3Vic2VjdGlvblwiXHJcbiAgICAgICAgcmVmPVwidS1zdWJzZWN0aW9uXCJcclxuICAgICAgICA6Y2xhc3M9XCJbYHUtc3Vic2VjdGlvbi0tJHttb2RlfWBdXCJcclxuICAgICAgICA6c3R5bGU9XCJbJHUuYWRkU3R5bGUoY3VzdG9tU3R5bGUpLCB3cmFwcGVyU3R5bGVdXCJcclxuICAgID5cclxuICAgICAgICA8dmlld1xyXG4gICAgICAgICAgICBjbGFzcz1cInUtc3Vic2VjdGlvbl9fYmFyXCJcclxuICAgICAgICAgICAgcmVmPVwidS1zdWJzZWN0aW9uX19iYXJcIlxyXG4gICAgICAgICAgICA6c3R5bGU9XCJbYmFyU3R5bGVdXCJcclxuICAgICAgICAgICAgOmNsYXNzPVwiW1xyXG4gICAgICAgICAgICAgICAgbW9kZSA9PT0gJ2J1dHRvbicgJiYgJ3Utc3Vic2VjdGlvbi0tYnV0dG9uX19iYXInLFxyXG4gICAgICAgICAgICAgICAgY3VycmVudCA9PT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdzdWJzZWN0aW9uJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICd1LXN1YnNlY3Rpb25fX2Jhci0tZmlyc3QnLFxyXG4gICAgICAgICAgICAgICAgY3VycmVudCA+IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50IDwgbGlzdC5sZW5ndGggLSAxICYmXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kZSA9PT0gJ3N1YnNlY3Rpb24nICYmXHJcbiAgICAgICAgICAgICAgICAgICAgJ3Utc3Vic2VjdGlvbl9fYmFyLS1jZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgY3VycmVudCA9PT0gbGlzdC5sZW5ndGggLSAxICYmXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kZSA9PT0gJ3N1YnNlY3Rpb24nICYmXHJcbiAgICAgICAgICAgICAgICAgICAgJ3Utc3Vic2VjdGlvbl9fYmFyLS1sYXN0JyxcclxuICAgICAgICAgICAgXVwiXHJcbiAgICAgICAgPjwvdmlldz5cclxuICAgICAgICA8dmlld1xyXG4gICAgICAgICAgICBjbGFzcz1cInUtc3Vic2VjdGlvbl9faXRlbVwiXHJcbiAgICAgICAgICAgIDpjbGFzcz1cIltcclxuICAgICAgICAgICAgICAgIGB1LXN1YnNlY3Rpb25fX2l0ZW0tLSR7aW5kZXh9YCxcclxuICAgICAgICAgICAgICAgIGluZGV4IDwgbGlzdC5sZW5ndGggLSAxICYmXHJcbiAgICAgICAgICAgICAgICAgICAgJ3Utc3Vic2VjdGlvbl9faXRlbS0tbm8tYm9yZGVyLXJpZ2h0JyxcclxuICAgICAgICAgICAgICAgIGluZGV4ID09PSAwICYmICd1LXN1YnNlY3Rpb25fX2l0ZW0tLWZpcnN0JyxcclxuICAgICAgICAgICAgICAgIGluZGV4ID09PSBsaXN0Lmxlbmd0aCAtIDEgJiYgJ3Utc3Vic2VjdGlvbl9faXRlbS0tbGFzdCcsXHJcbiAgICAgICAgICAgIF1cIlxyXG4gICAgICAgICAgICA6cmVmPVwiYHUtc3Vic2VjdGlvbl9faXRlbS0tJHtpbmRleH1gXCJcclxuICAgICAgICAgICAgOnN0eWxlPVwiW2l0ZW1TdHlsZShpbmRleCldXCJcclxuICAgICAgICAgICAgQHRhcD1cImNsaWNrSGFuZGxlcihpbmRleClcIlxyXG4gICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gbGlzdFwiXHJcbiAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8dGV4dFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ1LXN1YnNlY3Rpb25fX2l0ZW1fX3RleHRcIlxyXG4gICAgICAgICAgICAgICAgOnN0eWxlPVwiW3RleHRTdHlsZShpbmRleCldXCJcclxuICAgICAgICAgICAgICAgID57eyBnZXRUZXh0KGl0ZW0pIH19PC90ZXh0XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG4vLyAjaWZkZWYgQVBQLU5WVUVcclxuY29uc3QgZG9tID0gdW5pLnJlcXVpcmVOYXRpdmVQbHVnaW4oXCJkb21cIik7XHJcbmNvbnN0IGFuaW1hdGlvbiA9IHVuaS5yZXF1aXJlTmF0aXZlUGx1Z2luKFwiYW5pbWF0aW9uXCIpO1xyXG4vLyAjZW5kaWZcclxuaW1wb3J0IHByb3BzIGZyb20gXCIuL3Byb3BzLmpzXCI7XHJcbi8qKlxyXG4gKiBTdWJzZWN0aW9uIOWIhuauteWZqFxyXG4gKiBAZGVzY3JpcHRpb24g6K+l5YiG5q615Zmo5LiA6Iis55So5LqO55So5oi35LuO5Yeg5Liq6YCJ6aG55Lit6YCJ5oup5p+Q5LiA5Liq55qE5Zy65pmvXHJcbiAqIEB0dXRvcmlhbCBodHRwczovL3d3dy51dmlld3VpLmNvbS9jb21wb25lbnRzL3N1YnNlY3Rpb24uaHRtbFxyXG4gKiBAcHJvcGVydHkge0FycmF5fVx0XHRcdGxpc3RcdFx0XHR0YWLnmoTmlbDmja5cclxuICogQHByb3BlcnR5IHtTdHJpbmcg772cIE51bWJlcn1cdGN1cnJlbnRcdFx0XHTlvZPliY3mtLvliqjnmoR0YWLnmoRpbmRleO+8iOm7mOiupCAwIO+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRhY3RpdmVDb2xvclx0XHTmv4DmtLvml7bnmoTpopzoibLvvIjpu5jorqQgJyMzYzljZmYnIO+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRpbmFjdGl2ZUNvbG9yXHTmnKrmv4DmtLvml7bnmoTpopzoibLvvIjpu5jorqQgJyMzMDMxMzMnIO+8iVxyXG4gKiBAcHJvcGVydHkge1N0cmluZ31cdFx0XHRtb2RlXHRcdFx05qih5byP6YCJ5oup77yMbW9kZT1idXR0b27kuLrmjInpkq7lvaLlvI/vvIxtb2RlPXN1YnNlY3Rpb27ml7bkuLrliIbmrrXmqKHlvI/vvIjpu5jorqQgJ2J1dHRvbicg77yJXHJcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nIO+9nCBOdW1iZXJ9XHRmb250U2l6ZVx0XHTlrZfkvZPlpKflsI/vvIzljZXkvY1weO+8iOm7mOiupCAxMiDvvIlcclxuICogQHByb3BlcnR5IHtCb29sZWFufVx0XHRcdGJvbGRcdFx0XHTmv4DmtLvpgInpobnnmoTlrZfkvZPmmK/lkKbliqDnspfvvIjpu5jorqQgdHJ1ZSDvvIlcclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHRcdFx0YmdDb2xvclx0XHRcdOe7hOS7tuiDjOaZr+minOiJsu+8jG1vZGXkuLpidXR0b27ml7bmnInmlYjvvIjpu5jorqQgJyNlZWVlZWYnIO+8iVxyXG4gKiBAcHJvcGVydHkge09iamVjdH1cdFx0XHRjdXN0b21TdHlsZVx0XHTlrprkuYnpnIDopoHnlKjliLDnmoTlpJbpg6jmoLflvI9cclxuICogQHByb3BlcnR5IHtTdHJpbmd9XHQgICAgICAgIGtleU5hbWVcdCAgICAgICAg5LuOYGxpc3Rg5YWD57Sg5a+56LGh5Lit6K+75Y+W55qE6ZSu5ZCN77yI6buY6K6kICduYW1lJyDvvIlcclxuICpcclxuICogQGV2ZW50IHtGdW5jdGlvbn0gY2hhbmdlXHRcdOWIhuauteWZqOmAiemhueWPkeeUn+aUueWPmOaXtuinpuWPkSAg5Zue6LCDIGluZGV477ya6YCJ6aG555qEaW5kZXjntKLlvJXlgLzvvIzku44w5byA5aeLXHJcbiAqIEBleGFtcGxlIDx1LXN1YnNlY3Rpb24gOmxpc3Q9XCJsaXN0XCIgOmN1cnJlbnQ9XCJjdXJOb3dcIiBAY2hhbmdlPVwic2VjdGlvbkNoYW5nZVwiPjwvdS1zdWJzZWN0aW9uPlxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgbmFtZTogXCJ1LXN1YnNlY3Rpb25cIixcclxuICAgIG1peGluczogW3VuaS4kdS5tcE1peGluLCB1bmkuJHUubWl4aW4sIHByb3BzXSxcclxuICAgIGRhdGEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLy8g57uE5Lu25bC65a+4XHJcbiAgICAgICAgICAgIGl0ZW1SZWN0OiB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgfSxcclxuICAgIHdhdGNoOiB7XHJcbiAgICAgICAgbGlzdChuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjdXJyZW50OiB7XHJcbiAgICAgICAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgaGFuZGxlcihuKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgICAgICAgICAgICAgIC8vIOWcqOWuieWNk252dWXkuIrvvIzlpoLmnpzpgJrov4d0cmFuc2xhdGVY6L+b6KGM5L2N56e777yM5Yiw5pyA5ZCO5LiA5Liq5pe277yM5Lya5a+86Ie05Y+z5L6n5peg5rOV57uY5Yi25ZyG6KeSXHJcbiAgICAgICAgICAgICAgICAvLyDmlYXnlKhhbmltYXRpb27mqKHlnZfov5vooYzkvY3np7tcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHRoaXMuJHJlZnM/LltcInUtc3Vic2VjdGlvbl9fYmFyXCJdPy5yZWY7XHJcbiAgICAgICAgICAgICAgICAvLyDkuI3lrZjlnKhyZWbnmoTml7blgJko55CG6Kej5Li656ys5LiA5qyh5Yid5aeL5YyW5pe277yM6ZyA6KaB5riy5p+TZG9t77yM6L+b6KGM5LiA5a6a5bu25pe25YaN6I635Y+WcmVmKe+8jOi/memHjOeahDEwMG1z5piv57uP6L+H5rWL6K+V5b6X5Ye655qE57uT5p6cKOafkOS6m+WuieWNk+mcgOimgeW7tuaXtuS5heS4gOeCuSnvvIzli7/pmo/mhI/kv67mlLlcclxuICAgICAgICAgICAgICAgIHVuaS4kdS5zbGVlcChyZWYgPyAwIDogMTAwKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24udHJhbnNpdGlvbih0aGlzLiRyZWZzW1widS1zdWJzZWN0aW9uX19iYXJcIl0ucmVmLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgke1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gKiB0aGlzLml0ZW1SZWN0LndpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9cHgpYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogXCJjZW50ZXIgY2VudGVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgY29tcHV0ZWQ6IHtcclxuICAgICAgICB3cmFwcGVyU3R5bGUoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0ge307XHJcbiAgICAgICAgICAgIC8vIGJ1dHRvbuaooeW8j+aXtu+8jOiuvue9ruiDjOaZr+iJslxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSBcImJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmJnQ29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5ruR5Z2X55qE5qC35byPXHJcbiAgICAgICAgYmFyU3R5bGUoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0ge307XHJcbiAgICAgICAgICAgIHN0eWxlLndpZHRoID0gYCR7dGhpcy5pdGVtUmVjdC53aWR0aH1weGA7XHJcbiAgICAgICAgICAgIHN0eWxlLmhlaWdodCA9IGAke3RoaXMuaXRlbVJlY3QuaGVpZ2h0fXB4YDtcclxuICAgICAgICAgICAgLy8g6YCa6L+HdHJhbnNsYXRlWOenu+WKqOa7keWdl++8jOWFtuenu+WKqOeahOi3neemu+S4uue0ouW8lSppdGVt55qE5a695bqmXHJcbiAgICAgICAgICAgIC8vICNpZm5kZWYgQVBQLU5WVUVcclxuICAgICAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudCAqIHRoaXMuaXRlbVJlY3Qud2lkdGhcclxuICAgICAgICAgICAgfXB4KWA7XHJcbiAgICAgICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSBcInN1YnNlY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgLy8g5Zyoc3Vic2VjdGlvbuaooeW8j+S4i++8jOmcgOimgeWKqOaAgeiuvue9rua7keWdl+eahOWchuinku+8jOWboOS4uuenu+WKqOa7keWdl+S9v+eUqOeahOaYr3RyYW5zbGF0ZVjvvIzml6Dms5XpgJrov4fniLblhYPntKDorr7nva5vdmVyZmxvdzogaGlkZGVu6ZqQ6JeP5ruR5Z2X55qE55u06KeSXHJcbiAgICAgICAgICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmFjdGl2ZUNvbG9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBzdHlsZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWIhuauteWZqGl0ZW3nmoTmoLflvI9cclxuICAgICAgICBpdGVtU3R5bGUoaW5kZXgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSB7fTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09IFwic3Vic2VjdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g6K6+572uYm9yZGVy55qE5qC35byPXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUuYm9yZGVyQ29sb3IgPSB0aGlzLmFjdGl2ZUNvbG9yO1xyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlLmJvcmRlcldpZHRoID0gXCIxcHhcIjtcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZS5ib3JkZXJTdHlsZSA9IFwic29saWRcIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBzdHlsZTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWIhuauteWZqOaWh+Wtl+minOiJslxyXG4gICAgICAgIHRleHRTdHlsZShpbmRleCkge1xyXG4gICAgICAgICAgICByZXR1cm4gKGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZSA9IHt9O1xyXG4gICAgICAgICAgICAgICAgc3R5bGUuZm9udFdlaWdodCA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ib2xkICYmIHRoaXMuY3VycmVudCA9PT0gaW5kZXggPyBcImJvbGRcIiA6IFwibm9ybWFsXCI7XHJcbiAgICAgICAgICAgICAgICBzdHlsZS5mb250U2l6ZSA9IHVuaS4kdS5hZGRVbml0KHRoaXMuZm9udFNpemUpO1xyXG4gICAgICAgICAgICAgICAgLy8gc3Vic2VjdGlvbuaooeW8j+S4i++8jOa/gOa0u+aXtum7mOiupOS4uueZveiJsueahOaWh+Wtl1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gXCJzdWJzZWN0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZS5jb2xvciA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudCA9PT0gaW5kZXggPyBcIiNmZmZcIiA6IHRoaXMuaW5hY3RpdmVDb2xvcjtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0dG9u5qih5byP5LiL77yM5r+A5rS75pe25paH5a2X6aKc6Imy6buY6K6k5Li6YWN0aXZlQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZS5jb2xvciA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudCA9PT0gaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5hY3RpdmVDb2xvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmluYWN0aXZlQ29sb3I7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGU7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBtb3VudGVkKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSxcclxuICAgIG1ldGhvZHM6IHtcclxuICAgICAgICBpbml0KCkge1xyXG4gICAgICAgICAgICB1bmkuJHUuc2xlZXAoKS50aGVuKCgpID0+IHRoaXMuZ2V0UmVjdCgpKTtcclxuICAgICAgICB9LFxyXG5cdFx0Ly8g5Yik5pat5bGV56S65paH5pysXHJcblx0XHRnZXRUZXh0KGl0ZW0pIHtcclxuXHRcdFx0cmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyA/IGl0ZW1bdGhpcy5rZXlOYW1lXSA6IGl0ZW1cclxuXHRcdH0sXHJcbiAgICAgICAgLy8g6I635Y+W57uE5Lu255qE5bC65a+4XHJcbiAgICAgICAgZ2V0UmVjdCgpIHtcclxuICAgICAgICAgICAgLy8gI2lmbmRlZiBBUFAtTlZVRVxyXG4gICAgICAgICAgICB0aGlzLiR1R2V0UmVjdChcIi51LXN1YnNlY3Rpb25fX2l0ZW0tLTBcIikudGhlbigoc2l6ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtUmVjdCA9IHNpemU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAvLyAjZW5kaWZcclxuXHJcbiAgICAgICAgICAgIC8vICNpZmRlZiBBUFAtTlZVRVxyXG4gICAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLiRyZWZzW1widS1zdWJzZWN0aW9uX19pdGVtLS0wXCJdWzBdO1xyXG4gICAgICAgICAgICByZWYgJiZcclxuICAgICAgICAgICAgICAgIGRvbS5nZXRDb21wb25lbnRSZWN0KHJlZiwgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVJlY3QgPSByZXMuc2l6ZTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNsaWNrSGFuZGxlcihpbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLiRlbWl0KFwiY2hhbmdlXCIsIGluZGV4KTtcclxuICAgICAgICB9LFxyXG4gICAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbkBpbXBvcnQgXCIuLi8uLi9saWJzL2Nzcy9jb21wb25lbnRzLnNjc3NcIjtcclxuXHJcbi51LXN1YnNlY3Rpb24ge1xyXG4gICAgQGluY2x1ZGUgZmxleDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblx0LyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0LyogI2VuZGlmICovXHJcblxyXG4gICAgJi0tYnV0dG9uIHtcclxuICAgICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwgMjM4LCAyMzkpO1xyXG4gICAgICAgIHBhZGRpbmc6IDNweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcblxyXG4gICAgICAgICZfX2JhciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLS1zdWJzZWN0aW9uIHtcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJl9fYmFyIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgLyogI2lmbmRlZiBBUFAtTlZVRSAqL1xyXG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgY29sb3I7XHJcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcclxuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgLyogI2VuZGlmICovXHJcblxyXG4gICAgICAgICYtLWZpcnN0IHtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1jZW50ZXIge1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLWxhc3Qge1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJl9faXRlbSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgLy8gdnVl546v5aKD5LiL77yM6ZyA6KaB6K6+572u55u45a+55a6a5L2N77yM5Zug5Li65ruR5Z2X5Li657ud5a+55a6a5L2N77yMaXRlbemcgOimgeWcqOa7keWdl+eahOS4iumdolxyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgJi0tbm8tYm9yZGVyLXJpZ2h0IHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1maXJzdCB7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi0tbGFzdCB7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmX190ZXh0IHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTJweDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3I7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///330\n"); /***/ }), /* 331 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/uview-ui/components/u-subsection/props.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n props: {\n // tab的数据\n list: {\n type: Array,\n default: uni.$u.props.subsection.list\n },\n // 当前活动的tab的index\n current: {\n type: [String, Number],\n default: uni.$u.props.subsection.current\n },\n // 激活的颜色\n activeColor: {\n type: String,\n default: uni.$u.props.subsection.activeColor\n },\n // 未激活的颜色\n inactiveColor: {\n type: String,\n default: uni.$u.props.subsection.inactiveColor\n },\n // 模式选择,mode=button为按钮形式,mode=subsection时为分段模式\n mode: {\n type: String,\n default: uni.$u.props.subsection.mode\n },\n // 字体大小\n fontSize: {\n type: [String, Number],\n default: uni.$u.props.subsection.fontSize\n },\n // 激活tab的字体是否加粗\n bold: {\n type: Boolean,\n default: uni.$u.props.subsection.bold\n },\n // mode = button时,组件背景颜色\n bgColor: {\n type: String,\n default: uni.$u.props.subsection.bgColor\n },\n // 从list元素对象中读取的键名\n keyName: {\n type: String,\n default: uni.$u.props.subsection.keyName\n }\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LXN1YnNlY3Rpb24vcHJvcHMuanMiXSwibmFtZXMiOlsicHJvcHMiLCJsaXN0IiwidHlwZSIsIkFycmF5IiwiZGVmYXVsdCIsInVuaSIsIiR1Iiwic3Vic2VjdGlvbiIsImN1cnJlbnQiLCJTdHJpbmciLCJOdW1iZXIiLCJhY3RpdmVDb2xvciIsImluYWN0aXZlQ29sb3IiLCJtb2RlIiwiZm9udFNpemUiLCJib2xkIiwiQm9vbGVhbiIsImJnQ29sb3IiLCJrZXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFBZTtFQUNYQSxLQUFLLEVBQUU7SUFDSDtJQUNBQyxJQUFJLEVBQUU7TUFDRkMsSUFBSSxFQUFFQyxLQUFLO01BQ1hDLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sVUFBVSxDQUFDTjtJQUNyQyxDQUFDO0lBQ0Q7SUFDQU8sT0FBTyxFQUFFO01BQ0xOLElBQUksRUFBRSxDQUFDTyxNQUFNLEVBQUVDLE1BQU0sQ0FBQztNQUN0Qk4sT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxVQUFVLENBQUNDO0lBQ3JDLENBQUM7SUFDRDtJQUNBRyxXQUFXLEVBQUU7TUFDVFQsSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sVUFBVSxDQUFDSTtJQUNyQyxDQUFDO0lBQ0Q7SUFDQUMsYUFBYSxFQUFFO01BQ1hWLElBQUksRUFBRU8sTUFBTTtNQUNaTCxPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLFVBQVUsQ0FBQ0s7SUFDckMsQ0FBQztJQUNEO0lBQ0FDLElBQUksRUFBRTtNQUNGWCxJQUFJLEVBQUVPLE1BQU07TUFDWkwsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxVQUFVLENBQUNNO0lBQ3JDLENBQUM7SUFDRDtJQUNBQyxRQUFRLEVBQUU7TUFDTlosSUFBSSxFQUFFLENBQUNPLE1BQU0sRUFBRUMsTUFBTSxDQUFDO01BQ3RCTixPQUFPLEVBQUVDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDTixLQUFLLENBQUNPLFVBQVUsQ0FBQ087SUFDckMsQ0FBQztJQUNEO0lBQ0FDLElBQUksRUFBRTtNQUNGYixJQUFJLEVBQUVjLE9BQU87TUFDYlosT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxVQUFVLENBQUNRO0lBQ3JDLENBQUM7SUFDRDtJQUNBRSxPQUFPLEVBQUU7TUFDTGYsSUFBSSxFQUFFTyxNQUFNO01BQ1pMLE9BQU8sRUFBRUMsR0FBRyxDQUFDQyxFQUFFLENBQUNOLEtBQUssQ0FBQ08sVUFBVSxDQUFDVTtJQUNyQyxDQUFDO0lBQ1A7SUFDQUMsT0FBTyxFQUFFO01BQ1JoQixJQUFJLEVBQUVPLE1BQU07TUFDWkwsT0FBTyxFQUFFQyxHQUFHLENBQUNDLEVBQUUsQ0FBQ04sS0FBSyxDQUFDTyxVQUFVLENBQUNXO0lBQ2xDO0VBQ0U7QUFDSixDQUFDO0FBQUEiLCJmaWxlIjoiMzMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgcHJvcHM6IHtcclxuICAgICAgICAvLyB0YWLnmoTmlbDmja5cclxuICAgICAgICBsaXN0OiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuc3Vic2VjdGlvbi5saXN0XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDlvZPliY3mtLvliqjnmoR0YWLnmoRpbmRleFxyXG4gICAgICAgIGN1cnJlbnQ6IHtcclxuICAgICAgICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnN1YnNlY3Rpb24uY3VycmVudFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5r+A5rS755qE6aKc6ImyXHJcbiAgICAgICAgYWN0aXZlQ29sb3I6IHtcclxuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB1bmkuJHUucHJvcHMuc3Vic2VjdGlvbi5hY3RpdmVDb2xvclxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8g5pyq5r+A5rS755qE6aKc6ImyXHJcbiAgICAgICAgaW5hY3RpdmVDb2xvcjoge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5zdWJzZWN0aW9uLmluYWN0aXZlQ29sb3JcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOaooeW8j+mAieaLqe+8jG1vZGU9YnV0dG9u5Li65oyJ6ZKu5b2i5byP77yMbW9kZT1zdWJzZWN0aW9u5pe25Li65YiG5q615qih5byPXHJcbiAgICAgICAgbW9kZToge1xyXG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5zdWJzZWN0aW9uLm1vZGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIOWtl+S9k+Wkp+Wwj1xyXG4gICAgICAgIGZvbnRTaXplOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5zdWJzZWN0aW9uLmZvbnRTaXplXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyDmv4DmtLt0YWLnmoTlrZfkvZPmmK/lkKbliqDnspdcclxuICAgICAgICBib2xkOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuaS4kdS5wcm9wcy5zdWJzZWN0aW9uLmJvbGRcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIG1vZGUgPSBidXR0b27ml7bvvIznu4Tku7bog4zmma/popzoibJcclxuICAgICAgICBiZ0NvbG9yOiB7XHJcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgICAgICAgZGVmYXVsdDogdW5pLiR1LnByb3BzLnN1YnNlY3Rpb24uYmdDb2xvclxyXG4gICAgICAgIH0sXHJcblx0XHQvLyDku45saXN05YWD57Sg5a+56LGh5Lit6K+75Y+W55qE6ZSu5ZCNXHJcblx0XHRrZXlOYW1lOiB7XHJcblx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0ZGVmYXVsdDogdW5pLiR1LnByb3BzLnN1YnNlY3Rpb24ua2V5TmFtZVxyXG5cdFx0fVxyXG4gICAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///331\n"); /***/ }), /* 332 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/xcrw/detail/index.vue?vue&type=script&lang=js&mpType=page ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 333);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXdqQixDQUFnQixza0JBQUcsRUFBQyIsImZpbGUiOiIzMzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///332\n"); /***/ }), /* 333 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/xcrw/detail/index.vue?vue&type=script&lang=js&mpType=page ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _moment = _interopRequireDefault(__webpack_require__(/*! moment */ 173));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n data: function data() {\n return {\n taskTitle: '',\n taskType: '',\n taskContent: '',\n startDate: '',\n endDate: '',\n status: '',\n id: '',\n btnStatus: 0,\n xjItem: [],\n list: [\"正常\", \"异常\"],\n current: 3\n };\n },\n methods: {\n // 开始巡查\n startXc: function startXc() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n try {\n // const {data} = await uni.$http.get(`/gunshiApp/xyt/inspect/task/startInspect/${this.id}`)\n // if(data.code == 200){\n // \tthis.btnStatus = 1;\n // }\n _this.btnStatus = 1;\n _this.getXjItem(_this.id);\n } catch (error) {\n uni.$showMsg();\n }\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n // 获取巡查项\n getXjItem: function getXjItem(id) {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var _yield$uni$$http$get, data;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return uni.$http.get(\"/gunshiApp/xyt/inspect/detail/info?taskId=\".concat(id));\n case 3:\n _yield$uni$$http$get = _context2.sent;\n data = _yield$uni$$http$get.data;\n if (data.code == 200) {\n _this2.xjItem = data.data;\n }\n _context2.next = 11;\n break;\n case 8:\n _context2.prev = 8;\n _context2.t0 = _context2[\"catch\"](0);\n uni.$showMsg();\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[0, 8]]);\n }))();\n },\n change: function change(e) {\n this.current = e;\n }\n },\n onLoad: function onLoad(option) {\n this.taskTitle = option.taskTitle;\n this.taskType = JSON.parse(option.taskType);\n this.taskContent = JSON.parse(option.taskContent);\n this.startDate = option.startDate;\n this.endDate = option.endDate == \"null\" ? \"\" : option.endDate;\n this.status = option.status;\n this.id = option.id;\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMveGNydy9kZXRhaWwvaW5kZXgudnVlIl0sIm5hbWVzIjpbImRhdGEiLCJ0YXNrVGl0bGUiLCJ0YXNrVHlwZSIsInRhc2tDb250ZW50Iiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInN0YXR1cyIsImlkIiwiYnRuU3RhdHVzIiwieGpJdGVtIiwibGlzdCIsImN1cnJlbnQiLCJtZXRob2RzIiwic3RhcnRYYyIsInVuaSIsImdldFhqSXRlbSIsImNoYW5nZSIsIm9uTG9hZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBMEZBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFDQTtFQUNBQTtJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0lBQ0FDO01BQUE7TUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO2tCQUNBO2dCQUNBO2tCQUNBQztnQkFDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQTtnQkFBQSxPQUVBRDtjQUFBO2dCQUFBO2dCQUFBZDtnQkFDQTtrQkFDQTtnQkFDQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUVBYztjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUVBO0lBQ0FFO01BQ0E7SUFDQTtFQUNBO0VBQ0FDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMzMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IDpzdHlsZT1cIntoZWlnaHQ6JzEwMHZoJyxvdmVyZmxvdzonaGlkZGVuJ31cIj5cclxuXHRcdDx1LXN0YXR1cy1iYXI+PC91LXN0YXR1cy1iYXI+XHJcblx0XHQ8dS1uYXZiYXIgOnRpdGxlPVwidGFza1RpdGxlXCIgOmF1dG9CYWNrPVwidHJ1ZVwiIDp0aXRsZVN0eWxlPVwie1xyXG5cdFx0XHRcdGZvbnRTaXplOicxOHB4J1xyXG5cdFx0XHR9XCIgOmhlaWdodD0nNDQnIDpzYWZlQXJlYUluc2V0VG9wPXRydWUgbGVmdEljb25TaXplPScyMCcgbGVmdEljb25Db2xvcj0ncmdiKDE1MywgMTUzLCAxNTMpJz5cclxuXHRcdDwvdS1uYXZiYXI+XHJcblx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwibWFyZ2luLXRvcDogNDRweDs7YmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtib3JkZXItdG9wOiAxcHggc29saWQgI2YwZjBmMDsgaGVpZ2h0OmNhbGMoMTAwdmggLSA0NHB4KVwiPlxyXG5cdFx0XHQ8dmlldyAgc3R5bGU9XCJtYXJnaW46IDEwcHg7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtwYWRkaW5nOiAxMHB4O1wiPlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJibHVlVGlhb1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cclxuXHRcdFx0XHRcdFx05Z+65pys5L+h5oGvXHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudEl0ZW1cIj5cclxuXHRcdFx0ICAgICAgICA8dmlldyBjbGFzcz1cIml0ZW1DXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0PuS7u+WKoeagh+mimDwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PHRleHQ+e3t0YXNrVGl0bGV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbUNcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQ+5Lu75Yqh57G75Z6LPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8dGV4dD57e3Rhc2tUeXBlID09IDEgPyBcIuaXpeW4uOW3oeafpVwiIDogdGFza1R5cGUgPT0gMiA/IFwi54m55Yir5qOA5p+lXCIgOiB0YXNrVHlwZSA9PSAzID8gXCLmsZvliY3lt6Hmo4BcIiA6ICcnIH19PC90ZXh0PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtQ1wiPlxyXG5cdFx0XHRcdFx0XHQ8dGV4dD7ku7vliqHlhoXlrrk8L3RleHQ+XHJcblx0XHRcdFx0XHRcdDx0ZXh0Pnt7dGFza0NvbnRlbnQgPyB0YXNrQ29udGVudCA6ICcnfX08L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1DXCI+XHJcblx0XHRcdFx0XHRcdDx0ZXh0PuW8gOWni+aXpeacnzwvdGV4dD5cclxuXHRcdFx0XHRcdFx0PHRleHQ+e3tzdGFydERhdGV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbUNcIj5cclxuXHRcdFx0XHRcdFx0PHRleHQ+57uT5p2f5pel5pyfPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHQ8dGV4dD57e2VuZERhdGV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0XHJcblx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyB2LXNob3c9XCJzdGF0dXMgPT0gMCAmJiBidG5TdGF0dXMgPT0gMFwiIHN0eWxlPVwiZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDogY2VudGVyO21hcmdpbi10b3A6IDIwJTtcIj5cclxuICAgICAgICAgICAgICAgIDx2aWV3IGNsYXNzPVwiY2lyY2xlLWJ0blwiIEBjbGljaz1cInN0YXJ0WGNcIj7lvIDlp4vlt6Hmn6U8L3ZpZXc+IFxyXG5cdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHQ8dmlldyB2LXNob3c9XCJidG5TdGF0dXMgIT0gMFwiIHN0eWxlPVwibWFyZ2luOiAxMHB4O2JhY2tncm91bmQtY29sb3I6ICNmZmY7cGFkZGluZzogMTBweDtcIj5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJibHVlVGlhb1wiPjwvdmlldz5cclxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cclxuXHRcdFx0XHRcdFx05beh5qOA6aG5XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudEl0ZW1cIj5cclxuXHRcdFx0XHQ8dW5pLWNvbGxhcHNlPlxyXG5cdFx0XHRcdCAgXHRcclxuXHRcdFx0XHQ8dW5pLWNvbGxhcHNlLWl0ZW0gXHJcblx0XHRcdFx0dGl0bGUtYm9yZGVyPVwibm9uZVwiIFxyXG5cdFx0XHRcdHYtZm9yPVwiKGl0ZW0saW5kZXgpIGluIHhqSXRlbVwiIFxyXG5cdFx0XHRcdDprZXk9XCJpbmRleFwiIFxyXG5cdFx0XHRcdDpib3JkZXI9XCJmYWxzZVwiIFxyXG5cdFx0XHRcdDpzaG93LWFuaW1hdGlvbj1cInRydWVcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHRcdDx0ZW1wbGF0ZSB2LXNsb3Q6dGl0bGUgPlxyXG5cdFx0XHRcdFx0PHZpZXcgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O2FsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcblx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cInl1YW5kaWFuXCI+PC90ZXh0PlxyXG5cdFx0XHRcdFx0PHRleHQ+e3tpdGVtLm5hbWV9fTwvdGV4dD5cclxuXHRcdFx0XHRcdDx0ZXh0IHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87IGNvbG9yOiNmZjAwMDBcIj57e2l0ZW0uY2hpbGRyZW4ubGVuZ3RofX3pobnmnKrloavlhpk8L3RleHQ+XHJcblx0XHRcdFx0XHQ8L3ZpZXc+XHRcclxuXHRcdFx0XHQgICA8L3RlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ4ai1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwieGotdGV4dFwiIHYtZm9yPVwiKG8saSkgaW4gaXRlbS5jaGlsZHJlblwiIDprZXk9XCJpXCI+XHJcblx0XHRcdFx0XHRcdFx0PHRleHQ+e3tvLml0ZW1EZXNjfX08L3RleHQ+XHJcblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzdWJzZWN0aW9pblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHRleHQ+54q25oCBPC90ZXh0PlxyXG5cdFx0XHRcdFx0XHRcdFx0PHUtc3Vic2VjdGlvbiBcclxuXHRcdFx0XHRcdFx0XHRcdDpsaXN0PVwibGlzdFwiIFxyXG5cdFx0XHRcdFx0XHRcdFx0OmN1cnJlbnQ9XCJjdXJyZW50XCIgXHJcblx0XHRcdFx0XHRcdFx0XHRtb2RlPVwic3Vic2VjdGlvblwiXHJcblx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cIndpZHRoOjI1MHB4O21hcmdpbi1sZWZ0OiAxMHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdEBjaGFuZ2U9XCJjaGFuZ2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0PjwvdS1zdWJzZWN0aW9uPlxyXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cclxuXHRcdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdFx0PC92aWV3PlxyXG5cdFx0XHRcdDwvdW5pLWNvbGxhcHNlLWl0ZW0gPlxyXG5cdFx0XHQ8L3VuaS1jb2xsYXBzZT5cclxuXHRcdFx0XHQ8L3ZpZXc+XHJcblx0XHRcdFx0PC92aWV3PlxyXG5cdFx0PC92aWV3PlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHR0YXNrVGl0bGU6JycsXHJcblx0XHRcdFx0dGFza1R5cGU6JycsXHJcblx0XHRcdFx0dGFza0NvbnRlbnQ6JycsXHJcblx0XHRcdFx0c3RhcnREYXRlOicnLFxyXG5cdFx0XHRcdGVuZERhdGU6JycsXHJcblx0XHRcdFx0c3RhdHVzOicnLFxyXG5cdFx0XHRcdGlkOicnLFxyXG5cdFx0XHRcdGJ0blN0YXR1czogMCxcclxuXHRcdFx0XHR4akl0ZW06W10sXHJcblx0XHRcdFx0bGlzdDpbXCLmraPluLhcIixcIuW8guW4uFwiXSxcclxuXHRcdFx0XHRjdXJyZW50OjNcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0XHRtZXRob2RzOiB7XHJcblx0XHRcdC8vIOW8gOWni+W3oeafpVxyXG5cdFx0ICAgYXN5bmMgc3RhcnRYYygpe1xyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHQvLyBjb25zdCB7ZGF0YX0gPSBhd2FpdCB1bmkuJGh0dHAuZ2V0KGAvZ3Vuc2hpQXBwL3h5dC9pbnNwZWN0L3Rhc2svc3RhcnRJbnNwZWN0LyR7dGhpcy5pZH1gKVxyXG5cdFx0XHRcdFx0Ly8gaWYoZGF0YS5jb2RlID09IDIwMCl7XHJcblx0XHRcdFx0XHQvLyBcdHRoaXMuYnRuU3RhdHVzID0gMTtcclxuXHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRcdHRoaXMuYnRuU3RhdHVzID0gMTtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0WGpJdGVtKHRoaXMuaWQpXHJcblx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRcdHVuaS4kc2hvd01zZygpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XHQvLyDojrflj5blt6Hmn6XpoblcclxuXHRcdCAgIGFzeW5jIGdldFhqSXRlbShpZCl7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGNvbnN0IHtkYXRhfSA9IGF3YWl0IHVuaS4kaHR0cC5nZXQoYC9ndW5zaGlBcHAveHl0L2luc3BlY3QvZGV0YWlsL2luZm8/dGFza0lkPSR7aWR9YClcclxuXHRcdFx0XHRcdGlmKGRhdGEuY29kZSA9PSAyMDApe1xyXG5cdFx0XHRcdFx0XHR0aGlzLnhqSXRlbSA9IGRhdGEuZGF0YVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdFx0XHR1bmkuJHNob3dNc2coKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNoYW5nZShlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IGU7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvbkxvYWQob3B0aW9uKXtcclxuXHRcdFx0dGhpcy50YXNrVGl0bGUgPSBvcHRpb24udGFza1RpdGxlXHJcblx0XHRcdHRoaXMudGFza1R5cGUgPSBKU09OLnBhcnNlKG9wdGlvbi50YXNrVHlwZSlcclxuXHRcdFx0dGhpcy50YXNrQ29udGVudCA9IEpTT04ucGFyc2Uob3B0aW9uLnRhc2tDb250ZW50KVxyXG5cdFx0XHR0aGlzLnN0YXJ0RGF0ZSA9IChvcHRpb24uc3RhcnREYXRlKVxyXG5cdFx0XHR0aGlzLmVuZERhdGUgPSBvcHRpb24uZW5kRGF0ZSA9PSBcIm51bGxcIiA/IFwiXCIgOiBvcHRpb24uZW5kRGF0ZVxyXG5cdFx0XHR0aGlzLnN0YXR1cyA9IG9wdGlvbi5zdGF0dXNcclxuXHRcdFx0dGhpcy5pZCA9IG9wdGlvbi5pZFxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcblx0Lm15VGl0bGVTdHlsZSB7XHJcblx0XHRmb250LXNpemU6IDMwcHg7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcblx0XHRoZWlnaHQ6IDIwMHB4O1xyXG5cdH1cclxuXHJcblx0LnRhYnNDbGFzcyB7XHJcblx0XHRtYXJnaW4tdG9wOiA0NHB4O1xyXG5cdFx0aGVpZ2h0OiA0NHB4O1xyXG5cdFx0cGFkZGluZzogMCA0MHB4O1xyXG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XHJcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcclxuXHR9XHJcblxyXG5cdC5pdGVtIHtcclxuXHRcdFxyXG5cdFx0cGFkZGluZy1ib3R0b206IDEwcHg7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdC8vIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdC5ibHVlVGlhb3tcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwN2FmZjtcclxuXHRcdFx0d2lkdGg6IDVweDtcclxuXHRcdFx0aGVpZ2h0OiAxNnB4O1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0XHQudGl0bGUge1xyXG5cdFx0XHRib3JkZXItd2lkdGg6IDBweDtcclxuXHRcdFx0Zm9udC1mYW1pbHk6ICflvq7ova/pm4Xpu5EgQm9sZCcsICflvq7ova/pm4Xpu5EgUmVndWxhcicsICflvq7ova/pm4Xpu5EnLCBzYW5zLXNlcmlmO1xyXG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTVweDtcclxuXHRcdFx0Y29sb3I6ICM2NjY2NjZcclxuXHRcdH1cclxuXHJcblx0XHQudGl0bGVSaWdodCB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdC5ib3JkZXIge1xyXG5cdFx0XHRcdGJvcmRlci13aWR0aDogMHB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM2LCAyNDUsIDI1NSwgMSk7XHJcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRcdFx0XHRib3JkZXItd2lkdGg6IDFweDtcclxuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogcmdiYSgxODcsIDIyMCwgMjU1LCAxKTtcclxuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XHJcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcclxuXHRcdFx0XHR3aWR0aDogNThweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDI1cHg7XHJcblx0XHRcdFx0Y29sb3I6ICM2ODlGRkY7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHQuY29udGVudEl0ZW17XHJcblx0XHQuaXRlbUN7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0Y29sb3I6ICM2NjY2NjY7XHJcblx0XHRcdHBhZGRpbmc6IDEwcHg7XHJcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xyXG5cdFx0fVxyXG5cdFx0Lml0ZW1Ob3tcclxuXHRcdFx0Y29sb3I6ICM2NjY2NjY7XHJcblx0XHRcdHBhZGRpbmc6IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdC5jaXJjbGUtYnRue1xyXG5cdFx0d2lkdGg6IDEyMHB4O1xyXG5cdFx0aGVpZ2h0OiAxMjBweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDdhZmY7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRjb2xvcjojZmZmO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0bGluZS1oZWlnaHQ6IDEyMHB4O1xyXG5cdH1cclxuXHQueXVhbmRpYW57XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDogMTBweDtcclxuXHRcdGhlaWdodDogMTBweDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICM0MDllZmY7XHJcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0fVxyXG5cdC54ai1jb250ZW50e1xyXG5cdFx0aGVpZ2h0OiAzMDBweDtcclxuXHRcdG92ZXJmbG93LXk6IGF1dG87XHJcblx0fVxyXG5cdC54ai10ZXh0e1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDEwJTtcclxuXHRcdG1hcmdpbi10b3A6IDIlO1xyXG5cdH1cclxuXHQuc3Vic2VjdGlvaW57XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0Y29sdW1uLWdhcDogMTBweDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdH1cclxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///333\n"); /***/ }), /* 334 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/stlljk/index.vue?mpType=page ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=5e75e7ee&scoped=true&mpType=page */ 335);\n/* harmony import */ var _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js&mpType=page */ 388);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"5e75e7ee\",\n null,\n false,\n _index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/stlljk/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUk7QUFDekk7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ21LO0FBQ25LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSx1R0FBTTtBQUNSLEVBQUUsZ0hBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzM0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWU3NWU3ZWUmc2NvcGVkPXRydWUmbXBUeXBlPXBhZ2VcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZtcFR5cGU9cGFnZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjVlNzVlN2VlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL3N0bGxqay9pbmRleC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///334\n"); /***/ }), /* 335 */ /*!*************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/stlljk/index.vue?vue&type=template&id=5e75e7ee&scoped=true&mpType=page ***! \*************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=5e75e7ee&scoped=true&mpType=page */ 336); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_5e75e7ee_scoped_true_mpType_page__WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 336 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/stlljk/index.vue?vue&type=template&id=5e75e7ee&scoped=true&mpType=page ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { uStatusBar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue */ 91) .default, uNavbar: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-navbar/u-navbar.vue */ 97) .default, qiunDataCharts: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue */ 337) .default, uDatetimePicker: __webpack_require__(/*! @/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue */ 110) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", [ _c("u-status-bar", { attrs: { _i: 1 } }), _c("u-navbar", { attrs: { title: "生态流量监控", autoBack: true, titleStyle: { fontSize: "18px", }, height: 44, safeAreaInsetTop: true, leftIconSize: "20", leftIconColor: "rgb(153, 153, 153)", _i: 2, }, }), _c( "view", { staticClass: _vm._$s(3, "sc", "jcsj-box"), attrs: { _i: 3 } }, [ _c( "view", { staticClass: _vm._$s(4, "sc", "time-ranger"), attrs: { _i: 4 } }, [ _c( "view", { staticClass: _vm._$s(5, "sc", "start-time"), attrs: { _i: 5 }, }, [ _c("text"), _c( "text", { attrs: { _i: 7 }, on: { click: function ($event) { _vm.showTime = true }, }, }, [_vm._v(_vm._$s(7, "t0-0", _vm._s(_vm.stm)))] ), ] ), _c( "view", { staticClass: _vm._$s(8, "sc", "end-time"), attrs: { _i: 8 } }, [ _c("text"), _c( "text", { attrs: { _i: 10 }, on: { click: function ($event) { _vm.showTime1 = true }, }, }, [_vm._v(_vm._$s(10, "t0-0", _vm._s(_vm.etm)))] ), _c("view", { staticClass: _vm._$s(11, "sc", "search-btn"), attrs: { _i: 11 }, on: { click: _vm.searchHandle }, }), ] ), ] ), _c( "view", { staticClass: _vm._$s(12, "sc", "jcsj-content"), attrs: { _i: 12 }, }, [ _c( "view", { staticClass: _vm._$s(13, "sc", "jcsj-charts"), attrs: { _i: 13 }, }, [ _c("qiun-data-charts", { attrs: { chartData: _vm.chartData.chartData, echartsApp: true, eopts: _vm.chartData.eopts, _i: 14, }, }), ], 1 ), _c( "view", [ _c("JcsjTable", { attrs: { tableData: _vm.tableData, _i: 16 }, }), ], 1 ), ] ), _c("u-datetime-picker", { attrs: { show: _vm.showTime, mode: "datetime", _i: 17 }, on: { confirm: _vm.handleStartTime, cancel: function ($event) { _vm.showTime = false }, }, model: { value: _vm._$s(17, "v-model", _vm.startTime), callback: function ($$v) { _vm.startTime = $$v }, expression: "startTime", }, }), _c("u-datetime-picker", { attrs: { show: _vm.showTime1, mode: "datetime", _i: 18 }, on: { confirm: _vm.handleEndTime, cancel: function ($event) { _vm.showTime1 = false }, }, model: { value: _vm._$s(18, "v-model", _vm.endTime), callback: function ($$v) { _vm.endTime = $$v }, expression: "endTime", }, }), ], 1 ), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 337 */ /*!**************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue ***! \**************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0%3D& */ 338);\n/* harmony import */ var _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-data-charts.vue?vue&type=script&lang=js& */ 375);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_data_charts_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 _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"fe947b98\",\n null,\n false,\n _qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbVQ7QUFDblQ7QUFDb0U7QUFDTDs7O0FBRy9EO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLHNGQUFNO0FBQ1IsRUFBRSxpUkFBTTtBQUNSLEVBQUUsMFJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUscVJBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzM3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1mZTk0N2I5OCZzY29wZWQ9dHJ1ZSZmaWx0ZXItbW9kdWxlcz1leUp5WkdOb1lYSjBjeUk2ZXlKMGVYQmxJam9pY21WdVpHVnlhbk1pTENKamIyNTBaVzUwSWpvaUlpd2ljM1JoY25RaU9qTTRPRGt3TENKaGRIUnljeUk2ZXlKdGIyUjFiR1VpT2lKeVpHTm9ZWEowY3lJc0lteGhibWNpT2lKcWN5SjlMQ0psYm1RaU9qVTBOamt5ZlgwJTNEJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3FpdW4tZGF0YS1jaGFydHMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZmU5NDdiOThcIixcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwidW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///337\n"); /***/ }), /* 338 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0%3D& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0%3D& */ 339); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_template_id_fe947b98_scoped_true_filter_modules_eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 339 */ /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=template&id=fe947b98&scoped=true&filter-modules=eyJyZGNoYXJ0cyI6eyJ0eXBlIjoicmVuZGVyanMiLCJjb250ZW50IjoiIiwic3RhcnQiOjM4ODkwLCJhdHRycyI6eyJtb2R1bGUiOiJyZGNoYXJ0cyIsImxhbmciOiJqcyJ9LCJlbmQiOjU0NjkyfX0%3D& ***! \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components try { components = { qiunLoading: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue */ 340) .default, qiunError: __webpack_require__(/*! @/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue */ 370) .default, } } catch (e) { if ( e.message.indexOf("Cannot find module") !== -1 && e.message.indexOf(".vue") !== -1 ) { console.error(e.message) console.error("1. 排查组件名称拼写是否正确") console.error( "2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom" ) console.error( "3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件" ) } else { throw e } } var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "chartsview"), attrs: { id: _vm._$s(0, "a-id", "ChartBoxId" + _vm.cid), _i: 0 }, }, [ _vm._$s(1, "i", _vm.mixinDatacomLoading) ? _c( "view", [ _c("qiun-loading", { attrs: { loadingType: _vm.loadingType, _i: 2 }, }), ], 1 ) : _vm._e(), _vm._$s(3, "i", _vm.mixinDatacomErrorMessage && _vm.errorShow) ? _c( "view", { attrs: { _i: 3 }, on: { click: _vm.reloading } }, [ _c("qiun-error", { attrs: { errorMessage: _vm.errorMessage, _i: 4 }, }), ], 1 ) : _vm._e(), _vm._$s(5, "i", _vm.echarts) ? [ _c("view", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(6, "v-show", _vm.showchart), expression: "_$s(6,'v-show',showchart)", }, ], wxsProps: { "change:resize": "echartsResize", "change:prop": "echartsOpts", }, style: _vm._$s(6, "s", { background: _vm.background }), attrs: { "data-directory": _vm._$s(6, "a-data-directory", _vm.directory), id: _vm._$s(6, "a-id", "EC" + _vm.cid), prop: _vm._$s(6, "change:echartsOpts", _vm.echartsOpts), resize: _vm._$s(6, "change:echartsResize", _vm.echartsResize), _i: 6, }, }), ] : [ _c( "view", { wxsProps: { "change:prop": "uchartsOpts" }, attrs: { id: _vm._$s(8, "a-id", "UC" + _vm.cid), prop: _vm._$s(8, "change:uchartsOpts", _vm.uchartsOpts), _i: 8, }, on: {}, }, [ _c("canvas", { directives: [ { name: "show", rawName: "v-show", value: _vm._$s(9, "v-show", _vm.showchart), expression: "_$s(9,'v-show',showchart)", }, ], style: _vm._$s(9, "s", { width: _vm.cWidth + "px", height: _vm.cHeight + "px", background: _vm.background, }), attrs: { id: _vm._$s(9, "a-id", _vm.cid), canvasId: _vm._$s(9, "a-canvasId", _vm.cid), "disable-scroll": _vm._$s( 9, "a-disable-scroll", _vm.disableScroll ), _i: 9, }, on: { error: _vm._error }, }), ] ), ], ], 2 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 340 */ /*!******************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue ***! \******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 341);\n/* harmony import */ var _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-loading.vue?vue&type=script&lang=js& */ 343);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_loading_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 _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeUg7QUFDekg7QUFDZ0U7QUFDTDs7O0FBRzNEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLGtGQUFNO0FBQ1IsRUFBRSx1RkFBTTtBQUNSLEVBQUUsZ0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzQwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFjNGZkOTk4JlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcWl1bi1sb2FkaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcWl1bi1sb2FkaW5nLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1sb2FkaW5nL3FpdW4tbG9hZGluZy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///340\n"); /***/ }), /* 341 */ /*!*************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \*************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=template&id=1c4fd998& */ 342); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_template_id_1c4fd998___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 342 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=template&id=1c4fd998& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", [ _vm._$s(1, "i", _vm.loadingType == 1) ? _c("Loading1", { attrs: { _i: 1 } }) : _vm._e(), _vm._$s(2, "i", _vm.loadingType == 2) ? _c("Loading2", { attrs: { _i: 2 } }) : _vm._e(), _vm._$s(3, "i", _vm.loadingType == 3) ? _c("Loading3", { attrs: { _i: 3 } }) : _vm._e(), _vm._$s(4, "i", _vm.loadingType == 4) ? _c("Loading4", { attrs: { _i: 4 } }) : _vm._e(), _vm._$s(5, "i", _vm.loadingType == 5) ? _c("Loading5", { attrs: { _i: 5 } }) : _vm._e(), ], 1 ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 343 */ /*!*******************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \*******************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-loading.vue?vue&type=script&lang=js& */ 344);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_loading_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdrQixDQUFnQixra0JBQUcsRUFBQyIsImZpbGUiOiIzNDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWxvYWRpbmcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///343\n"); /***/ }), /* 344 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue?vue&type=script&lang=js& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _loading = _interopRequireDefault(__webpack_require__(/*! ./loading1.vue */ 345));\nvar _loading2 = _interopRequireDefault(__webpack_require__(/*! ./loading2.vue */ 350));\nvar _loading3 = _interopRequireDefault(__webpack_require__(/*! ./loading3.vue */ 355));\nvar _loading4 = _interopRequireDefault(__webpack_require__(/*! ./loading4.vue */ 360));\nvar _loading5 = _interopRequireDefault(__webpack_require__(/*! ./loading5.vue */ 365));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n components: {\n Loading1: _loading.default,\n Loading2: _loading2.default,\n Loading3: _loading3.default,\n Loading4: _loading4.default,\n Loading5: _loading5.default\n },\n name: 'qiun-loading',\n props: {\n loadingType: {\n type: Number,\n default: 2\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9xaXVuLWxvYWRpbmcudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJMb2FkaW5nMSIsIkxvYWRpbmcyIiwiTG9hZGluZzMiLCJMb2FkaW5nNCIsIkxvYWRpbmc1IiwibmFtZSIsInByb3BzIiwibG9hZGluZ1R5cGUiLCJ0eXBlIiwiZGVmYXVsdCIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztlQUNBO0VBQ0FBO0lBQUFDO0lBQUFDO0lBQUFDO0lBQUFDO0lBQUFDO0VBQUE7RUFDQUM7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XHJcblx0IDxMb2FkaW5nMSB2LWlmPVwibG9hZGluZ1R5cGU9PTFcIi8+XHJcblx0IDxMb2FkaW5nMiB2LWlmPVwibG9hZGluZ1R5cGU9PTJcIi8+XHJcblx0IDxMb2FkaW5nMyB2LWlmPVwibG9hZGluZ1R5cGU9PTNcIi8+XHJcblx0IDxMb2FkaW5nNCB2LWlmPVwibG9hZGluZ1R5cGU9PTRcIi8+XHJcblx0IDxMb2FkaW5nNSB2LWlmPVwibG9hZGluZ1R5cGU9PTVcIi8+XHJcblx0PC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgTG9hZGluZzEgZnJvbSBcIi4vbG9hZGluZzEudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmcyIGZyb20gXCIuL2xvYWRpbmcyLnZ1ZVwiO1xyXG5cdGltcG9ydCBMb2FkaW5nMyBmcm9tIFwiLi9sb2FkaW5nMy52dWVcIjtcclxuXHRpbXBvcnQgTG9hZGluZzQgZnJvbSBcIi4vbG9hZGluZzQudnVlXCI7XHJcblx0aW1wb3J0IExvYWRpbmc1IGZyb20gXCIuL2xvYWRpbmc1LnZ1ZVwiO1xyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdGNvbXBvbmVudHM6e0xvYWRpbmcxLExvYWRpbmcyLExvYWRpbmczLExvYWRpbmc0LExvYWRpbmc1fSxcclxuXHRcdG5hbWU6ICdxaXVuLWxvYWRpbmcnLFxyXG5cdFx0cHJvcHM6IHtcclxuXHRcdFx0bG9hZGluZ1R5cGU6IHtcclxuXHRcdFx0XHR0eXBlOiBOdW1iZXIsXHJcblx0XHRcdFx0ZGVmYXVsdDogMlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGU+XHJcblxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///344\n"); /***/ }), /* 345 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 346);\n/* harmony import */ var _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading1.vue?vue&type=script&lang=js& */ 348);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading1_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 _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4e769ee\",\n null,\n false,\n _loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzQ1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9sb2FkaW5nMS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTRlNzY5ZWUmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9sb2FkaW5nMS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0ZTc2OWVlXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzEudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///345\n"); /***/ }), /* 346 */ /*!*********************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \*********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=template&id=e4e769ee&scoped=true& */ 347); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_template_id_e4e769ee_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 347 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=template&id=e4e769ee&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading1"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 348 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading1.vue?vue&type=script&lang=js& */ 349);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading1_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRqQixDQUFnQiw4akJBQUcsRUFBQyIsImZpbGUiOiIzNDguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcxLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///348\n"); /***/ }), /* 349 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading1',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMS52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzNDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0IDx2aWV3IGNsYXNzPVwiY29udGFpbmVyIGxvYWRpbmcxXCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUyXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlNFwiPjwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdsb2FkaW5nMScsXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPVwidHJ1ZVwiPlxyXG4uY29udGFpbmVyIHtcclxuICB3aWR0aDogMzBweDtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzEge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmcxIC5zaGFwZTEge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24xc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIDE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNnB4LCAxNnB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcxIC5zaGFwZTIge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUyIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIDE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjFzaGFwZTIge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2cHgsIDE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgMTZweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMSAuc2hhcGUzIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24xc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24xc2hhcGUzIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24xc2hhcGUzIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE2cHgsIC0xNnB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTZweCwgLTE2cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzEgLnNoYXBlNCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjFzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMXNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMXNoYXBlNCB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgLTE2cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTZweCwgLTE2cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24xc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNnB4LCAtMTZweCk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///349\n"); /***/ }), /* 350 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 351);\n/* harmony import */ var _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading2.vue?vue&type=script&lang=js& */ 353);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading2_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 _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4cb3aec\",\n null,\n false,\n _loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzUwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9sb2FkaW5nMi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTRjYjNhZWMmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9sb2FkaW5nMi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0Y2IzYWVjXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzIudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///350\n"); /***/ }), /* 351 */ /*!*********************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \*********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& */ 352); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_template_id_e4cb3aec_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 352 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=template&id=e4cb3aec&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading2"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 353 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading2.vue?vue&type=script&lang=js& */ 354);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading2_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRqQixDQUFnQiw4akJBQUcsRUFBQyIsImZpbGUiOiIzNTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmcyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///353\n"); /***/ }), /* 354 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading2',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMi52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzNTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0IDx2aWV3IGNsYXNzPVwiY29udGFpbmVyIGxvYWRpbmcyXCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUyXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlNFwiPjwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdsb2FkaW5nMicsXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPVwidHJ1ZVwiPlxyXG4uY29udGFpbmVyIHtcclxuICB3aWR0aDogMzBweDtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxvYWRpbmcyIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwZGVnKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEwZGVnKTtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmcyIC5zaGFwZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcbi5jb250YWluZXIubG9hZGluZzJ7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxufVxyXG5cclxuLmNvbnRhaW5lciAuc2hhcGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTBweDtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMSB7XHJcbiAgbGVmdDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5MEZGO1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMiB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkxQ0I3NDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTMge1xyXG4gIGJvdHRvbTogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFDODU4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlNCB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTY2NjY7XHJcbn1cclxuXHJcblxyXG4ubG9hZGluZzIgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTEgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAyMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTEge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwcHgsIDIwcHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzIgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uMnNoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAyMHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmcyIC5zaGFwZTMge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjJzaGFwZTMgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgLTIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMjBweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMiAuc2hhcGU0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uMnNoYXBlNCAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24yc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24yc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtMjBweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAtMjBweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjJzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0yMHB4KTtcclxuICB9XHJcbn1cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///354\n"); /***/ }), /* 355 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 356);\n/* harmony import */ var _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading3.vue?vue&type=script&lang=js& */ 358);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading3_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 _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e4af0bea\",\n null,\n false,\n _loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzU1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9sb2FkaW5nMy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTRhZjBiZWEmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9sb2FkaW5nMy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0YWYwYmVhXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzMudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///355\n"); /***/ }), /* 356 */ /*!*********************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \*********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=template&id=e4af0bea&scoped=true& */ 357); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_template_id_e4af0bea_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 357 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=template&id=e4af0bea&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading3"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 358 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading3.vue?vue&type=script&lang=js& */ 359);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading3_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRqQixDQUFnQiw4akJBQUcsRUFBQyIsImZpbGUiOiIzNTguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nMy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmczLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///358\n"); /***/ }), /* 359 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading3',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nMy52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzNTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0IDx2aWV3IGNsYXNzPVwiY29udGFpbmVyIGxvYWRpbmczXCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUyXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlNFwiPjwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdsb2FkaW5nMycsXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPVwidHJ1ZVwiPlxyXG4uY29udGFpbmVyIHtcclxuICB3aWR0aDogMzBweDtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4gLmNvbnRhaW5lci5sb2FkaW5nMyB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDFzIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTEge1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMyAuc2hhcGUyIHtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweDtcclxufVxyXG4uY29udGFpbmVyLmxvYWRpbmczIC5zaGFwZTMge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nMyAuc2hhcGU0IHtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcclxufVxyXG5cclxuLmNvbnRhaW5lciAuc2hhcGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTBweDtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMSB7XHJcbiAgbGVmdDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5MEZGO1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMiB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkxQ0I3NDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTMge1xyXG4gIGJvdHRvbTogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFDODU4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlNCB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTY2NjY7XHJcbn1cclxuXHJcbi5sb2FkaW5nMyAuc2hhcGUxIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMSAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUxIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUxIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCA1cHgpO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzMgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTIgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMiAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uM3NoYXBlMiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCA1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCA1cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUyIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nMyAuc2hhcGUzIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uM3NoYXBlMyAwLjVzIGVhc2UgMHMgaW5maW5pdGUgYWx0ZXJuYXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGUzIDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb24zc2hhcGUzIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgLTVweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTMge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmczIC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb24zc2hhcGU0IDAuNXMgZWFzZSAwcyBpbmZpbml0ZSBhbHRlcm5hdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjNzaGFwZTQgMC41cyBlYXNlIDBzIGluZmluaXRlIGFsdGVybmF0ZTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjNzaGFwZTQge1xyXG4gIGZyb20ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb24zc2hhcGU0IHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICB0byB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///359\n"); /***/ }), /* 360 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 361);\n/* harmony import */ var _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading4.vue?vue&type=script&lang=js& */ 363);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading4_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 _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e492dce8\",\n null,\n false,\n _loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9sb2FkaW5nNC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTQ5MmRjZTgmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9sb2FkaW5nNC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0OTJkY2U4XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzQudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///360\n"); /***/ }), /* 361 */ /*!*********************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \*********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=template&id=e492dce8&scoped=true& */ 362); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_template_id_e492dce8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 362 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=template&id=e492dce8&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading5"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 363 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading4.vue?vue&type=script&lang=js& */ 364);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading4_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRqQixDQUFnQiw4akJBQUcsRUFBQyIsImZpbGUiOiIzNjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nNC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc0LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///363\n"); /***/ }), /* 364 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading5',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNC52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzNjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0IDx2aWV3IGNsYXNzPVwiY29udGFpbmVyIGxvYWRpbmc1XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUyXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlNFwiPjwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdsb2FkaW5nNScsXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPVwidHJ1ZVwiPlxyXG4uY29udGFpbmVyIHtcclxuICB3aWR0aDogMzBweDtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxvYWRpbmc1IC5zaGFwZSB7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG4uY29udGFpbmVyIC5zaGFwZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiAxMHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiAxcHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUxIHtcclxuICBsZWZ0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODkwRkY7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGUyIHtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTFDQjc0O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMyB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUM4NTg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUuc2hhcGU0IHtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFNjY2NjtcclxufVxyXG5cclxuLmxvYWRpbmc1IC5zaGFwZTEge1xyXG4gIGFuaW1hdGlvbjogYW5pbWF0aW9uNXNoYXBlMSAycyBlYXNlIDBzIGluZmluaXRlIHJldmVyc2U7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb241c2hhcGUxIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNXNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNSAuc2hhcGUyIHtcclxuICBhbmltYXRpb246IGFuaW1hdGlvbjVzaGFwZTIgMnMgZWFzZSAwcyBpbmZpbml0ZSByZXZlcnNlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNXNoYXBlMiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE1cHgsIDE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNSAuc2hhcGUzIHtcclxuICBhbmltYXRpb246IGFuaW1hdGlvbjVzaGFwZTMgMnMgZWFzZSAwcyBpbmZpbml0ZSByZXZlcnNlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNXNoYXBlMyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAwKTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgfVxyXG4gIDc1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb241c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNXB4LCAtMTVweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE1cHgsIC0xNXB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTVweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNSAuc2hhcGU0IHtcclxuICBhbmltYXRpb246IGFuaW1hdGlvbjVzaGFwZTQgMnMgZWFzZSAwcyBpbmZpbml0ZSByZXZlcnNlO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNXNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uNXNoYXBlNCB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xNXB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE1cHgpO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTE1cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgLTE1cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTVweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNXB4LCAwKTtcclxuICB9XHJcbn1cclxuXHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///364\n"); /***/ }), /* 365 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 366);\n/* harmony import */ var _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loading5.vue?vue&type=script&lang=js& */ 368);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _loading5_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 _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"e476ade6\",\n null,\n false,\n _loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBaUk7QUFDakk7QUFDNEQ7QUFDTDs7O0FBR3ZEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDhFQUFNO0FBQ1IsRUFBRSwrRkFBTTtBQUNSLEVBQUUsd0dBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUdBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzY1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9sb2FkaW5nNS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTQ3NmFkZTYmc2NvcGVkPXRydWUmXCJcbnZhciByZW5kZXJqc1xuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9sb2FkaW5nNS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImU0NzZhZGU2XCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInVuaV9tb2R1bGVzL3FpdW4tZGF0YS1jaGFydHMvY29tcG9uZW50cy9xaXVuLWxvYWRpbmcvbG9hZGluZzUudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///365\n"); /***/ }), /* 366 */ /*!*********************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \*********************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=template&id=e476ade6&scoped=true& */ 367); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_template_id_e476ade6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 367 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=template&id=e476ade6&scoped=true& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "container loading6"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "shape shape1"), attrs: { _i: 1 }, }), _c("view", { staticClass: _vm._$s(2, "sc", "shape shape2"), attrs: { _i: 2 }, }), _c("view", { staticClass: _vm._$s(3, "sc", "shape shape3"), attrs: { _i: 3 }, }), _c("view", { staticClass: _vm._$s(4, "sc", "shape shape4"), attrs: { _i: 4 }, }), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 368 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./loading5.vue?vue&type=script&lang=js& */ 369);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_loading5_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRqQixDQUFnQiw4akJBQUcsRUFBQyIsImZpbGUiOiIzNjguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9sb2FkaW5nNS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stcHJlcHJvY2Vzcy1sb2FkZXIvaW5kZXguanM/P3JlZi0tNy0xIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay11bmktYXBwLWxvYWRlci91c2luZy1jb21wb25lbnRzLmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2xvYWRpbmc1LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///368\n"); /***/ }), /* 369 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'loading6',\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tbG9hZGluZy9sb2FkaW5nNS52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztlQVVBO0VBQ0FBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzNjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0IDx2aWV3IGNsYXNzPVwiY29udGFpbmVyIGxvYWRpbmc2XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlMVwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwic2hhcGUgc2hhcGUyXCI+PC92aWV3PlxyXG5cdFx0PHZpZXcgY2xhc3M9XCJzaGFwZSBzaGFwZTNcIj48L3ZpZXc+XHJcblx0XHQ8dmlldyBjbGFzcz1cInNoYXBlIHNoYXBlNFwiPjwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdsb2FkaW5nNicsXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBzY29wZWQ9XCJ0cnVlXCI+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAzMHB4O1xyXG4gIGhlaWdodDogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubG9hZGluZzYge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAxcyBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRpb24gMXMgaW5maW5pdGU7XHJcbn1cclxuLmNvbnRhaW5lci5sb2FkaW5nNiAuc2hhcGUge1xyXG4gIHdpZHRoOiAxMnB4O1xyXG4gIGhlaWdodDogMTJweDtcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuLmNvbnRhaW5lciAuc2hhcGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogMTBweDtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMSB7XHJcbiAgbGVmdDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5MEZGO1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlMiB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkxQ0I3NDtcclxufVxyXG4uY29udGFpbmVyIC5zaGFwZS5zaGFwZTMge1xyXG4gIGJvdHRvbTogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFDODU4O1xyXG59XHJcbi5jb250YWluZXIgLnNoYXBlLnNoYXBlNCB7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTY2NjY7XHJcbn1cclxuXHJcblxyXG4ubG9hZGluZzYgLnNoYXBlMSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTEgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMSAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAxOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gIH1cclxufVxyXG4ubG9hZGluZzYgLnNoYXBlMiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTIgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMiAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uNnNoYXBlMiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgfVxyXG4gIDI1JSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE4cHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb242c2hhcGUyIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHB4LCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMThweCk7XHJcbiAgfVxyXG59XHJcbi5sb2FkaW5nNiAuc2hhcGUzIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogYW5pbWF0aW9uNnNoYXBlMyAycyBsaW5lYXIgMHMgaW5maW5pdGUgbm9ybWFsO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGUzIDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb242c2hhcGUzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcclxuICB9XHJcbiAgMjUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIDApO1xyXG4gIH1cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxOHB4LCAwKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgMCk7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMThweCwgLTE4cHgpO1xyXG4gIH1cclxuICA3NSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbn1cclxuLmxvYWRpbmc2IC5zaGFwZTQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb242c2hhcGU0IDJzIGxpbmVhciAwcyBpbmZpbml0ZSBub3JtYWw7XHJcbiAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbjZzaGFwZTQgMnMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTQge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbjZzaGFwZTQge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xyXG4gIH1cclxuICAyNSUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMThweCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIC0xOHB4KTtcclxuICB9XHJcbiAgNzUlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE4cHgsIDApO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMThweCwgMCk7XHJcbiAgfVxyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///369\n"); /***/ }), /* 370 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=template&id=0507f1f4& */ 371);\n/* harmony import */ var _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./qiun-error.vue?vue&type=script&lang=js& */ 373);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _qiun_error_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 _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBdUg7QUFDdkg7QUFDOEQ7QUFDTDs7O0FBR3pEO0FBQ3lLO0FBQ3pLLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLGdGQUFNO0FBQ1IsRUFBRSxxRkFBTTtBQUNSLEVBQUUsOEZBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUZBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzcwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0wNTA3ZjFmNCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3FpdW4tZXJyb3IudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsLFxuICBmYWxzZSxcbiAgY29tcG9uZW50cyxcbiAgcmVuZGVyanNcbilcblxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJ1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL2NvbXBvbmVudHMvcWl1bi1lcnJvci9xaXVuLWVycm9yLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///370\n"); /***/ }), /* 371 */ /*!*********************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \*********************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=template&id=0507f1f4& */ 372); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_template_id_0507f1f4___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 372 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=template&id=0507f1f4& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "view", { staticClass: _vm._$s(0, "sc", "chartsview"), attrs: { _i: 0 } }, [ _c("view", { staticClass: _vm._$s(1, "sc", "charts-error"), attrs: { _i: 1 }, }), _c( "view", { staticClass: _vm._$s(2, "sc", "charts-font"), attrs: { _i: 2 } }, [ _vm._v( _vm._$s( 2, "t0-0", _vm._s(_vm.errorMessage == null ? "请点击重试" : _vm.errorMessage) ) ), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 373 */ /*!***************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-error.vue?vue&type=script&lang=js& */ 374);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_error_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQThqQixDQUFnQixna0JBQUcsRUFBQyIsImZpbGUiOiIzNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWVycm9yLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1lcnJvci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///373\n"); /***/ }), /* 374 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: 'qiun-error',\n props: {\n errorMessage: {\n type: String,\n default: null\n }\n },\n data: function data() {\n return {};\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZXJyb3IvcWl1bi1lcnJvci52dWUiXSwibmFtZXMiOlsibmFtZSIsInByb3BzIiwiZXJyb3JNZXNzYWdlIiwidHlwZSIsImRlZmF1bHQiLCJkYXRhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O2VBUUE7RUFDQUE7RUFDQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0EsUUFFQTtFQUNBO0FBQ0E7QUFBQSIsImZpbGUiOiIzNzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjaGFydHN2aWV3XCI+XHJcblx0XHQ8dmlldyBjbGFzcz1cImNoYXJ0cy1lcnJvclwiPjwvdmlldz5cclxuXHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzLWZvbnRcIj57e2Vycm9yTWVzc2FnZT09bnVsbD8n6K+354K55Ye76YeN6K+VJzplcnJvck1lc3NhZ2V9fTwvdmlldz5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdG5hbWU6ICdxaXVuLWVycm9yJyxcclxuXHRcdHByb3BzOiB7XHJcblx0XHRcdGVycm9yTWVzc2FnZToge1xyXG5cdFx0XHRcdHR5cGU6IFN0cmluZyxcclxuXHRcdFx0XHRkZWZhdWx0OiBudWxsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuXHQuY2hhcnRzdmlldyB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMTAwJTtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0ZmxleDogMTtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHR9XHJcblx0LmNoYXJ0cy1mb250e1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0Y29sb3I6ICNDQ0NDQ0M7XHJcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdH1cclxuXHQuY2hhcnRzLWVycm9ye1xyXG5cdFx0d2lkdGg6IDEyOHB4O1xyXG5cdFx0aGVpZ2h0OiAxMjhweDtcclxuXHRcdGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUNBWUFBQUREUG1ITEFBQVV6MGxFUVZSNFh1MWRlM0JjMVgzK3ptcDNqWVZXZmtQQWdDV3dZOHpMRWdsTlFDU1cweVQ5bzJTUWFES2ROdWxVeWt3Zk0razA5cCtKM0ltWUlQSlhpOXlaekRTWlppd3lhWnVaQkN3bk5HMURNb2dFbVVBQXk3eHMvTUF5TmhDTWpXV3RzSzFkZVUvbjIzT3Z0THU2ajNQdjN0MjlkNzFueGpPU2RlNDU1LzUrMy9tOXo3a0NqUlk0QlI3ZUs3ZmtjbWhyYXNMVDM3aGJUQVkrUVlBRGlnREhhZ3dGWUdoYzdnWndITUFVZ0c0aE1Qek5lOFJvV0luVEFFQ0FuSGw0cit5UkV0MERYV0liaHgzY0o1ZkhQOFRZam50RlI0RFRCRHFVSXdCbU1ySkRDdHlQSERvUXcwUThqa2VYaW5DTHRFQ3A0M0d3aDU2UjIySXhUQmJ1K0tGeE9UYlFKYm85RGxXMTdyWUFTR2RsTnlTZUtsMkpBRHBia21LaWFpdDBtV2hvWEhaa216RTUyQ2tvY212YXZ2T3NiTXZsOE1oQWwramxRcmcyQ1F6dTZCSTlOVjJZdytUMkFKaVZvK0R1TDJrU2VMUTFLZnJDOGtMY1lia1lCdi9wYmpFV2hqVU5qVXZTcGs5S1NBaWNtMnRHWHhqQWFVY2Jld0JrSkFtNnhlTEJwMVBKMm9zMDZ0dGNEbDhIMENFRWFHbnZHZWdTZzJFQVFaVFc0QjBBRW50U1Myb3YwbWhnSmM1am13VDZJREVXaTJFMHpOWjJXRUZoQzRDWmpDUnhIN0d3QWZwYmttSWtMQzlFRlFCZzIwQlhlT3lTc05CR1p4Mk9Ya0I2Vmc1Q2dBYk1aZ0Q3QlREU2toVERPZ00zK2tTREFyN2lBTk56OG40aFFSZHhvalV1OWtUalZSdXJ0S0tBSndCSUtaZlBaUE91WVdGZ1k2d2xnVjRoYXUrR05WanNuUUtlQUpET1NJcC9XdDZsYlNLZVFHOGpTT1NkQWJWK3dpc0E3RnhEU0dBcUJtd05TNURJaUdJdWN5TndLaUdlZHV0VHozLzNCZ0NiNEpCSm9HcURJSjJWVzRSRW14Um9nMFMzbEdnVC9ObGZZM1J6Q2dKalFtSlNDa3hlRHVEd0JnQ2I4SEFodlFrQ0lkQ2JTZ1FmbVNQRG1XR0R6SHNtMVVxd2pCRVVBTWJxRVJDZUFFQkd6MlJrbndSMnVXMHlBWlFkTDZEUitXRVc5MHN5WExtanRXOFNvMEpnOU1vRTl0U0Q0ZXNaQU5VQUFkMU01TkFqR09VTGFhT2tBekNLR0VhajdBcjdBb0JIRUd4clNZcWRPbnhNWitXM1pBNTlaZWh4bldrQzd5TWxKa1VNSXkxeDdJeWFWUEFOQUFNRUhUbGdUQUNPMXJZRVJscVRvdCtKOG5icDU4QzVWY0VCRGZ0bk9FcEFLQXNBZ1lQQVBnTlpRYllGUDNRZUNBeWJKL0JnMkNWQzJRRHdDb0pVQXR1ZGlKS3VFeENRTG9aYlBLaXJBb09Ib3Z1SVRoVkJ5dVhpaTJqRS9DOUkyVGFYQllzZm1UaHlhaE10Q1d5MUE0RVJiajdydnZSSTlhQ2EzRjdwSU5tM241WGRYZ3RqRmdIQVlDUXJXNHY4YkJvNk1ZRmVwNWN3bUVlZnVTd1FwRE5TUm9xOStvc2RycVJhR0JxWE1oZkRWaThnV0FTQWRFYnVzd3V5R0NLTlNMYXRCeWdYQkhVcUFRb2hNbUhFU0FLcnF6U3JvNFRJUzJ5T3ExMGRWUVFBdXlLUVVvQzdCWG5JeEhRV3d3TDRheS9xSU0vOERIYUZKdWlqdjdNOTlRemFObUF4Nmh6UUZzdmhLU214dmFrSm83b0hVb29BNE1VQTB3SEJURFlmUW5WVUI2YkZuTGMxSkhxaUZnUHd4UG5TemhLakxVbjBCK1Vwc0RvcUZrT2ZMdk81SE44QU1ONWxPSlVVMisySU1EMG5lMFFPdENjcTBrN09BTmUxVkdUb2FnN3FhQlJYZWlGRkFKak95QkVOc1YyMEpxY2dqMkZRSGd2eUpXWXZBUWZQQUp1dkF2NzE5OEFEbTRETUhKQktBbXVhZzV5cGVtUHBHTmlWV2sycERjQ0RERFFDUFRVN0VPZ21qcnhNUmdBOGRnQlltd0pPWHdCdVdnSDg3bTNnejI2T0xnRHk2cTlHOVJTTHZJQXltRlpVR3NhQ2pKekU3cUIxK3Z2bmdYUkdRZWJHNVFCL1AzMGVhRjJpUUJIbGxrOHd4ZERmR3EvZVlWTExRSkJmRU9RTk9wazMvQmc4NmhiQThpQVp3dDIvYTc4YXNYOHpzS1JKL2Z6WVFlRHR0RklIVWJjSnFpMEpuTTRGYU9YOWcyU3c3bGdIVGdQVHMwREhSeFRqVDV3RHRxelRmVHI4L2FvSkFyZlR3WDA1NVAxNTE5cTZhcEdWNHY4L1hsVTZuenYvdm84Q3Z6d0szTDBXMkxTNldxdW8vRHpWQW9Gck1paXZ5elZTdnBVbnljSU1WQVVVLy8vMmtnSUM5YitwRHFxNWppck1WWEVYMFJVQWZNa3dnb0RyTW9GUUJVYlVjb3F4VkZKc3JkUUN0QUFRWmhCVWlqQ2hHbGZpd2RTU3lweDgxZ2FBQVFMTEE2T2hJbGFORjJNR3FyaU1tMWNGcUpvRXRsYWkwbG9iQUl6cVpiUFlGN1JyVjJOK0JUNzlMOTljOEVoK2R6STQ3NFJHWVNxQjlxRHlCdWFMYXdNZ25aRThFeGphdTI0QzU2VFBBWjgrdnNEMDU5NEdQckhXNTBEV2p3VnVEMmdCd0RnbS9xMUFYNlZPQi92NVllRFdOZXJsWG5zZitNS0dZRi9VTFF2cmRUWlhBRlFpb2VOMWtWSHFUeHVBZ1NvMnhpV0NkaytEVmdXdUFFalB5dDMxWHFBUkpZQVphOTJaU3FxN0NNdHRqZ0NvaDFyOWNna1UxdWVEdXE3UEVRRFRzL0pZME5tOHNCSTBndXNLeENDTVpESW9nc3lxekpJRGlBM1lBcUN4K3l2RHM0QkhMVnNLQkZvUEVQRExOWWJUb1VDWlVzQVNBRkhZL1NmVEN4V3RxNXFCSzR6aUVCMmExVm1mc3FUQUlnQlV1cExYTC9FdnNoajBOTkNhQk03TkFyODlzVERTcDY0SE9qL2lkK1RvUDFlT1I3QVlBRDRxZzZ0Qnd1ZmVBUmhhYlY4QmZQSmFGV3haRWdlU01XRFRtc3RhQXBEOHZ1TUNSUUFJNDdHczM3d0ZyRzRHcmtzQlI4ODJtRzIxMlZoVzNycEV0UHZaaUw2T2h2bVp5T3N6RlBtN0Q2cXFYKzc2TDZ4ZkdJSC9sN21rVk1HTkt5NzczWjhuakl5aDEwODFjZkhCa0pBRWZncVp2MmtWOENtajRIUC9INEFEWjFSQnFObVliZnZFdFY3aFZYLzkvWDdIWVI0QVlVcjZQUG1tWWpTWi83a2JsUlQ0N3lPSzhVeXU4RHhBNnhYcUhBRFZ3MlhzQVJRaHVTV0JGVjdyQmVZQm9Ic3l1Tko3NTgyendCTkhnTlZMZ2IrOFRUSC84WU9xL28rN2ZmUFZDd3lucEFpQytXK2NVZk9jbndPdXZsSWRPNHRpODZNRzVnR1FkcmtGdEZvRTJmVXlrSjRGK3U0QWtuSGd4NitwbmYvWmR1Q1cxUUQ5ZjNvRFBBL0E1dGNGcEEzeDhpbmd4WGNWdVBKNjFEZ3QyN01SdUtHMVdtOGM2RHlldllFOEFNSmsvZi9ucThCTks1VmVOMTAvazhtdm53WitaUncxcGZqbllkQ09xMVZadUpkMi9Cend2MGNYR0w5aHBkcjFQR05JZ01VRjhPZTNBcXVXZWhrMUZIMG5Va25SNldVbGVRQ0VOZTM3dlplVUZPaS9BeWhVRGJRTC9Kd0U1cTRuZ0k0WU54QnhsN05pWjVrQm9DZVBBYjkvUjRtQnE2NEVlamNHWDlEaGhUbCsrc1lUYVBkeWE3c0NnUG95U00xTHZ1anpNOER6ZDNjdU1OeTA4aWtaZUJxWXFvRTduanYxdDI4cDNjM2YvK2hhcFNMczJqc3pBSTFMdW80MEpNbjRqNjRzN3YzUHp5bXBRTmVTZ0x0bkxmRHhpSGtZWGt2R0ZBQTByMllqc2Yzc1BGMGttL3IvSCs5YUVQOFA4T1JQRWhoNWVjRXJJUE5wR0xKeEY3LzNvV0xjZmVzVjgwcmJvUStVeURmN2YzSFRZdVB4K1hlQVgwMEN0NjhCUG4wRDhPOFRhc3l2YmdaYWtycHZFSXArbnV5QVBBQ21NL0tzVzdrM2IrTjQvQUJBNWxTcThjSUgwL28zOWY5ZjNLb1lRWWFiMHVEblI0QmpaNEd2M0xZQWdCKzlxaVFCK3hlMlgwK3E0a3cyMmhMOFY5cm9UWHozQlRYUDF6Nm1WQUp6RGZ4SHFVSURORUxOMDJmOWhJNy9UNnY3elNrbGJtbDhNZkZDWHp6b1JwMVB2NTduL1dqNU0vUnJKbm4yL1FHNHJsVkpJUE00K0RmdldWakI5L1lwRmZGSkl6QkVadjdpTUhBaXJVVCs1OXFCTzJ6Y3U3enVmMWZ0ZnJPS3R4QVVWRWxCRjNjR1RUdHpQQmFOdGlhRmhSeTBubEhvR0lEYy9hK2ZVbGV6MERxL1pZMjZraVhvUm9DUjBHNVd2UmtvTW5mMC94d0ZYbndQaUFGSU5nRTNMQU9tTHdLbmpQRW9LZWpmVzdYajArcTBNZWY5MnNlTFZRTkx2Rjk1SC9pVG00Q05KZlpDME84ZTVIaGVBa0pDTndCa0hzdisrenVEWEtxL3NTZ2QvdXUxeGY0N2dmbldPUjVtVmVOZTFReDhhZE9DbFc4bCtuOHdvUXpETDk2ODJDaWs3ZkRUZzhEMUthRDNabjlycmRSVGxIQTBtbW12TEpKT0hvcEVSRmc4QUsrRUlnaW9tbzZkQXk3T0tkWHdOeDNBaVJuZ1J5OERPUWwwWGdOOFpwMTl0SkRNSlpNTFJYL3BPaDdlcXdoTU5SQ21adHBrVnJlaWVQRUVDQURMajBTSDZXV2Qxa0lnUFA2RzJzVnR5NEF2MzZwRS8rNDNnRE1YMUs2K2I4TmlFSmhHSHFYRVYyNjNCd205QVk3MzFRNmdKVkY3cW5EblQ3eW5iQ1M2ekR4OFFwWEpnTmk4SlBCd21sam91b0MxZjNYN0ZkREhIMzBEbU1zQkcxWW9zVSttMFZnOGV4RzRwa1Y1QjJiZWdDRmc1aHRJTUNmN2dET2Fkc0NYYmdHdXNiRWpxa2tiTXAraXY3UVI1UE9HK2VVR0FETC9yV21nU1FCekV1aTRDdmpUOWNCVUJuamlrUHFiQ1lKekY0RWZHQmROTVc1ZzV4bVlCS1kzY09nTXNHRVZjQ2xYVFZZN3orV2tBcnhVQ0lrb0ZJQTZrZUxYeDREWFRpdURiMnViaWhka2NzQ25EWitmRFB6WklSWCtwWXZKUkJQRjZHZmJWUFJRdDEyNEZFNEFVTEpaQk9lMFl3RlVBWkc5bXYyRmQ0RzlKNHRkT0ViMGZuTkNWUXh0dVFIb3VnNGdDSDV5QURneHJkanRaUFJaZVFxdm5GSVNnRW1pTURWNlpqYnVlUDBEZ0JtOVBZZXM5VGl6aHI4NG1yOThPbDlRd3BzNjZPc3paT3lGK1dTMkdTUUtpdzJnQ2NENkJrQk1BQlQ5RE5MWTZYRktnaWNuVldDSXVRUjZCTXdiME9qejBoaGlwZzN4NWRzaWxSNnVid0EweHdHQ2dEdmFMc0pISnRQUFAveUJLdlFnODYyU1FHNWdZQnlBclpJNUVMYzErUGk3UGdDbU01SmZ1QXJOUlpCdUwwdUdNa2RnNWRzWFBrdHdjUGZTNFBNcTlzMXh6REF4UzlLWmxZeFEwd2RBbE9JQUZPUFU1V3htMXM2S0tmVHpxYnZMWVQ3SE5XTUFOQ1paaXhpaFZwOEFZSFNQbHJ4ZFdwY01NaU44L1BtdWExUVcwRStMYWpiUWVOZjZBNEJaMU1HdzV6OThiREZMeWJBbkRxdllQcHRPa01jSkdCR3VCK0JyYVJlRlJDWVUvT1BYZ1ZNZldqT1crcDRHbjFudTVSYmVkWk1JSE9lN0w2cGV2SmErRXFsdnR6V1U5WGRQb2VDUTFBTTZ2YkNwKzB0M1AzYzk2d0paek1IRzZsNFdkSlI3VnVDUjU0RUxjNnE0eEV1MHNDeW1CZml3cDJ5Z2JqMUFnT3Z6UEJRamNVOGRMOWJwTlBRb3BzMWRUN3NnQ0dZeFNjU3hHVVJhMitydWJYaCttV284NEtrZUlDdTdJY0ZiUUVQYjZQcXg2bWRwWEJWOUh2bGdvUmlrdExTN25KY3c5WDRpcHVJTTlDSldYcUhTeFZGcVhrckRSWmdPaGRnUk9ac0R2djhTY01uTVdnaVY5dVdPWHhmQUNSNnFFcnA4QkpwVlk3S0YyVVczVXJVd2dFUUM1MXFUUXJ0aVUxVUZ6OHBKSVJEcWo2N016QUdQdmE1RVBzTzd6UGtId1h5Tzk4TlgxSWVvbUU0bXlGZ25RSEF4eXNpUU1rUEJMSVpsc1dvRW1yWUx5SGZ4ZEM2ZzFpL1B4ZkprRDlPL2JPV0lmL09hR2VwN051cjhlRXdCb05DRnBIUXc2d2IvOXM3eURjd3EwRkRiQlZ3QVFBUThnVUxDVVZTUG4xeTRKNEJsWCt1V3FmSXY4NWlYRmFITjRnN3VhSjRJTnI4NHd0THpyQVJlZUZzOTlWZTNGeDhPL1pmblZkM2hYZGVxYnhPRnVYbnhBT1lCRU5hTG9ad0lUV25BM2N0NkFQTjBML3RUYkZPRVh4RlhQM09uVDExVUk1SHhoWTJIUG5qWWhDcUZwZVk4KzhCV0dHbms4OS9mQjlBT1lXUFJDWE1MWVcxZURNQjVBUENIcUJhR0VBaXNEV0NJK1BEWjR0dERTcGxFWUt4Zm9keTc5dVVLS09hcEk1NUo0R2xnMmdJc0pxRjZJWUFJTXZaaC8yTUdRRzViQTN5bUxYZ0kwSUFUQWozbWwwRzhWbXhMaWVPdFM0U25sWVh1Zm9CeXlkb1VVd2RIZVVoa2RrNmRMcWJ6d0NObmRPOEtHNW5POERHWmJsWUhzMmJ3SndlTGdXUUdtRmdieURnQkcwOE9YeCtBQjFLMElBdi8zY3RIUFAxY0V4TzZHMExLQllEdTgyUStxNGE1MnluU1dUbFVHRUZrS3BodCtaSml1NEwvVDgvZzgrMUFjNkpZL2VqT2JkY3ZsUlNXUldjOHZTVWxSdDNTOW1YZEVLSnpSckRjRnd6TDg2eW5aN3FZelcrdEFBM0tueDVRaGFhMEdjb3RySFE3MDZmMTZUNkowWllrK3IzY0UxU0V1SFJHVGdEWUhCWkdWV0lkaGN6M1dobGN1SjdDZERHRFVuL2Nyb3pKY3ByYkR0WUNBZURwWTVQRkFJaVlPK2lWMk56MTV1ZGN5azBYYys3Q3FpUGVLUExBeHZKQW9QTzVXT09yN0tNdWdUdHRFQlFCb0o3VlFDSHpHUzl3cWlYMEFpeUN3S3hCcUJZSWpQQTl2OUx1SkswbjRnbjB1bDBYRTVtN2dyMHdwYlN2ZVlxbW5ERjBudzNxV2htM2dJNE9DSFFreWlJQTZOd1hvRXVNc1BTakg4L0lYMmF1c2l1aUljamF3WEp0QVhPVmdZQkFZaktWUktlZFlXajN2WURRSjRjcXk4cndqTzRHQXE1MDJ1V0dkeWZqc3ZIRmtQRHcybjRsQW9PcGhIalFhYWxPSUhBQ2tTVUFxRi9TV1V5NkJSNmlRTHQ2V2FNRVJscVRvdDhyQ0JoZVRpVFFZV2NNMmg1MzlCS0NyQmNpaC8wOWRFQkF2dVdBWVc1ZU1oOHg5Sm5YeUJ1NWhTMzU5eFFZYTRsanArTjUxeWdVaW9TZGFVR3ZqeUJJSmJEZExkcEhLVjdZeHlxeHhOeUJJd0RxMFNNSW1pRTFHazg3MEdPdXorb0VHTjFFMXhQdlVUbzZWaU5tMUdwYVR5Q3dDL083QW9DaFJ3bnNxOVZiTnVaMXBJQTJDQ3k5QklrOXJnRGc5T21NSEFidzlRWXpRa2tCTFJBWWtjTlJBTW9JQlBZTG9FOExBQVlJNmo1VEdFcjI2aTNLVXlGbzRaRGFBTkJNUmVvdHQ5RXJVQXE0MVJJNFRhWU5BQTRTaFdOa2dWSTJRb1BaVlJPNXZZSXRBSWJHWlljUVdKWlppdjJEbmNJb2g4eC9YQ0xTTjR1NkVTU3FmdzhVQUVQamVhT3ZqMStrQkxDdXFRbWQzN2hiOEdmeiswSnV1ZWlvMGpHUzYvWlRER3ErNkNJSk1MaFBMaytjeDlsWURPMWsra1BQeUJFaE1EblFKUWJOaDFnNGtzMWlvcEVycURoZTlzY1Q2Sm5MWUJnQzkxdk41aGJyZDF2aElnQjg1MW5abHN2aFdMWVpLeWo2RFdtQWdTNnhyWEN3aGxIb1J0cnkvczRhLzFRU0hXWTRsNkZjS2JDdGNOT3hUMHlncHlVcDZLSDVhcFkyZ0xIcnQxQUZDSUhPV0F3ZHBnb29uS1VSS3ZaRmM5ZUh1S3RqUUhjcFkvTWxlM05vUXc3ZHNna1RmcjRWWERxNXJSSDQ4Rjdaazh1aHJha0pvMWJNTndkcVpBMWQrZW1wZ3gzelBRM2lvYk1uTjlCdTNBWUlQRkRjb1d1MW1jK2xCQUlBRHNRRHBzaGhwR0VZK2dORExaZ2ZDQURvTlNRdnFQTGtUU3V4ZnVOcTdJd0poT0RUQ3Y0WVVZdW5zamtjM2Y4K0JvN000djhLWXk1Y2l4bVBLVnhYYVd5bW5EV1hMUUdHeGlWakFtYUNvWnkxWFBiUFNvbjlPKzRWSFNZaGFJZEppZDJsaEpFU1V6dnUxZjgwbkJOaHl3WUEzY1k1b09oSTh1cWxhTGsraGZXWFBVYzFDSEFpalNPbkwyQ0dYZVBBWktIQnpkMFBnRUc1MGpaUjZwWnJUR1hacFd3QStKMjQ4Vnc0S05BQVFEajRVTE5WQkE2QWJ6OHJ1OFVsOVNWeUlUQ1ZiVVkvRFJzanhMeExTbWhkWVNZRUhoM29FaU1jaDJybTBpWHNzcUhTeEk1N3hmWktVL0NoWitRakFPYjFjNlhuTStnM1Q0Tkt6UmM0QUliR1pSOFRTZWFDWXpIMFVhOFpJZVk4UXpYYlNCRUFjdmxTWnl2d0JLWVBuZGIxMExqa0JRMWE0TlY4UDUxdTh6VFE2ZXluVCtBQThMT0l4ak8xbzBBREFMV2pmU2htamh3QUNnTlBvYUNnc25XT08rVkx3ckpPcTNWRURnQ0dMcmJNamRlSzBFRUdacXI5RHBFRGdGWGdxZHBFSzUwdmxzUFVRSmYvbkh3dDEvLy84OWJxRGpDUFdQQUFBQUFBU1VWT1JLNUNZSUk9XCIpO1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG5cdH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///374\n"); /***/ }), /* 375 */ /*!***************************************************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./qiun-data-charts.vue?vue&type=script&lang=js& */ 376);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_qiun_data_charts_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQW9rQixDQUFnQixza0JBQUcsRUFBQyIsImZpbGUiOiIzNzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9xaXVuLWRhdGEtY2hhcnRzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcWl1bi1kYXRhLWNoYXJ0cy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///375\n"); /***/ }), /* 376 */ /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue?vue&type=script&lang=js& ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(uniCloud, __f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar _uCharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/u-charts.js */ 385));\nvar _configUcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-ucharts.js */ 386));\nvar _configEcharts = _interopRequireDefault(__webpack_require__(/*! ../../js_sdk/u-charts/config-echarts.js */ 387));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nfunction deepCloneAssign() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n for (var i in args) {\n for (var key in args[i]) {\n if (args[i].hasOwnProperty(key)) {\n origin[key] = args[i][key] && (0, _typeof2.default)(args[i][key]) === 'object' ? deepCloneAssign(Array.isArray(args[i][key]) ? [] : {}, origin[key], args[i][key]) : args[i][key];\n }\n }\n }\n return origin;\n}\nfunction formatterAssign(args, formatter) {\n for (var key in args) {\n if (args.hasOwnProperty(key) && args[key] !== null && (0, _typeof2.default)(args[key]) === 'object') {\n formatterAssign(args[key], formatter);\n } else if (key === 'format' && typeof args[key] === 'string') {\n args['formatter'] = formatter[args[key]] ? formatter[args[key]] : undefined;\n }\n }\n return args;\n}\n\n// 时间转换函数,为了匹配uniClinetDB读取出的时间与categories不同\nfunction getFormatDate(date) {\n var seperator = \"-\";\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var strDate = date.getDate();\n if (month >= 1 && month <= 9) {\n month = \"0\" + month;\n }\n if (strDate >= 0 && strDate <= 9) {\n strDate = \"0\" + strDate;\n }\n var currentdate = year + seperator + month + seperator + strDate;\n return currentdate;\n}\nvar lastMoveTime = null;\n/**\r\n * 防抖\r\n *\r\n * @param { Function } fn 要执行的方法\r\n * @param { Number } wait 防抖多少毫秒\r\n *\r\n * 在 vue 中使用(注意:不能使用箭头函数,否则this指向不对,并且不能再次封装如:\r\n * move(){ // 错误调用方式\r\n * debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)});\r\n * 应该直接使用:// 正确调用方式\r\n * move: debounce(function () {\r\n * console.log(this.title);\r\n * }, 1000)\r\n */\nfunction debounce(fn, wait) {\n var timer = false;\n return function () {\n var _arguments = arguments,\n _this = this;\n clearTimeout(timer);\n timer && clearTimeout(timer);\n timer = setTimeout(function () {\n timer = false;\n fn.apply(_this, _arguments); // 把参数传进去\n }, wait);\n };\n}\nvar _default2 = {\n name: 'qiun-data-charts',\n mixins: [uniCloud.mixinDatacom],\n props: {\n type: {\n type: String,\n default: null\n },\n canvasId: {\n type: String,\n default: 'uchartsid'\n },\n canvas2d: {\n type: Boolean,\n default: false\n },\n background: {\n type: String,\n default: 'rgba(0,0,0,0)'\n },\n animation: {\n type: Boolean,\n default: true\n },\n chartData: {\n type: Object,\n default: function _default() {\n return {\n categories: [],\n series: []\n };\n }\n },\n opts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n eopts: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n loadingType: {\n type: Number,\n default: 2\n },\n errorShow: {\n type: Boolean,\n default: true\n },\n errorReload: {\n type: Boolean,\n default: true\n },\n errorMessage: {\n type: String,\n default: null\n },\n inScrollView: {\n type: Boolean,\n default: false\n },\n reshow: {\n type: Boolean,\n default: false\n },\n reload: {\n type: Boolean,\n default: false\n },\n disableScroll: {\n type: Boolean,\n default: false\n },\n optsWatch: {\n type: Boolean,\n default: true\n },\n onzoom: {\n type: Boolean,\n default: false\n },\n ontap: {\n type: Boolean,\n default: true\n },\n ontouch: {\n type: Boolean,\n default: false\n },\n onmouse: {\n type: Boolean,\n default: true\n },\n onmovetip: {\n type: Boolean,\n default: false\n },\n echartsH5: {\n type: Boolean,\n default: false\n },\n echartsApp: {\n type: Boolean,\n default: false\n },\n tooltipShow: {\n type: Boolean,\n default: true\n },\n tooltipFormat: {\n type: String,\n default: undefined\n },\n tooltipCustom: {\n type: Object,\n default: undefined\n },\n startDate: {\n type: String,\n default: undefined\n },\n endDate: {\n type: String,\n default: undefined\n },\n textEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n groupEnum: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n pageScrollTop: {\n type: Number,\n default: 0\n },\n directory: {\n type: String,\n default: '/'\n },\n tapLegend: {\n type: Boolean,\n default: true\n },\n menus: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n cid: 'uchartsid',\n inWx: false,\n inAli: false,\n inTt: false,\n inBd: false,\n inH5: false,\n inApp: false,\n inWin: false,\n type2d: true,\n disScroll: false,\n openmouse: false,\n pixel: 1,\n cWidth: 375,\n cHeight: 250,\n showchart: false,\n echarts: false,\n echartsResize: {\n state: false\n },\n uchartsOpts: {},\n echartsOpts: {},\n drawData: {},\n lastDrawTime: null\n };\n },\n created: function created() {\n this.cid = this.canvasId;\n if (this.canvasId == 'uchartsid' || this.canvasId == '') {\n var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n var len = t.length;\n var id = '';\n for (var i = 0; i < 32; i++) {\n id += t.charAt(Math.floor(Math.random() * len));\n }\n this.cid = id;\n }\n var systemInfo = uni.getSystemInfoSync();\n if (systemInfo.platform === 'windows' || systemInfo.platform === 'mac') {\n this.inWin = true;\n }\n\n //非微信小程序端强制关闭canvas2d模式\n\n this.type2d = false;\n this.disScroll = this.disableScroll;\n },\n mounted: function mounted() {\n var _this2 = this;\n this.inApp = true;\n if (this.echartsApp === true) {\n this.echarts = true;\n this.openmouse = false;\n }\n this.$nextTick(function () {\n _this2.beforeInit();\n });\n },\n destroyed: function destroyed() {\n if (this.echarts === true) {\n delete _configEcharts.default.option[this.cid];\n delete _configEcharts.default.instance[this.cid];\n } else {\n delete _configUcharts.default.option[this.cid];\n delete _configUcharts.default.instance[this.cid];\n }\n uni.offWindowResize(function () {});\n },\n watch: {\n chartDataProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n this._clearChart();\n if (val.series && val.series.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:chartData数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n localdata: {\n handler: function handler(val, oldval) {\n if (JSON.stringify(val) !== JSON.stringify(oldval)) {\n if (val.length > 0) {\n this.beforeInit();\n } else {\n this.mixinDatacomLoading = true;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n }\n }\n },\n immediate: false,\n deep: true\n },\n optsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === false && this.optsWatch == true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this._clearChart();\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:opts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n eoptsProps: {\n handler: function handler(val, oldval) {\n if ((0, _typeof2.default)(val) === 'object') {\n if (JSON.stringify(val) !== JSON.stringify(oldval) && this.echarts === true) {\n this.checkData(this.drawData);\n }\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:eopts数据类型错误';\n }\n },\n immediate: false,\n deep: true\n },\n reshow: function reshow(val, oldval) {\n var _this3 = this;\n if (val === true && this.mixinDatacomLoading === false) {\n setTimeout(function () {\n _this3.mixinDatacomErrorMessage = null;\n _this3.echartsResize.state = !_this3.echartsResize.state;\n _this3.checkData(_this3.drawData);\n }, 200);\n }\n },\n reload: function reload(val, oldval) {\n if (val === true) {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n },\n mixinDatacomErrorMessage: function mixinDatacomErrorMessage(val, oldval) {\n if (val) {\n this.emitMsg({\n name: 'error',\n params: {\n type: \"error\",\n errorShow: this.errorShow,\n msg: val,\n id: this.cid\n }\n });\n if (this.errorShow) {\n __f__(\"log\", '[秋云图表组件]' + val, \" at uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue:611\");\n }\n }\n },\n errorMessage: function errorMessage(val, oldval) {\n if (val && this.errorShow && val !== null && val !== 'null' && val !== '') {\n this.showchart = false;\n this.mixinDatacomLoading = false;\n this.mixinDatacomErrorMessage = val;\n } else {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this.reloading();\n }\n }\n },\n computed: {\n optsProps: function optsProps() {\n return JSON.parse(JSON.stringify(this.opts));\n },\n eoptsProps: function eoptsProps() {\n return JSON.parse(JSON.stringify(this.eopts));\n },\n chartDataProps: function chartDataProps() {\n return JSON.parse(JSON.stringify(this.chartData));\n }\n },\n methods: {\n beforeInit: function beforeInit() {\n this.mixinDatacomErrorMessage = null;\n if ((0, _typeof2.default)(this.chartData) === 'object' && this.chartData != null && this.chartData.series !== undefined && this.chartData.series.length > 0) {\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, this.chartData);\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.checkData(this.chartData);\n } else if (this.localdata.length > 0) {\n this.mixinDatacomLoading = false;\n this.showchart = true;\n this.localdataInit(this.localdata);\n } else if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.getCloudData();\n } else {\n this.mixinDatacomLoading = true;\n }\n },\n localdataInit: function localdataInit(resdata) {\n //替换enum类型为正确的描述\n if (this.groupEnum.length > 0) {\n for (var i = 0; i < resdata.length; i++) {\n for (var j = 0; j < this.groupEnum.length; j++) {\n if (resdata[i].group === this.groupEnum[j].value) {\n resdata[i].group = this.groupEnum[j].text;\n }\n }\n }\n }\n if (this.textEnum.length > 0) {\n for (var _i = 0; _i < resdata.length; _i++) {\n for (var _j = 0; _j < this.textEnum.length; _j++) {\n if (resdata[_i].text === this.textEnum[_j].value) {\n resdata[_i].text = this.textEnum[_j].text;\n }\n }\n }\n }\n var needCategories = false;\n var tmpData = {\n categories: [],\n series: []\n };\n var tmpcategories = [];\n var tmpseries = [];\n //拼接categories\n if (this.echarts === true) {\n needCategories = _configEcharts.default.categories.includes(this.type);\n } else {\n needCategories = _configUcharts.default.categories.includes(this.type);\n }\n if (needCategories === true) {\n //如果props中的chartData带有categories,则优先使用chartData的categories\n if (this.chartData && this.chartData.categories && this.chartData.categories.length > 0) {\n tmpcategories = this.chartData.categories;\n } else {\n //如果是日期类型的数据,不管是本地数据还是云数据,都按起止日期自动拼接categories\n if (this.startDate && this.endDate) {\n var idate = new Date(this.startDate);\n var edate = new Date(this.endDate);\n while (idate <= edate) {\n tmpcategories.push(getFormatDate(idate));\n idate = idate.setDate(idate.getDate() + 1);\n idate = new Date(idate);\n }\n //否则从结果中去重并拼接categories\n } else {\n var tempckey = {};\n resdata.map(function (item, index) {\n if (item.text != undefined && !tempckey[item.text]) {\n tmpcategories.push(item.text);\n tempckey[item.text] = true;\n }\n });\n }\n }\n tmpData.categories = tmpcategories;\n }\n //拼接series\n var tempskey = {};\n resdata.map(function (item, index) {\n if (item.group != undefined && !tempskey[item.group]) {\n tmpseries.push({\n name: item.group,\n data: []\n });\n tempskey[item.group] = true;\n }\n });\n //如果没有获取到分组名称(可能是带categories的数据,也可能是不带的饼图类)\n if (tmpseries.length == 0) {\n tmpseries = [{\n name: '默认分组',\n data: []\n }];\n //如果是需要categories的图表类型\n if (needCategories === true) {\n for (var _j2 = 0; _j2 < tmpcategories.length; _j2++) {\n var seriesdata = 0;\n for (var _i2 = 0; _i2 < resdata.length; _i2++) {\n if (resdata[_i2].text == tmpcategories[_j2]) {\n seriesdata = resdata[_i2].value;\n }\n }\n tmpseries[0].data.push(seriesdata);\n }\n //如果是饼图类的图表类型\n } else {\n for (var _i3 = 0; _i3 < resdata.length; _i3++) {\n tmpseries[0].data.push({\n \"name\": resdata[_i3].text,\n \"value\": resdata[_i3].value\n });\n }\n }\n //如果有分组名\n } else {\n for (var k = 0; k < tmpseries.length; k++) {\n //如果有categories\n if (tmpcategories.length > 0) {\n for (var _j3 = 0; _j3 < tmpcategories.length; _j3++) {\n var _seriesdata = 0;\n for (var _i4 = 0; _i4 < resdata.length; _i4++) {\n if (tmpseries[k].name == resdata[_i4].group && resdata[_i4].text == tmpcategories[_j3]) {\n _seriesdata = resdata[_i4].value;\n }\n }\n tmpseries[k].data.push(_seriesdata);\n }\n //如果传了group而没有传text,即没有categories(正常情况下这种数据是不符合数据要求规范的)\n } else {\n for (var _i5 = 0; _i5 < resdata.length; _i5++) {\n if (tmpseries[k].name == resdata[_i5].group) {\n tmpseries[k].data.push(resdata[_i5].value);\n }\n }\n }\n }\n }\n tmpData.series = tmpseries;\n //拷贝一下chartData,为了opts变更后统一数据来源\n this.drawData = deepCloneAssign({}, tmpData);\n this.checkData(tmpData);\n },\n reloading: function reloading() {\n if (this.errorReload === false) {\n return;\n }\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n if (this.collection !== '') {\n this.mixinDatacomLoading = false;\n this.onMixinDatacomPropsChange(true);\n } else {\n this.beforeInit();\n }\n },\n checkData: function checkData(anyData) {\n var _this4 = this;\n var cid = this.cid;\n //复位opts或eopts\n if (this.echarts === true) {\n _configEcharts.default.option[cid] = deepCloneAssign({}, this.eopts);\n _configEcharts.default.option[cid].id = cid;\n _configEcharts.default.option[cid].type = this.type;\n } else {\n if (this.type && _configUcharts.default.type.includes(this.type)) {\n _configUcharts.default.option[cid] = deepCloneAssign({}, _configUcharts.default[this.type], this.opts);\n _configUcharts.default.option[cid].canvasId = cid;\n } else {\n this.mixinDatacomLoading = false;\n this.showchart = false;\n this.mixinDatacomErrorMessage = '参数错误:props参数中type类型不正确';\n }\n }\n //挂载categories和series\n var newData = deepCloneAssign({}, anyData);\n if (newData.series !== undefined && newData.series.length > 0) {\n this.mixinDatacomErrorMessage = null;\n if (this.echarts === true) {\n _configEcharts.default.option[cid].chartData = newData;\n this.$nextTick(function () {\n _this4.init();\n });\n } else {\n _configUcharts.default.option[cid].categories = newData.categories;\n _configUcharts.default.option[cid].series = newData.series;\n this.$nextTick(function () {\n _this4.init();\n });\n }\n }\n },\n resizeHandler: function resizeHandler() {\n var _this5 = this;\n //渲染防抖\n var currTime = Date.now();\n var lastDrawTime = this.lastDrawTime ? this.lastDrawTime : currTime - 3000;\n var duration = currTime - lastDrawTime;\n if (duration < 1000) return;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + this.cid).boundingClientRect(function (data) {\n _this5.showchart = true;\n if (data.width > 0 && data.height > 0) {\n if (data.width !== _this5.cWidth || data.height !== _this5.cHeight) {\n _this5.checkData(_this5.drawData);\n }\n }\n }).exec();\n },\n getCloudData: function getCloudData() {\n var _this6 = this;\n if (this.mixinDatacomLoading == true) {\n return;\n }\n this.mixinDatacomLoading = true;\n this.mixinDatacomGet().then(function (res) {\n _this6.mixinDatacomResData = res.result.data;\n _this6.localdataInit(_this6.mixinDatacomResData);\n }).catch(function (err) {\n _this6.mixinDatacomLoading = false;\n _this6.showchart = false;\n _this6.mixinDatacomErrorMessage = '请求错误:' + err;\n });\n },\n onMixinDatacomPropsChange: function onMixinDatacomPropsChange(needReset, changed) {\n if (needReset == true && this.collection !== '') {\n this.showchart = false;\n this.mixinDatacomErrorMessage = null;\n this._clearChart();\n this.getCloudData();\n }\n },\n _clearChart: function _clearChart() {\n var cid = this.cid;\n if (this.echarts !== true && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].context) {\n var ctx = _configUcharts.default.option[cid].context;\n if ((0, _typeof2.default)(ctx) === \"object\" && !!!_configUcharts.default.option[cid].update) {\n ctx.clearRect(0, 0, this.cWidth * this.pixel, this.cHeight * this.pixel);\n ctx.draw();\n }\n }\n },\n init: function init() {\n var _this7 = this;\n var cid = this.cid;\n var chartdom = uni.createSelectorQuery().in(this).select('#ChartBoxId' + cid).boundingClientRect(function (data) {\n if (data.width > 0 && data.height > 0) {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.lastDrawTime = Date.now();\n _this7.cWidth = data.width;\n _this7.cHeight = data.height;\n if (_this7.echarts !== true) {\n _configUcharts.default.option[cid].background = _this7.background == 'rgba(0,0,0,0)' ? '#FFFFFF' : _this7.background;\n _configUcharts.default.option[cid].canvas2d = _this7.type2d;\n _configUcharts.default.option[cid].pixelRatio = _this7.pixel;\n _configUcharts.default.option[cid].animation = _this7.animation;\n _configUcharts.default.option[cid].width = data.width * _this7.pixel;\n _configUcharts.default.option[cid].height = data.height * _this7.pixel;\n _configUcharts.default.option[cid].onzoom = _this7.onzoom;\n _configUcharts.default.option[cid].ontap = _this7.ontap;\n _configUcharts.default.option[cid].ontouch = _this7.ontouch;\n _configUcharts.default.option[cid].onmouse = _this7.openmouse;\n _configUcharts.default.option[cid].onmovetip = _this7.onmovetip;\n _configUcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configUcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configUcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configUcharts.default.option[cid].inScrollView = _this7.inScrollView;\n _configUcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _configUcharts.default.option[cid].tapLegend = _this7.tapLegend;\n }\n //如果是H5或者App端,采用renderjs渲染图表\n if (_this7.inH5 || _this7.inApp) {\n if (_this7.echarts == true) {\n _configEcharts.default.option[cid].ontap = _this7.ontap;\n _configEcharts.default.option[cid].onmouse = _this7.openmouse;\n _configEcharts.default.option[cid].tooltipShow = _this7.tooltipShow;\n _configEcharts.default.option[cid].tooltipFormat = _this7.tooltipFormat;\n _configEcharts.default.option[cid].tooltipCustom = _this7.tooltipCustom;\n _configEcharts.default.option[cid].lastDrawTime = _this7.lastDrawTime;\n _this7.echartsOpts = deepCloneAssign({}, _configEcharts.default.option[cid]);\n } else {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n _this7.uchartsOpts = deepCloneAssign({}, _configUcharts.default.option[cid]);\n }\n //如果是小程序端,采用uCharts渲染\n } else {\n _configUcharts.default.option[cid] = formatterAssign(_configUcharts.default.option[cid], _configUcharts.default.formatter);\n _this7.mixinDatacomErrorMessage = null;\n _this7.mixinDatacomLoading = false;\n _this7.showchart = true;\n _this7.$nextTick(function () {\n if (_this7.type2d === true) {\n var query = uni.createSelectorQuery().in(_this7);\n query.select('#' + cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n var ctx = canvas.getContext('2d');\n _configUcharts.default.option[cid].context = ctx;\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n canvas.width = data.width * _this7.pixel;\n canvas.height = data.height * _this7.pixel;\n canvas._width = data.width * _this7.pixel;\n canvas._height = data.height * _this7.pixel;\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n } else {\n _this7.showchart = false;\n _this7.mixinDatacomErrorMessage = '参数错误:开启2d模式后,未获取到dom节点,canvas-id:' + cid;\n }\n });\n } else {\n if (_this7.inAli) {\n _configUcharts.default.option[cid].rotateLock = _configUcharts.default.option[cid].rotate;\n }\n _configUcharts.default.option[cid].context = uni.createCanvasContext(cid, _this7);\n if (_configUcharts.default.instance[cid] && _configUcharts.default.option[cid] && _configUcharts.default.option[cid].update === true) {\n _this7._updataUChart(cid);\n } else {\n setTimeout(function () {\n _configUcharts.default.option[cid].context.restore();\n _configUcharts.default.option[cid].context.save();\n _this7._newChart(cid);\n }, 100);\n }\n }\n });\n }\n } else {\n _this7.mixinDatacomLoading = false;\n _this7.showchart = false;\n if (_this7.reshow == true) {\n _this7.mixinDatacomErrorMessage = '布局错误:未获取到父元素宽高尺寸!canvas-id:' + cid;\n }\n }\n }).exec();\n },\n saveImage: function saveImage() {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n uni.saveImageToPhotosAlbum({\n filePath: res.tempFilePath,\n success: function success() {\n uni.showToast({\n title: '保存成功',\n duration: 2000\n });\n }\n });\n }\n }, this);\n },\n getImage: function getImage() {\n var _this8 = this;\n if (this.type2d == false) {\n uni.canvasToTempFilePath({\n canvasId: this.cid,\n success: function success(res) {\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: res.tempFilePath\n }\n });\n }\n }, this);\n } else {\n var query = uni.createSelectorQuery().in(this);\n query.select('#' + this.cid).fields({\n node: true,\n size: true\n }).exec(function (res) {\n if (res[0]) {\n var canvas = res[0].node;\n _this8.emitMsg({\n name: 'getImage',\n params: {\n type: \"getImage\",\n base64: canvas.toDataURL('image/png')\n }\n });\n }\n });\n }\n },\n _error: function _error(e) {\n this.mixinDatacomErrorMessage = e.detail.errMsg;\n },\n emitMsg: function emitMsg(msg) {\n this.$emit(msg.name, msg.params);\n },\n getRenderType: function getRenderType() {\n //防止如果开启echarts且父元素为v-if的情况renderjs监听不到prop变化的问题\n if (this.echarts === true && this.mixinDatacomLoading === false) {\n this.beforeInit();\n }\n },\n toJSON: function toJSON() {\n return this;\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js */ 377)[\"default\"], __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9jb21wb25lbnRzL3FpdW4tZGF0YS1jaGFydHMvcWl1bi1kYXRhLWNoYXJ0cy52dWUiXSwibmFtZXMiOlsiYXJncyIsIm9yaWdpbiIsImZvcm1hdHRlckFzc2lnbiIsIm1vbnRoIiwic3RyRGF0ZSIsImNsZWFyVGltZW91dCIsInRpbWVyIiwiZm4iLCJuYW1lIiwibWl4aW5zIiwicHJvcHMiLCJ0eXBlIiwiZGVmYXVsdCIsImNhbnZhc0lkIiwiY2FudmFzMmQiLCJiYWNrZ3JvdW5kIiwiYW5pbWF0aW9uIiwiY2hhcnREYXRhIiwiY2F0ZWdvcmllcyIsInNlcmllcyIsIm9wdHMiLCJlb3B0cyIsImxvYWRpbmdUeXBlIiwiZXJyb3JTaG93IiwiZXJyb3JSZWxvYWQiLCJlcnJvck1lc3NhZ2UiLCJpblNjcm9sbFZpZXciLCJyZXNob3ciLCJyZWxvYWQiLCJkaXNhYmxlU2Nyb2xsIiwib3B0c1dhdGNoIiwib256b29tIiwib250YXAiLCJvbnRvdWNoIiwib25tb3VzZSIsIm9ubW92ZXRpcCIsImVjaGFydHNINSIsImVjaGFydHNBcHAiLCJ0b29sdGlwU2hvdyIsInRvb2x0aXBGb3JtYXQiLCJ0b29sdGlwQ3VzdG9tIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInRleHRFbnVtIiwiZ3JvdXBFbnVtIiwicGFnZVNjcm9sbFRvcCIsImRpcmVjdG9yeSIsInRhcExlZ2VuZCIsIm1lbnVzIiwiZGF0YSIsImNpZCIsImluV3giLCJpbkFsaSIsImluVHQiLCJpbkJkIiwiaW5INSIsImluQXBwIiwiaW5XaW4iLCJ0eXBlMmQiLCJkaXNTY3JvbGwiLCJvcGVubW91c2UiLCJwaXhlbCIsImNXaWR0aCIsImNIZWlnaHQiLCJzaG93Y2hhcnQiLCJlY2hhcnRzIiwiZWNoYXJ0c1Jlc2l6ZSIsInN0YXRlIiwidWNoYXJ0c09wdHMiLCJlY2hhcnRzT3B0cyIsImRyYXdEYXRhIiwibGFzdERyYXdUaW1lIiwiY3JlYXRlZCIsImlkIiwibW91bnRlZCIsImRlc3Ryb3llZCIsInVuaSIsIndhdGNoIiwiY2hhcnREYXRhUHJvcHMiLCJoYW5kbGVyIiwiaW1tZWRpYXRlIiwiZGVlcCIsImxvY2FsZGF0YSIsIm9wdHNQcm9wcyIsImVvcHRzUHJvcHMiLCJzZXRUaW1lb3V0IiwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlIiwicGFyYW1zIiwibXNnIiwiY29tcHV0ZWQiLCJtZXRob2RzIiwiYmVmb3JlSW5pdCIsImxvY2FsZGF0YUluaXQiLCJyZXNkYXRhIiwibmVlZENhdGVnb3JpZXMiLCJ0bXBjYXRlZ29yaWVzIiwiaWRhdGUiLCJ0ZW1wY2tleSIsInRtcERhdGEiLCJ0bXBzZXJpZXMiLCJ0ZW1wc2tleSIsInNlcmllc2RhdGEiLCJyZWxvYWRpbmciLCJjaGVja0RhdGEiLCJjZmUiLCJjZnUiLCJyZXNpemVIYW5kbGVyIiwiY3JlYXRlU2VsZWN0b3JRdWVyeSIsImluIiwic2VsZWN0IiwiYm91bmRpbmdDbGllbnRSZWN0IiwiZXhlYyIsImdldENsb3VkRGF0YSIsInRoZW4iLCJjYXRjaCIsIm9uTWl4aW5EYXRhY29tUHJvcHNDaGFuZ2UiLCJfY2xlYXJDaGFydCIsImN0eCIsImluaXQiLCJxdWVyeSIsImZpZWxkcyIsIm5vZGUiLCJzaXplIiwiY2FudmFzIiwic2F2ZUltYWdlIiwic3VjY2VzcyIsImZpbGVQYXRoIiwidGl0bGUiLCJkdXJhdGlvbiIsImdldEltYWdlIiwiYmFzZTY0IiwiX2Vycm9yIiwiZW1pdE1zZyIsImdldFJlbmRlclR5cGUiLCJ0b0pTT04iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBOEpBO0FBQ0E7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7RUFBQTtFQUFBO0lBQUFBO0VBQUE7RUFDQTtJQUNBO01BQ0E7UUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQTtBQUNBO0FBRUE7RUFDQTtJQUNBO01BQ0FDO0lBQ0E7TUFDQUY7SUFDQTtFQUNBO0VBQ0E7QUFDQTs7QUFFQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtJQUNBRztFQUNBO0VBQ0E7SUFDQUM7RUFDQTtFQUNBO0VBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBO0VBQ0E7SUFBQTtNQUFBO0lBQ0FDO0lBQ0FDO0lBQ0FBO01BQ0FBO01BQ0FDO0lBQ0E7RUFDQTtBQUNBO0FBQUEsZ0JBRUE7RUFDQUM7RUFDQUM7RUFDQUM7SUFDQUM7TUFDQUE7TUFDQUM7SUFDQTtJQUNBQztNQUNBRjtNQUNBQztJQUNBO0lBQ0FFO01BQ0FIO01BQ0FDO0lBQ0E7SUFDQUc7TUFDQUo7TUFDQUM7SUFDQTtJQUNBSTtNQUNBTDtNQUNBQztJQUNBO0lBQ0FLO01BQ0FOO01BQ0FDO1FBQ0E7VUFDQU07VUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQVQ7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQVM7TUFDQVY7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQVU7TUFDQVg7TUFDQUM7SUFDQTtJQUNBVztNQUNBWjtNQUNBQztJQUNBO0lBQ0FZO01BQ0FiO01BQ0FDO0lBQ0E7SUFDQWE7TUFDQWQ7TUFDQUM7SUFDQTtJQUNBYztNQUNBZjtNQUNBQztJQUNBO0lBQ0FlO01BQ0FoQjtNQUNBQztJQUNBO0lBQ0FnQjtNQUNBakI7TUFDQUM7SUFDQTtJQUNBaUI7TUFDQWxCO01BQ0FDO0lBQ0E7SUFDQWtCO01BQ0FuQjtNQUNBQztJQUNBO0lBQ0FtQjtNQUNBcEI7TUFDQUM7SUFDQTtJQUNBb0I7TUFDQXJCO01BQ0FDO0lBQ0E7SUFDQXFCO01BQ0F0QjtNQUNBQztJQUNBO0lBQ0FzQjtNQUNBdkI7TUFDQUM7SUFDQTtJQUNBdUI7TUFDQXhCO01BQ0FDO0lBQ0E7SUFDQXdCO01BQ0F6QjtNQUNBQztJQUNBO0lBQ0F5QjtNQUNBMUI7TUFDQUM7SUFDQTtJQUNBMEI7TUFDQTNCO01BQ0FDO0lBQ0E7SUFDQTJCO01BQ0E1QjtNQUNBQztJQUNBO0lBQ0E0QjtNQUNBN0I7TUFDQUM7SUFDQTtJQUNBNkI7TUFDQTlCO01BQ0FDO0lBQ0E7SUFDQThCO01BQ0EvQjtNQUNBQztJQUNBO0lBQ0ErQjtNQUNBaEM7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFDQWdDO01BQ0FqQztNQUNBQztRQUNBO01BQ0E7SUFDQTtJQUNBaUM7TUFDQWxDO01BQ0FDO0lBQ0E7SUFDQWtDO01BQ0FuQztNQUNBQztJQUNBO0lBQ0FtQztNQUNBcEM7TUFDQUM7SUFDQTtJQUNBb0M7TUFDQXJDO01BQ0FDO1FBQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQXFDO0lBQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBO01BQ0E7SUFDQTs7SUFVQTs7SUFFQTtJQWVBO0VBQ0E7RUFDQUM7SUFBQTtJQUVBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFnQkE7TUFDQTtJQUNBO0VBcUJBO0VBQ0FDO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFQUM7RUFFQTtFQUNBQztJQUNBQztNQUNBQztRQUNBO1VBQ0E7WUFDQTtZQUNBO2NBQ0E7WUFDQTtjQUNBO2NBQ0E7Y0FDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FDO01BQ0FIO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7WUFDQTtZQUNBO1lBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FFO01BQ0FKO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBQztNQUNBQztJQUNBO0lBQ0FHO01BQ0FMO1FBQ0E7VUFDQTtZQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7TUFDQUM7TUFDQUM7SUFDQTtJQUNBdEQ7TUFBQTtNQUNBO1FBQ0EwRDtVQUNBO1VBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBekQ7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQTBEO01BQ0E7UUFDQTtVQUFBOUU7VUFBQStFO1lBQUE1RTtZQUFBWTtZQUFBaUU7WUFBQWY7VUFBQTtRQUFBO1FBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBaEQ7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0VBQ0FnRTtJQUNBTjtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FOO01BQ0E7SUFDQTtFQUNBO0VBQ0FZO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO1VBQ0E7WUFDQTtjQUNBQztZQUNBO1VBQ0E7UUFDQTtNQUNBO01BQ0E7UUFDQTtVQUNBO1lBQ0E7Y0FDQUE7WUFDQTtVQUNBO1FBQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQTNFO1FBQUFDO01BQUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBMkU7TUFDQTtRQUNBQTtNQUNBO01BQ0E7UUFDQTtRQUNBO1VBQ0FDO1FBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0FBO2NBQ0FDO2NBQ0FB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QUFBK0U7Z0JBQUE1RTtnQkFBQXVIO2NBQUE7WUFBQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0FYLE1BQ0FWLHVCQUNBVztVQUFBQztVQUFBQztRQUFBLEdBQ0FYO1VBQ0E7WUFDQTtZQUNBO2NBQUF2RztjQUFBK0U7Z0JBQUE1RTtnQkFBQXVIO2NBQUE7WUFBQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBb0tBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsNEIiLCJmaWxlIjoiMzc2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPCEtLSBcclxuICogcWl1bi1kYXRhLWNoYXJ0cyDnp4vkupHpq5jmgKfog73ot6jlhajnq6/lm77ooajnu4Tku7ZcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7CriDnp4vkupEgaHR0cHM6Ly93d3cudWNoYXJ0cy5jbiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCAoIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCApXHJcbiAqIOWkjeWItuS9v+eUqOivt+S/neeVmeacrOauteazqOmHiu+8jOaEn+iwouaUr+aMgeW8gOa6kO+8gVxyXG4gKiDkuLrmlrnkvr/mm7TlpJrlvIDlj5HogIXkvb/nlKjvvIzlpoLmnInmm7Tlpb3nmoTlu7rorq7or7fmj5DkuqTnoIHkupEgUHVsbCBSZXF1ZXN0cyDvvIFcclxuICpcclxuICogdUNoYXJ0c8Ku5a6Y5pa5572R56uZXHJcbiAqIGh0dHBzOi8vd3d3LnVDaGFydHMuY25cclxuICogXHJcbiAqIOW8gOa6kOWcsOWdgDpcclxuICogaHR0cHM6Ly9naXRlZS5jb20vdUNoYXJ0cy91Q2hhcnRzXHJcbiAqIFxyXG4gKiB1bmktYXBw5o+S5Lu25biC5Zy65Zyw5Z2A77yaXHJcbiAqIGh0dHA6Ly9leHQuZGNsb3VkLm5ldC5jbi9wbHVnaW4/aWQ9MjcxXHJcbiAqIFxyXG4gLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImNoYXJ0c3ZpZXdcIiA6aWQ9XCInQ2hhcnRCb3hJZCcrY2lkXCI+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tTG9hZGluZ1wiPlxyXG4gICAgICA8IS0tIOiHquWumuS5ieWKoOi9veeKtuaAge+8jOivt+aUuei/memHjCAtLT5cclxuICAgICAgPHFpdW4tbG9hZGluZyA6bG9hZGluZ1R5cGU9XCJsb2FkaW5nVHlwZVwiIC8+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8dmlldyB2LWlmPVwibWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlICYmIGVycm9yU2hvd1wiIEB0YXA9XCJyZWxvYWRpbmdcIj5cclxuICAgICAgPCEtLSDoh6rlrprkuYnplJnor6/mj5DnpLrvvIzor7fmlLnov5nph4wgLS0+XHJcbiAgICAgIDxxaXVuLWVycm9yIDplcnJvck1lc3NhZ2U9XCJlcnJvck1lc3NhZ2VcIiAvPlxyXG4gICAgPC92aWV3PlxyXG4gICAgPCEtLSBBUFDlkoxINemHh+eUqHJlbmRlcmpz5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgQVBQLVZVRSB8fCBINSAtLT5cclxuICAgIDxibG9jayB2LWlmPVwiZWNoYXJ0c1wiPlxyXG4gICAgICA8dmlld1xyXG4gICAgICAgIDpzdHlsZT1cInsgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtcIlxyXG4gICAgICAgIDpkYXRhLWRpcmVjdG9yeT1cImRpcmVjdG9yeVwiXHJcbiAgICAgICAgOmlkPVwiJ0VDJytjaWRcIiBcclxuICAgICAgICA6cHJvcD1cImVjaGFydHNPcHRzXCIgXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMuZWNpbml0XCIgXHJcbiAgICAgICAgOnJlc2l6ZT1cImVjaGFydHNSZXNpemVcIlxyXG4gICAgICAgIDpjaGFuZ2U6cmVzaXplPVwicmRjaGFydHMuZWNyZXNpemVcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtZWxzZT5cclxuICAgICAgPHZpZXdcclxuICAgICAgICB2LW9uOnRhcD1cInJkY2hhcnRzLnRhcFwiXHJcbiAgICAgICAgdi1vbjptb3VzZW1vdmU9XCJyZGNoYXJ0cy5tb3VzZU1vdmVcIlxyXG4gICAgICAgIHYtb246bW91c2Vkb3duPVwicmRjaGFydHMubW91c2VEb3duXCJcclxuICAgICAgICB2LW9uOm1vdXNldXA9XCJyZGNoYXJ0cy5tb3VzZVVwXCJcclxuICAgICAgICB2LW9uOnRvdWNoc3RhcnQ9XCJyZGNoYXJ0cy50b3VjaFN0YXJ0XCJcclxuICAgICAgICB2LW9uOnRvdWNobW92ZT1cInJkY2hhcnRzLnRvdWNoTW92ZVwiXHJcbiAgICAgICAgdi1vbjp0b3VjaGVuZD1cInJkY2hhcnRzLnRvdWNoRW5kXCJcclxuICAgICAgICA6aWQ9XCInVUMnK2NpZFwiXHJcbiAgICAgICAgOnByb3A9XCJ1Y2hhcnRzT3B0c1wiXHJcbiAgICAgICAgOmNoYW5nZTpwcm9wPVwicmRjaGFydHMudWNpbml0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc2FibGVTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gICAgPCEtLSDmlK/ku5jlrp3lsI/nqIvluo8gLS0+XHJcbiAgICA8IS0tICNpZmRlZiBNUC1BTElQQVkgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cIm9udG91Y2hcIj5cclxuICAgICAgPGNhbnZhc1xyXG4gICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICA6d2lkdGg9XCJjV2lkdGggKiBwaXhlbFwiXHJcbiAgICAgICAgOmhlaWdodD1cImNIZWlnaHQgKiBwaXhlbFwiXHJcbiAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgIEB0YXA9XCJfdGFwXCJcclxuICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICBAdG91Y2htb3ZlPVwiX3RvdWNoTW92ZVwiXHJcbiAgICAgICAgQHRvdWNoZW5kPVwiX3RvdWNoRW5kXCJcclxuICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgIHYtc2hvdz1cInNob3djaGFydFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhb250b3VjaFwiPlxyXG4gICAgICA8Y2FudmFzXHJcbiAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgIDp3aWR0aD1cImNXaWR0aCAqIHBpeGVsXCJcclxuICAgICAgICA6aGVpZ2h0PVwiY0hlaWdodCAqIHBpeGVsXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgQHRhcD1cIl90YXBcIlxyXG4gICAgICAgIEBlcnJvcj1cIl9lcnJvclwiXHJcbiAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgLz5cclxuICAgIDwvYmxvY2s+XHJcbiAgICA8IS0tICNlbmRpZiAtLT5cclxuICAgIDwhLS0g5YW25LuW5bCP56iL5bqP6YCa6L+HdnVl5riy5p+T5Zu+6KGoIC0tPlxyXG4gICAgPCEtLSAjaWZkZWYgTVAtV0VJWElOIHx8IE1QLUJBSURVIHx8IE1QLVFRIHx8IE1QLVRPVVRJQU8gfHwgTVAtS1VBSVNIT1UgfHwgTVAtTEFSSyB8fCBNUC1KRCB8fCBNUC0zNjAgLS0+XHJcbiAgICA8YmxvY2sgdi1pZj1cInR5cGUyZFwiPlxyXG4gICAgICA8dmlldyB2LWlmPVwib250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCIhb250b3VjaFwiIEB0YXA9XCJfdGFwXCI+XHJcbiAgICAgICAgPGNhbnZhc1xyXG4gICAgICAgICAgOmlkPVwiY2lkXCJcclxuICAgICAgICAgIDpjYW52YXNJZD1cImNpZFwiXHJcbiAgICAgICAgICA6c3R5bGU9XCJ7IHdpZHRoOiBjV2lkdGggKyAncHgnLCBoZWlnaHQ6IGNIZWlnaHQgKyAncHgnLCBiYWNrZ3JvdW5kOiBiYWNrZ3JvdW5kIH1cIlxyXG4gICAgICAgICAgdHlwZT1cIjJkXCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1zaG93PVwic2hvd2NoYXJ0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3ZpZXc+XHJcbiAgICA8L2Jsb2NrPlxyXG4gICAgPGJsb2NrIHYtaWY9XCIhdHlwZTJkXCI+XHJcbiAgICAgIDx2aWV3IHYtaWY9XCJvbnRvdWNoXCIgQHRhcD1cIl90YXBcIj5cclxuICAgICAgICA8Y2FudmFzXHJcbiAgICAgICAgICA6aWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOmNhbnZhc0lkPVwiY2lkXCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6IGNXaWR0aCArICdweCcsIGhlaWdodDogY0hlaWdodCArICdweCcsIGJhY2tncm91bmQ6IGJhY2tncm91bmQgfVwiXHJcbiAgICAgICAgICBAdG91Y2hzdGFydD1cIl90b3VjaFN0YXJ0XCJcclxuICAgICAgICAgIEB0b3VjaG1vdmU9XCJfdG91Y2hNb3ZlXCJcclxuICAgICAgICAgIEB0b3VjaGVuZD1cIl90b3VjaEVuZFwiXHJcbiAgICAgICAgICA6ZGlzYWJsZS1zY3JvbGw9XCJkaXNTY3JvbGxcIlxyXG4gICAgICAgICAgQGVycm9yPVwiX2Vycm9yXCJcclxuICAgICAgICAgIHYtaWY9XCJzaG93Y2hhcnRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvdmlldz5cclxuICAgICAgPHZpZXcgdi1pZj1cIiFvbnRvdWNoXCIgPlxyXG4gICAgICAgIDxjYW52YXNcclxuICAgICAgICAgIDppZD1cImNpZFwiXHJcbiAgICAgICAgICA6Y2FudmFzSWQ9XCJjaWRcIlxyXG4gICAgICAgICAgOnN0eWxlPVwieyB3aWR0aDogY1dpZHRoICsgJ3B4JywgaGVpZ2h0OiBjSGVpZ2h0ICsgJ3B4JywgYmFja2dyb3VuZDogYmFja2dyb3VuZCB9XCJcclxuICAgICAgICAgIDpkaXNhYmxlLXNjcm9sbD1cImRpc1Njcm9sbFwiXHJcbiAgICAgICAgICBAdGFwPVwiX3RhcFwiXHJcbiAgICAgICAgICBAZXJyb3I9XCJfZXJyb3JcIlxyXG4gICAgICAgICAgdi1pZj1cInNob3djaGFydFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC92aWV3PlxyXG4gICAgPC9ibG9jaz5cclxuICAgIDwhLS0gI2VuZGlmIC0tPlxyXG4gIDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCB1Q2hhcnRzIGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy91LWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZnUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy11Y2hhcnRzLmpzJztcclxuLy8gI2lmZGVmIEFQUC1WVUUgfHwgSDVcclxuaW1wb3J0IGNmZSBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMnO1xyXG4vLyAjZW5kaWZcclxuXHJcbmZ1bmN0aW9uIGRlZXBDbG9uZUFzc2lnbihvcmlnaW4gPSB7fSwgLi4uYXJncykge1xyXG4gIGZvciAobGV0IGkgaW4gYXJncykge1xyXG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3NbaV0pIHtcclxuICAgICAgaWYgKGFyZ3NbaV0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIG9yaWdpbltrZXldID0gYXJnc1tpXVtrZXldICYmIHR5cGVvZiBhcmdzW2ldW2tleV0gPT09ICdvYmplY3QnID8gZGVlcENsb25lQXNzaWduKEFycmF5LmlzQXJyYXkoYXJnc1tpXVtrZXldKSA/IFtdIDoge30sIG9yaWdpbltrZXldLCBhcmdzW2ldW2tleV0pIDogYXJnc1tpXVtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvcmlnaW47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgZm9ybWF0dGVyQXNzaWduKGFyZ3Nba2V5XSxmb3JtYXR0ZXIpXHJcbiAgICB9ZWxzZSBpZihrZXkgPT09ICdmb3JtYXQnICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdzdHJpbmcnKXtcclxuICAgICAgYXJnc1snZm9ybWF0dGVyJ10gPSBmb3JtYXR0ZXJbYXJnc1trZXldXSA/IGZvcm1hdHRlclthcmdzW2tleV1dIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYXJncztcclxufVxyXG5cclxuLy8g5pe26Ze06L2s5o2i5Ye95pWw77yM5Li65LqG5Yy56YWNdW5pQ2xpbmV0RELor7vlj5blh7rnmoTml7bpl7TkuI5jYXRlZ29yaWVz5LiN5ZCMXHJcbmZ1bmN0aW9uIGdldEZvcm1hdERhdGUoZGF0ZSkge1xyXG5cdHZhciBzZXBlcmF0b3IgPSBcIi1cIjtcclxuXHR2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHR2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG5cdHZhciBzdHJEYXRlID0gZGF0ZS5nZXREYXRlKCk7XHJcblx0aWYgKG1vbnRoID49IDEgJiYgbW9udGggPD0gOSkge1xyXG5cdFx0XHRtb250aCA9IFwiMFwiICsgbW9udGg7XHJcblx0fVxyXG5cdGlmIChzdHJEYXRlID49IDAgJiYgc3RyRGF0ZSA8PSA5KSB7XHJcblx0XHRcdHN0ckRhdGUgPSBcIjBcIiArIHN0ckRhdGU7XHJcblx0fVxyXG5cdHZhciBjdXJyZW50ZGF0ZSA9IHllYXIgKyBzZXBlcmF0b3IgKyBtb250aCArIHNlcGVyYXRvciArIHN0ckRhdGU7XHJcblx0cmV0dXJuIGN1cnJlbnRkYXRlO1xyXG59XHJcblxyXG52YXIgbGFzdE1vdmVUaW1lID0gbnVsbDtcclxuLyoqXHJcbiAqIOmYsuaKllxyXG4gKlxyXG4gKiBAcGFyYW0geyBGdW5jdGlvbiB9IGZuIOimgeaJp+ihjOeahOaWueazlVxyXG4gKiBAcGFyYW0geyBOdW1iZXIgfSB3YWl0ICDpmLLmipblpJrlsJHmr6vnp5JcclxuICpcclxuICog5ZyoIHZ1ZSDkuK3kvb/nlKjvvIjms6jmhI/vvJrkuI3og73kvb/nlKjnrq3lpLTlh73mlbDvvIzlkKbliJl0aGlz5oyH5ZCR5LiN5a+577yM5bm25LiU5LiN6IO95YaN5qyh5bCB6KOF5aaC77yaXHJcbiAqIG1vdmUoKXsgIC8vIOmUmeivr+iwg+eUqOaWueW8j1xyXG4gKiAgIGRlYm91bmNlKGZ1bmN0aW9uICgpIHtcclxuICogICBjb25zb2xlLmxvZyh0aGlzLnRpdGxlKTtcclxuICogfSwgMTAwMCl977yJO1xyXG4gKiDlupTor6Xnm7TmjqXkvb/nlKjvvJovLyDmraPnoa7osIPnlKjmlrnlvI9cclxuICogbW92ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gKiAgIGNvbnNvbGUubG9nKHRoaXMudGl0bGUpO1xyXG4gKiB9LCAxMDAwKVxyXG4gKi9cclxuZnVuY3Rpb24gZGVib3VuY2UoZm4sIHdhaXQpIHtcclxuICBsZXQgdGltZXIgPSBmYWxzZTtcclxuICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xyXG4gICAgdGltZXIgJiYgY2xlYXJUaW1lb3V0KHRpbWVyKTtcclxuICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRpbWVyID0gZmFsc2U7XHJcbiAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIOaKiuWPguaVsOS8oOi/m+WOu1xyXG4gICAgfSwgd2FpdCk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdxaXVuLWRhdGEtY2hhcnRzJyxcclxuICBtaXhpbnM6IFt1bmlDbG91ZC5taXhpbkRhdGFjb21dLFxyXG4gIHByb3BzOiB7XHJcbiAgICB0eXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGNhbnZhc0lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJ3VjaGFydHNpZCdcclxuICAgIH0sXHJcbiAgICBjYW52YXMyZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGJhY2tncm91bmQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAncmdiYSgwLDAsMCwwKSdcclxuICAgIH0sXHJcbiAgICBhbmltYXRpb246IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGNoYXJ0RGF0YToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNhdGVnb3JpZXM6IFtdLFxyXG4gICAgICAgICAgc2VyaWVzOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvcHRzOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgZGVmYXVsdCgpIHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlb3B0czoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbG9hZGluZ1R5cGU6IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICBkZWZhdWx0OiAyXHJcbiAgICB9LFxyXG4gICAgZXJyb3JTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBlcnJvclJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogbnVsbFxyXG4gICAgfSxcclxuICAgIGluU2Nyb2xsVmlldzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlc2hvdzoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHJlbG9hZDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGRpc2FibGVTY3JvbGw6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBvcHRzV2F0Y2g6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9uem9vbToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIG9udGFwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICBvbnRvdWNoOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgb25tb3VzZToge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb25tb3ZldGlwOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0g1OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZWNoYXJ0c0FwcDoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHRvb2x0aXBTaG93OiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB0b29sdGlwRm9ybWF0OiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkXHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcEN1c3RvbToge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIHN0YXJ0RGF0ZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZFxyXG4gICAgfSxcclxuICAgIGVuZERhdGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWRcclxuICAgIH0sXHJcbiAgICB0ZXh0RW51bToge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBncm91cEVudW06IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQgKCkge1xyXG4gICAgICAgIHJldHVybiBbXVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcGFnZVNjcm9sbFRvcDoge1xyXG4gICAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICAgIGRlZmF1bHQ6IDBcclxuICAgIH0sXHJcbiAgICBkaXJlY3Rvcnk6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiAnLydcclxuICAgIH0sXHJcbiAgICB0YXBMZWdlbmQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG1lbnVzOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0ICgpIHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNpZDogJ3VjaGFydHNpZCcsXHJcbiAgICAgIGluV3g6IGZhbHNlLFxyXG4gICAgICBpbkFsaTogZmFsc2UsXHJcbiAgICAgIGluVHQ6IGZhbHNlLFxyXG4gICAgICBpbkJkOiBmYWxzZSxcclxuICAgICAgaW5INTogZmFsc2UsXHJcbiAgICAgIGluQXBwOiBmYWxzZSxcclxuICAgICAgaW5XaW46IGZhbHNlLFxyXG4gICAgICB0eXBlMmQ6IHRydWUsXHJcbiAgICAgIGRpc1Njcm9sbDogZmFsc2UsXHJcbiAgICAgIG9wZW5tb3VzZTogZmFsc2UsXHJcbiAgICAgIHBpeGVsOiAxLFxyXG4gICAgICBjV2lkdGg6IDM3NSxcclxuICAgICAgY0hlaWdodDogMjUwLFxyXG4gICAgICBzaG93Y2hhcnQ6IGZhbHNlLFxyXG4gICAgICBlY2hhcnRzOiBmYWxzZSxcclxuICAgICAgZWNoYXJ0c1Jlc2l6ZTp7XHJcbiAgICAgICAgc3RhdGU6ZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgdWNoYXJ0c09wdHM6IHt9LFxyXG4gICAgICBlY2hhcnRzT3B0czoge30sXHJcbiAgICAgIGRyYXdEYXRhOnt9LFxyXG4gICAgICBsYXN0RHJhd1RpbWU6bnVsbCxcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCl7XHJcbiAgICB0aGlzLmNpZCA9IHRoaXMuY2FudmFzSWRcclxuICAgIGlmICh0aGlzLmNhbnZhc0lkID09ICd1Y2hhcnRzaWQnIHx8IHRoaXMuY2FudmFzSWQgPT0gJycpIHtcclxuICAgICAgbGV0IHQgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidcclxuICAgICAgbGV0IGxlbiA9IHQubGVuZ3RoXHJcbiAgICAgIGxldCBpZCA9ICcnXHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzI7IGkrKykge1xyXG4gICAgICAgIGlkICs9IHQuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxlbikpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaWQgPSBpZFxyXG4gICAgfVxyXG4gICAgY29uc3Qgc3lzdGVtSW5mbyA9IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpXHJcbiAgICBpZihzeXN0ZW1JbmZvLnBsYXRmb3JtID09PSAnd2luZG93cycgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ21hYycpe1xyXG4gICAgICB0aGlzLmluV2luID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIC8vICNpZmRlZiBNUC1XRUlYSU5cclxuICAgIHRoaXMuaW5XeCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jYW52YXMyZCA9PT0gZmFsc2UgfHwgc3lzdGVtSW5mby5wbGF0Zm9ybSA9PT0gJ3dpbmRvd3MnIHx8IHN5c3RlbUluZm8ucGxhdGZvcm0gPT09ICdtYWMnKSB7XHJcbiAgICAgIHRoaXMudHlwZTJkID0gZmFsc2U7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy50eXBlMmQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBpeGVsID0gc3lzdGVtSW5mby5waXhlbFJhdGlvO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvL+mdnuW+ruS/oeWwj+eoi+W6j+err+W8uuWItuWFs+mXrWNhbnZhczJk5qih5byPXHJcbiAgICAvLyAjaWZuZGVmIE1QLVdFSVhJTlxyXG4gICAgdGhpcy50eXBlMmQgPSBmYWxzZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmICBNUC1UT1VUSUFPIHx8IE1QLUxBUksgfHwgTVAtQUxJUEFZXHJcbiAgICB0aGlzLnR5cGUyZCA9IHRoaXMuY2FudmFzMmQ7XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgIHRoaXMuaW5BbGkgPSB0cnVlO1xyXG4gICAgdGhpcy5waXhlbCA9IHN5c3RlbUluZm8ucGl4ZWxSYXRpbztcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIE1QLUJBSURVXHJcbiAgICB0aGlzLmluQmQgPSB0cnVlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgTVAtVE9VVElBT1xyXG4gICAgdGhpcy5pblR0ID0gdHJ1ZTtcclxuICAgIC8vICNlbmRpZlxyXG4gICAgdGhpcy5kaXNTY3JvbGwgPSB0aGlzLmRpc2FibGVTY3JvbGw7XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgLy8gI2lmZGVmIEFQUC1WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0FwcCA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmVjaGFydHMgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9wZW5tb3VzZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgICAvLyAjaWZkZWYgQVBQLU5WVUVcclxuICAgIHRoaXMuaW5BcHAgPSB0cnVlO1xyXG4gICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2VcclxuICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gXCLmmoLkuI3mlK/mjIFOVlVFXCJcclxuICAgIC8vICNlbmRpZlxyXG4gICAgLy8gI2lmZGVmIEg1XHJcbiAgICB0aGlzLmluSDUgPSB0cnVlO1xyXG4gICAgaWYodGhpcy5pbldpbiA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMub3Blbm1vdXNlID0gdGhpcy5vbm1vdXNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWNoYXJ0c0g1ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWNoYXJ0cyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kaWZcclxuICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU8gfHwgQVBQLVZVRVxyXG4gICAgY29uc3QgdGltZSA9IHRoaXMuaW5INSA/IDUwMCA6IDIwMDtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHVuaS5vbldpbmRvd1Jlc2l6ZShcclxuICAgICAgZGVib3VuY2UoZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAgICAgaWYgKF90aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXJybXNnID0gX3RoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIGlmIChlcnJtc2cgIT09IG51bGwgJiYgZXJybXNnICE9PSAnbnVsbCcgJiYgZXJybXNnICE9PSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoX3RoaXMuZWNoYXJ0cykge1xyXG4gICAgICAgICAgX3RoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZSA9ICFfdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBfdGhpcy5yZXNpemVIYW5kbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aW1lKVxyXG4gICAgKTtcclxuICAgIC8vICNlbmRpZlxyXG4gIH0sXHJcbiAgZGVzdHJveWVkKCl7XHJcbiAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICBkZWxldGUgY2ZlLm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmZS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1lbHNle1xyXG4gICAgICBkZWxldGUgY2Z1Lm9wdGlvblt0aGlzLmNpZF1cclxuICAgICAgZGVsZXRlIGNmdS5pbnN0YW5jZVt0aGlzLmNpZF1cclxuICAgIH1cclxuICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZIHx8IE1QLUJBSURVIHx8IE1QLVRPVVRJQU9cclxuICAgIHVuaS5vZmZXaW5kb3dSZXNpemUoKCk9Pnt9KVxyXG4gICAgLy8gI2VuZGlmXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY2hhcnREYXRhUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgICBpZiAodmFsLnNlcmllcyAmJiB2YWwuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJpjaGFydERhdGHmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxvY2FsZGF0YTp7XHJcbiAgICAgIGhhbmRsZXIodmFsLCBvbGR2YWwpIHtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSkge1xyXG4gICAgICAgICAgaWYgKHZhbC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmVmb3JlSW5pdCgpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIG9wdHNQcm9wczoge1xyXG4gICAgICBoYW5kbGVyKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodmFsKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkdmFsKSAmJiB0aGlzLmVjaGFydHMgPT09IGZhbHNlICYmIHRoaXMub3B0c1dhdGNoID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5kcmF3RGF0YSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJDaGFydCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mm9wdHPmlbDmja7nsbvlnovplJnor68nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgaW1tZWRpYXRlOiBmYWxzZSxcclxuICAgICAgZGVlcDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHM6IHtcclxuICAgICAgaGFuZGxlcih2YWwsIG9sZHZhbCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHZhbCkgIT09IEpTT04uc3RyaW5naWZ5KG9sZHZhbCkgJiYgdGhpcy5lY2hhcnRzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9ICflj4LmlbDplJnor6/vvJplb3B0c+aVsOaNruexu+Wei+mUmeivryc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IGZhbHNlLFxyXG4gICAgICBkZWVwOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgcmVzaG93KHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgPT09IHRydWUgJiYgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5lY2hhcnRzUmVzaXplLnN0YXRlID0gIXRoaXMuZWNoYXJ0c1Jlc2l6ZS5zdGF0ZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICByZWxvYWQodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtaXhpbkRhdGFjb21FcnJvck1lc3NhZ2UodmFsLCBvbGR2YWwpIHtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2Vycm9yJywgcGFyYW1zOiB7dHlwZTpcImVycm9yXCIsIGVycm9yU2hvdzogdGhpcy5lcnJvclNob3csIG1zZzogdmFsLCBpZDogdGhpcy5jaWR9fSk7XHJcbiAgICAgICAgaWYodGhpcy5lcnJvclNob3cpe1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1vnp4vkupHlm77ooajnu4Tku7ZdJyArIHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3JNZXNzYWdlKHZhbCwgb2xkdmFsKSB7XHJcbiAgICAgIGlmICh2YWwgJiYgdGhpcy5lcnJvclNob3cgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gJ251bGwnICYmIHZhbCAhPT0gJycpIHtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gdmFsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmVsb2FkaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3B0cykpO1xyXG4gICAgfSxcclxuICAgIGVvcHRzUHJvcHMoKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZW9wdHMpKTtcclxuICAgIH0sXHJcbiAgICBjaGFydERhdGFQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGFydERhdGEpKTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBiZWZvcmVJbml0KCl7XHJcbiAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNoYXJ0RGF0YSA9PT0gJ29iamVjdCcgJiYgdGhpcy5jaGFydERhdGEgIT0gbnVsbCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNoYXJ0RGF0YS5zZXJpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICAgIHRoaXMuZHJhd0RhdGEgPSBkZWVwQ2xvbmVBc3NpZ24oe30sIHRoaXMuY2hhcnREYXRhKTtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3djaGFydCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0RhdGEodGhpcy5jaGFydERhdGEpO1xyXG4gICAgICB9ZWxzZSBpZih0aGlzLmxvY2FsZGF0YS5sZW5ndGg+MCl7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9jYWxkYXRhSW5pdCh0aGlzLmxvY2FsZGF0YSk7XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMuY29sbGVjdGlvbiAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xvdWREYXRhKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBsb2NhbGRhdGFJbml0KHJlc2RhdGEpe1xyXG4gICAgICAvL+abv+aNomVudW3nsbvlnovkuLrmraPnoa7nmoTmj4/ov7BcclxuICAgICAgaWYodGhpcy5ncm91cEVudW0ubGVuZ3RoPjApe1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmdyb3VwRW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLmdyb3VwID09PSB0aGlzLmdyb3VwRW51bVtqXS52YWx1ZSl7XHJcbiAgICAgICAgICAgICAgcmVzZGF0YVtpXS5ncm91cCA9IHRoaXMuZ3JvdXBFbnVtW2pdLnRleHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLnRleHRFbnVtLmxlbmd0aD4wKXtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc2RhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy50ZXh0RW51bS5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBpZihyZXNkYXRhW2ldLnRleHQgPT09IHRoaXMudGV4dEVudW1bal0udmFsdWUpe1xyXG4gICAgICAgICAgICAgIHJlc2RhdGFbaV0udGV4dCA9IHRoaXMudGV4dEVudW1bal0udGV4dFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBuZWVkQ2F0ZWdvcmllcyA9IGZhbHNlO1xyXG4gICAgICBsZXQgdG1wRGF0YSA9IHtjYXRlZ29yaWVzOltdLCBzZXJpZXM6W119XHJcbiAgICAgIGxldCB0bXBjYXRlZ29yaWVzID0gW11cclxuICAgICAgbGV0IHRtcHNlcmllcyA9IFtdO1xyXG4gICAgICAvL+aLvOaOpWNhdGVnb3JpZXNcclxuICAgICAgaWYodGhpcy5lY2hhcnRzID09PSB0cnVlKXtcclxuICAgICAgICBuZWVkQ2F0ZWdvcmllcyA9IGNmZS5jYXRlZ29yaWVzLmluY2x1ZGVzKHRoaXMudHlwZSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbmVlZENhdGVnb3JpZXMgPSBjZnUuY2F0ZWdvcmllcy5pbmNsdWRlcyh0aGlzLnR5cGUpXHJcbiAgICAgIH1cclxuICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgIC8v5aaC5p6ccHJvcHPkuK3nmoRjaGFydERhdGHluKbmnIljYXRlZ29yaWVz77yM5YiZ5LyY5YWI5L2/55SoY2hhcnREYXRh55qEY2F0ZWdvcmllc1xyXG4gICAgICAgIGlmKHRoaXMuY2hhcnREYXRhICYmIHRoaXMuY2hhcnREYXRhLmNhdGVnb3JpZXMgJiYgdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllcy5sZW5ndGg+MCl7XHJcbiAgICAgICAgICB0bXBjYXRlZ29yaWVzID0gdGhpcy5jaGFydERhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgLy/lpoLmnpzmmK/ml6XmnJ/nsbvlnovnmoTmlbDmja7vvIzkuI3nrqHmmK/mnKzlnLDmlbDmja7ov5jmmK/kupHmlbDmja7vvIzpg73mjInotbfmraLml6XmnJ/oh6rliqjmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICBpZih0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLmVuZERhdGUpe1xyXG4gICAgICAgICAgICBsZXQgaWRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSlcclxuICAgICAgICAgICAgbGV0IGVkYXRlID0gbmV3IERhdGUodGhpcy5lbmREYXRlKVxyXG4gICAgICAgICAgICB3aGlsZSAoaWRhdGUgPD0gZWRhdGUpIHtcclxuICAgICAgICAgICAgXHR0bXBjYXRlZ29yaWVzLnB1c2goZ2V0Rm9ybWF0RGF0ZShpZGF0ZSkpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBpZGF0ZS5zZXREYXRlKGlkYXRlLmdldERhdGUoKSArIDEpXHJcbiAgICAgICAgICAgIFx0aWRhdGUgPSBuZXcgRGF0ZShpZGF0ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgLy/lkKbliJnku47nu5PmnpzkuK3ljrvph43lubbmi7zmjqVjYXRlZ29yaWVzXHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgbGV0IHRlbXBja2V5ID0ge307XHJcbiAgICAgICAgICAgIHJlc2RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0udGV4dCAhPSB1bmRlZmluZWQgJiYgIXRlbXBja2V5W2l0ZW0udGV4dF0pIHtcclxuICAgICAgICAgICAgICAgIHRtcGNhdGVnb3JpZXMucHVzaChpdGVtLnRleHQpXHJcbiAgICAgICAgICAgICAgICB0ZW1wY2tleVtpdGVtLnRleHRdID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRtcERhdGEuY2F0ZWdvcmllcyA9IHRtcGNhdGVnb3JpZXNcclxuICAgICAgfVxyXG4gICAgICAvL+aLvOaOpXNlcmllc1xyXG4gICAgICBsZXQgdGVtcHNrZXkgPSB7fTtcclxuICAgICAgcmVzZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cCAhPSB1bmRlZmluZWQgJiYgIXRlbXBza2V5W2l0ZW0uZ3JvdXBdKSB7XHJcbiAgICAgICAgICB0bXBzZXJpZXMucHVzaCh7IG5hbWU6IGl0ZW0uZ3JvdXAsIGRhdGE6IFtdIH0pO1xyXG4gICAgICAgICAgdGVtcHNrZXlbaXRlbS5ncm91cF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIC8v5aaC5p6c5rKh5pyJ6I635Y+W5Yiw5YiG57uE5ZCN56ewKOWPr+iDveaYr+W4pmNhdGVnb3JpZXPnmoTmlbDmja7vvIzkuZ/lj6/og73mmK/kuI3luKbnmoTppbzlm77nsbspXHJcbiAgICAgIGlmICh0bXBzZXJpZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0bXBzZXJpZXMgPSBbeyBuYW1lOiAn6buY6K6k5YiG57uEJywgZGF0YTogW10gfV07XHJcbiAgICAgICAgLy/lpoLmnpzmmK/pnIDopoFjYXRlZ29yaWVz55qE5Zu+6KGo57G75Z6LXHJcbiAgICAgICAgaWYobmVlZENhdGVnb3JpZXMgPT09IHRydWUpe1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBzZXJpZXNkYXRhID0gMDtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc2RhdGFbaV0udGV4dCA9PSB0bXBjYXRlZ29yaWVzW2pdKSB7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXNkYXRhID0gcmVzZGF0YVtpXS52YWx1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG1wc2VyaWVzWzBdLmRhdGEucHVzaChzZXJpZXNkYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAvL+WmguaenOaYr+mlvOWbvuexu+eahOWbvuihqOexu+Wei1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRtcHNlcmllc1swXS5kYXRhLnB1c2goe1wibmFtZVwiOiByZXNkYXRhW2ldLnRleHQsXCJ2YWx1ZVwiOiByZXNkYXRhW2ldLnZhbHVlfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAvL+WmguaenOacieWIhue7hOWQjVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdG1wc2VyaWVzLmxlbmd0aDsgaysrKSB7XHJcbiAgICAgICAgICAvL+WmguaenOaciWNhdGVnb3JpZXNcclxuICAgICAgICAgIGlmICh0bXBjYXRlZ29yaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0bXBjYXRlZ29yaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHNlcmllc2RhdGEgPSAwO1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXAgJiYgcmVzZGF0YVtpXS50ZXh0ID09IHRtcGNhdGVnb3JpZXNbal0pIHtcclxuICAgICAgICAgICAgICAgICAgc2VyaWVzZGF0YSA9IHJlc2RhdGFbaV0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2goc2VyaWVzZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5aaC5p6c5Lyg5LqGZ3JvdXDogIzmsqHmnInkvKB0ZXh077yM5Y2z5rKh5pyJY2F0ZWdvcmllc++8iOato+W4uOaDheWGteS4i+i/meenjeaVsOaNruaYr+S4jeespuWQiOaVsOaNruimgeaxguinhOiMg+eahO+8iVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRtcHNlcmllc1trXS5uYW1lID09IHJlc2RhdGFbaV0uZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgIHRtcHNlcmllc1trXS5kYXRhLnB1c2gocmVzZGF0YVtpXS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRtcERhdGEuc2VyaWVzID0gdG1wc2VyaWVzXHJcbiAgICAgIC8v5ou36LSd5LiA5LiLY2hhcnREYXRh77yM5Li65LqGb3B0c+WPmOabtOWQjue7n+S4gOaVsOaNruadpea6kFxyXG4gICAgICB0aGlzLmRyYXdEYXRhID0gZGVlcENsb25lQXNzaWduKHt9LCB0bXBEYXRhKTtcclxuICAgICAgdGhpcy5jaGVja0RhdGEodG1wRGF0YSlcclxuICAgIH0sXHJcbiAgICByZWxvYWRpbmcoKSB7XHJcbiAgICAgIGlmKHRoaXMuZXJyb3JSZWxvYWQgPT09IGZhbHNlKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25NaXhpbkRhdGFjb21Qcm9wc0NoYW5nZSh0cnVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNoZWNrRGF0YShhbnlEYXRhKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICAvL+WkjeS9jW9wdHPmiJZlb3B0c1xyXG4gICAgICBpZih0aGlzLmVjaGFydHMgPT09IHRydWUpe1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgdGhpcy5lb3B0cyk7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmlkID0gY2lkO1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXS50eXBlID0gdGhpcy50eXBlO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAodGhpcy50eXBlICYmIGNmdS50eXBlLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1W3RoaXMudHlwZV0sIHRoaXMub3B0cyk7XHJcbiAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzSWQgPSBjaWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8mnByb3Bz5Y+C5pWw5LitdHlwZeexu+Wei+S4jeato+ehric7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8v5oyC6L29Y2F0ZWdvcmllc+WSjHNlcmllc1xyXG4gICAgICBsZXQgbmV3RGF0YSA9IGRlZXBDbG9uZUFzc2lnbih7fSwgYW55RGF0YSk7XHJcbiAgICAgIGlmIChuZXdEYXRhLnNlcmllcyAhPT0gdW5kZWZpbmVkICYmIG5ld0RhdGEuc2VyaWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmNoYXJ0RGF0YSA9IG5ld0RhdGE7XHJcbiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKT0+e1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jYXRlZ29yaWVzID0gbmV3RGF0YS5jYXRlZ29yaWVzO1xyXG4gICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnNlcmllcyA9IG5ld0RhdGEuc2VyaWVzO1xyXG4gICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCk9PntcclxuICAgICAgICAgICAgdGhpcy5pbml0KClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgcmVzaXplSGFuZGxlcigpIHtcclxuICAgICAgLy/muLLmn5PpmLLmipZcclxuICAgICAgbGV0IGN1cnJUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgbGV0IGxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lP3RoaXMubGFzdERyYXdUaW1lOmN1cnJUaW1lLTMwMDA7XHJcbiAgICAgIGxldCBkdXJhdGlvbiA9IGN1cnJUaW1lIC0gbGFzdERyYXdUaW1lO1xyXG4gICAgICBpZiAoZHVyYXRpb24gPCAxMDAwKSByZXR1cm47XHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJyt0aGlzLmNpZClcclxuICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEud2lkdGggPiAwICYmIGRhdGEuaGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS53aWR0aCAhPT0gdGhpcy5jV2lkdGggfHwgZGF0YS5oZWlnaHQgIT09IHRoaXMuY0hlaWdodCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRhKHRoaXMuZHJhd0RhdGEpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0Q2xvdWREYXRhKCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21HZXQoKVxyXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbVJlc0RhdGEgPSByZXMucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmxvY2FsZGF0YUluaXQodGhpcy5taXhpbkRhdGFjb21SZXNEYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3djaGFydCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn6K+35rGC6ZSZ6K+v77yaJyArIGVycjtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBvbk1peGluRGF0YWNvbVByb3BzQ2hhbmdlKG5lZWRSZXNldCwgY2hhbmdlZCkge1xyXG4gICAgICBpZiAobmVlZFJlc2V0ID09IHRydWUgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2NsZWFyQ2hhcnQoKTtcclxuICAgICAgICB0aGlzLmdldENsb3VkRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX2NsZWFyQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBpZiAodGhpcy5lY2hhcnRzICE9PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0uY29udGV4dCkge1xyXG4gICAgICAgIGNvbnN0IGN0eCA9IGNmdS5vcHRpb25bY2lkXS5jb250ZXh0O1xyXG4gICAgICAgIGlmKHR5cGVvZiBjdHggPT09IFwib2JqZWN0XCIgJiYgISEhY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSl7XHJcbiAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY1dpZHRoKnRoaXMucGl4ZWwsIHRoaXMuY0hlaWdodCp0aGlzLnBpeGVsKTtcclxuICAgICAgICAgIGN0eC5kcmF3KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjaGFydGRvbSA9IHVuaVxyXG4gICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAvLyAjaWZuZGVmIE1QLUFMSVBBWVxyXG4gICAgICAgIC5pbih0aGlzKVxyXG4gICAgICAgIC8vICNlbmRpZlxyXG4gICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgLmJvdW5kaW5nQ2xpZW50UmVjdChkYXRhID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhLndpZHRoID4gMCAmJiBkYXRhLmhlaWdodCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sYXN0RHJhd1RpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLmNXaWR0aCA9IGRhdGEud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuY0hlaWdodCA9IGRhdGEuaGVpZ2h0O1xyXG4gICAgICAgICAgICBpZih0aGlzLmVjaGFydHMgIT09IHRydWUpe1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5iYWNrZ3JvdW5kID0gdGhpcy5iYWNrZ3JvdW5kID09ICdyZ2JhKDAsMCwwLDApJyA/ICcjRkZGRkZGJyA6IHRoaXMuYmFja2dyb3VuZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY2FudmFzMmQgPSB0aGlzLnR5cGUyZDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucGl4ZWxSYXRpbyA9IHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS53aWR0aCA9IGRhdGEud2lkdGggKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5oZWlnaHQgPSBkYXRhLmhlaWdodCAqIHRoaXMucGl4ZWw7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9IHRoaXMub256b29tO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5vbnRhcCA9IHRoaXMub250YXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2ggPSB0aGlzLm9udG91Y2g7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ub25tb3ZldGlwID0gdGhpcy5vbm1vdmV0aXA7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBTaG93ID0gdGhpcy50b29sdGlwU2hvdztcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEN1c3RvbSA9IHRoaXMudG9vbHRpcEN1c3RvbTtcclxuICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uaW5TY3JvbGxWaWV3ID0gdGhpcy5pblNjcm9sbFZpZXc7XHJcbiAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmQgPSB0aGlzLnRhcExlZ2VuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+WmguaenOaYr0g15oiW6ICFQXBw56uv77yM6YeH55SocmVuZGVyanPmuLLmn5Plm77ooahcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5INSB8fCB0aGlzLmluQXBwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWNoYXJ0cyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ub250YXAgPSB0aGlzLm9udGFwO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLm9ubW91c2UgPSB0aGlzLm9wZW5tb3VzZTtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9IHRoaXMudG9vbHRpcFNob3c7XHJcbiAgICAgICAgICAgICAgICBjZmUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9IHRoaXMudG9vbHRpcEZvcm1hdDtcclxuICAgICAgICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tID0gdGhpcy50b29sdGlwQ3VzdG9tO1xyXG4gICAgICAgICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLmxhc3REcmF3VGltZSA9IHRoaXMubGFzdERyYXdUaW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lY2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2ZlLm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLnJvdGF0ZUxvY2sgPSBjZnUub3B0aW9uW2NpZF0ucm90YXRlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51Y2hhcnRzT3B0cyA9IGRlZXBDbG9uZUFzc2lnbih7fSwgY2Z1Lm9wdGlvbltjaWRdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v5aaC5p6c5piv5bCP56iL5bqP56uv77yM6YeH55SodUNoYXJ0c+a4suafk1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXSA9IGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgICAgICAgICB0aGlzLm1peGluRGF0YWNvbUVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpPT57XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlMmQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgLnNlbGVjdCgnIycgKyBjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgICAgICAuZXhlYyhyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1swXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0ID0gY3R4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNmdS5pbnN0YW5jZVtjaWRdICYmIGNmdS5vcHRpb25bY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0udXBkYXRlID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGFVQ2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gZGF0YS5oZWlnaHQgKiB0aGlzLnBpeGVsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5fd2lkdGggPSBkYXRhLndpZHRoICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuX2hlaWdodCA9IGRhdGEuaGVpZ2h0ICogdGhpcy5waXhlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5zYXZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZXdDaGFydChjaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWl4aW5EYXRhY29tRXJyb3JNZXNzYWdlID0gJ+WPguaVsOmUmeivr++8muW8gOWQrzJk5qih5byP5ZCO77yM5pyq6I635Y+W5YiwZG9t6IqC54K577yMY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBpZih0aGlzLmluQWxpKXtcclxuICAgICAgICAgICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0ucm90YXRlTG9jayA9IGNmdS5vcHRpb25bY2lkXS5yb3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSB1bmkuY3JlYXRlQ2FudmFzQ29udGV4dChjaWQsIHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgICBpZihjZnUuaW5zdGFuY2VbY2lkXSAmJiBjZnUub3B0aW9uW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdLnVwZGF0ZSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRhVUNoYXJ0KGNpZClcclxuICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV3Q2hhcnQoY2lkKVxyXG4gICAgICAgICAgICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2NoYXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc2hvdyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSAn5biD5bGA6ZSZ6K+v77ya5pyq6I635Y+W5Yiw54i25YWD57Sg5a696auY5bC65a+477yBY2FudmFzLWlkOicgKyBjaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjKCk7XHJcbiAgICB9LFxyXG4gICAgc2F2ZUltYWdlKCl7XHJcbiAgICBcdHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICBcdCAgY2FudmFzSWQ6IHRoaXMuY2lkLFxyXG4gICAgXHQgIHN1Y2Nlc3M6IHJlcz0+e1xyXG4gICAgXHQgICAgLy8jaWZkZWYgSDVcclxuICAgIFx0XHRcdHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICBcdFx0XHRhLmhyZWYgPSByZXMudGVtcEZpbGVQYXRoO1xyXG4gICAgXHRcdFx0YS5kb3dubG9hZCA9IHRoaXMuY2lkO1xyXG4gICAgXHRcdFx0YS50YXJnZXQgPSAnX2JsYW5rJ1xyXG4gICAgXHRcdFx0YS5jbGljaygpO1xyXG4gICAgXHQgICAgLy8jZW5kaWZcclxuICAgIFx0ICAgIC8vI2lmbmRlZiBINVxyXG4gICAgXHQgICAgICB1bmkuc2F2ZUltYWdlVG9QaG90b3NBbGJ1bSh7XHJcbiAgICAgICAgICAgICAgZmlsZVBhdGg6IHJlcy50ZW1wRmlsZVBhdGgsXHJcbiAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdW5pLnNob3dUb2FzdCh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5L+d5a2Y5oiQ5YqfJyxcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgIFx0ICAgICAgfSk7XHJcbiAgICBcdCAgICAvLyNlbmRpZlxyXG4gICAgXHQgIH0gXHJcbiAgICBcdH0sdGhpcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0SW1hZ2UoKXtcclxuICAgICAgaWYodGhpcy50eXBlMmQgPT0gZmFsc2Upe1xyXG4gICAgICAgIHVuaS5jYW52YXNUb1RlbXBGaWxlUGF0aCh7XHJcbiAgICAgICAgICBjYW52YXNJZDogdGhpcy5jaWQsXHJcbiAgICAgICAgICBzdWNjZXNzOiByZXM9PntcclxuICAgICAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnZ2V0SW1hZ2UnLCBwYXJhbXM6IHt0eXBlOlwiZ2V0SW1hZ2VcIiwgYmFzZTY0OiByZXMudGVtcEZpbGVQYXRofX0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sdGhpcyk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKVxyXG4gICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICAuc2VsZWN0KCcjJyArIHRoaXMuY2lkKVxyXG4gICAgICAgICAgLmZpZWxkcyh7IG5vZGU6IHRydWUsIHNpemU6IHRydWUgfSlcclxuICAgICAgICAgIC5leGVjKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNbMF0pIHtcclxuICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSByZXNbMF0ubm9kZTtcclxuICAgICAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbWFnZScsIHBhcmFtczoge3R5cGU6XCJnZXRJbWFnZVwiLCBiYXNlNjQ6IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNpZm5kZWYgQVBQLVZVRSB8fCBINVxyXG4gICAgX25ld0NoYXJ0KGNpZCkge1xyXG4gICAgICBpZiAodGhpcy5taXhpbkRhdGFjb21Mb2FkaW5nID09IHRydWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Y2hhcnQgPSB0cnVlO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXSA9IG5ldyB1Q2hhcnRzKGNmdS5vcHRpb25bY2lkXSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2NvbXBsZXRlJywgcGFyYW1zOiB7dHlwZTpcImNvbXBsZXRlXCIsIGNvbXBsZXRlOiB0cnVlLCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmRlbEV2ZW50TGlzdGVuZXIoJ3JlbmRlckNvbXBsZXRlJylcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbExlZnQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOiAnc2Nyb2xsTGVmdCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxMZWZ0XCIsIHNjcm9sbExlZnQ6IHRydWUsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxSaWdodCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdzY3JvbGxSaWdodCcsIHBhcmFtczoge3R5cGU6XCJzY3JvbGxSaWdodFwiLCBzY3JvbGxSaWdodDogdHJ1ZSwgaWQ6IGNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgX3VwZGF0YVVDaGFydChjaWQpIHtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udXBkYXRlRGF0YShjZnUub3B0aW9uW2NpZF0pXHJcbiAgICB9LFxyXG4gICAgX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykge1xyXG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0uZGF0YVxyXG4gICAgICAgIGlmKHR5cGVvZiBpdGVtLmRhdGEgPT09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgZGF0YSA9IGl0ZW0uZGF0YS52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2F0ZWdvcnkgKyAnICcgKyBpdGVtLm5hbWUgKyAnOicgKyBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BlcnRpZXMgJiYgaXRlbS5wcm9wZXJ0aWVzLm5hbWUpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnByb3BlcnRpZXMubmFtZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSArICc6JyArIGl0ZW0uZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBfc2hvd1Rvb2x0aXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGV0IHRjID0gY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBDdXN0b21cclxuICAgICAgaWYgKHRjICYmIHRjICE9PSB1bmRlZmluZWQgJiYgdGMgIT09IG51bGwpIHtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0Yy54ID49IDAgJiYgdGMueSA+PSAwKSB7XHJcbiAgICAgICAgICBvZmZzZXQgPSB7IHg6IHRjLngsIHk6IHRjLnkgKyAxMCB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zaG93VG9vbFRpcChlLCB7XHJcbiAgICAgICAgICBpbmRleDogdGMuaW5kZXgsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCxcclxuICAgICAgICAgIHRleHRMaXN0OiB0Yy50ZXh0TGlzdCxcclxuICAgICAgICAgIGZvcm1hdHRlcjogKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0ID09PSAnc3RyaW5nJyAmJiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBjZnUuZm9ybWF0dGVyW2NmdS5vcHRpb25bY2lkXS50b29sdGlwRm9ybWF0XShpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl90b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBEZWZhdWx0KGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90YXAoZSxtb3ZlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLmNpZFxyXG4gICAgICBsZXQgY3VycmVudEluZGV4ID0gbnVsbDtcclxuICAgICAgbGV0IGxlZ2VuZEluZGV4ID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5TY3JvbGxWaWV3ID09PSB0cnVlIHx8IHRoaXMuaW5BbGkpIHtcclxuICAgICAgICBsZXQgY2hhcnRkb20gPSB1bmlcclxuICAgICAgICAgIC5jcmVhdGVTZWxlY3RvclF1ZXJ5KClcclxuICAgICAgICAgIC8vICNpZm5kZWYgTVAtQUxJUEFZXHJcbiAgICAgICAgICAuaW4odGhpcylcclxuICAgICAgICAgIC5zZWxlY3QoJyNDaGFydEJveElkJytjaWQpXHJcbiAgICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAgIC8vICNpZmRlZiBNUC1BTElQQVlcclxuICAgICAgICAgIC5zZWxlY3QoJyMnK3RoaXMuY2lkKVxyXG4gICAgICAgICAgLy8gI2VuZGlmXHJcbiAgICAgICAgICAuYm91bmRpbmdDbGllbnRSZWN0KGRhdGEgPT4ge1xyXG4gICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzPVtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbkFsaSkge1xyXG4gICAgICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLmNsaWVudFggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLmNsaWVudFkgLSBkYXRhLnRvcH0pO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQoeyB4OiBlLmRldGFpbC54IC0gZGF0YS5sZWZ0LCB5OiBlLmRldGFpbC55IC0gZGF0YS50b3AgLSB0aGlzLnBhZ2VTY3JvbGxUb3B9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGxlZ2VuZEluZGV4ID0gY2Z1Lmluc3RhbmNlW2NpZF0uZ2V0TGVnZW5kRGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMudGFwTGVnZW5kID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAodGhpcy50b29sdGlwU2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZW1pdE1zZyh7bmFtZTogJ2dldEluZGV4JywgcGFyYW1zOiB7IHR5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLnggLSBkYXRhLmxlZnQsIHk6IGUuZGV0YWlsLnkgLSBkYXRhLnRvcCB9LCBjdXJyZW50SW5kZXg6IGN1cnJlbnRJbmRleCwgbGVnZW5kSW5kZXg6IGxlZ2VuZEluZGV4LCBpZDogY2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmV4ZWMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZihtb3ZlKXtcclxuICAgICAgICAgIGlmICh0aGlzLnRvb2x0aXBTaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3dUb29sdGlwKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZS5jaGFuZ2VkVG91Y2hlcz1bXTtcclxuICAgICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh7IHg6IGUuZGV0YWlsLnggLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0TGVmdCwgeTogZS5kZXRhaWwueSAtIGUuY3VycmVudFRhcmdldC5vZmZzZXRUb3AgfSk7XHJcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgICAgICAgbGVnZW5kSW5kZXggPSBjZnUuaW5zdGFuY2VbY2lkXS5nZXRMZWdlbmREYXRhSW5kZXgoZSk7XHJcbiAgICAgICAgICBpZih0aGlzLnRhcExlZ2VuZCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnRvdWNoTGVnZW5kKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudG9vbHRpcFNob3cgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2hvd1Rvb2x0aXAoZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRJbmRleCcsIHBhcmFtczoge3R5cGU6XCJnZXRJbmRleFwiLCBldmVudDp7IHg6IGUuZGV0YWlsLngsIHk6IGUuZGV0YWlsLnkgLSBlLmN1cnJlbnRUYXJnZXQub2Zmc2V0VG9wIH0sIGN1cnJlbnRJbmRleDogY3VycmVudEluZGV4LCBsZWdlbmRJbmRleDogbGVnZW5kSW5kZXgsIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoU3RhcnQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5jaWRcclxuICAgICAgbGFzdE1vdmVUaW1lPURhdGUubm93KCk7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6J2dldFRvdWNoU3RhcnQnLCBwYXJhbXM6e3R5cGU6XCJ0b3VjaFN0YXJ0XCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgIH0sXHJcbiAgICBfdG91Y2hNb3ZlKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGxldCBjdXJyTW92ZVRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICBsZXQgZHVyYXRpb24gPSBjdXJyTW92ZVRpbWUgLSBsYXN0TW92ZVRpbWU7XHJcbiAgICAgIGxldCB0b3VjaE1vdmVMaW1pdCA9IGNmdS5vcHRpb25bY2lkXS50b3VjaE1vdmVMaW1pdCB8fCAyNDtcclxuICAgICAgaWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gdG91Y2hNb3ZlTGltaXQpKSByZXR1cm47Ly/mr4/np5I2MOW4p1xyXG4gICAgICBsYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMub250YXAgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gZmFsc2UgJiYgdGhpcy5vbm1vdmV0aXAgPT09IHRydWUpe1xyXG4gICAgICAgIHRoaXMuX3RhcChlLHRydWUpXHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5vbnRvdWNoID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgdGhpcy5vbnpvb20gPT09IHRydWUgJiYgZS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT0gMil7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZG9idWxlWm9vbShlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVtaXRNc2coe25hbWU6ICdnZXRUb3VjaE1vdmUnLCBwYXJhbXM6IHt0eXBlOlwidG91Y2hNb3ZlXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOiBjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSk7XHJcbiAgICB9LFxyXG4gICAgX3RvdWNoRW5kKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMuY2lkXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbWl0TXNnKHtuYW1lOidnZXRUb3VjaEVuZCcsIHBhcmFtczp7dHlwZTpcInRvdWNoRW5kXCIsIGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0sIGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KTtcclxuICAgICAgaWYodGhpcy5vbnRhcCA9PT0gdHJ1ZSAmJiBjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSBmYWxzZSAmJiB0aGlzLm9ubW92ZXRpcCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5fdGFwKGUsdHJ1ZSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vICNlbmRpZlxyXG4gICAgX2Vycm9yKGUpIHtcclxuICAgICAgdGhpcy5taXhpbkRhdGFjb21FcnJvck1lc3NhZ2UgPSBlLmRldGFpbC5lcnJNc2c7XHJcbiAgICB9LFxyXG4gICAgZW1pdE1zZyhtc2cpIHtcclxuICAgICAgdGhpcy4kZW1pdChtc2cubmFtZSwgbXNnLnBhcmFtcyk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UmVuZGVyVHlwZSgpIHtcclxuICAgICAgLy/pmLLmraLlpoLmnpzlvIDlkK9lY2hhcnRz5LiU54i25YWD57Sg5Li6di1pZueahOaDheWGtXJlbmRlcmpz55uR5ZCs5LiN5YiwcHJvcOWPmOWMlueahOmXrumimFxyXG4gICAgICBpZih0aGlzLmVjaGFydHM9PT10cnVlICYmIHRoaXMubWl4aW5EYXRhY29tTG9hZGluZz09PWZhbHNlKXtcclxuICAgICAgICB0aGlzLmJlZm9yZUluaXQoKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG9KU09OKCl7XHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcbiAgfVxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjwhLS0gI2lmZGVmIEFQUC1WVUUgfHwgSDUgLS0+XHJcbjxzY3JpcHQgbW9kdWxlPVwicmRjaGFydHNcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuaW1wb3J0IHVDaGFydHNSRCBmcm9tICcuLi8uLi9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMnO1xyXG5pbXBvcnQgY2Z1IGZyb20gJy4uLy4uL2pzX3Nkay91LWNoYXJ0cy9jb25maWctdWNoYXJ0cy5qcyc7XHJcbmltcG9ydCBjZmUgZnJvbSAnLi4vLi4vanNfc2RrL3UtY2hhcnRzL2NvbmZpZy1lY2hhcnRzLmpzJztcclxuXHJcbnZhciB0aGF0ID0ge307XHJcbnZhciByb290ZG9tID0gbnVsbDtcclxuXHJcbmZ1bmN0aW9uIHJkZGVlcENsb25lQXNzaWduKG9yaWdpbiA9IHt9LCAuLi5hcmdzKSB7XHJcbiAgZm9yIChsZXQgaSBpbiBhcmdzKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gYXJnc1tpXSkge1xyXG4gICAgICBpZiAoYXJnc1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb3JpZ2luW2tleV0gPSBhcmdzW2ldW2tleV0gJiYgdHlwZW9mIGFyZ3NbaV1ba2V5XSA9PT0gJ29iamVjdCcgPyByZGRlZXBDbG9uZUFzc2lnbihBcnJheS5pc0FycmF5KGFyZ3NbaV1ba2V5XSkgPyBbXSA6IHt9LCBvcmlnaW5ba2V5XSwgYXJnc1tpXVtrZXldKSA6IGFyZ3NbaV1ba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb3JpZ2luO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZGZvcm1hdHRlckFzc2lnbihhcmdzLGZvcm1hdHRlcikge1xyXG4gIGZvciAobGV0IGtleSBpbiBhcmdzKSB7XHJcbiAgICBpZihhcmdzLmhhc093blByb3BlcnR5KGtleSkgJiYgYXJnc1trZXldICE9PSBudWxsICYmIHR5cGVvZiBhcmdzW2tleV0gPT09ICdvYmplY3QnKXtcclxuICAgICAgcmRmb3JtYXR0ZXJBc3NpZ24oYXJnc1trZXldLGZvcm1hdHRlcilcclxuICAgIH1lbHNlIGlmKGtleSA9PT0gJ2Zvcm1hdCcgJiYgdHlwZW9mIGFyZ3Nba2V5XSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICBhcmdzWydmb3JtYXR0ZXInXSA9IGZvcm1hdHRlclthcmdzW2tleV1dID8gZm9ybWF0dGVyW2FyZ3Nba2V5XV0gOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBhcmdzO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJpZDpudWxsXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgcm9vdGRvbSA9IHt0b3A6MCxsZWZ0OjB9XHJcbiAgICAvLyAjaWZkZWYgSDVcclxuICAgIGxldCBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1tYWluJylbMF1cclxuICAgIGlmKGRtID09PSB1bmRlZmluZWQpe1xyXG4gICAgICBkbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VuaS1wYWdlLXdyYXBwZXInKVswXVxyXG4gICAgfVxyXG4gICAgcm9vdGRvbSA9IHt0b3A6ZG0ub2Zmc2V0VG9wLGxlZnQ6ZG0ub2Zmc2V0TGVmdH1cclxuICAgIC8vICNlbmRpZlxyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICBpZih0aGlzLnJpZCA9PT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy4kb3duZXJJbnN0YW5jZSAmJiB0aGlzLiRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2dldFJlbmRlclR5cGUnKVxyXG4gICAgICB9XHJcbiAgICB9LDIwMClcclxuICB9LFxyXG4gIGRlc3Ryb3llZCgpe1xyXG4gICAgZGVsZXRlIGNmdS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2Z1Lmluc3RhbmNlW3RoaXMucmlkXVxyXG4gICAgZGVsZXRlIGNmZS5vcHRpb25bdGhpcy5yaWRdXHJcbiAgICBkZWxldGUgY2ZlLmluc3RhbmNlW3RoaXMucmlkXVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgLy89PT09PT09PT09PT09PeS7peS4i+aYr0VDaGFydHPnmoTmlrnms5U9PT09PT09PT09PT09PT09PT09PVxyXG4gICAgZWNpbml0KG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBsZXQgY2lkID0gSlNPTi5zdHJpbmdpZnkobmV3VmFsLmlkKVxyXG4gICAgICB0aGlzLnJpZCA9IGNpZFxyXG4gICAgICB0aGF0W2NpZF0gPSB0aGlzLiRvd25lckluc3RhbmNlIHx8IGluc3RhbmNlXHJcbiAgICAgIGxldCBlb3B0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSlcclxuICAgICAgbGV0IHR5cGUgPSBlb3B0cy50eXBlO1xyXG4gICAgICAvL+i9veWFpeW5tuimhueblum7mOiupOmFjee9rlxyXG4gICAgICBpZiAodHlwZSAmJiBjZmUudHlwZS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICAgIGNmZS5vcHRpb25bY2lkXSA9IHJkZGVlcENsb25lQXNzaWduKHt9LCBjZmVbdHlwZV0sIGVvcHRzKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY2ZlLm9wdGlvbltjaWRdID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sIGVvcHRzKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IGVvcHRzLmNoYXJ0RGF0YTtcclxuICAgICAgaWYobmV3RGF0YSl7XHJcbiAgICAgICAgLy/mjILovb1jYXRlZ29yaWVz5ZKMc2VyaWVzXHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLnhBeGlzICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlICYmIGNmZS5vcHRpb25bY2lkXS54QXhpcy50eXBlID09PSAnY2F0ZWdvcnknKXtcclxuICAgICAgICAgIGNmZS5vcHRpb25bY2lkXS54QXhpcy5kYXRhID0gbmV3RGF0YS5jYXRlZ29yaWVzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGNmZS5vcHRpb25bY2lkXS55QXhpcyAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSAmJiBjZmUub3B0aW9uW2NpZF0ueUF4aXMudHlwZSA9PT0gJ2NhdGVnb3J5Jyl7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0ueUF4aXMuZGF0YSA9IG5ld0RhdGEuY2F0ZWdvcmllc1xyXG4gICAgICAgIH1cclxuICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzID0gW11cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld0RhdGEuc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPSBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgPyBjZmUub3B0aW9uW2NpZF0uc2VyaWVzVGVtcGxhdGUgOiB7fVxyXG4gICAgICAgICAgbGV0IFRlbXBsYXRlID0gcmRkZWVwQ2xvbmVBc3NpZ24oe30sY2ZlLm9wdGlvbltjaWRdLnNlcmllc1RlbXBsYXRlLG5ld0RhdGEuc2VyaWVzW2ldKVxyXG4gICAgICAgICAgY2ZlLm9wdGlvbltjaWRdLnNlcmllcy5wdXNoKFRlbXBsYXRlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuZWNoYXJ0cyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIHRoaXMubmV3RUNoYXJ0KClcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcclxuICAgICAgICAvLyAjaWZkZWYgQVBQLVZVRVxyXG4gICAgICAgIHNjcmlwdC5zcmMgPSAnLi91bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9hcHAtcGx1cy9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICAvLyAjaWZkZWYgSDVcclxuICAgICAgICBjb25zdCByb290dXJsID0gd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IGluc3RhbmNlLmdldERhdGFzZXQoKS5kaXJlY3RvcnlcclxuICAgICAgICBzY3JpcHQuc3JjID0gcm9vdHVybCArIGRpcmVjdG9yeSArICd1bmlfbW9kdWxlcy9xaXVuLWRhdGEtY2hhcnRzL3N0YXRpYy9oNS9lY2hhcnRzLm1pbi5qcydcclxuICAgICAgICAvLyAjZW5kaWZcclxuICAgICAgICBzY3JpcHQub25sb2FkID0gdGhpcy5uZXdFQ2hhcnRcclxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdClcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVjcmVzaXplKG5ld1ZhbCwgb2xkVmFsLCBvd25lciwgaW5zdGFuY2Upe1xyXG4gICAgICBpZihjZmUuaW5zdGFuY2VbdGhpcy5yaWRdKXtcclxuICAgICAgICBjZmUuaW5zdGFuY2VbdGhpcy5yaWRdLnJlc2l6ZSgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBuZXdFQ2hhcnQoKXtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGlmKGNmZS5pbnN0YW5jZVtjaWRdID09PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdID0gZWNoYXJ0cy5pbml0KHRoYXRbY2lkXS4kZWwuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLy9vbnRhcOW8gOWQr+WQjuaJjeinpuWPkWNsaWNr5LqL5Lu2XHJcbiAgICAgICAgaWYoY2ZlLm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlKXtcclxuICAgICAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdjbGljaycsIHJlc2RhdGEgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZXZlbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICB4OnJlc2RhdGEuZXZlbnQub2Zmc2V0WCx5OnJlc2RhdGEuZXZlbnQub2Zmc2V0WVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0SW5kZXhcIiwgcGFyYW1zOnt0eXBlOlwiZ2V0SW5kZXhcIiwgZXZlbnQ6ZXZlbnQsIGN1cnJlbnRJbmRleDpyZXNkYXRhLmRhdGFJbmRleCwgdmFsdWU6cmVzZGF0YS5kYXRhLCBzZXJpZXNOYW1lOiByZXNkYXRhLnNlcmllc05hbWUsaWQ6Y2lkfX0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8g5aKe5YqgRUNoYXJ0c+eahGhpZ2hsaWdodOa2iOaBr++8jOWunueOsOaMieS4i+enu+WKqOi/lOWbnue0ouW8leWKn+iDveOAgmFkZCBieSBvbmVmaXNoIOWIm+W7uuS6jiAyMDIxLTEyLTExIDA5OjUwXHJcbiAgICAgICAgICBjZmUuaW5zdGFuY2VbY2lkXS5vbignaGlnaGxpZ2h0JywgcmVzZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldEhpZ2hsaWdodFwiLCBwYXJhbXM6e3R5cGU6XCJoaWdobGlnaHRcIiwgcmVzOnJlc2RhdGEsIGlkOmNpZH19KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGRhdGFFQ2hhcnQoY2lkLGNmZS5vcHRpb25bY2lkXSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51cGRhdGFFQ2hhcnQoY2lkLGNmZS5vcHRpb25bY2lkXSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHVwZGF0YUVDaGFydChjaWQsb3B0aW9uKXtcclxuICAgICAgLy/mm7/mjaJvcHRpb27lhoVmb3JtYXTlsZ7mgKfkuLpmb3JtYXR0ZXLnmoTpooTlrprkuYnmlrnms5VcclxuICAgICAgb3B0aW9uID0gcmRmb3JtYXR0ZXJBc3NpZ24ob3B0aW9uLGNmZS5mb3JtYXR0ZXIpXHJcbiAgICAgIGlmKG9wdGlvbi50b29sdGlwKXtcclxuICAgICAgICBvcHRpb24udG9vbHRpcC5zaG93ID0gb3B0aW9uLnRvb2x0aXBTaG93P3RydWU6ZmFsc2U7XHJcbiAgICAgICAgb3B0aW9uLnRvb2x0aXAucG9zaXRpb24gPSB0aGlzLnRvb2x0aXBQb3NpdGlvbigpXHJcbiAgICAgICAgLy90b29sdGlwRm9ybWF05pa55rOV77yM5pu/5o2i57uE5Lu255qEdG9vbHRpcEZvcm1hdOS4umNvbmZpZy1lY2hhcnRzLmpz5YaF5a+55bqU55qE5pa55rOVXHJcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2ZlLmZvcm1hdHRlcltvcHRpb24udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgIG9wdGlvbi50b29sdGlwLmZvcm1hdHRlciA9IG9wdGlvbi50b29sdGlwLmZvcm1hdHRlciA/IG9wdGlvbi50b29sdGlwLmZvcm1hdHRlciA6IGNmZS5mb3JtYXR0ZXJbb3B0aW9uLnRvb2x0aXBGb3JtYXRdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIOminOiJsua4kOWPmOa3u+WKoOeahOaWueazlVxyXG4gICAgICBpZiAob3B0aW9uLnNlcmllcykge1xyXG4gICAgICBcdGZvciAobGV0IGkgaW4gb3B0aW9uLnNlcmllcykge1xyXG4gICAgICBcdFx0bGV0IGxpbmVhckdyYWRpZW50ID0gb3B0aW9uLnNlcmllc1tpXS5saW5lYXJHcmFkaWVudFxyXG4gICAgICBcdFx0aWYgKGxpbmVhckdyYWRpZW50KSB7XHJcbiAgICAgIFx0XHRcdG9wdGlvbi5zZXJpZXNbaV0uY29sb3IgPSBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KGxpbmVhckdyYWRpZW50WzBdLGxpbmVhckdyYWRpZW50WzFdLGxpbmVhckdyYWRpZW50WzJdLGxpbmVhckdyYWRpZW50WzNdLGxpbmVhckdyYWRpZW50WzRdKVxyXG4gICAgICBcdFx0fVxyXG4gICAgICBcdH1cclxuICAgICAgfVxyXG4gICAgICBjZmUuaW5zdGFuY2VbY2lkXS5zZXRPcHRpb24ob3B0aW9uLCBvcHRpb24ubm90TWVyZ2UpXHJcbiAgICAgIGNmZS5pbnN0YW5jZVtjaWRdLm9uKCdmaW5pc2hlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiY29tcGxldGVcIixwYXJhbXM6e3R5cGU6XCJjb21wbGV0ZVwiLGNvbXBsZXRlOnRydWUsaWQ6Y2lkfX0pXHJcbiAgICAgICAgaWYoY2ZlLmluc3RhbmNlW2NpZF0pe1xyXG4gICAgICAgICAgY2ZlLmluc3RhbmNlW2NpZF0ub2ZmKCdmaW5pc2hlZCcpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8v5L+u5aSNaW5pdOWIneWni+WMluWunuS+i+iOt+WPluWuvemrmOS4jeato+ehrumXrumimFxyXG4gICAgICBpZihcclxuICAgICAgICB0eXBlb2YgdGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRXaWR0aCAhPSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICAgICAgKFxyXG4gICAgICAgICAgICBNYXRoLmFicyggdGhhdFtjaWRdLiRlbC5jaGlsZHJlblswXS5jbGllbnRXaWR0aCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldFdpZHRoKCkgKT4zIHx8XHJcbiAgICAgICAgICAgIE1hdGguYWJzKCB0aGF0W2NpZF0uJGVsLmNoaWxkcmVuWzBdLmNsaWVudEhlaWdodCAtIGNmZS5pbnN0YW5jZVtjaWRdLmdldEhlaWdodCgpICk+M1xyXG4gICAgICAgICAgKVxyXG4gICAgICApe3RoaXMuZWNyZXNpemUoKTt9XHJcbiAgICB9LFxyXG4gICAgdG9vbHRpcFBvc2l0aW9uKCl7XHJcbiAgICAgIHJldHVybiAocG9pbnQsIHBhcmFtcywgZG9tLCByZWN0LCBzaXplKSA9PiB7XHJcbiAgICAgIFx0bGV0IHggPSBwb2ludFswXVxyXG4gICAgICBcdGxldCB5ID0gcG9pbnRbMV1cclxuICAgICAgXHRsZXQgdmlld1dpZHRoID0gc2l6ZS52aWV3U2l6ZVswXVxyXG4gICAgICBcdGxldCB2aWV3SGVpZ2h0ID0gc2l6ZS52aWV3U2l6ZVsxXVxyXG4gICAgICBcdGxldCBib3hXaWR0aCA9IHNpemUuY29udGVudFNpemVbMF1cclxuICAgICAgXHRsZXQgYm94SGVpZ2h0ID0gc2l6ZS5jb250ZW50U2l6ZVsxXVxyXG4gICAgICBcdGxldCBwb3NYID0geCArIDMwIFxyXG4gICAgICBcdGxldCBwb3NZID0geSArIDMwIFxyXG4gICAgICBcdGlmIChwb3NYICsgYm94V2lkdGggPiB2aWV3V2lkdGgpIHsgXHJcbiAgICAgIFx0XHRwb3NYID0geCAtIGJveFdpZHRoIC0gMzBcclxuICAgICAgXHR9XHJcbiAgICAgIFx0aWYgKHBvc1kgKyBib3hIZWlnaHQgPiB2aWV3SGVpZ2h0KSB7XHJcbiAgICAgIFx0XHRwb3NZID0geSAtIGJveEhlaWdodCAtIDMwXHJcbiAgICAgIFx0fVxyXG4gICAgICBcdHJldHVybiBbcG9zWCwgcG9zWV1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8vPT09PT09PT09PT09PT3ku6XkuIvmmK91Q2hhcnRz55qE5pa55rOVPT09PT09PT09PT09PT09PT09PT1cclxuICAgIHVjaW5pdChuZXdWYWwsIG9sZFZhbCwgb3duZXIsIGluc3RhbmNlKXtcclxuICAgICAgaWYoSlNPTi5zdHJpbmdpZnkobmV3VmFsKSA9PSBKU09OLnN0cmluZ2lmeShvbGRWYWwpKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYoIW5ld1ZhbC5jYW52YXNJZCl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBjaWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5ld1ZhbC5jYW52YXNJZCkpXHJcbiAgICAgIHRoaXMucmlkID0gY2lkXHJcbiAgICAgIHRoYXRbY2lkXSA9IHRoaXMuJG93bmVySW5zdGFuY2UgfHwgaW5zdGFuY2VcclxuICAgICAgY2Z1Lm9wdGlvbltjaWRdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0gPSByZGZvcm1hdHRlckFzc2lnbihjZnUub3B0aW9uW2NpZF0sY2Z1LmZvcm1hdHRlcilcclxuICAgICAgbGV0IGNhbnZhc2RvbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNpZClcclxuICAgICAgaWYoY2FudmFzZG9tICYmIGNhbnZhc2RvbS5jaGlsZHJlblswXSl7XHJcbiAgICAgICAgY2Z1Lm9wdGlvbltjaWRdLmNvbnRleHQgPSBjYW52YXNkb20uY2hpbGRyZW5bMF0uZ2V0Q29udGV4dChcIjJkXCIpXHJcbiAgICAgICAgaWYoY2Z1Lmluc3RhbmNlW2NpZF0gJiYgY2Z1Lm9wdGlvbltjaWRdICYmIGNmdS5vcHRpb25bY2lkXS51cGRhdGUgPT09IHRydWUpe1xyXG4gICAgICAgICAgdGhpcy51cGRhdGFVQ2hhcnQoKVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICBjZnUub3B0aW9uW2NpZF0uY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNmdS5vcHRpb25bY2lkXS5jb250ZXh0LnNhdmUoKTtcclxuICAgICAgICAgICAgdGhpcy5uZXdVQ2hhcnQoKVxyXG4gICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbmV3VUNoYXJ0KCkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0gPSBuZXcgdUNoYXJ0c1JEKGNmdS5vcHRpb25bY2lkXSlcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiY29tcGxldGVcIixwYXJhbXM6e3R5cGU6XCJjb21wbGV0ZVwiLGNvbXBsZXRlOnRydWUsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uZGVsRXZlbnRMaXN0ZW5lcigncmVuZGVyQ29tcGxldGUnKVxyXG4gICAgICB9KTtcclxuICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsTGVmdCcsICgpID0+IHtcclxuICAgICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJzY3JvbGxMZWZ0XCIscGFyYW1zOnt0eXBlOlwic2Nyb2xsTGVmdFwiLHNjcm9sbExlZnQ6dHJ1ZSxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgICAgfSk7XHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbFJpZ2h0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcInNjcm9sbFJpZ2h0XCIscGFyYW1zOnt0eXBlOlwic2Nyb2xsUmlnaHRcIixzY3JvbGxSaWdodDp0cnVlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICB1cGRhdGFVQ2hhcnQoKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS51cGRhdGVEYXRhKGNmdS5vcHRpb25bY2lkXSlcclxuICAgIH0sXHJcbiAgICB0b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpIHtcclxuICAgICAgaWYgKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSBpdGVtLmRhdGFcclxuICAgICAgICBpZih0eXBlb2YgaXRlbS5kYXRhID09PSBcIm9iamVjdFwiKXtcclxuICAgICAgICAgIGRhdGEgPSBpdGVtLmRhdGEudmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNhdGVnb3J5ICsgJyAnICsgaXRlbS5uYW1lICsgJzonICsgZGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXRlbS5wcm9wZXJ0aWVzICYmIGl0ZW0ucHJvcGVydGllcy5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5wcm9wZXJ0aWVzLm5hbWUgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lICsgJzonICsgaXRlbS5kYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHNob3dUb29sdGlwKGUsY2lkKSB7XHJcbiAgICAgIGxldCB0YyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwQ3VzdG9tXHJcbiAgICAgIGlmICh0YyAmJiB0YyAhPT0gdW5kZWZpbmVkICYmIHRjICE9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodGMueCA+PSAwICYmIHRjLnkgPj0gMCkge1xyXG4gICAgICAgICAgb2Zmc2V0ID0geyB4OiB0Yy54LCB5OiB0Yy55ICsgMTAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgaW5kZXg6IHRjLmluZGV4LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvZmZzZXQsXHJcbiAgICAgICAgICB0ZXh0TGlzdDogdGMudGV4dExpc3QsXHJcbiAgICAgICAgICBmb3JtYXR0ZXI6IChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdCA9PT0gJ3N0cmluZycgJiYgY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gY2Z1LmZvcm1hdHRlcltjZnUub3B0aW9uW2NpZF0udG9vbHRpcEZvcm1hdF0oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwRGVmYXVsdChpdGVtLCBjYXRlZ29yeSwgaW5kZXgsIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2hvd1Rvb2xUaXAoZSwge1xyXG4gICAgICAgICAgZm9ybWF0dGVyOiAoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXQgPT09ICdzdHJpbmcnICYmIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNmdS5mb3JtYXR0ZXJbY2Z1Lm9wdGlvbltjaWRdLnRvb2x0aXBGb3JtYXRdKGl0ZW0sIGNhdGVnb3J5LCBpbmRleCwgb3B0cyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcERlZmF1bHQoaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdGFwKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRhcCA9IGNmdS5vcHRpb25bY2lkXS5vbnRhcFxyXG4gICAgICBsZXQgdG9vbHRpcFNob3cgPSBjZnUub3B0aW9uW2NpZF0udG9vbHRpcFNob3dcclxuICAgICAgbGV0IHRhcExlZ2VuZCA9IGNmdS5vcHRpb25bY2lkXS50YXBMZWdlbmRcclxuICAgICAgaWYob250YXAgPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgbGV0IGN1cnJlbnRJbmRleD1udWxsXHJcbiAgICAgIGxldCBsZWdlbmRJbmRleD1udWxsXHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICBpZihlLmRldGFpbC54KXsvL3RhcOaIluiAhWNsaWNr55qE5LqL5Lu2XHJcbiAgICAgICAgdG1wZSA9IHsgeDogZS5kZXRhaWwueCAtIHJjaGFydGRvbS5sZWZ0LCB5OmUuZGV0YWlsLnkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIH1lbHNley8vbW91c2XnmoTkuovku7ZcclxuICAgICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIH1cclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcyA9IFtdO1xyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzLnVuc2hpZnQodG1wZSlcclxuICAgICAgY3VycmVudEluZGV4PWNmdS5pbnN0YW5jZVtjaWRdLmdldEN1cnJlbnREYXRhSW5kZXgoZSlcclxuICAgICAgbGVnZW5kSW5kZXg9Y2Z1Lmluc3RhbmNlW2NpZF0uZ2V0TGVnZW5kRGF0YUluZGV4KGUpXHJcbiAgICAgIGlmKHRhcExlZ2VuZCA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0udG91Y2hMZWdlbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodG9vbHRpcFNob3c9PXRydWUpe1xyXG4gICAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoZSxjaWQpXHJcbiAgICAgIH1cclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0SW5kZXhcIixwYXJhbXM6e3R5cGU6XCJnZXRJbmRleFwiLGV2ZW50OnRtcGUsY3VycmVudEluZGV4OmN1cnJlbnRJbmRleCxsZWdlbmRJbmRleDpsZWdlbmRJbmRleCxpZDpjaWQsIG9wdHM6IGNmdS5pbnN0YW5jZVtjaWRdLm9wdHN9fSlcclxuICAgIH0sXHJcbiAgICB0b3VjaFN0YXJ0KGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbnRvdWNoID0gY2Z1Lm9wdGlvbltjaWRdLm9udG91Y2hcclxuICAgICAgaWYob250b3VjaCA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBpZihjZnUub3B0aW9uW2NpZF0uZW5hYmxlU2Nyb2xsID09PSB0cnVlICYmIGUudG91Y2hlcy5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgY2Z1Lmluc3RhbmNlW2NpZF0uc2Nyb2xsU3RhcnQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hTdGFydFwiLHBhcmFtczp7dHlwZTpcInRvdWNoU3RhcnRcIixldmVudDplLmNoYW5nZWRUb3VjaGVzWzBdLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIHRvdWNoTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb250b3VjaCA9IGNmdS5vcHRpb25bY2lkXS5vbnRvdWNoXHJcbiAgICAgIGlmKG9udG91Y2ggPT0gZmFsc2UpIHJldHVybjtcclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSAmJiBlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGwoZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYoY2Z1Lm9wdGlvbltjaWRdLm9udGFwID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IGZhbHNlICYmIGNmdS5vcHRpb25bY2lkXS5vbm1vdmV0aXAgPT09IHRydWUpe1xyXG4gICAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgICBsZXQgdG1wZSA9IHsgeDogZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvdyA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZihvbnRvdWNoID09PSB0cnVlICYmIGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgY2Z1Lm9wdGlvbltjaWRdLm9uem9vbSA9PT0gdHJ1ZSAmJiBlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PSAyKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5kb2J1bGVab29tKGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoTW92ZVwiLHBhcmFtczp7dHlwZTpcInRvdWNoTW92ZVwiLGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0saWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICB9LFxyXG4gICAgdG91Y2hFbmQoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9udG91Y2ggPSBjZnUub3B0aW9uW2NpZF0ub250b3VjaFxyXG4gICAgICBpZihvbnRvdWNoID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5lbmFibGVTY3JvbGwgPT09IHRydWUgJiYgZS50b3VjaGVzLmxlbmd0aCA9PSAwKXtcclxuICAgICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxFbmQoZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhhdFtjaWRdLmNhbGxNZXRob2QoJ2VtaXRNc2cnLHtuYW1lOlwiZ2V0VG91Y2hFbmRcIixwYXJhbXM6e3R5cGU6XCJ0b3VjaEVuZFwiLGV2ZW50OmUuY2hhbmdlZFRvdWNoZXNbMF0saWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICB9LFxyXG4gICAgbW91c2VEb3duKGUpIHtcclxuICAgICAgbGV0IGNpZCA9IHRoaXMucmlkXHJcbiAgICAgIGxldCBvbm1vdXNlID0gY2Z1Lm9wdGlvbltjaWRdLm9ubW91c2VcclxuICAgICAgaWYob25tb3VzZSA9PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgICBsZXQgcmNoYXJ0ZG9tID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1VDJytjaWQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXHJcbiAgICAgIGxldCB0bXBlID0ge31cclxuICAgICAgdG1wZSA9IHsgeDogZS5jbGllbnRYIC0gcmNoYXJ0ZG9tLmxlZnQsIHk6ZS5jbGllbnRZIC0gcmNoYXJ0ZG9tLnRvcCArIHJvb3Rkb20udG9wfVxyXG4gICAgICBlLmNoYW5nZWRUb3VjaGVzID0gW107XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMudW5zaGlmdCh0bXBlKVxyXG4gICAgICBjZnUuaW5zdGFuY2VbY2lkXS5zY3JvbGxTdGFydChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPXRydWU7XHJcbiAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoU3RhcnRcIixwYXJhbXM6e3R5cGU6XCJtb3VzZURvd25cIixldmVudDp0bXBlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICAgIG1vdXNlTW92ZShlKSB7XHJcbiAgICAgIGxldCBjaWQgPSB0aGlzLnJpZFxyXG4gICAgICBsZXQgb25tb3VzZSA9IGNmdS5vcHRpb25bY2lkXS5vbm1vdXNlXHJcbiAgICAgIGxldCB0b29sdGlwU2hvdyA9IGNmdS5vcHRpb25bY2lkXS50b29sdGlwU2hvd1xyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGlmKGNmdS5vcHRpb25bY2lkXS5tb3VzZWRvd24pe1xyXG4gICAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbChlKVxyXG4gICAgICAgIHRoYXRbY2lkXS5jYWxsTWV0aG9kKCdlbWl0TXNnJyx7bmFtZTpcImdldFRvdWNoTW92ZVwiLHBhcmFtczp7dHlwZTpcIm1vdXNlTW92ZVwiLGV2ZW50OnRtcGUsaWQ6Y2lkLCBvcHRzOiBjZnUuaW5zdGFuY2VbY2lkXS5vcHRzfX0pXHJcbiAgICAgIH1lbHNlIGlmKGNmdS5pbnN0YW5jZVtjaWRdKXtcclxuICAgICAgICBpZih0b29sdGlwU2hvdz09dHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnNob3dUb29sdGlwKGUsY2lkKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG1vdXNlVXAoZSkge1xyXG4gICAgICBsZXQgY2lkID0gdGhpcy5yaWRcclxuICAgICAgbGV0IG9ubW91c2UgPSBjZnUub3B0aW9uW2NpZF0ub25tb3VzZVxyXG4gICAgICBpZihvbm1vdXNlID09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgIGxldCByY2hhcnRkb20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnVUMnK2NpZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgbGV0IHRtcGUgPSB7fVxyXG4gICAgICB0bXBlID0geyB4OiBlLmNsaWVudFggLSByY2hhcnRkb20ubGVmdCwgeTplLmNsaWVudFkgLSByY2hhcnRkb20udG9wICsgcm9vdGRvbS50b3B9XHJcbiAgICAgIGUuY2hhbmdlZFRvdWNoZXMgPSBbXTtcclxuICAgICAgZS5jaGFuZ2VkVG91Y2hlcy51bnNoaWZ0KHRtcGUpXHJcbiAgICAgIGNmdS5pbnN0YW5jZVtjaWRdLnNjcm9sbEVuZChlKVxyXG4gICAgICBjZnUub3B0aW9uW2NpZF0ubW91c2Vkb3duPWZhbHNlO1xyXG4gICAgICB0aGF0W2NpZF0uY2FsbE1ldGhvZCgnZW1pdE1zZycse25hbWU6XCJnZXRUb3VjaEVuZFwiLHBhcmFtczp7dHlwZTpcIm1vdXNlVXBcIixldmVudDp0bXBlLGlkOmNpZCwgb3B0czogY2Z1Lmluc3RhbmNlW2NpZF0ub3B0c319KVxyXG4gICAgfSxcclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjwhLS0gI2VuZGlmIC0tPlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuLmNoYXJ0c3ZpZXcge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXg6IDE7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///376\n"); /***/ }), /* 377 */ /*!************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global, wx) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16)); var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ 23)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 159)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4)); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 169)); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2)); var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ 20)); var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ 22)); var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ 24)); var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ 379)); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 25)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 26)); var _pages = _interopRequireDefault(__webpack_require__(/*! @/pages.json */ 383)); function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e33) { throw _e33; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e34) { didErr = true; err = _e34; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self && self; function t(e) { return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e; } function n(e, t, n) { return e(n = { path: t, exports: {}, require: function require(e, t) { return function () { throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); }(null == t && n.path); } }, n.exports), n.exports; } var s = n(function (e, t) { var n; e.exports = (n = n || function (e, t) { var n = Object.create || function () { function e() {} return function (t) { var n; return e.prototype = t, n = new e(), e.prototype = null, n; }; }(), s = {}, r = s.lib = {}, i = r.Base = { extend: function extend(e) { var t = n(this); return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function () { t.$super.init.apply(this, arguments); }), t.init.prototype = t, t.$super = this, t; }, create: function create() { var e = this.extend(); return e.init.apply(e, arguments), e; }, init: function init() {}, mixIn: function mixIn(e) { for (var t in e) { e.hasOwnProperty(t) && (this[t] = e[t]); } e.hasOwnProperty("toString") && (this.toString = e.toString); }, clone: function clone() { return this.init.prototype.extend(this); } }, o = r.WordArray = i.extend({ init: function init(e, n) { e = this.words = e || [], this.sigBytes = n != t ? n : 4 * e.length; }, toString: function toString(e) { return (e || c).stringify(this); }, concat: function concat(e) { var t = this.words, n = e.words, s = this.sigBytes, r = e.sigBytes; if (this.clamp(), s % 4) for (var i = 0; i < r; i++) { var o = n[i >>> 2] >>> 24 - i % 4 * 8 & 255; t[s + i >>> 2] |= o << 24 - (s + i) % 4 * 8; } else for (i = 0; i < r; i += 4) { t[s + i >>> 2] = n[i >>> 2]; } return this.sigBytes += r, this; }, clamp: function clamp() { var t = this.words, n = this.sigBytes; t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4); }, clone: function clone() { var e = i.clone.call(this); return e.words = this.words.slice(0), e; }, random: function random(t) { for (var n, s = [], r = function r(t) { t = t; var n = 987654321, s = 4294967295; return function () { var r = ((n = 36969 * (65535 & n) + (n >> 16) & s) << 16) + (t = 18e3 * (65535 & t) + (t >> 16) & s) & s; return r /= 4294967296, (r += .5) * (e.random() > .5 ? 1 : -1); }; }, i = 0; i < t; i += 4) { var a = r(4294967296 * (n || e.random())); n = 987654071 * a(), s.push(4294967296 * a() | 0); } return new o.init(s, t); } }), a = s.enc = {}, c = a.Hex = { stringify: function stringify(e) { for (var t = e.words, n = e.sigBytes, s = [], r = 0; r < n; r++) { var i = t[r >>> 2] >>> 24 - r % 4 * 8 & 255; s.push((i >>> 4).toString(16)), s.push((15 & i).toString(16)); } return s.join(""); }, parse: function parse(e) { for (var t = e.length, n = [], s = 0; s < t; s += 2) { n[s >>> 3] |= parseInt(e.substr(s, 2), 16) << 24 - s % 8 * 4; } return new o.init(n, t / 2); } }, u = a.Latin1 = { stringify: function stringify(e) { for (var t = e.words, n = e.sigBytes, s = [], r = 0; r < n; r++) { var i = t[r >>> 2] >>> 24 - r % 4 * 8 & 255; s.push(String.fromCharCode(i)); } return s.join(""); }, parse: function parse(e) { for (var t = e.length, n = [], s = 0; s < t; s++) { n[s >>> 2] |= (255 & e.charCodeAt(s)) << 24 - s % 4 * 8; } return new o.init(n, t); } }, h = a.Utf8 = { stringify: function stringify(e) { try { return decodeURIComponent(escape(u.stringify(e))); } catch (e) { throw new Error("Malformed UTF-8 data"); } }, parse: function parse(e) { return u.parse(unescape(encodeURIComponent(e))); } }, l = r.BufferedBlockAlgorithm = i.extend({ reset: function reset() { this._data = new o.init(), this._nDataBytes = 0; }, _append: function _append(e) { "string" == typeof e && (e = h.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes; }, _process: function _process(t) { var n = this._data, s = n.words, r = n.sigBytes, i = this.blockSize, a = r / (4 * i), c = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * i, u = e.min(4 * c, r); if (c) { for (var h = 0; h < c; h += i) { this._doProcessBlock(s, h); } var l = s.splice(0, c); n.sigBytes -= u; } return new o.init(l, u); }, clone: function clone() { var e = i.clone.call(this); return e._data = this._data.clone(), e; }, _minBufferSize: 0 }); r.Hasher = l.extend({ cfg: i.extend(), init: function init(e) { this.cfg = this.cfg.extend(e), this.reset(); }, reset: function reset() { l.reset.call(this), this._doReset(); }, update: function update(e) { return this._append(e), this._process(), this; }, finalize: function finalize(e) { return e && this._append(e), this._doFinalize(); }, blockSize: 16, _createHelper: function _createHelper(e) { return function (t, n) { return new e.init(n).finalize(t); }; }, _createHmacHelper: function _createHmacHelper(e) { return function (t, n) { return new d.HMAC.init(e, n).finalize(t); }; } }); var d = s.algo = {}; return s; }(Math), n); }), r = s, i = (n(function (e, t) { var n; e.exports = (n = r, function (e) { var t = n, s = t.lib, r = s.WordArray, i = s.Hasher, o = t.algo, a = []; !function () { for (var t = 0; t < 64; t++) { a[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0; } }(); var c = o.MD5 = i.extend({ _doReset: function _doReset() { this._hash = new r.init([1732584193, 4023233417, 2562383102, 271733878]); }, _doProcessBlock: function _doProcessBlock(e, t) { for (var n = 0; n < 16; n++) { var s = t + n, r = e[s]; e[s] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8); } var i = this._hash.words, o = e[t + 0], c = e[t + 1], p = e[t + 2], f = e[t + 3], g = e[t + 4], m = e[t + 5], y = e[t + 6], _ = e[t + 7], w = e[t + 8], v = e[t + 9], I = e[t + 10], S = e[t + 11], b = e[t + 12], k = e[t + 13], A = e[t + 14], C = e[t + 15], P = i[0], T = i[1], x = i[2], O = i[3]; P = u(P, T, x, O, o, 7, a[0]), O = u(O, P, T, x, c, 12, a[1]), x = u(x, O, P, T, p, 17, a[2]), T = u(T, x, O, P, f, 22, a[3]), P = u(P, T, x, O, g, 7, a[4]), O = u(O, P, T, x, m, 12, a[5]), x = u(x, O, P, T, y, 17, a[6]), T = u(T, x, O, P, _, 22, a[7]), P = u(P, T, x, O, w, 7, a[8]), O = u(O, P, T, x, v, 12, a[9]), x = u(x, O, P, T, I, 17, a[10]), T = u(T, x, O, P, S, 22, a[11]), P = u(P, T, x, O, b, 7, a[12]), O = u(O, P, T, x, k, 12, a[13]), x = u(x, O, P, T, A, 17, a[14]), P = h(P, T = u(T, x, O, P, C, 22, a[15]), x, O, c, 5, a[16]), O = h(O, P, T, x, y, 9, a[17]), x = h(x, O, P, T, S, 14, a[18]), T = h(T, x, O, P, o, 20, a[19]), P = h(P, T, x, O, m, 5, a[20]), O = h(O, P, T, x, I, 9, a[21]), x = h(x, O, P, T, C, 14, a[22]), T = h(T, x, O, P, g, 20, a[23]), P = h(P, T, x, O, v, 5, a[24]), O = h(O, P, T, x, A, 9, a[25]), x = h(x, O, P, T, f, 14, a[26]), T = h(T, x, O, P, w, 20, a[27]), P = h(P, T, x, O, k, 5, a[28]), O = h(O, P, T, x, p, 9, a[29]), x = h(x, O, P, T, _, 14, a[30]), P = l(P, T = h(T, x, O, P, b, 20, a[31]), x, O, m, 4, a[32]), O = l(O, P, T, x, w, 11, a[33]), x = l(x, O, P, T, S, 16, a[34]), T = l(T, x, O, P, A, 23, a[35]), P = l(P, T, x, O, c, 4, a[36]), O = l(O, P, T, x, g, 11, a[37]), x = l(x, O, P, T, _, 16, a[38]), T = l(T, x, O, P, I, 23, a[39]), P = l(P, T, x, O, k, 4, a[40]), O = l(O, P, T, x, o, 11, a[41]), x = l(x, O, P, T, f, 16, a[42]), T = l(T, x, O, P, y, 23, a[43]), P = l(P, T, x, O, v, 4, a[44]), O = l(O, P, T, x, b, 11, a[45]), x = l(x, O, P, T, C, 16, a[46]), P = d(P, T = l(T, x, O, P, p, 23, a[47]), x, O, o, 6, a[48]), O = d(O, P, T, x, _, 10, a[49]), x = d(x, O, P, T, A, 15, a[50]), T = d(T, x, O, P, m, 21, a[51]), P = d(P, T, x, O, b, 6, a[52]), O = d(O, P, T, x, f, 10, a[53]), x = d(x, O, P, T, I, 15, a[54]), T = d(T, x, O, P, c, 21, a[55]), P = d(P, T, x, O, w, 6, a[56]), O = d(O, P, T, x, C, 10, a[57]), x = d(x, O, P, T, y, 15, a[58]), T = d(T, x, O, P, k, 21, a[59]), P = d(P, T, x, O, g, 6, a[60]), O = d(O, P, T, x, S, 10, a[61]), x = d(x, O, P, T, p, 15, a[62]), T = d(T, x, O, P, v, 21, a[63]), i[0] = i[0] + P | 0, i[1] = i[1] + T | 0, i[2] = i[2] + x | 0, i[3] = i[3] + O | 0; }, _doFinalize: function _doFinalize() { var t = this._data, n = t.words, s = 8 * this._nDataBytes, r = 8 * t.sigBytes; n[r >>> 5] |= 128 << 24 - r % 32; var i = e.floor(s / 4294967296), o = s; n[15 + (r + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), n[14 + (r + 64 >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), t.sigBytes = 4 * (n.length + 1), this._process(); for (var a = this._hash, c = a.words, u = 0; u < 4; u++) { var h = c[u]; c[u] = 16711935 & (h << 8 | h >>> 24) | 4278255360 & (h << 24 | h >>> 8); } return a; }, clone: function clone() { var e = i.clone.call(this); return e._hash = this._hash.clone(), e; } }); function u(e, t, n, s, r, i, o) { var a = e + (t & n | ~t & s) + r + o; return (a << i | a >>> 32 - i) + t; } function h(e, t, n, s, r, i, o) { var a = e + (t & s | n & ~s) + r + o; return (a << i | a >>> 32 - i) + t; } function l(e, t, n, s, r, i, o) { var a = e + (t ^ n ^ s) + r + o; return (a << i | a >>> 32 - i) + t; } function d(e, t, n, s, r, i, o) { var a = e + (n ^ (t | ~s)) + r + o; return (a << i | a >>> 32 - i) + t; } t.MD5 = i._createHelper(c), t.HmacMD5 = i._createHmacHelper(c); }(Math), n.MD5); }), n(function (e, t) { var n; e.exports = (n = r, void function () { var e = n, t = e.lib.Base, s = e.enc.Utf8; e.algo.HMAC = t.extend({ init: function init(e, t) { e = this._hasher = new e.init(), "string" == typeof t && (t = s.parse(t)); var n = e.blockSize, r = 4 * n; t.sigBytes > r && (t = e.finalize(t)), t.clamp(); for (var i = this._oKey = t.clone(), o = this._iKey = t.clone(), a = i.words, c = o.words, u = 0; u < n; u++) { a[u] ^= 1549556828, c[u] ^= 909522486; } i.sigBytes = o.sigBytes = r, this.reset(); }, reset: function reset() { var e = this._hasher; e.reset(), e.update(this._iKey); }, update: function update(e) { return this._hasher.update(e), this; }, finalize: function finalize(e) { var t = this._hasher, n = t.finalize(e); return t.reset(), t.finalize(this._oKey.clone().concat(n)); } }); }()); }), n(function (e, t) { e.exports = r.HmacMD5; })), o = n(function (e, t) { e.exports = r.enc.Utf8; }), a = n(function (e, t) { var n; e.exports = (n = r, function () { var e = n, t = e.lib.WordArray; function s(e, n, s) { for (var r = [], i = 0, o = 0; o < n; o++) { if (o % 4) { var a = s[e.charCodeAt(o - 1)] << o % 4 * 2, c = s[e.charCodeAt(o)] >>> 6 - o % 4 * 2; r[i >>> 2] |= (a | c) << 24 - i % 4 * 8, i++; } } return t.create(r, i); } e.enc.Base64 = { stringify: function stringify(e) { var t = e.words, n = e.sigBytes, s = this._map; e.clamp(); for (var r = [], i = 0; i < n; i += 3) { for (var o = (t[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (t[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | t[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, a = 0; a < 4 && i + .75 * a < n; a++) { r.push(s.charAt(o >>> 6 * (3 - a) & 63)); } } var c = s.charAt(64); if (c) for (; r.length % 4;) { r.push(c); } return r.join(""); }, parse: function parse(e) { var t = e.length, n = this._map, r = this._reverseMap; if (!r) { r = this._reverseMap = []; for (var i = 0; i < n.length; i++) { r[n.charCodeAt(i)] = i; } } var o = n.charAt(64); if (o) { var a = e.indexOf(o); -1 !== a && (t = a); } return s(e, t, r); }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }; }(), n.enc.Base64); }); var c = "FUNCTION", u = "OBJECT", h = "CLIENT_DB", l = "pending", d = "fulfilled", p = "rejected"; function f(e) { return Object.prototype.toString.call(e).slice(8, -1).toLowerCase(); } function g(e) { return "object" === f(e); } function m(e) { return "function" == typeof e; } function y(e) { return function () { try { return e.apply(e, arguments); } catch (e) { console.error(e); } }; } var _ = "REJECTED", w = "NOT_PENDING"; var v = /*#__PURE__*/function () { function v() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref.createPromise, _ref$retryRule = _ref.retryRule, t = _ref$retryRule === void 0 ? _ : _ref$retryRule; (0, _classCallCheck2.default)(this, v); this.createPromise = e, this.status = null, this.promise = null, this.retryRule = t; } (0, _createClass2.default)(v, [{ key: "needRetry", get: function get() { if (!this.status) return !0; switch (this.retryRule) { case _: return this.status === p; case w: return this.status !== l; } } }, { key: "exec", value: function exec() { var _this = this; return this.needRetry ? (this.status = l, this.promise = this.createPromise().then(function (e) { return _this.status = d, Promise.resolve(e); }, function (e) { return _this.status = p, Promise.reject(e); }), this.promise) : this.promise; } }]); return v; }(); function I(e) { return e && "string" == typeof e ? JSON.parse(e) : e; } var S = "development" === "development", b = "app-plus", k = "true" === false || !0 === false, A = I([]), C = "h5" === b ? "web" : "app-plus" === b ? "app" : b, P = I(undefined), T = I([]) || [], x = true; var O = ""; try { O = (__webpack_require__(/*! uni-stat-config */ 384).default || __webpack_require__(/*! uni-stat-config */ 384)).appid; } catch (e) {} var E = {}; function L(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var n, s; return n = E, s = e, Object.prototype.hasOwnProperty.call(n, s) || (E[e] = t), E[e]; } "app" === C && (E = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}); var R = ["invoke", "success", "fail", "complete"], U = L("_globalUniCloudInterceptor"); function N(e, t) { U[e] || (U[e] = {}), g(t) && Object.keys(t).forEach(function (n) { R.indexOf(n) > -1 && function (e, t, n) { var s = U[e][t]; s || (s = U[e][t] = []), -1 === s.indexOf(n) && m(n) && s.push(n); }(e, n, t[n]); }); } function D(e, t) { U[e] || (U[e] = {}), g(t) ? Object.keys(t).forEach(function (n) { R.indexOf(n) > -1 && function (e, t, n) { var s = U[e][t]; if (!s) return; var r = s.indexOf(n); r > -1 && s.splice(r, 1); }(e, n, t[n]); }) : delete U[e]; } function M(e, t) { return e && 0 !== e.length ? e.reduce(function (e, n) { return e.then(function () { return n(t); }); }, Promise.resolve()) : Promise.resolve(); } function q(e, t) { return U[e] && U[e][t] || []; } function F(e) { N("callObject", e); } var K = L("_globalUniCloudListener"), j = "response", $ = "needLogin", B = "refreshToken", W = "clientdb", H = "cloudfunction", z = "cloudobject"; function J(e) { return K[e] || (K[e] = []), K[e]; } function V(e, t) { var n = J(e); n.includes(t) || n.push(t); } function G(e, t) { var n = J(e), s = n.indexOf(t); -1 !== s && n.splice(s, 1); } function Y(e, t) { var n = J(e); for (var _e2 = 0; _e2 < n.length; _e2++) { (0, n[_e2])(t); } } var Q, X = !1; function Z() { return Q || (Q = new Promise(function (e) { X && e(), function t() { if ("function" == typeof getCurrentPages) { var _t2 = getCurrentPages(); _t2 && _t2[0] && (X = !0, e()); } X || setTimeout(function () { t(); }, 30); }(); }), Q); } function ee(e) { var t = {}; for (var _n2 in e) { var _s2 = e[_n2]; m(_s2) && (t[_n2] = y(_s2)); } return t; } var te = /*#__PURE__*/function (_Error) { (0, _inherits2.default)(te, _Error); var _super = _createSuper(te); function te(e) { var _this2; (0, _classCallCheck2.default)(this, te); _this2 = _super.call(this, e.message), _this2.errMsg = e.message || e.errMsg || "unknown system error", _this2.code = _this2.errCode = e.code || e.errCode || "SYSTEM_ERROR", _this2.errSubject = _this2.subject = e.subject || e.errSubject, _this2.cause = e.cause, _this2.requestId = e.requestId; return _this2; } (0, _createClass2.default)(te, [{ key: "toJson", value: function toJson() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; if (!(e >= 10)) return e++, { errCode: this.errCode, errMsg: this.errMsg, errSubject: this.errSubject, cause: this.cause && this.cause.toJson ? this.cause.toJson(e) : this.cause }; } }]); return te; }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error)); var ne = { request: function request(e) { return uni.request(e); }, uploadFile: function uploadFile(e) { return uni.uploadFile(e); }, setStorageSync: function setStorageSync(e, t) { return uni.setStorageSync(e, t); }, getStorageSync: function getStorageSync(e) { return uni.getStorageSync(e); }, removeStorageSync: function removeStorageSync(e) { return uni.removeStorageSync(e); }, clearStorageSync: function clearStorageSync() { return uni.clearStorageSync(); }, connectSocket: function connectSocket(e) { return uni.connectSocket(e); } }; function se() { return { token: ne.getStorageSync("uni_id_token") || ne.getStorageSync("uniIdToken"), tokenExpired: ne.getStorageSync("uni_id_token_expired") }; } function re() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref2.token, t = _ref2.tokenExpired; e && ne.setStorageSync("uni_id_token", e), t && ne.setStorageSync("uni_id_token_expired", t); } var ie, oe; function ae() { return ie || (ie = uni.getSystemInfoSync()), ie; } function ce() { var e, t; try { if (uni.getLaunchOptionsSync) { if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) return; var _uni$getLaunchOptions = uni.getLaunchOptionsSync(), _n3 = _uni$getLaunchOptions.scene, _s3 = _uni$getLaunchOptions.channel; e = _s3, t = _n3; } } catch (e) {} return { channel: e, scene: t }; } var ue = {}; function he() { var e = uni.getLocale && uni.getLocale() || "en"; if (oe) return _objectSpread(_objectSpread(_objectSpread({}, ue), oe), {}, { locale: e, LOCALE: e }); var t = ae(), n = t.deviceId, s = t.osName, r = t.uniPlatform, i = t.appId, o = ["appId", "appLanguage", "appName", "appVersion", "appVersionCode", "appWgtVersion", "browserName", "browserVersion", "deviceBrand", "deviceId", "deviceModel", "deviceType", "osName", "osVersion", "romName", "romVersion", "ua", "hostName", "hostVersion", "uniPlatform", "uniRuntimeVersion", "uniRuntimeVersionCode", "uniCompilerVersion", "uniCompilerVersionCode"]; for (var _e3 in t) { Object.hasOwnProperty.call(t, _e3) && -1 === o.indexOf(_e3) && delete t[_e3]; } return oe = _objectSpread(_objectSpread({ PLATFORM: r, OS: s, APPID: i, DEVICEID: n }, ce()), t), _objectSpread(_objectSpread(_objectSpread({}, ue), oe), {}, { locale: e, LOCALE: e }); } var le = { sign: function sign(e, t) { var n = ""; return Object.keys(e).sort().forEach(function (t) { e[t] && (n = n + "&" + t + "=" + e[t]); }), n = n.slice(1), i(n, t).toString(); }, wrappedRequest: function wrappedRequest(e, t) { return new Promise(function (n, s) { t(Object.assign(e, { complete: function complete(e) { e || (e = {}), S && "web" === C && e.errMsg && 0 === e.errMsg.indexOf("request:fail") && console.warn("发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5"); var t = e.data && e.data.header && e.data.header["x-serverless-request-id"] || e.header && e.header["request-id"]; if (!e.statusCode || e.statusCode >= 400) { var _n4 = e.data && e.data.error && e.data.error.code || "SYS_ERR", _r = e.data && e.data.error && e.data.error.message || e.errMsg || "request:fail"; return s(new te({ code: _n4, message: _r, requestId: t })); } var r = e.data; if (r.error) return s(new te({ code: r.error.code, message: r.error.message, requestId: t })); r.result = r.data, r.requestId = t, delete r.data, n(r); } })); }); }, toBase64: function toBase64(e) { return a.stringify(o.parse(e)); } }; var de = /*#__PURE__*/function () { function de(e) { var _this3 = this; (0, _classCallCheck2.default)(this, de); ["spaceId", "clientSecret"].forEach(function (t) { if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error("".concat(t, " required")); }), this.config = Object.assign({}, { endpoint: 0 === e.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "https://api.bspapp.com" }, e), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = ne, this._getAccessTokenPromiseHub = new v({ createPromise: function createPromise() { return _this3.requestAuth(_this3.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then(function (e) { if (!e.result || !e.result.accessToken) throw new te({ code: "AUTH_FAILED", message: "获取accessToken失败" }); _this3.setAccessToken(e.result.accessToken); }); }, retryRule: w }); } (0, _createClass2.default)(de, [{ key: "hasAccessToken", get: function get() { return !!this.accessToken; } }, { key: "setAccessToken", value: function setAccessToken(e) { this.accessToken = e; } }, { key: "requestWrapped", value: function requestWrapped(e) { return le.wrappedRequest(e, this.adapter.request); } }, { key: "requestAuth", value: function requestAuth(e) { return this.requestWrapped(e); } }, { key: "request", value: function request(e, t) { var _this4 = this; return Promise.resolve().then(function () { return _this4.hasAccessToken ? t ? _this4.requestWrapped(e) : _this4.requestWrapped(e).catch(function (t) { return new Promise(function (e, n) { !t || "GATEWAY_INVALID_TOKEN" !== t.code && "InvalidParameter.InvalidToken" !== t.code ? n(t) : e(); }).then(function () { return _this4.getAccessToken(); }).then(function () { var t = _this4.rebuildRequest(e); return _this4.request(t, !0); }); }) : _this4.getAccessToken().then(function () { var t = _this4.rebuildRequest(e); return _this4.request(t, !0); }); }); } }, { key: "rebuildRequest", value: function rebuildRequest(e) { var t = Object.assign({}, e); return t.data.token = this.accessToken, t.header["x-basement-token"] = this.accessToken, t.header["x-serverless-sign"] = le.sign(t.data, this.config.clientSecret), t; } }, { key: "setupRequest", value: function setupRequest(e, t) { var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }), s = { "Content-Type": "application/json" }; return "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = le.sign(n, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: s }; } }, { key: "getAccessToken", value: function getAccessToken() { return this._getAccessTokenPromiseHub.exec(); } }, { key: "authorize", value: function () { var _authorize = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.getAccessToken(); case 2: case "end": return _context.stop(); } } }, _callee, this); })); function authorize() { return _authorize.apply(this, arguments); } return authorize; }() }, { key: "callFunction", value: function callFunction(e) { var t = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e.name, functionArgs: e.data || {} }) }; return this.request(this.setupRequest(t)); } }, { key: "getOSSUploadOptionsFromPath", value: function getOSSUploadOptionsFromPath(e) { var t = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e) }; return this.request(this.setupRequest(t)); } }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref3) { var _this5 = this; var e = _ref3.url, t = _ref3.formData, n = _ref3.name, s = _ref3.filePath, r = _ref3.fileType, i = _ref3.onUploadProgress; return new Promise(function (o, a) { var c = _this5.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: r, header: { "X-OSS-server-side-encrpytion": "AES256" }, success: function success(e) { e && e.statusCode < 400 ? o(e) : a(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail: function fail(e) { a(new te({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" })); } }); "function" == typeof i && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { i({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend }); }); }); } }, { key: "reportOSSUpload", value: function reportOSSUpload(e) { var t = { method: "serverless.file.resource.report", params: JSON.stringify(e) }; return this.request(this.setupRequest(t)); } }, { key: "uploadFile", value: function () { var _uploadFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref4) { var e, t, _ref4$fileType, n, _ref4$cloudPathAsReal, s, r, i, o, a, c, u, h, l, d, p, g, m, y, _, _e4, w; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: e = _ref4.filePath, t = _ref4.cloudPath, _ref4$fileType = _ref4.fileType, n = _ref4$fileType === void 0 ? "image" : _ref4$fileType, _ref4$cloudPathAsReal = _ref4.cloudPathAsRealPath, s = _ref4$cloudPathAsReal === void 0 ? !1 : _ref4$cloudPathAsReal, r = _ref4.onUploadProgress, i = _ref4.config; if (!("string" !== f(t))) { _context2.next = 3; break; } throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); case 3: if (t = t.trim()) { _context2.next = 5; break; } throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); case 5: if (!/:\/\//.test(t)) { _context2.next = 7; break; } throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" }); case 7: o = i && i.envType || this.config.envType; if (!(s && ("/" !== t[0] && (t = "/" + t), t.indexOf("\\") > -1))) { _context2.next = 10; break; } throw new te({ code: "INVALID_PARAM", message: "使用cloudPath作为路径时,cloudPath不可包含“\\”" }); case 10: _context2.next = 12; return this.getOSSUploadOptionsFromPath({ env: o, filename: s ? t.split("/").pop() : t, fileId: s ? t : void 0 }); case 12: a = _context2.sent.result; c = "https://" + a.cdnDomain + "/" + a.ossPath; u = a.securityToken; h = a.accessKeyId; l = a.signature; d = a.host; p = a.ossPath; g = a.id; m = a.policy; y = a.ossCallbackUrl; _ = { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: h, Signature: l, host: d, id: g, key: p, policy: m, success_action_status: 200 }; if (u && (_["x-oss-security-token"] = u), y) { _e4 = JSON.stringify({ callbackUrl: y, callbackBody: JSON.stringify({ fileId: g, spaceId: this.config.spaceId }), callbackBodyType: "application/json" }); _.callback = le.toBase64(_e4); } w = { url: "https://" + a.host, formData: _, fileName: "file", name: "file", filePath: e, fileType: n }; _context2.next = 27; return this.uploadFileToOSS(Object.assign({}, w, { onUploadProgress: r })); case 27: if (!y) { _context2.next = 29; break; } return _context2.abrupt("return", { success: !0, filePath: e, fileID: c }); case 29: _context2.next = 31; return this.reportOSSUpload({ id: g }); case 31: if (!_context2.sent.success) { _context2.next = 33; break; } return _context2.abrupt("return", { success: !0, filePath: e, fileID: c }); case 33: throw new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }); case 34: case "end": return _context2.stop(); } } }, _callee2, this); })); function uploadFile(_x) { return _uploadFile.apply(this, arguments); } return uploadFile; }() }, { key: "getTempFileURL", value: function getTempFileURL() { var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref5.fileList; return new Promise(function (t, n) { Array.isArray(e) && 0 !== e.length || n(new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t({ fileList: e.map(function (e) { return { fileID: e, tempFileURL: e }; }) }); }); } }, { key: "getFileInfo", value: function () { var _getFileInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() { var _ref6, e, t, _args3 = arguments; return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _ref6 = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}, e = _ref6.fileList; if (!(!Array.isArray(e) || 0 === e.length)) { _context3.next = 3; break; } throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); case 3: t = { method: "serverless.file.resource.info", params: JSON.stringify({ id: e.map(function (e) { return e.split("?")[0]; }).join(",") }) }; _context3.next = 6; return this.request(this.setupRequest(t)); case 6: _context3.t0 = _context3.sent.result; return _context3.abrupt("return", { fileList: _context3.t0 }); case 8: case "end": return _context3.stop(); } } }, _callee3, this); })); function getFileInfo() { return _getFileInfo.apply(this, arguments); } return getFileInfo; }() }]); return de; }(); var pe = { init: function init(e) { var t = new de(e), n = { signInAnonymously: function signInAnonymously() { return t.authorize(); }, getLoginState: function getLoginState() { return Promise.resolve(!1); } }; return t.auth = function () { return n; }, t.customAuth = t.auth, t; } }; var fe = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:"; var ge; !function (e) { e.local = "local", e.none = "none", e.session = "session"; }(ge || (ge = {})); var me = function me() {}, ye = n(function (e, t) { var n; e.exports = (n = r, function (e) { var t = n, s = t.lib, r = s.WordArray, i = s.Hasher, o = t.algo, a = [], c = []; !function () { function t(t) { for (var n = e.sqrt(t), s = 2; s <= n; s++) { if (!(t % s)) return !1; } return !0; } function n(e) { return 4294967296 * (e - (0 | e)) | 0; } for (var s = 2, r = 0; r < 64;) { t(s) && (r < 8 && (a[r] = n(e.pow(s, .5))), c[r] = n(e.pow(s, 1 / 3)), r++), s++; } }(); var u = [], h = o.SHA256 = i.extend({ _doReset: function _doReset() { this._hash = new r.init(a.slice(0)); }, _doProcessBlock: function _doProcessBlock(e, t) { for (var n = this._hash.words, s = n[0], r = n[1], i = n[2], o = n[3], a = n[4], h = n[5], l = n[6], d = n[7], p = 0; p < 64; p++) { if (p < 16) u[p] = 0 | e[t + p];else { var f = u[p - 15], g = (f << 25 | f >>> 7) ^ (f << 14 | f >>> 18) ^ f >>> 3, m = u[p - 2], y = (m << 15 | m >>> 17) ^ (m << 13 | m >>> 19) ^ m >>> 10; u[p] = g + u[p - 7] + y + u[p - 16]; } var _ = s & r ^ s & i ^ r & i, w = (s << 30 | s >>> 2) ^ (s << 19 | s >>> 13) ^ (s << 10 | s >>> 22), v = d + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & h ^ ~a & l) + c[p] + u[p]; d = l, l = h, h = a, a = o + v | 0, o = i, i = r, r = s, s = v + (w + _) | 0; } n[0] = n[0] + s | 0, n[1] = n[1] + r | 0, n[2] = n[2] + i | 0, n[3] = n[3] + o | 0, n[4] = n[4] + a | 0, n[5] = n[5] + h | 0, n[6] = n[6] + l | 0, n[7] = n[7] + d | 0; }, _doFinalize: function _doFinalize() { var t = this._data, n = t.words, s = 8 * this._nDataBytes, r = 8 * t.sigBytes; return n[r >>> 5] |= 128 << 24 - r % 32, n[14 + (r + 64 >>> 9 << 4)] = e.floor(s / 4294967296), n[15 + (r + 64 >>> 9 << 4)] = s, t.sigBytes = 4 * n.length, this._process(), this._hash; }, clone: function clone() { var e = i.clone.call(this); return e._hash = this._hash.clone(), e; } }); t.SHA256 = i._createHelper(h), t.HmacSHA256 = i._createHmacHelper(h); }(Math), n.SHA256); }), _e = ye, we = n(function (e, t) { e.exports = r.HmacSHA256; }); var ve = function ve() { var e; if (!Promise) { e = function e() {}, e.promise = {}; var _t3 = function _t3() { throw new te({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' }); }; return Object.defineProperty(e.promise, "then", { get: _t3 }), Object.defineProperty(e.promise, "catch", { get: _t3 }), e; } var t = new Promise(function (t, n) { e = function e(_e5, s) { return _e5 ? n(_e5) : t(s); }; }); return e.promise = t, e; }; function Ie(e) { return void 0 === e; } function Se(e) { return "[object Null]" === Object.prototype.toString.call(e); } var be; function ke(e) { var t = (n = e, "[object Array]" === Object.prototype.toString.call(n) ? e : [e]); var n; var _iterator = _createForOfIteratorHelper(t), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var _e6 = _step.value; var _t4 = _e6.isMatch, _n5 = _e6.genAdapter, _s4 = _e6.runtime; if (_t4()) return { adapter: _n5(), runtime: _s4 }; } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } !function (e) { e.WEB = "web", e.WX_MP = "wx_mp"; }(be || (be = {})); var Ae = { adapter: null, runtime: void 0 }, Ce = ["anonymousUuidKey"]; var Pe = /*#__PURE__*/function (_me) { (0, _inherits2.default)(Pe, _me); var _super2 = _createSuper(Pe); function Pe() { var _this6; (0, _classCallCheck2.default)(this, Pe); _this6 = _super2.call(this), Ae.adapter.root.tcbObject || (Ae.adapter.root.tcbObject = {}); return _this6; } (0, _createClass2.default)(Pe, [{ key: "setItem", value: function setItem(e, t) { Ae.adapter.root.tcbObject[e] = t; } }, { key: "getItem", value: function getItem(e) { return Ae.adapter.root.tcbObject[e]; } }, { key: "removeItem", value: function removeItem(e) { delete Ae.adapter.root.tcbObject[e]; } }, { key: "clear", value: function clear() { delete Ae.adapter.root.tcbObject; } }]); return Pe; }(me); function Te(e, t) { switch (e) { case "local": return t.localStorage || new Pe(); case "none": return new Pe(); default: return t.sessionStorage || new Pe(); } } var xe = /*#__PURE__*/function () { function xe(e) { (0, _classCallCheck2.default)(this, xe); if (!this._storage) { this._persistence = Ae.adapter.primaryStorage || e.persistence, this._storage = Te(this._persistence, Ae.adapter); var _t5 = "access_token_".concat(e.env), _n6 = "access_token_expire_".concat(e.env), _s5 = "refresh_token_".concat(e.env), _r2 = "anonymous_uuid_".concat(e.env), _i = "login_type_".concat(e.env), _o = "user_info_".concat(e.env); this.keys = { accessTokenKey: _t5, accessTokenExpireKey: _n6, refreshTokenKey: _s5, anonymousUuidKey: _r2, loginTypeKey: _i, userInfoKey: _o }; } } (0, _createClass2.default)(xe, [{ key: "updatePersistence", value: function updatePersistence(e) { if (e === this._persistence) return; var t = "local" === this._persistence; this._persistence = e; var n = Te(e, Ae.adapter); for (var _e7 in this.keys) { var _s6 = this.keys[_e7]; if (t && Ce.includes(_e7)) continue; var _r3 = this._storage.getItem(_s6); Ie(_r3) || Se(_r3) || (n.setItem(_s6, _r3), this._storage.removeItem(_s6)); } this._storage = n; } }, { key: "setStore", value: function setStore(e, t, n) { if (!this._storage) return; var s = { version: n || "localCachev1", content: t }, r = JSON.stringify(s); try { this._storage.setItem(e, r); } catch (e) { throw e; } } }, { key: "getStore", value: function getStore(e, t) { try { if (!this._storage) return; } catch (e) { return ""; } t = t || "localCachev1"; var n = this._storage.getItem(e); if (!n) return ""; if (n.indexOf(t) >= 0) { return JSON.parse(n).content; } return ""; } }, { key: "removeStore", value: function removeStore(e) { this._storage.removeItem(e); } }]); return xe; }(); var Oe = {}, Ee = {}; function Le(e) { return Oe[e]; } var Re = /*#__PURE__*/(0, _createClass2.default)(function Re(e, t) { (0, _classCallCheck2.default)(this, Re); this.data = t || null, this.name = e; }); var Ue = /*#__PURE__*/function (_Re) { (0, _inherits2.default)(Ue, _Re); var _super3 = _createSuper(Ue); function Ue(e, t) { var _this7; (0, _classCallCheck2.default)(this, Ue); _this7 = _super3.call(this, "error", { error: e, data: t }), _this7.error = e; return _this7; } return (0, _createClass2.default)(Ue); }(Re); var Ne = new ( /*#__PURE__*/function () { function _class() { (0, _classCallCheck2.default)(this, _class); this._listeners = {}; } (0, _createClass2.default)(_class, [{ key: "on", value: function on(e, t) { return function (e, t, n) { n[e] = n[e] || [], n[e].push(t); }(e, t, this._listeners), this; } }, { key: "off", value: function off(e, t) { return function (e, t, n) { if (n && n[e]) { var _s7 = n[e].indexOf(t); -1 !== _s7 && n[e].splice(_s7, 1); } }(e, t, this._listeners), this; } }, { key: "fire", value: function fire(e, t) { if (e instanceof Ue) return console.error(e.error), this; var n = "string" == typeof e ? new Re(e, t || {}) : e; var s = n.name; if (this._listens(s)) { n.target = this; var _e8 = this._listeners[s] ? (0, _toConsumableArray2.default)(this._listeners[s]) : []; var _iterator2 = _createForOfIteratorHelper(_e8), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _t6 = _step2.value; _t6.call(this, n); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } return this; } }, { key: "_listens", value: function _listens(e) { return this._listeners[e] && this._listeners[e].length > 0; } }]); return _class; }())(); function De(e, t) { Ne.on(e, t); } function Me(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; Ne.fire(e, t); } function qe(e, t) { Ne.off(e, t); } var Fe = "loginStateChanged", Ke = "loginStateExpire", je = "loginTypeChanged", $e = "anonymousConverted", Be = "refreshAccessToken"; var We; !function (e) { e.ANONYMOUS = "ANONYMOUS", e.WECHAT = "WECHAT", e.WECHAT_PUBLIC = "WECHAT-PUBLIC", e.WECHAT_OPEN = "WECHAT-OPEN", e.CUSTOM = "CUSTOM", e.EMAIL = "EMAIL", e.USERNAME = "USERNAME", e.NULL = "NULL"; }(We || (We = {})); var He = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], ze = { "X-SDK-Version": "1.3.5" }; function Je(e, t, n) { var s = e[t]; e[t] = function (t) { var r = {}, i = {}; n.forEach(function (n) { var _n$call = n.call(e, t), s = _n$call.data, o = _n$call.headers; Object.assign(r, s), Object.assign(i, o); }); var o = t.data; return o && function () { var e; if (e = o, "[object FormData]" !== Object.prototype.toString.call(e)) t.data = _objectSpread(_objectSpread({}, o), r);else for (var _e9 in r) { o.append(_e9, r[_e9]); } }(), t.headers = _objectSpread(_objectSpread({}, t.headers || {}), i), s.call(e, t); }; } function Ve() { var e = Math.random().toString(16).slice(2); return { data: { seqId: e }, headers: _objectSpread(_objectSpread({}, ze), {}, { "x-seqid": e }) }; } var Ge = /*#__PURE__*/function () { function Ge() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck2.default)(this, Ge); var t; this.config = e, this._reqClass = new Ae.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: "\u8BF7\u6C42\u5728".concat(this.config.timeout / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD"), restrictedMethods: ["post"] }), this._cache = Le(this.config.env), this._localCache = (t = this.config.env, Ee[t]), Je(this._reqClass, "post", [Ve]), Je(this._reqClass, "upload", [Ve]), Je(this._reqClass, "download", [Ve]); } (0, _createClass2.default)(Ge, [{ key: "post", value: function () { var _post = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(e) { return _regenerator.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this._reqClass.post(e); case 2: return _context4.abrupt("return", _context4.sent); case 3: case "end": return _context4.stop(); } } }, _callee4, this); })); function post(_x2) { return _post.apply(this, arguments); } return post; }() }, { key: "upload", value: function () { var _upload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(e) { return _regenerator.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this._reqClass.upload(e); case 2: return _context5.abrupt("return", _context5.sent); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); function upload(_x3) { return _upload.apply(this, arguments); } return upload; }() }, { key: "download", value: function () { var _download = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(e) { return _regenerator.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _context6.next = 2; return this._reqClass.download(e); case 2: return _context6.abrupt("return", _context6.sent); case 3: case "end": return _context6.stop(); } } }, _callee6, this); })); function download(_x4) { return _download.apply(this, arguments); } return download; }() }, { key: "refreshAccessToken", value: function () { var _refreshAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() { var e, t; return _regenerator.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken()); _context7.prev = 1; _context7.next = 4; return this._refreshAccessTokenPromise; case 4: e = _context7.sent; _context7.next = 10; break; case 7: _context7.prev = 7; _context7.t0 = _context7["catch"](1); t = _context7.t0; case 10: if (!(this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t)) { _context7.next = 12; break; } throw t; case 12: return _context7.abrupt("return", e); case 13: case "end": return _context7.stop(); } } }, _callee7, this, [[1, 7]]); })); function refreshAccessToken() { return _refreshAccessToken2.apply(this, arguments); } return refreshAccessToken; }() }, { key: "_refreshAccessToken", value: function () { var _refreshAccessToken3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { var _this$_cache$keys, e, t, n, s, r, i, o, a, _e10, _e11, _t7, _s8; return _regenerator.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _this$_cache$keys = this._cache.keys, e = _this$_cache$keys.accessTokenKey, t = _this$_cache$keys.accessTokenExpireKey, n = _this$_cache$keys.refreshTokenKey, s = _this$_cache$keys.loginTypeKey, r = _this$_cache$keys.anonymousUuidKey; this._cache.removeStore(e), this._cache.removeStore(t); i = this._cache.getStore(n); if (i) { _context8.next = 5; break; } throw new te({ message: "未登录CloudBase" }); case 5: o = { refresh_token: i }; _context8.next = 8; return this.request("auth.fetchAccessTokenWithRefreshToken", o); case 8: a = _context8.sent; if (!a.data.code) { _context8.next = 21; break; } _e10 = a.data.code; if (!("SIGN_PARAM_INVALID" === _e10 || "REFRESH_TOKEN_EXPIRED" === _e10 || "INVALID_REFRESH_TOKEN" === _e10)) { _context8.next = 20; break; } if (!(this._cache.getStore(s) === We.ANONYMOUS && "INVALID_REFRESH_TOKEN" === _e10)) { _context8.next = 19; break; } _e11 = this._cache.getStore(r); _t7 = this._cache.getStore(n); _context8.next = 17; return this.send("auth.signInAnonymously", { anonymous_uuid: _e11, refresh_token: _t7 }); case 17: _s8 = _context8.sent; return _context8.abrupt("return", (this.setRefreshToken(_s8.refresh_token), this._refreshAccessToken())); case 19: Me(Ke), this._cache.removeStore(n); case 20: throw new te({ code: a.data.code, message: "\u5237\u65B0access token\u5931\u8D25\uFF1A".concat(a.data.code) }); case 21: if (!a.data.access_token) { _context8.next = 23; break; } return _context8.abrupt("return", (Me(Be), this._cache.setStore(e, a.data.access_token), this._cache.setStore(t, a.data.access_token_expire + Date.now()), { accessToken: a.data.access_token, accessTokenExpire: a.data.access_token_expire })); case 23: a.data.refresh_token && (this._cache.removeStore(n), this._cache.setStore(n, a.data.refresh_token), this._refreshAccessToken()); case 24: case "end": return _context8.stop(); } } }, _callee8, this); })); function _refreshAccessToken() { return _refreshAccessToken3.apply(this, arguments); } return _refreshAccessToken; }() }, { key: "getAccessToken", value: function () { var _getAccessToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() { var _this$_cache$keys2, e, t, n, s, r, i; return _regenerator.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _this$_cache$keys2 = this._cache.keys, e = _this$_cache$keys2.accessTokenKey, t = _this$_cache$keys2.accessTokenExpireKey, n = _this$_cache$keys2.refreshTokenKey; if (this._cache.getStore(n)) { _context9.next = 3; break; } throw new te({ message: "refresh token不存在,登录状态异常" }); case 3: s = this._cache.getStore(e), r = this._cache.getStore(t), i = !0; _context9.t0 = this._shouldRefreshAccessTokenHook; if (!_context9.t0) { _context9.next = 9; break; } _context9.next = 8; return this._shouldRefreshAccessTokenHook(s, r); case 8: _context9.t0 = !_context9.sent; case 9: _context9.t1 = _context9.t0; if (!_context9.t1) { _context9.next = 12; break; } i = !1; case 12: return _context9.abrupt("return", (!s || !r || r < Date.now()) && i ? this.refreshAccessToken() : { accessToken: s, accessTokenExpire: r }); case 13: case "end": return _context9.stop(); } } }, _callee9, this); })); function getAccessToken() { return _getAccessToken.apply(this, arguments); } return getAccessToken; }() }, { key: "request", value: function () { var _request = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(e, t, n) { var s, r, i, _e12, o, _e13, _e14, a, c, u, h, l, d, p, f, g; return _regenerator.default.wrap(function _callee10$(_context10) { while (1) { switch (_context10.prev = _context10.next) { case 0: s = "x-tcb-trace_".concat(this.config.env); r = "application/x-www-form-urlencoded"; i = _objectSpread({ action: e, env: this.config.env, dataVersion: "2019-08-16" }, t); if (!(-1 === He.indexOf(e))) { _context10.next = 10; break; } _e12 = this._cache.keys.refreshTokenKey; _context10.t0 = this._cache.getStore(_e12); if (!_context10.t0) { _context10.next = 10; break; } _context10.next = 9; return this.getAccessToken(); case 9: i.access_token = _context10.sent.accessToken; case 10: if ("storage.uploadFile" === e) { o = new FormData(); for (_e13 in o) { o.hasOwnProperty(_e13) && void 0 !== o[_e13] && o.append(_e13, i[_e13]); } r = "multipart/form-data"; } else { r = "application/json", o = {}; for (_e14 in i) { void 0 !== i[_e14] && (o[_e14] = i[_e14]); } } a = { headers: { "content-type": r } }; n && n.onUploadProgress && (a.onUploadProgress = n.onUploadProgress); c = this._localCache.getStore(s); c && (a.headers["X-TCB-Trace"] = c); u = t.parse, h = t.inQuery, l = t.search; d = { env: this.config.env }; u && (d.parse = !0), h && (d = _objectSpread(_objectSpread({}, h), d)); p = function (e, t) { var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var s = /\?/.test(t); var r = ""; for (var _e15 in n) { "" === r ? !s && (t += "?") : r += "&", r += "".concat(_e15, "=").concat(encodeURIComponent(n[_e15])); } return /^http(s)?\:\/\//.test(t += r) ? t : "".concat(e).concat(t); }(fe, "//tcb-api.tencentcloudapi.com/web", d); l && (p += l); _context10.next = 22; return this.post(_objectSpread({ url: p, data: o }, a)); case 22: f = _context10.sent; g = f.header && f.header["x-tcb-trace"]; if (!(g && this._localCache.setStore(s, g), 200 !== Number(f.status) && 200 !== Number(f.statusCode) || !f.data)) { _context10.next = 26; break; } throw new te({ code: "NETWORK_ERROR", message: "network request error" }); case 26: return _context10.abrupt("return", f); case 27: case "end": return _context10.stop(); } } }, _callee10, this); })); function request(_x5, _x6, _x7) { return _request.apply(this, arguments); } return request; }() }, { key: "send", value: function () { var _send = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(e) { var t, n, _n7, _args11 = arguments; return _regenerator.default.wrap(function _callee11$(_context11) { while (1) { switch (_context11.prev = _context11.next) { case 0: t = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : {}; _context11.next = 3; return this.request(e, t, { onUploadProgress: t.onUploadProgress }); case 3: n = _context11.sent; if (!("ACCESS_TOKEN_EXPIRED" === n.data.code && -1 === He.indexOf(e))) { _context11.next = 13; break; } _context11.next = 7; return this.refreshAccessToken(); case 7: _context11.next = 9; return this.request(e, t, { onUploadProgress: t.onUploadProgress }); case 9: _n7 = _context11.sent; if (!_n7.data.code) { _context11.next = 12; break; } throw new te({ code: _n7.data.code, message: _n7.data.message }); case 12: return _context11.abrupt("return", _n7.data); case 13: if (!n.data.code) { _context11.next = 15; break; } throw new te({ code: n.data.code, message: n.data.message }); case 15: return _context11.abrupt("return", n.data); case 16: case "end": return _context11.stop(); } } }, _callee11, this); })); function send(_x8) { return _send.apply(this, arguments); } return send; }() }, { key: "setRefreshToken", value: function setRefreshToken(e) { var _this$_cache$keys3 = this._cache.keys, t = _this$_cache$keys3.accessTokenKey, n = _this$_cache$keys3.accessTokenExpireKey, s = _this$_cache$keys3.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }]); return Ge; }(); var Ye = {}; function Qe(e) { return Ye[e]; } var Xe = /*#__PURE__*/function () { function Xe(e) { (0, _classCallCheck2.default)(this, Xe); this.config = e, this._cache = Le(e.env), this._request = Qe(e.env); } (0, _createClass2.default)(Xe, [{ key: "setRefreshToken", value: function setRefreshToken(e) { var _this$_cache$keys4 = this._cache.keys, t = _this$_cache$keys4.accessTokenKey, n = _this$_cache$keys4.accessTokenExpireKey, s = _this$_cache$keys4.refreshTokenKey; this._cache.removeStore(t), this._cache.removeStore(n), this._cache.setStore(s, e); } }, { key: "setAccessToken", value: function setAccessToken(e, t) { var _this$_cache$keys5 = this._cache.keys, n = _this$_cache$keys5.accessTokenKey, s = _this$_cache$keys5.accessTokenExpireKey; this._cache.setStore(n, e), this._cache.setStore(s, t); } }, { key: "refreshUserInfo", value: function () { var _refreshUserInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() { var _yield$this$_request$, e; return _regenerator.default.wrap(function _callee12$(_context12) { while (1) { switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return this._request.send("auth.getUserInfo", {}); case 2: _yield$this$_request$ = _context12.sent; e = _yield$this$_request$.data; return _context12.abrupt("return", (this.setLocalUserInfo(e), e)); case 5: case "end": return _context12.stop(); } } }, _callee12, this); })); function refreshUserInfo() { return _refreshUserInfo.apply(this, arguments); } return refreshUserInfo; }() }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) { var t = this._cache.keys.userInfoKey; this._cache.setStore(t, e); } }]); return Xe; }(); var Ze = /*#__PURE__*/function () { function Ze(e) { (0, _classCallCheck2.default)(this, Ze); if (!e) throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); this._envId = e, this._cache = Le(this._envId), this._request = Qe(this._envId), this.setUserInfo(); } (0, _createClass2.default)(Ze, [{ key: "linkWithTicket", value: function linkWithTicket(e) { if ("string" != typeof e) throw new te({ code: "PARAM_ERROR", message: "ticket must be string" }); return this._request.send("auth.linkWithTicket", { ticket: e }); } }, { key: "linkWithRedirect", value: function linkWithRedirect(e) { e.signInWithRedirect(); } }, { key: "updatePassword", value: function updatePassword(e, t) { return this._request.send("auth.updatePassword", { oldPassword: t, newPassword: e }); } }, { key: "updateEmail", value: function updateEmail(e) { return this._request.send("auth.updateEmail", { newEmail: e }); } }, { key: "updateUsername", value: function updateUsername(e) { if ("string" != typeof e) throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); return this._request.send("auth.updateUsername", { username: e }); } }, { key: "getLinkedUidList", value: function () { var _getLinkedUidList = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() { var _yield$this$_request$2, e, t, n; return _regenerator.default.wrap(function _callee13$(_context13) { while (1) { switch (_context13.prev = _context13.next) { case 0: _context13.next = 2; return this._request.send("auth.getLinkedUidList", {}); case 2: _yield$this$_request$2 = _context13.sent; e = _yield$this$_request$2.data; t = !1; n = e.users; return _context13.abrupt("return", (n.forEach(function (e) { e.wxOpenId && e.wxPublicId && (t = !0); }), { users: n, hasPrimaryUid: t })); case 7: case "end": return _context13.stop(); } } }, _callee13, this); })); function getLinkedUidList() { return _getLinkedUidList.apply(this, arguments); } return getLinkedUidList; }() }, { key: "setPrimaryUid", value: function setPrimaryUid(e) { return this._request.send("auth.setPrimaryUid", { uid: e }); } }, { key: "unlink", value: function unlink(e) { return this._request.send("auth.unlink", { platform: e }); } }, { key: "update", value: function () { var _update = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(e) { var t, n, s, r, i, o, _yield$this$_request$3, a; return _regenerator.default.wrap(function _callee14$(_context14) { while (1) { switch (_context14.prev = _context14.next) { case 0: t = e.nickName; n = e.gender; s = e.avatarUrl; r = e.province; i = e.country; o = e.city; _context14.next = 8; return this._request.send("auth.updateUserInfo", { nickName: t, gender: n, avatarUrl: s, province: r, country: i, city: o }); case 8: _yield$this$_request$3 = _context14.sent; a = _yield$this$_request$3.data; this.setLocalUserInfo(a); case 11: case "end": return _context14.stop(); } } }, _callee14, this); })); function update(_x9) { return _update.apply(this, arguments); } return update; }() }, { key: "refresh", value: function () { var _refresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() { var _yield$this$_request$4, e; return _regenerator.default.wrap(function _callee15$(_context15) { while (1) { switch (_context15.prev = _context15.next) { case 0: _context15.next = 2; return this._request.send("auth.getUserInfo", {}); case 2: _yield$this$_request$4 = _context15.sent; e = _yield$this$_request$4.data; return _context15.abrupt("return", (this.setLocalUserInfo(e), e)); case 5: case "end": return _context15.stop(); } } }, _callee15, this); })); function refresh() { return _refresh.apply(this, arguments); } return refresh; }() }, { key: "setUserInfo", value: function setUserInfo() { var _this8 = this; var e = this._cache.keys.userInfoKey, t = this._cache.getStore(e); ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach(function (e) { _this8[e] = t[e]; }), this.location = { country: t.country, province: t.province, city: t.city }; } }, { key: "setLocalUserInfo", value: function setLocalUserInfo(e) { var t = this._cache.keys.userInfoKey; this._cache.setStore(t, e), this.setUserInfo(); } }]); return Ze; }(); var et = /*#__PURE__*/function () { function et(e) { (0, _classCallCheck2.default)(this, et); if (!e) throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); this._cache = Le(e); var _this$_cache$keys6 = this._cache.keys, t = _this$_cache$keys6.refreshTokenKey, n = _this$_cache$keys6.accessTokenKey, s = _this$_cache$keys6.accessTokenExpireKey, r = this._cache.getStore(t), i = this._cache.getStore(n), o = this._cache.getStore(s); this.credential = { refreshToken: r, accessToken: i, accessTokenExpire: o }, this.user = new Ze(e); } (0, _createClass2.default)(et, [{ key: "isAnonymousAuth", get: function get() { return this.loginType === We.ANONYMOUS; } }, { key: "isCustomAuth", get: function get() { return this.loginType === We.CUSTOM; } }, { key: "isWeixinAuth", get: function get() { return this.loginType === We.WECHAT || this.loginType === We.WECHAT_OPEN || this.loginType === We.WECHAT_PUBLIC; } }, { key: "loginType", get: function get() { return this._cache.getStore(this._cache.keys.loginTypeKey); } }]); return et; }(); var tt = /*#__PURE__*/function (_Xe) { (0, _inherits2.default)(tt, _Xe); var _super4 = _createSuper(tt); function tt() { (0, _classCallCheck2.default)(this, tt); return _super4.apply(this, arguments); } (0, _createClass2.default)(tt, [{ key: "signIn", value: function () { var _signIn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() { var _this$_cache$keys7, e, t, n, s, r, _e16; return _regenerator.default.wrap(function _callee16$(_context16) { while (1) { switch (_context16.prev = _context16.next) { case 0: this._cache.updatePersistence("local"); _this$_cache$keys7 = this._cache.keys; e = _this$_cache$keys7.anonymousUuidKey; t = _this$_cache$keys7.refreshTokenKey; n = this._cache.getStore(e) || void 0; s = this._cache.getStore(t) || void 0; _context16.next = 8; return this._request.send("auth.signInAnonymously", { anonymous_uuid: n, refresh_token: s }); case 8: r = _context16.sent; if (!(r.uuid && r.refresh_token)) { _context16.next = 20; break; } this._setAnonymousUUID(r.uuid); this.setRefreshToken(r.refresh_token); _context16.next = 14; return this._request.refreshAccessToken(); case 14: Me(Fe); Me(je, { env: this.config.env, loginType: We.ANONYMOUS, persistence: "local" }); _e16 = new et(this.config.env); _context16.next = 19; return _e16.user.refresh(); case 19: return _context16.abrupt("return", _e16); case 20: throw new te({ message: "匿名登录失败" }); case 21: case "end": return _context16.stop(); } } }, _callee16, this); })); function signIn() { return _signIn.apply(this, arguments); } return signIn; }() }, { key: "linkAndRetrieveDataWithTicket", value: function () { var _linkAndRetrieveDataWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(e) { var _this$_cache$keys8, t, n, s, r, i; return _regenerator.default.wrap(function _callee17$(_context17) { while (1) { switch (_context17.prev = _context17.next) { case 0: _this$_cache$keys8 = this._cache.keys; t = _this$_cache$keys8.anonymousUuidKey; n = _this$_cache$keys8.refreshTokenKey; s = this._cache.getStore(t); r = this._cache.getStore(n); _context17.next = 7; return this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s, refresh_token: r, ticket: e }); case 7: i = _context17.sent; if (!i.refresh_token) { _context17.next = 16; break; } this._clearAnonymousUUID(); this.setRefreshToken(i.refresh_token); _context17.next = 13; return this._request.refreshAccessToken(); case 13: Me($e, { env: this.config.env }); Me(je, { loginType: We.CUSTOM, persistence: "local" }); return _context17.abrupt("return", { credential: { refreshToken: i.refresh_token } }); case 16: throw new te({ message: "匿名转化失败" }); case 17: case "end": return _context17.stop(); } } }, _callee17, this); })); function linkAndRetrieveDataWithTicket(_x10) { return _linkAndRetrieveDataWithTicket.apply(this, arguments); } return linkAndRetrieveDataWithTicket; }() }, { key: "_setAnonymousUUID", value: function _setAnonymousUUID(e) { var _this$_cache$keys9 = this._cache.keys, t = _this$_cache$keys9.anonymousUuidKey, n = _this$_cache$keys9.loginTypeKey; this._cache.removeStore(t), this._cache.setStore(t, e), this._cache.setStore(n, We.ANONYMOUS); } }, { key: "_clearAnonymousUUID", value: function _clearAnonymousUUID() { this._cache.removeStore(this._cache.keys.anonymousUuidKey); } }]); return tt; }(Xe); var nt = /*#__PURE__*/function (_Xe2) { (0, _inherits2.default)(nt, _Xe2); var _super5 = _createSuper(nt); function nt() { (0, _classCallCheck2.default)(this, nt); return _super5.apply(this, arguments); } (0, _createClass2.default)(nt, [{ key: "signIn", value: function () { var _signIn2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(e) { var t, n; return _regenerator.default.wrap(function _callee18$(_context18) { while (1) { switch (_context18.prev = _context18.next) { case 0: if (!("string" != typeof e)) { _context18.next = 2; break; } throw new te({ code: "PARAM_ERROR", message: "ticket must be a string" }); case 2: t = this._cache.keys.refreshTokenKey; _context18.next = 5; return this._request.send("auth.signInWithTicket", { ticket: e, refresh_token: this._cache.getStore(t) || "" }); case 5: n = _context18.sent; if (!n.refresh_token) { _context18.next = 15; break; } this.setRefreshToken(n.refresh_token); _context18.next = 10; return this._request.refreshAccessToken(); case 10: Me(Fe); Me(je, { env: this.config.env, loginType: We.CUSTOM, persistence: this.config.persistence }); _context18.next = 14; return this.refreshUserInfo(); case 14: return _context18.abrupt("return", new et(this.config.env)); case 15: throw new te({ message: "自定义登录失败" }); case 16: case "end": return _context18.stop(); } } }, _callee18, this); })); function signIn(_x11) { return _signIn2.apply(this, arguments); } return signIn; }() }]); return nt; }(Xe); var st = /*#__PURE__*/function (_Xe3) { (0, _inherits2.default)(st, _Xe3); var _super6 = _createSuper(st); function st() { (0, _classCallCheck2.default)(this, st); return _super6.apply(this, arguments); } (0, _createClass2.default)(st, [{ key: "signIn", value: function () { var _signIn3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(e, t) { var n, s, r, i, o; return _regenerator.default.wrap(function _callee19$(_context19) { while (1) { switch (_context19.prev = _context19.next) { case 0: if (!("string" != typeof e)) { _context19.next = 2; break; } throw new te({ code: "PARAM_ERROR", message: "email must be a string" }); case 2: n = this._cache.keys.refreshTokenKey; _context19.next = 5; return this._request.send("auth.signIn", { loginType: "EMAIL", email: e, password: t, refresh_token: this._cache.getStore(n) || "" }); case 5: s = _context19.sent; r = s.refresh_token; i = s.access_token; o = s.access_token_expire; if (!r) { _context19.next = 22; break; } this.setRefreshToken(r); if (!(i && o)) { _context19.next = 15; break; } this.setAccessToken(i, o); _context19.next = 17; break; case 15: _context19.next = 17; return this._request.refreshAccessToken(); case 17: _context19.next = 19; return this.refreshUserInfo(); case 19: Me(Fe); Me(je, { env: this.config.env, loginType: We.EMAIL, persistence: this.config.persistence }); return _context19.abrupt("return", new et(this.config.env)); case 22: throw s.code ? new te({ code: s.code, message: "\u90AE\u7BB1\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new te({ message: "邮箱登录失败" }); case 23: case "end": return _context19.stop(); } } }, _callee19, this); })); function signIn(_x12, _x13) { return _signIn3.apply(this, arguments); } return signIn; }() }, { key: "activate", value: function () { var _activate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(e) { return _regenerator.default.wrap(function _callee20$(_context20) { while (1) { switch (_context20.prev = _context20.next) { case 0: return _context20.abrupt("return", this._request.send("auth.activateEndUserMail", { token: e })); case 1: case "end": return _context20.stop(); } } }, _callee20, this); })); function activate(_x14) { return _activate.apply(this, arguments); } return activate; }() }, { key: "resetPasswordWithToken", value: function () { var _resetPasswordWithToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee21(e, t) { return _regenerator.default.wrap(function _callee21$(_context21) { while (1) { switch (_context21.prev = _context21.next) { case 0: return _context21.abrupt("return", this._request.send("auth.resetPasswordWithToken", { token: e, newPassword: t })); case 1: case "end": return _context21.stop(); } } }, _callee21, this); })); function resetPasswordWithToken(_x15, _x16) { return _resetPasswordWithToken.apply(this, arguments); } return resetPasswordWithToken; }() }]); return st; }(Xe); var rt = /*#__PURE__*/function (_Xe4) { (0, _inherits2.default)(rt, _Xe4); var _super7 = _createSuper(rt); function rt() { (0, _classCallCheck2.default)(this, rt); return _super7.apply(this, arguments); } (0, _createClass2.default)(rt, [{ key: "signIn", value: function () { var _signIn4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee22(e, t) { var n, s, r, i, o; return _regenerator.default.wrap(function _callee22$(_context22) { while (1) { switch (_context22.prev = _context22.next) { case 0: if (!("string" != typeof e)) { _context22.next = 2; break; } throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); case 2: "string" != typeof t && (t = "", console.warn("password is empty")); n = this._cache.keys.refreshTokenKey; _context22.next = 6; return this._request.send("auth.signIn", { loginType: We.USERNAME, username: e, password: t, refresh_token: this._cache.getStore(n) || "" }); case 6: s = _context22.sent; r = s.refresh_token; i = s.access_token_expire; o = s.access_token; if (!r) { _context22.next = 23; break; } this.setRefreshToken(r); if (!(o && i)) { _context22.next = 16; break; } this.setAccessToken(o, i); _context22.next = 18; break; case 16: _context22.next = 18; return this._request.refreshAccessToken(); case 18: _context22.next = 20; return this.refreshUserInfo(); case 20: Me(Fe); Me(je, { env: this.config.env, loginType: We.USERNAME, persistence: this.config.persistence }); return _context22.abrupt("return", new et(this.config.env)); case 23: throw s.code ? new te({ code: s.code, message: "\u7528\u6237\u540D\u5BC6\u7801\u767B\u5F55\u5931\u8D25: ".concat(s.message) }) : new te({ message: "用户名密码登录失败" }); case 24: case "end": return _context22.stop(); } } }, _callee22, this); })); function signIn(_x17, _x18) { return _signIn4.apply(this, arguments); } return signIn; }() }]); return rt; }(Xe); var it = /*#__PURE__*/function () { function it(e) { (0, _classCallCheck2.default)(this, it); this.config = e, this._cache = Le(e.env), this._request = Qe(e.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), De(je, this._onLoginTypeChanged); } (0, _createClass2.default)(it, [{ key: "currentUser", get: function get() { var e = this.hasLoginState(); return e && e.user || null; } }, { key: "loginType", get: function get() { return this._cache.getStore(this._cache.keys.loginTypeKey); } }, { key: "anonymousAuthProvider", value: function anonymousAuthProvider() { return new tt(this.config); } }, { key: "customAuthProvider", value: function customAuthProvider() { return new nt(this.config); } }, { key: "emailAuthProvider", value: function emailAuthProvider() { return new st(this.config); } }, { key: "usernameAuthProvider", value: function usernameAuthProvider() { return new rt(this.config); } }, { key: "signInAnonymously", value: function () { var _signInAnonymously = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee23() { return _regenerator.default.wrap(function _callee23$(_context23) { while (1) { switch (_context23.prev = _context23.next) { case 0: return _context23.abrupt("return", new tt(this.config).signIn()); case 1: case "end": return _context23.stop(); } } }, _callee23, this); })); function signInAnonymously() { return _signInAnonymously.apply(this, arguments); } return signInAnonymously; }() }, { key: "signInWithEmailAndPassword", value: function () { var _signInWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee24(e, t) { return _regenerator.default.wrap(function _callee24$(_context24) { while (1) { switch (_context24.prev = _context24.next) { case 0: return _context24.abrupt("return", new st(this.config).signIn(e, t)); case 1: case "end": return _context24.stop(); } } }, _callee24, this); })); function signInWithEmailAndPassword(_x19, _x20) { return _signInWithEmailAndPassword.apply(this, arguments); } return signInWithEmailAndPassword; }() }, { key: "signInWithUsernameAndPassword", value: function signInWithUsernameAndPassword(e, t) { return new rt(this.config).signIn(e, t); } }, { key: "linkAndRetrieveDataWithTicket", value: function () { var _linkAndRetrieveDataWithTicket2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee25(e) { return _regenerator.default.wrap(function _callee25$(_context25) { while (1) { switch (_context25.prev = _context25.next) { case 0: this._anonymousAuthProvider || (this._anonymousAuthProvider = new tt(this.config)), De($e, this._onAnonymousConverted); _context25.next = 3; return this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e); case 3: return _context25.abrupt("return", _context25.sent); case 4: case "end": return _context25.stop(); } } }, _callee25, this); })); function linkAndRetrieveDataWithTicket(_x21) { return _linkAndRetrieveDataWithTicket2.apply(this, arguments); } return linkAndRetrieveDataWithTicket; }() }, { key: "signOut", value: function () { var _signOut = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee26() { var _this$_cache$keys10, e, t, n, s, r; return _regenerator.default.wrap(function _callee26$(_context26) { while (1) { switch (_context26.prev = _context26.next) { case 0: if (!(this.loginType === We.ANONYMOUS)) { _context26.next = 2; break; } throw new te({ message: "匿名用户不支持登出操作" }); case 2: _this$_cache$keys10 = this._cache.keys, e = _this$_cache$keys10.refreshTokenKey, t = _this$_cache$keys10.accessTokenKey, n = _this$_cache$keys10.accessTokenExpireKey, s = this._cache.getStore(e); if (s) { _context26.next = 5; break; } return _context26.abrupt("return"); case 5: _context26.next = 7; return this._request.send("auth.logout", { refresh_token: s }); case 7: r = _context26.sent; return _context26.abrupt("return", (this._cache.removeStore(e), this._cache.removeStore(t), this._cache.removeStore(n), Me(Fe), Me(je, { env: this.config.env, loginType: We.NULL, persistence: this.config.persistence }), r)); case 9: case "end": return _context26.stop(); } } }, _callee26, this); })); function signOut() { return _signOut.apply(this, arguments); } return signOut; }() }, { key: "signUpWithEmailAndPassword", value: function () { var _signUpWithEmailAndPassword = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee27(e, t) { return _regenerator.default.wrap(function _callee27$(_context27) { while (1) { switch (_context27.prev = _context27.next) { case 0: return _context27.abrupt("return", this._request.send("auth.signUpWithEmailAndPassword", { email: e, password: t })); case 1: case "end": return _context27.stop(); } } }, _callee27, this); })); function signUpWithEmailAndPassword(_x22, _x23) { return _signUpWithEmailAndPassword.apply(this, arguments); } return signUpWithEmailAndPassword; }() }, { key: "sendPasswordResetEmail", value: function () { var _sendPasswordResetEmail = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee28(e) { return _regenerator.default.wrap(function _callee28$(_context28) { while (1) { switch (_context28.prev = _context28.next) { case 0: return _context28.abrupt("return", this._request.send("auth.sendPasswordResetEmail", { email: e })); case 1: case "end": return _context28.stop(); } } }, _callee28, this); })); function sendPasswordResetEmail(_x24) { return _sendPasswordResetEmail.apply(this, arguments); } return sendPasswordResetEmail; }() }, { key: "onLoginStateChanged", value: function onLoginStateChanged(e) { var _this9 = this; De(Fe, function () { var t = _this9.hasLoginState(); e.call(_this9, t); }); var t = this.hasLoginState(); e.call(this, t); } }, { key: "onLoginStateExpired", value: function onLoginStateExpired(e) { De(Ke, e.bind(this)); } }, { key: "onAccessTokenRefreshed", value: function onAccessTokenRefreshed(e) { De(Be, e.bind(this)); } }, { key: "onAnonymousConverted", value: function onAnonymousConverted(e) { De($e, e.bind(this)); } }, { key: "onLoginTypeChanged", value: function onLoginTypeChanged(e) { var _this10 = this; De(je, function () { var t = _this10.hasLoginState(); e.call(_this10, t); }); } }, { key: "getAccessToken", value: function () { var _getAccessToken2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee29() { return _regenerator.default.wrap(function _callee29$(_context29) { while (1) { switch (_context29.prev = _context29.next) { case 0: _context29.next = 2; return this._request.getAccessToken(); case 2: _context29.t0 = _context29.sent.accessToken; _context29.t1 = this.config.env; return _context29.abrupt("return", { accessToken: _context29.t0, env: _context29.t1 }); case 5: case "end": return _context29.stop(); } } }, _callee29, this); })); function getAccessToken() { return _getAccessToken2.apply(this, arguments); } return getAccessToken; }() }, { key: "hasLoginState", value: function hasLoginState() { var e = this._cache.keys.refreshTokenKey; return this._cache.getStore(e) ? new et(this.config.env) : null; } }, { key: "isUsernameRegistered", value: function () { var _isUsernameRegistered = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee30(e) { var _yield$this$_request$5, t; return _regenerator.default.wrap(function _callee30$(_context30) { while (1) { switch (_context30.prev = _context30.next) { case 0: if (!("string" != typeof e)) { _context30.next = 2; break; } throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); case 2: _context30.next = 4; return this._request.send("auth.isUsernameRegistered", { username: e }); case 4: _yield$this$_request$5 = _context30.sent; t = _yield$this$_request$5.data; return _context30.abrupt("return", t && t.isRegistered); case 7: case "end": return _context30.stop(); } } }, _callee30, this); })); function isUsernameRegistered(_x25) { return _isUsernameRegistered.apply(this, arguments); } return isUsernameRegistered; }() }, { key: "getLoginState", value: function getLoginState() { return Promise.resolve(this.hasLoginState()); } }, { key: "signInWithTicket", value: function () { var _signInWithTicket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee31(e) { return _regenerator.default.wrap(function _callee31$(_context31) { while (1) { switch (_context31.prev = _context31.next) { case 0: return _context31.abrupt("return", new nt(this.config).signIn(e)); case 1: case "end": return _context31.stop(); } } }, _callee31, this); })); function signInWithTicket(_x26) { return _signInWithTicket.apply(this, arguments); } return signInWithTicket; }() }, { key: "shouldRefreshAccessToken", value: function shouldRefreshAccessToken(e) { this._request._shouldRefreshAccessTokenHook = e.bind(this); } }, { key: "getUserInfo", value: function getUserInfo() { return this._request.send("auth.getUserInfo", {}).then(function (e) { return e.code ? e : _objectSpread(_objectSpread({}, e.data), {}, { requestId: e.seqId }); }); } }, { key: "getAuthHeader", value: function getAuthHeader() { var _this$_cache$keys11 = this._cache.keys, e = _this$_cache$keys11.refreshTokenKey, t = _this$_cache$keys11.accessTokenKey, n = this._cache.getStore(e); return { "x-cloudbase-credentials": this._cache.getStore(t) + "/@@/" + n }; } }, { key: "_onAnonymousConverted", value: function _onAnonymousConverted(e) { var t = e.data.env; t === this.config.env && this._cache.updatePersistence(this.config.persistence); } }, { key: "_onLoginTypeChanged", value: function _onLoginTypeChanged(e) { var _e$data = e.data, t = _e$data.loginType, n = _e$data.persistence, s = _e$data.env; s === this.config.env && (this._cache.updatePersistence(n), this._cache.setStore(this._cache.keys.loginTypeKey, t)); } }]); return it; }(); var ot = function ot(e, t) { t = t || ve(); var n = Qe(this.config.env), s = e.cloudPath, r = e.filePath, i = e.onUploadProgress, _e$fileType = e.fileType, o = _e$fileType === void 0 ? "image" : _e$fileType; return n.send("storage.getUploadMetadata", { path: s }).then(function (e) { var _e$data2 = e.data, a = _e$data2.url, c = _e$data2.authorization, u = _e$data2.token, h = _e$data2.fileId, l = _e$data2.cosFileId, d = e.requestId, p = { key: s, signature: c, "x-cos-meta-fileid": l, success_action_status: "201", "x-cos-security-token": u }; n.upload({ url: a, data: p, file: r, name: s, fileType: o, onUploadProgress: i }).then(function (e) { 201 === e.statusCode ? t(null, { fileID: h, requestId: d }) : t(new te({ code: "STORAGE_REQUEST_FAIL", message: "STORAGE_REQUEST_FAIL: ".concat(e.data) })); }).catch(function (e) { t(e); }); }).catch(function (e) { t(e); }), t.promise; }, at = function at(e, t) { t = t || ve(); var n = Qe(this.config.env), s = e.cloudPath; return n.send("storage.getUploadMetadata", { path: s }).then(function (e) { t(null, e); }).catch(function (e) { t(e); }), t.promise; }, ct = function ct(_ref7, t) { var e = _ref7.fileList; if (t = t || ve(), !e || !Array.isArray(e)) return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }; var _iterator3 = _createForOfIteratorHelper(e), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var _t8 = _step3.value; if (!_t8 || "string" != typeof _t8) return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }; } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } var n = { fileid_list: e }; return Qe(this.config.env).send("storage.batchDeleteFile", n).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.delete_list, requestId: e.requestId }); }).catch(function (e) { t(e); }), t.promise; }, ut = function ut(_ref8, t) { var e = _ref8.fileList; t = t || ve(), e && Array.isArray(e) || t(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }); var n = []; var _iterator4 = _createForOfIteratorHelper(e), _step4; try { for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var _s9 = _step4.value; "object" == (0, _typeof2.default)(_s9) ? (_s9.hasOwnProperty("fileID") && _s9.hasOwnProperty("maxAge") || t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n.push({ fileid: _s9.fileID, max_age: _s9.maxAge })) : "string" == typeof _s9 ? n.push({ fileid: _s9 }) : t(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" }); } } catch (err) { _iterator4.e(err); } finally { _iterator4.f(); } var s = { file_list: n }; return Qe(this.config.env).send("storage.batchGetDownloadUrl", s).then(function (e) { e.code ? t(null, e) : t(null, { fileList: e.data.download_list, requestId: e.requestId }); }).catch(function (e) { t(e); }), t.promise; }, ht = /*#__PURE__*/function () { var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee32(_ref9, t) { var e, n, s, r; return _regenerator.default.wrap(function _callee32$(_context32) { while (1) { switch (_context32.prev = _context32.next) { case 0: e = _ref9.fileID; _context32.next = 3; return ut.call(this, { fileList: [{ fileID: e, maxAge: 600 }] }); case 3: n = _context32.sent.fileList[0]; if (!("SUCCESS" !== n.code)) { _context32.next = 6; break; } return _context32.abrupt("return", t ? t(n) : new Promise(function (e) { e(n); })); case 6: s = Qe(this.config.env); r = n.download_url; if (!(r = encodeURI(r), !t)) { _context32.next = 10; break; } return _context32.abrupt("return", s.download({ url: r })); case 10: _context32.t0 = t; _context32.next = 13; return s.download({ url: r }); case 13: _context32.t1 = _context32.sent; (0, _context32.t0)(_context32.t1); case 15: case "end": return _context32.stop(); } } }, _callee32, this); })); return function ht(_x27, _x28) { return _ref10.apply(this, arguments); }; }(), lt = function lt(_ref11, i) { var e = _ref11.name, t = _ref11.data, n = _ref11.query, s = _ref11.parse, r = _ref11.search; var o = i || ve(); var a; try { a = t ? JSON.stringify(t) : ""; } catch (e) { return Promise.reject(e); } if (!e) return Promise.reject(new te({ code: "PARAM_ERROR", message: "函数名不能为空" })); var c = { inQuery: n, parse: s, search: r, function_name: e, request_data: a }; return Qe(this.config.env).send("functions.invokeFunction", c).then(function (e) { if (e.code) o(null, e);else { var _t9 = e.data.response_data; if (s) o(null, { result: _t9, requestId: e.requestId });else try { _t9 = JSON.parse(e.data.response_data), o(null, { result: _t9, requestId: e.requestId }); } catch (e) { o(new te({ message: "response data must be json" })); } } return o.promise; }).catch(function (e) { o(e); }), o.promise; }, dt = { timeout: 15e3, persistence: "session" }, pt = {}; var ft = /*#__PURE__*/function () { function ft(e) { (0, _classCallCheck2.default)(this, ft); this.config = e || this.config, this.authObj = void 0; } (0, _createClass2.default)(ft, [{ key: "init", value: function init(e) { switch (Ae.adapter || (this.requestClient = new Ae.adapter.reqClass({ timeout: e.timeout || 5e3, timeoutMsg: "\u8BF7\u6C42\u5728".concat((e.timeout || 5e3) / 1e3, "s\u5185\u672A\u5B8C\u6210\uFF0C\u5DF2\u4E2D\u65AD") })), this.config = _objectSpread(_objectSpread({}, dt), e), !0) { case this.config.timeout > 6e5: console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5; break; case this.config.timeout < 100: console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100; } return new ft(this.config); } }, { key: "auth", value: function auth() { var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref12.persistence; if (this.authObj) return this.authObj; var t = e || Ae.adapter.primaryStorage || dt.persistence; var n; return t !== this.config.persistence && (this.config.persistence = t), function (e) { var t = e.env; Oe[t] = new xe(e), Ee[t] = new xe(_objectSpread(_objectSpread({}, e), {}, { persistence: "local" })); }(this.config), n = this.config, Ye[n.env] = new Ge(n), this.authObj = new it(this.config), this.authObj; } }, { key: "on", value: function on(e, t) { return De.apply(this, [e, t]); } }, { key: "off", value: function off(e, t) { return qe.apply(this, [e, t]); } }, { key: "callFunction", value: function callFunction(e, t) { return lt.apply(this, [e, t]); } }, { key: "deleteFile", value: function deleteFile(e, t) { return ct.apply(this, [e, t]); } }, { key: "getTempFileURL", value: function getTempFileURL(e, t) { return ut.apply(this, [e, t]); } }, { key: "downloadFile", value: function downloadFile(e, t) { return ht.apply(this, [e, t]); } }, { key: "uploadFile", value: function uploadFile(e, t) { return ot.apply(this, [e, t]); } }, { key: "getUploadMetadata", value: function getUploadMetadata(e, t) { return at.apply(this, [e, t]); } }, { key: "registerExtension", value: function registerExtension(e) { pt[e.name] = e; } }, { key: "invokeExtension", value: function () { var _invokeExtension = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee33(e, t) { var n; return _regenerator.default.wrap(function _callee33$(_context33) { while (1) { switch (_context33.prev = _context33.next) { case 0: n = pt[e]; if (n) { _context33.next = 3; break; } throw new te({ message: "\u6269\u5C55".concat(e, " \u5FC5\u987B\u5148\u6CE8\u518C") }); case 3: _context33.next = 5; return n.invoke(t, this); case 5: return _context33.abrupt("return", _context33.sent); case 6: case "end": return _context33.stop(); } } }, _callee33, this); })); function invokeExtension(_x29, _x30) { return _invokeExtension.apply(this, arguments); } return invokeExtension; }() }, { key: "useAdapters", value: function useAdapters(e) { var _ref13 = ke(e) || {}, t = _ref13.adapter, n = _ref13.runtime; t && (Ae.adapter = t), n && (Ae.runtime = n); } }]); return ft; }(); var gt = new ft(); function mt(e, t, n) { void 0 === n && (n = {}); var s = /\?/.test(t), r = ""; for (var i in n) { "" === r ? !s && (t += "?") : r += "&", r += i + "=" + encodeURIComponent(n[i]); } return /^http(s)?:\/\//.test(t += r) ? t : "" + e + t; } var yt = /*#__PURE__*/function () { function yt() { (0, _classCallCheck2.default)(this, yt); } (0, _createClass2.default)(yt, [{ key: "post", value: function post(e) { var t = e.url, n = e.data, s = e.headers; return new Promise(function (e, r) { ne.request({ url: mt("https:", t), data: n, method: "POST", header: s, success: function success(t) { e(t); }, fail: function fail(e) { r(e); } }); }); } }, { key: "upload", value: function upload(e) { return new Promise(function (t, n) { var s = e.url, r = e.file, i = e.data, o = e.headers, a = e.fileType, c = ne.uploadFile({ url: mt("https:", s), name: "file", formData: Object.assign({}, i), filePath: r, fileType: a, header: o, success: function success(e) { var n = { statusCode: e.statusCode, data: e.data || {} }; 200 === e.statusCode && i.success_action_status && (n.statusCode = parseInt(i.success_action_status, 10)), t(n); }, fail: function fail(e) { n(new Error(e.errMsg || "uploadFile:fail")); } }); "function" == typeof e.onUploadProgress && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (t) { e.onUploadProgress({ loaded: t.totalBytesSent, total: t.totalBytesExpectedToSend }); }); }); } }]); return yt; }(); var _t = { setItem: function setItem(e, t) { ne.setStorageSync(e, t); }, getItem: function getItem(e) { return ne.getStorageSync(e); }, removeItem: function removeItem(e) { ne.removeStorageSync(e); }, clear: function clear() { ne.clearStorageSync(); } }; var wt = { genAdapter: function genAdapter() { return { root: {}, reqClass: yt, localStorage: _t, primaryStorage: "local" }; }, isMatch: function isMatch() { return !0; }, runtime: "uni_app" }; gt.useAdapters(wt); var vt = gt, It = vt.init; vt.init = function (e) { e.env = e.spaceId; var t = It.call(this, e); t.config.provider = "tencent", t.config.spaceId = e.spaceId; var n = t.auth; return t.auth = function (e) { var t = n.call(this, e); return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach(function (e) { var n; t[e] = (n = t[e], function (e) { e = e || {}; var _ee = ee(e), t = _ee.success, s = _ee.fail, r = _ee.complete; if (!(t || s || r)) return n.call(this, e); n.call(this, e).then(function (e) { t && t(e), r && r(e); }, function (e) { s && s(e), r && r(e); }); }).bind(t); }), t; }, t.customAuth = t.auth, t; }; var St = vt; var bt = /*#__PURE__*/function (_de) { (0, _inherits2.default)(bt, _de); var _super8 = _createSuper(bt); function bt() { (0, _classCallCheck2.default)(this, bt); return _super8.apply(this, arguments); } (0, _createClass2.default)(bt, [{ key: "getAccessToken", value: function getAccessToken() { var _this11 = this; return new Promise(function (e, t) { var n = "Anonymous_Access_token"; _this11.setAccessToken(n), e(n); }); } }, { key: "setupRequest", value: function setupRequest(e, t) { var n = Object.assign({}, e, { spaceId: this.config.spaceId, timestamp: Date.now() }), s = { "Content-Type": "application/json" }; "auth" !== t && (n.token = this.accessToken, s["x-basement-token"] = this.accessToken), s["x-serverless-sign"] = le.sign(n, this.config.clientSecret); var r = he(); s["x-client-info"] = encodeURIComponent(JSON.stringify(r)); var _se = se(), i = _se.token; return s["x-client-token"] = i, { url: this.config.requestUrl, method: "POST", data: n, dataType: "json", header: JSON.parse(JSON.stringify(s)) }; } }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref14) { var _this12 = this; var e = _ref14.url, t = _ref14.formData, n = _ref14.name, s = _ref14.filePath, r = _ref14.fileType, i = _ref14.onUploadProgress; return new Promise(function (o, a) { var c = _this12.adapter.uploadFile({ url: e, formData: t, name: n, filePath: s, fileType: r, success: function success(e) { e && e.statusCode < 400 ? o(e) : a(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail: function fail(e) { a(new te({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" })); } }); "function" == typeof i && c && "function" == typeof c.onProgressUpdate && c.onProgressUpdate(function (e) { i({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend }); }); }); } }, { key: "uploadFile", value: function uploadFile(_ref15) { var _this13 = this; var e = _ref15.filePath, t = _ref15.cloudPath, _ref15$fileType = _ref15.fileType, n = _ref15$fileType === void 0 ? "image" : _ref15$fileType, s = _ref15.onUploadProgress; if (!t) throw new te({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" }); var r; return this.getOSSUploadOptionsFromPath({ cloudPath: t }).then(function (t) { var _t$result = t.result, i = _t$result.url, o = _t$result.formData, a = _t$result.name; r = t.result.fileUrl; var c = { url: i, formData: o, name: a, filePath: e, fileType: n }; return _this13.uploadFileToOSS(Object.assign({}, c, { onUploadProgress: s })); }).then(function () { return _this13.reportOSSUpload({ cloudPath: t }); }).then(function (t) { return new Promise(function (n, s) { t.success ? n({ success: !0, filePath: e, fileID: r }) : s(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }); }); } }, { key: "deleteFile", value: function deleteFile(_ref16) { var e = _ref16.fileList; var t = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e }) }; return this.request(this.setupRequest(t)).then(function (e) { if (e.success) return e.result; throw new te({ code: "DELETE_FILE_FAILED", message: "删除文件失败" }); }); } }, { key: "getTempFileURL", value: function getTempFileURL() { var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref17.fileList, t = _ref17.maxAge; if (!Array.isArray(e) || 0 === e.length) throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); var n = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e, maxAge: t }) }; return this.request(this.setupRequest(n)).then(function (e) { if (e.success) return { fileList: e.result.fileList.map(function (e) { return { fileID: e.fileID, tempFileURL: e.tempFileURL }; }) }; throw new te({ code: "GET_TEMP_FILE_URL_FAILED", message: "获取临时文件链接失败" }); }); } }]); return bt; }(de); var kt = { init: function init(e) { var t = new bt(e), n = { signInAnonymously: function signInAnonymously() { return t.authorize(); }, getLoginState: function getLoginState() { return Promise.resolve(!1); } }; return t.auth = function () { return n; }, t.customAuth = t.auth, t; } }, At = n(function (e, t) { e.exports = r.enc.Hex; }); function Ct() { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (e) { var t = 16 * Math.random() | 0; return ("x" === e ? t : 3 & t | 8).toString(16); }); } function Pt() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var n = t.data, s = t.functionName, r = t.method, i = t.headers, _t$signHeaderKeys = t.signHeaderKeys, o = _t$signHeaderKeys === void 0 ? [] : _t$signHeaderKeys, a = t.config, c = Date.now(), u = Ct(), h = Object.assign({}, i, { "x-from-app-id": a.spaceAppId, "x-from-env-id": a.spaceId, "x-to-env-id": a.spaceId, "x-from-instance-id": c, "x-from-function-name": s, "x-client-timestamp": c, "x-alipay-source": "client", "x-request-id": u, "x-alipay-callid": u, "x-trace-id": u }), l = ["x-from-app-id", "x-from-env-id", "x-to-env-id", "x-from-instance-id", "x-from-function-name", "x-client-timestamp"].concat(o), _ref18 = e.split("?") || [], _ref19 = (0, _slicedToArray2.default)(_ref18, 2), _ref19$ = _ref19[0], d = _ref19$ === void 0 ? "" : _ref19$, _ref19$2 = _ref19[1], p = _ref19$2 === void 0 ? "" : _ref19$2, f = function (e) { var t = e.signedHeaders.join(";"), n = e.signedHeaders.map(function (t) { return "".concat(t.toLowerCase(), ":").concat(e.headers[t], "\n"); }).join(""), s = _e(e.body).toString(At), r = "".concat(e.method.toUpperCase(), "\n").concat(e.path, "\n").concat(e.query, "\n").concat(n, "\n").concat(t, "\n").concat(s, "\n"), i = _e(r).toString(At), o = "HMAC-SHA256\n".concat(e.timestamp, "\n").concat(i, "\n"), a = we(o, e.secretKey).toString(At); return "HMAC-SHA256 Credential=".concat(e.secretId, ", SignedHeaders=").concat(t, ", Signature=").concat(a); }({ path: d, query: p, method: r, headers: h, timestamp: c, body: JSON.stringify(n), secretId: a.accessKey, secretKey: a.secretKey, signedHeaders: l.sort() }); return { url: "".concat(a.endpoint).concat(e), headers: Object.assign({}, h, { Authorization: f }) }; } function Tt(_ref20) { var e = _ref20.url, t = _ref20.data, _ref20$method = _ref20.method, n = _ref20$method === void 0 ? "POST" : _ref20$method, _ref20$headers = _ref20.headers, s = _ref20$headers === void 0 ? {} : _ref20$headers; return new Promise(function (r, i) { ne.request({ url: e, method: n, data: "object" == (0, _typeof2.default)(t) ? JSON.stringify(t) : t, header: s, dataType: "json", complete: function complete() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = s["x-trace-id"] || ""; if (!e.statusCode || e.statusCode >= 400) { var _ref21 = e.data || {}, _n8 = _ref21.message, _s10 = _ref21.errMsg, _r4 = _ref21.trace_id; return i(new te({ code: "SYS_ERR", message: _n8 || _s10 || "request:fail", requestId: _r4 || t })); } r({ status: e.statusCode, data: e.data, headers: e.header, requestId: t }); } }); }); } function xt(e, t) { var n = e.path, s = e.data, _e$method = e.method, r = _e$method === void 0 ? "GET" : _e$method, _Pt = Pt(n, { functionName: "", data: s, method: r, headers: { "x-alipay-cloud-mode": "oss", "x-data-api-type": "oss", "x-expire-timestamp": Date.now() + 6e4 }, signHeaderKeys: ["x-data-api-type", "x-expire-timestamp"], config: t }), i = _Pt.url, o = _Pt.headers; return Tt({ url: i, data: s, method: r, headers: o }).then(function (e) { var t = e.data || {}; if (!t.success) throw new te({ code: e.errCode, message: e.errMsg, requestId: e.requestId }); return t.data || {}; }).catch(function (e) { throw new te({ code: e.errCode, message: e.errMsg, requestId: e.requestId }); }); } function Ot() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = e.trim().replace(/^cloud:\/\//, ""), n = t.indexOf("/"); if (n <= 0) throw new te({ code: "INVALID_PARAM", message: "fileID不合法" }); var s = t.substring(0, n), r = t.substring(n + 1); return s !== this.config.spaceId && console.warn("file ".concat(e, " does not belong to env ").concat(this.config.spaceId)), r; } function Et() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; return "cloud://".concat(this.config.spaceId, "/").concat(e.replace(/^\/+/, "")); } var Lt = /*#__PURE__*/function () { function Lt(e) { (0, _classCallCheck2.default)(this, Lt); this.config = e; } (0, _createClass2.default)(Lt, [{ key: "signedURL", value: function signedURL(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var n = "/ws/function/".concat(e), s = this.config.wsEndpoint.replace(/^ws(s)?:\/\//, ""), r = Object.assign({}, t, { accessKeyId: this.config.accessKey, signatureNonce: Ct(), timestamp: "" + Date.now() }), i = [n, ["accessKeyId", "authorization", "signatureNonce", "timestamp"].sort().map(function (e) { return r[e] ? "".concat(e, "=").concat(r[e]) : null; }).filter(Boolean).join("&"), "host:".concat(s)].join("\n"), o = ["HMAC-SHA256", _e(i).toString(At)].join("\n"), a = we(o, this.config.secretKey).toString(At), c = Object.keys(r).map(function (e) { return "".concat(e, "=").concat(encodeURIComponent(r[e])); }).join("&"); return "".concat(this.config.wsEndpoint).concat(n, "?").concat(c, "&signature=").concat(a); } }]); return Lt; }(); var Rt = /*#__PURE__*/function () { function Rt(e) { (0, _classCallCheck2.default)(this, Rt); if (["spaceId", "spaceAppId", "accessKey", "secretKey"].forEach(function (t) { if (!Object.prototype.hasOwnProperty.call(e, t)) throw new Error("".concat(t, " required")); }), e.endpoint) { if ("string" != typeof e.endpoint) throw new Error("endpoint must be string"); if (!/^https:\/\//.test(e.endpoint)) throw new Error("endpoint must start with https://"); e.endpoint = e.endpoint.replace(/\/$/, ""); } this.config = Object.assign({}, e, { endpoint: e.endpoint || "https://".concat(e.spaceId, ".api-hz.cloudbasefunction.cn"), wsEndpoint: e.wsEndpoint || "wss://".concat(e.spaceId, ".api-hz.cloudbasefunction.cn") }), this._websocket = new Lt(this.config); } (0, _createClass2.default)(Rt, [{ key: "callFunction", value: function callFunction(e) { return function (e, t) { var n = e.name, s = e.data, _e$async = e.async, r = _e$async === void 0 ? !1 : _e$async, i = "POST", o = { "x-to-function-name": n }; r && (o["x-function-invoke-type"] = "async"); var _Pt2 = Pt("/functions/invokeFunction", { functionName: n, data: s, method: i, headers: o, signHeaderKeys: ["x-to-function-name"], config: t }), a = _Pt2.url, c = _Pt2.headers; return Tt({ url: a, data: s, method: i, headers: c }).then(function (e) { var t = 0; if (r) { var _n9 = e.data || {}; t = "200" === _n9.errCode ? 0 : _n9.errCode, e.data = _n9.data || {}, e.errMsg = _n9.errMsg; } if (0 !== t) throw new te({ code: t, message: e.errMsg, requestId: e.requestId }); return { errCode: t, success: 0 === t, requestId: e.requestId, result: e.data }; }).catch(function (e) { throw new te({ code: e.errCode, message: e.errMsg, requestId: e.requestId }); }); }(e, this.config); } }, { key: "uploadFileToOSS", value: function uploadFileToOSS(_ref22) { var e = _ref22.url, t = _ref22.filePath, n = _ref22.fileType, s = _ref22.formData, r = _ref22.onUploadProgress; return new Promise(function (i, o) { var a = ne.uploadFile({ url: e, filePath: t, fileType: n, formData: s, name: "file", success: function success(e) { e && e.statusCode < 400 ? i(e) : o(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); }, fail: function fail(e) { o(new te({ code: e.code || "UPLOAD_FAILED", message: e.message || e.errMsg || "文件上传失败" })); } }); "function" == typeof r && a && "function" == typeof a.onProgressUpdate && a.onProgressUpdate(function (e) { r({ loaded: e.totalBytesSent, total: e.totalBytesExpectedToSend }); }); }); } }, { key: "uploadFile", value: function () { var _uploadFile2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee34(_ref23) { var e, _ref23$cloudPath, t, _ref23$fileType, n, s, r, i, o, a, c; return _regenerator.default.wrap(function _callee34$(_context34) { while (1) { switch (_context34.prev = _context34.next) { case 0: e = _ref23.filePath, _ref23$cloudPath = _ref23.cloudPath, t = _ref23$cloudPath === void 0 ? "" : _ref23$cloudPath, _ref23$fileType = _ref23.fileType, n = _ref23$fileType === void 0 ? "image" : _ref23$fileType, s = _ref23.onUploadProgress; if (!("string" !== f(t))) { _context34.next = 3; break; } throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); case 3: if (t = t.trim()) { _context34.next = 5; break; } throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); case 5: if (!/:\/\//.test(t)) { _context34.next = 7; break; } throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" }); case 7: _context34.next = 9; return xt({ path: "/".concat(t.replace(/^\//, ""), "?post_url") }, this.config); case 9: r = _context34.sent; i = r.file_id; o = r.upload_url; a = r.form_data; c = a && a.reduce(function (e, t) { return e[t.key] = t.value, e; }, {}); return _context34.abrupt("return", this.uploadFileToOSS({ url: o, filePath: e, fileType: n, formData: c, onUploadProgress: s }).then(function () { return { fileID: i }; })); case 15: case "end": return _context34.stop(); } } }, _callee34, this); })); function uploadFile(_x31) { return _uploadFile2.apply(this, arguments); } return uploadFile; }() }, { key: "getTempFileURL", value: function () { var _getTempFileURL = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee35(_ref24) { var _this14 = this; var e; return _regenerator.default.wrap(function _callee35$(_context35) { while (1) { switch (_context35.prev = _context35.next) { case 0: e = _ref24.fileList; return _context35.abrupt("return", new Promise(function (t, n) { (!e || e.length < 0) && n(new te({ errCode: "INVALID_PARAM", errMsg: "fileList不能为空数组" })), e.length > 50 && n(new te({ errCode: "INVALID_PARAM", errMsg: "fileList数组长度不能超过50" })); var s = []; var _iterator5 = _createForOfIteratorHelper(e), _step5; try { for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { var _t10 = _step5.value; "string" !== f(_t10) && n(new te({ errCode: "INVALID_PARAM", errMsg: "fileList的元素必须是非空的字符串" })); var _e17 = Ot.call(_this14, _t10); s.push({ file_id: _e17, expire: 600 }); } } catch (err) { _iterator5.e(err); } finally { _iterator5.f(); } xt({ path: "/?download_url", data: { file_list: s }, method: "POST" }, _this14.config).then(function (e) { var _e$file_list = e.file_list, n = _e$file_list === void 0 ? [] : _e$file_list; t({ fileList: n.map(function (e) { return { fileID: Et.call(_this14, e.file_id), tempFileURL: e.download_url }; }) }); }).catch(function (e) { return n(e); }); })); case 2: case "end": return _context35.stop(); } } }, _callee35); })); function getTempFileURL(_x32) { return _getTempFileURL.apply(this, arguments); } return getTempFileURL; }() }, { key: "connectWebSocket", value: function () { var _connectWebSocket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee36(e) { var t, n; return _regenerator.default.wrap(function _callee36$(_context36) { while (1) { switch (_context36.prev = _context36.next) { case 0: t = e.name, n = e.query; return _context36.abrupt("return", ne.connectSocket({ url: this._websocket.signedURL(t, n), complete: function complete() {} })); case 2: case "end": return _context36.stop(); } } }, _callee36, this); })); function connectWebSocket(_x33) { return _connectWebSocket.apply(this, arguments); } return connectWebSocket; }() }]); return Rt; }(); var Ut = { init: function init(e) { e.provider = "alipay"; var t = new Rt(e); return t.auth = function () { return { signInAnonymously: function signInAnonymously() { return Promise.resolve(); }, getLoginState: function getLoginState() { return Promise.resolve(!0); } }; }, t; } }; function Nt(_ref25) { var e = _ref25.data; var t; t = he(); var n = JSON.parse(JSON.stringify(e || {})); if (Object.assign(n, { clientInfo: t }), !n.uniIdToken) { var _se2 = se(), _e18 = _se2.token; _e18 && (n.uniIdToken = _e18); } return n; } function Dt() { return _Dt.apply(this, arguments); } function _Dt() { _Dt = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee57() { var _this27 = this; var _ref67, e, t, _this$__dev__, n, s, r, i, o, a, _args6 = arguments; return _regenerator.default.wrap(function _callee57$(_context57) { while (1) { switch (_context57.prev = _context57.next) { case 0: _ref67 = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}, e = _ref67.name, t = _ref67.data; _context57.next = 3; return this.__dev__.initLocalNetwork(); case 3: _this$__dev__ = this.__dev__, n = _this$__dev__.localAddress, s = _this$__dev__.localPort, r = { aliyun: "aliyun", tencent: "tcb", alipay: "alipay" }[this.config.provider], i = this.config.spaceId, o = "http://".concat(n, ":").concat(s, "/system/check-function"), a = "http://".concat(n, ":").concat(s, "/cloudfunctions/").concat(e); return _context57.abrupt("return", new Promise(function (t, n) { ne.request({ method: "POST", url: o, data: { name: e, platform: C, provider: r, spaceId: i }, timeout: 3e3, success: function success(e) { t(e); }, fail: function fail() { t({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } }); } }); }).then(function () { var _ref68 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref68.data; var _ref69 = e || {}, t = _ref69.code, n = _ref69.message; return { code: 0 === t ? 0 : t || "SYS_ERR", message: n || "SYS_ERR" }; }).then(function (_ref70) { var n = _ref70.code, s = _ref70.message; if (0 !== n) { switch (n) { case "MODULE_ENCRYPTED": console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u4F9D\u8D56\u52A0\u5BC6\u516C\u5171\u6A21\u5757\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "FUNCTION_ENCRYPTED": console.error("\u6B64\u4E91\u51FD\u6570\uFF08".concat(e, "\uFF09\u5DF2\u52A0\u5BC6\u4E0D\u53EF\u672C\u5730\u8C03\u8BD5\uFF0C\u81EA\u52A8\u5207\u6362\u4E3A\u4E91\u7AEF\u5DF2\u90E8\u7F72\u7684\u4E91\u51FD\u6570")); break; case "ACTION_ENCRYPTED": console.error(s || "需要访问加密的uni-clientDB-action,自动切换为云端环境"); break; case "NETWORK_ERROR": console.error(s || "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下"); break; case "SWITCH_TO_CLOUD": break; default: { var _e30 = "\u68C0\u6D4B\u672C\u5730\u8C03\u8BD5\u670D\u52A1\u51FA\u73B0\u9519\u8BEF\uFF1A".concat(s, "\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u73AF\u5883\u6216\u91CD\u542F\u5BA2\u6237\u7AEF\u518D\u8BD5"); throw console.error(_e30), new Error(_e30); } } return _this27._callCloudFunction({ name: e, data: t }); } return new Promise(function (e, n) { var s = Nt.call(_this27, { data: t }); ne.request({ method: "POST", url: a, data: { provider: r, platform: C, param: s }, success: function success() { var _ref71 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref71.statusCode, s = _ref71.data; return !t || t >= 400 ? n(new te({ code: s.code || "SYS_ERR", message: s.message || "request:fail" })) : e({ result: s }); }, fail: function fail(e) { n(new te({ code: e.code || e.errCode || "SYS_ERR", message: e.message || e.errMsg || "request:fail" })); } }); }); })); case 5: case "end": return _context57.stop(); } } }, _callee57, this); })); return _Dt.apply(this, arguments); } var Mt = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }]; var qt = /[\\^$.*+?()[\]{}|]/g, Ft = RegExp(qt.source); function Kt(e, t, n) { return e.replace(new RegExp((s = t) && Ft.test(s) ? s.replace(qt, "\\$&") : s, "g"), n); var s; } var jt = "none", $t = "request", Bt = "response", Wt = "both"; var Ht = /*#__PURE__*/function () { function Ht() { var _ref26 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref26.secretType, t = _ref26.uniCloudIns; (0, _classCallCheck2.default)(this, Ht); this.clientType = "", this.secretType = e || jt, this.uniCloudIns = t; var _this$uniCloudIns$con = this.uniCloudIns.config, n = _this$uniCloudIns$con.provider, s = _this$uniCloudIns$con.spaceId; var r; this.provider = n, this.spaceId = s, this.scopedGlobalCache = (r = this.uniCloudIns, L("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", r.config.spaceId))); } (0, _createClass2.default)(Ht, [{ key: "getSystemInfo", value: function getSystemInfo() { return this._systemInfo || (this._systemInfo = ae()), this._systemInfo; } }, { key: "appId", get: function get() { return this.getSystemInfo().appId; } }, { key: "deviceId", get: function get() { return this.getSystemInfo().deviceId; } }, { key: "encryptData", value: function () { var _encryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee37(e) { return _regenerator.default.wrap(function _callee37$(_context37) { while (1) { switch (_context37.prev = _context37.next) { case 0: return _context37.abrupt("return", this.secretType === jt ? e : this.platformEncryptData(e)); case 1: case "end": return _context37.stop(); } } }, _callee37, this); })); function encryptData(_x34) { return _encryptData.apply(this, arguments); } return encryptData; }() }, { key: "decryptResult", value: function () { var _decryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee38(e) { var _ref27, t, n; return _regenerator.default.wrap(function _callee38$(_context38) { while (1) { switch (_context38.prev = _context38.next) { case 0: if (!(this.secretType === jt)) { _context38.next = 2; break; } return _context38.abrupt("return", e); case 2: _ref27 = e || {}, t = _ref27.errCode, n = _ref27.content; return _context38.abrupt("return", t || !n ? e : this.secretType === $t ? n : this.platformDecryptResult(e)); case 4: case "end": return _context38.stop(); } } }, _callee38, this); })); function decryptResult(_x35) { return _decryptResult.apply(this, arguments); } return decryptResult; }() }, { key: "wrapVerifyClientCallFunction", value: function wrapVerifyClientCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39() { var _ref29, n, _ref29$data, s, r, _args39 = arguments; return _regenerator.default.wrap(function _callee39$(_context39) { while (1) { switch (_context39.prev = _context39.next) { case 0: _ref29 = _args39.length > 0 && _args39[0] !== undefined ? _args39[0] : {}, n = _ref29.name, _ref29$data = _ref29.data, s = _ref29$data === void 0 ? {} : _ref29$data; _context39.next = 3; return t.prepare(); case 3: _context39.next = 5; return t.platformGetSignOption(); case 5: (s = JSON.parse(JSON.stringify(s)))._uniCloudOptions = _context39.sent; _context39.next = 8; return e({ name: n, data: s }); case 8: r = _context39.sent; _context39.t0 = t.isClientKeyNotFound(r); if (!_context39.t0) { _context39.next = 19; break; } _context39.next = 13; return t.prepare({ forceUpdate: !0 }); case 13: _context39.next = 15; return t.platformGetSignOption(); case 15: s._uniCloudOptions = _context39.sent; _context39.next = 18; return e({ name: n, data: s }); case 18: r = _context39.sent; case 19: return _context39.abrupt("return", r); case 20: case "end": return _context39.stop(); } } }, _callee39); })); } }, { key: "wrapEncryptDataCallFunction", value: function wrapEncryptDataCallFunction(e) { var t = this; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee40() { var _ref31, n, _ref31$data, s, r, i, _r5, _args40 = arguments; return _regenerator.default.wrap(function _callee40$(_context40) { while (1) { switch (_context40.prev = _context40.next) { case 0: _ref31 = _args40.length > 0 && _args40[0] !== undefined ? _args40[0] : {}, n = _ref31.name, _ref31$data = _ref31.data, s = _ref31$data === void 0 ? {} : _ref31$data; _context40.next = 3; return t.prepare(); case 3: _context40.next = 5; return t.encryptData(s); case 5: r = _context40.sent; _context40.next = 8; return e({ name: n, data: r }); case 8: i = _context40.sent; if (!t.isClientKeyNotFound(i)) { _context40.next = 21; break; } _context40.next = 12; return t.prepare({ forceUpdate: !0 }); case 12: _context40.next = 14; return t.encryptData(s); case 14: _r5 = _context40.sent; _context40.next = 17; return t.platformGetSignOption(); case 17: s._uniCloudOptions = _context40.sent; _context40.next = 20; return e({ name: n, data: _r5 }); case 20: i = _context40.sent; case 21: _context40.next = 23; return t.decryptResult(i.result); case 23: i.result = _context40.sent; return _context40.abrupt("return", i); case 25: case "end": return _context40.stop(); } } }, _callee40); })); } }]); return Ht; }(); /*! MIT License. Copyright 2015-2018 Richard Moore . See LICENSE.txt. */ function zt(e) { return parseInt(e) === e; } function Jt(e) { if (!zt(e.length)) return !1; for (var t = 0; t < e.length; t++) { if (!zt(e[t]) || e[t] < 0 || e[t] > 255) return !1; } return !0; } function Vt(e, t) { if (e.buffer && "Uint8Array" === e.name) return t && (e = e.slice ? e.slice() : Array.prototype.slice.call(e)), e; if (Array.isArray(e)) { if (!Jt(e)) throw new Error("Array contains invalid value: " + e); return new Uint8Array(e); } if (zt(e.length) && Jt(e)) return new Uint8Array(e); throw new Error("unsupported array-like object"); } function Gt(e) { return new Uint8Array(e); } function Yt(e, t, n, s, r) { null == s && null == r || (e = e.slice ? e.slice(s, r) : Array.prototype.slice.call(e, s, r)), t.set(e, n); } var Qt, Xt = { toBytes: function toBytes(e) { var t = [], n = 0; for (e = encodeURI(e); n < e.length;) { var s = e.charCodeAt(n++); 37 === s ? (t.push(parseInt(e.substr(n, 2), 16)), n += 2) : t.push(s); } return Vt(t); }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length;) { var s = e[n]; s < 128 ? (t.push(String.fromCharCode(s)), n++) : s > 191 && s < 224 ? (t.push(String.fromCharCode((31 & s) << 6 | 63 & e[n + 1])), n += 2) : (t.push(String.fromCharCode((15 & s) << 12 | (63 & e[n + 1]) << 6 | 63 & e[n + 2])), n += 3); } return t.join(""); } }, Zt = (Qt = "0123456789abcdef", { toBytes: function toBytes(e) { for (var t = [], n = 0; n < e.length; n += 2) { t.push(parseInt(e.substr(n, 2), 16)); } return t; }, fromBytes: function fromBytes(e) { for (var t = [], n = 0; n < e.length; n++) { var s = e[n]; t.push(Qt[(240 & s) >> 4] + Qt[15 & s]); } return t.join(""); } }), en = { 16: 10, 24: 12, 32: 14 }, tn = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145], nn = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], sn = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125], rn = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986], on = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766], an = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126], cn = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436], un = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890], hn = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935], ln = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600], dn = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480], pn = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795], fn = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855], gn = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150], mn = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; function yn(e) { for (var t = [], n = 0; n < e.length; n += 4) { t.push(e[n] << 24 | e[n + 1] << 16 | e[n + 2] << 8 | e[n + 3]); } return t; } var _n = /*#__PURE__*/function () { function _n(e) { (0, _classCallCheck2.default)(this, _n); if (!(this instanceof _n)) throw Error("AES must be instanitated with `new`"); Object.defineProperty(this, "key", { value: Vt(e, !0) }), this._prepare(); } (0, _createClass2.default)(_n, [{ key: "_prepare", value: function _prepare() { var e = en[this.key.length]; if (null == e) throw new Error("invalid key size (must be 16, 24 or 32 bytes)"); this._Ke = [], this._Kd = []; for (var t = 0; t <= e; t++) { this._Ke.push([0, 0, 0, 0]), this._Kd.push([0, 0, 0, 0]); } var n, s = 4 * (e + 1), r = this.key.length / 4, i = yn(this.key); for (t = 0; t < r; t++) { n = t >> 2, this._Ke[n][t % 4] = i[t], this._Kd[e - n][t % 4] = i[t]; } for (var o, a = 0, c = r; c < s;) { if (o = i[r - 1], i[0] ^= nn[o >> 16 & 255] << 24 ^ nn[o >> 8 & 255] << 16 ^ nn[255 & o] << 8 ^ nn[o >> 24 & 255] ^ tn[a] << 24, a += 1, 8 != r) for (t = 1; t < r; t++) { i[t] ^= i[t - 1]; } else { for (t = 1; t < r / 2; t++) { i[t] ^= i[t - 1]; } o = i[r / 2 - 1], i[r / 2] ^= nn[255 & o] ^ nn[o >> 8 & 255] << 8 ^ nn[o >> 16 & 255] << 16 ^ nn[o >> 24 & 255] << 24; for (t = r / 2 + 1; t < r; t++) { i[t] ^= i[t - 1]; } } for (t = 0; t < r && c < s;) { u = c >> 2, h = c % 4, this._Ke[u][h] = i[t], this._Kd[e - u][h] = i[t++], c++; } } for (var u = 1; u < e; u++) { for (var h = 0; h < 4; h++) { o = this._Kd[u][h], this._Kd[u][h] = pn[o >> 24 & 255] ^ fn[o >> 16 & 255] ^ gn[o >> 8 & 255] ^ mn[255 & o]; } } } }, { key: "encrypt", value: function encrypt(e) { if (16 != e.length) throw new Error("invalid plaintext size (must be 16 bytes)"); for (var t = this._Ke.length - 1, n = [0, 0, 0, 0], s = yn(e), r = 0; r < 4; r++) { s[r] ^= this._Ke[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { n[r] = rn[s[r] >> 24 & 255] ^ on[s[(r + 1) % 4] >> 16 & 255] ^ an[s[(r + 2) % 4] >> 8 & 255] ^ cn[255 & s[(r + 3) % 4]] ^ this._Ke[i][r]; } s = n.slice(); } var o, a = Gt(16); for (r = 0; r < 4; r++) { o = this._Ke[t][r], a[4 * r] = 255 & (nn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (nn[s[(r + 1) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (nn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (nn[255 & s[(r + 3) % 4]] ^ o); } return a; } }, { key: "decrypt", value: function decrypt(e) { if (16 != e.length) throw new Error("invalid ciphertext size (must be 16 bytes)"); for (var t = this._Kd.length - 1, n = [0, 0, 0, 0], s = yn(e), r = 0; r < 4; r++) { s[r] ^= this._Kd[0][r]; } for (var i = 1; i < t; i++) { for (r = 0; r < 4; r++) { n[r] = un[s[r] >> 24 & 255] ^ hn[s[(r + 3) % 4] >> 16 & 255] ^ ln[s[(r + 2) % 4] >> 8 & 255] ^ dn[255 & s[(r + 1) % 4]] ^ this._Kd[i][r]; } s = n.slice(); } var o, a = Gt(16); for (r = 0; r < 4; r++) { o = this._Kd[t][r], a[4 * r] = 255 & (sn[s[r] >> 24 & 255] ^ o >> 24), a[4 * r + 1] = 255 & (sn[s[(r + 3) % 4] >> 16 & 255] ^ o >> 16), a[4 * r + 2] = 255 & (sn[s[(r + 2) % 4] >> 8 & 255] ^ o >> 8), a[4 * r + 3] = 255 & (sn[255 & s[(r + 1) % 4]] ^ o); } return a; } }]); return _n; }(); var wn = /*#__PURE__*/function () { function wn(e) { (0, _classCallCheck2.default)(this, wn); if (!(this instanceof wn)) throw Error("AES must be instanitated with `new`"); this.description = "Electronic Code Block", this.name = "ecb", this._aes = new _n(e); } (0, _createClass2.default)(wn, [{ key: "encrypt", value: function encrypt(e) { if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { Yt(e, n, 0, s, s + 16), Yt(n = this._aes.encrypt(n), t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { Yt(e, n, 0, s, s + 16), Yt(n = this._aes.decrypt(n), t, s); } return t; } }]); return wn; }(); var vn = /*#__PURE__*/function () { function vn(e, t) { (0, _classCallCheck2.default)(this, vn); if (!(this instanceof vn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Block Chaining", this.name = "cbc", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); } else t = Gt(16); this._lastCipherblock = Vt(t, !0), this._aes = new _n(e); } (0, _createClass2.default)(vn, [{ key: "encrypt", value: function encrypt(e) { if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { Yt(e, n, 0, s, s + 16); for (var r = 0; r < 16; r++) { n[r] ^= this._lastCipherblock[r]; } this._lastCipherblock = this._aes.encrypt(n), Yt(this._lastCipherblock, t, s); } return t; } }, { key: "decrypt", value: function decrypt(e) { if ((e = Vt(e)).length % 16 != 0) throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); for (var t = Gt(e.length), n = Gt(16), s = 0; s < e.length; s += 16) { Yt(e, n, 0, s, s + 16), n = this._aes.decrypt(n); for (var r = 0; r < 16; r++) { t[s + r] = n[r] ^ this._lastCipherblock[r]; } Yt(e, this._lastCipherblock, 0, s, s + 16); } return t; } }]); return vn; }(); var In = /*#__PURE__*/function () { function In(e, t, n) { (0, _classCallCheck2.default)(this, In); if (!(this instanceof In)) throw Error("AES must be instanitated with `new`"); if (this.description = "Cipher Feedback", this.name = "cfb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 size)"); } else t = Gt(16); n || (n = 1), this.segmentSize = n, this._shiftRegister = Vt(t, !0), this._aes = new _n(e); } (0, _createClass2.default)(In, [{ key: "encrypt", value: function encrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid plaintext size (must be segmentSize bytes)"); for (var t, n = Vt(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } Yt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Yt(n, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }, { key: "decrypt", value: function decrypt(e) { if (e.length % this.segmentSize != 0) throw new Error("invalid ciphertext size (must be segmentSize bytes)"); for (var t, n = Vt(e, !0), s = 0; s < n.length; s += this.segmentSize) { t = this._aes.encrypt(this._shiftRegister); for (var r = 0; r < this.segmentSize; r++) { n[s + r] ^= t[r]; } Yt(this._shiftRegister, this._shiftRegister, 0, this.segmentSize), Yt(e, this._shiftRegister, 16 - this.segmentSize, s, s + this.segmentSize); } return n; } }]); return In; }(); var Sn = /*#__PURE__*/function () { function Sn(e, t) { (0, _classCallCheck2.default)(this, Sn); if (!(this instanceof Sn)) throw Error("AES must be instanitated with `new`"); if (this.description = "Output Feedback", this.name = "ofb", t) { if (16 != t.length) throw new Error("invalid initialation vector size (must be 16 bytes)"); } else t = Gt(16); this._lastPrecipher = Vt(t, !0), this._lastPrecipherIndex = 16, this._aes = new _n(e); } (0, _createClass2.default)(Sn, [{ key: "encrypt", value: function encrypt(e) { for (var t = Vt(e, !0), n = 0; n < t.length; n++) { 16 === this._lastPrecipherIndex && (this._lastPrecipher = this._aes.encrypt(this._lastPrecipher), this._lastPrecipherIndex = 0), t[n] ^= this._lastPrecipher[this._lastPrecipherIndex++]; } return t; } }, { key: "decrypt", value: function decrypt(e) { return this.encrypt(e); } }]); return Sn; }(); var bn = /*#__PURE__*/function () { function bn(e) { (0, _classCallCheck2.default)(this, bn); if (!(this instanceof bn)) throw Error("Counter must be instanitated with `new`"); 0 === e || e || (e = 1), "number" == typeof e ? (this._counter = Gt(16), this.setValue(e)) : this.setBytes(e); } (0, _createClass2.default)(bn, [{ key: "setValue", value: function setValue(e) { if ("number" != typeof e || parseInt(e) != e) throw new Error("invalid counter value (must be an integer)"); if (e > Number.MAX_SAFE_INTEGER) throw new Error("integer value out of safe range"); for (var t = 15; t >= 0; --t) { this._counter[t] = e % 256, e = parseInt(e / 256); } } }, { key: "setBytes", value: function setBytes(e) { if (16 != (e = Vt(e, !0)).length) throw new Error("invalid counter bytes size (must be 16 bytes)"); this._counter = e; } }, { key: "increment", value: function increment() { for (var e = 15; e >= 0; e--) { if (255 !== this._counter[e]) { this._counter[e]++; break; } this._counter[e] = 0; } } }]); return bn; }(); var kn = /*#__PURE__*/function () { function kn(e, t) { (0, _classCallCheck2.default)(this, kn); if (!(this instanceof kn)) throw Error("AES must be instanitated with `new`"); this.description = "Counter", this.name = "ctr", t instanceof bn || (t = new bn(t)), this._counter = t, this._remainingCounter = null, this._remainingCounterIndex = 16, this._aes = new _n(e); } (0, _createClass2.default)(kn, [{ key: "encrypt", value: function encrypt(e) { for (var t = Vt(e, !0), n = 0; n < t.length; n++) { 16 === this._remainingCounterIndex && (this._remainingCounter = this._aes.encrypt(this._counter._counter), this._remainingCounterIndex = 0, this._counter.increment()), t[n] ^= this._remainingCounter[this._remainingCounterIndex++]; } return t; } }, { key: "decrypt", value: function decrypt(e) { return this.encrypt(e); } }]); return kn; }(); var An = { AES: _n, Counter: bn, ModeOfOperation: { ecb: wn, cbc: vn, cfb: In, ofb: Sn, ctr: kn }, utils: { hex: Zt, utf8: Xt }, padding: { pkcs7: { pad: function pad(e) { var t = 16 - (e = Vt(e, !0)).length % 16, n = Gt(e.length + t); Yt(e, n); for (var s = e.length; s < n.length; s++) { n[s] = t; } return n; }, strip: function strip(e) { if ((e = Vt(e, !0)).length < 16) throw new Error("PKCS#7 invalid length"); var t = e[e.length - 1]; if (t > 16) throw new Error("PKCS#7 padding byte out of range"); for (var n = e.length - t, s = 0; s < t; s++) { if (e[n + s] !== t) throw new Error("PKCS#7 invalid padding byte"); } var r = Gt(n); return Yt(e, r, 0, 0, n), r; } } }, _arrayTest: { coerceArray: Vt, createArray: Gt, copyArray: Yt } }; function Cn(e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(t)), r = An.utils.utf8.toBytes(n), i = An.utils.utf8.toBytes(e), o = new An.ModeOfOperation.cbc(s, r), a = An.padding.pkcs7.pad(i), c = o.encrypt(a); return uni.arrayBufferToBase64(c); } var Pn = { code: 2e4, message: "System error" }, Tn = { code: 20101, message: "Invalid client" }, xn = { code: 20102, message: "Get encrypt key failed" }, On = { 10001: "Secure network is not supported on current playground or unimpsdk", 10003: "Config missing in current app. If the problem pesist, please contact DCloud.", 10009: "Encrypt payload failed", 10010: "Decrypt response failed" }; function En(e) { var _ref32 = e || {}, t = _ref32.errSubject, n = _ref32.subject, s = _ref32.errCode, r = _ref32.errMsg, i = _ref32.code, o = _ref32.message, a = _ref32.cause; return new te({ subject: t || n || "uni-secure-network", code: s || i || Pn.code, message: r || o, cause: a }); } var Ln, Rn, Un = null; var Nn = /*#__PURE__*/function (_Ht) { (0, _inherits2.default)(Nn, _Ht); var _super9 = _createSuper(Nn); function Nn(e) { var _this15; (0, _classCallCheck2.default)(this, Nn); _this15 = _super9.call(this, e), _this15.clientType = "mp-weixin", _this15.userEncryptKey = null; return _this15; } (0, _createClass2.default)(Nn, [{ key: "isLogin", value: function isLogin() { return !!this.scopedGlobalCache.mpWeixinCode || !!this.scopedGlobalCache.mpWeixinOpenid; } }, { key: "prepare", value: function () { var _prepare2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee41() { return _regenerator.default.wrap(function _callee41$(_context41) { while (1) { switch (_context41.prev = _context41.next) { case 0: if (this.isLogin()) { _context41.next = 7; break; } if (this.scopedGlobalCache.initPromise) { _context41.next = 3; break; } throw new Error("`uniCloud.initSecureNetworkByWeixin` has not yet been called"); case 3: _context41.next = 5; return this.scopedGlobalCache.initPromise; case 5: if (this.isLogin()) { _context41.next = 7; break; } throw new Error("uniCloud.initSecureNetworkByWeixin` has not yet been called or successfully excuted"); case 7: case "end": return _context41.stop(); } } }, _callee41, this); })); function prepare() { return _prepare2.apply(this, arguments); } return prepare; }() }, { key: "getUserEncryptKey", value: function () { var _getUserEncryptKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee42() { var _this16 = this; var e; return _regenerator.default.wrap(function _callee42$(_context42) { while (1) { switch (_context42.prev = _context42.next) { case 0: if (!this.userEncryptKey) { _context42.next = 2; break; } return _context42.abrupt("return", this.userEncryptKey); case 2: if (!(Un && Un.expireTime)) { _context42.next = 6; break; } e = Date.now(); if (!(Un.expireTime - e > 0)) { _context42.next = 6; break; } return _context42.abrupt("return", (this.userEncryptKey = Un, this.userEncryptKey)); case 6: return _context42.abrupt("return", new Promise(function (e, t) { uni.getUserCryptoManager().getLatestUserKey({ success: function success(t) { Un = t, _this16.userEncryptKey = t, e(_this16.userEncryptKey); }, fail: function fail(e) { t(En(_objectSpread(_objectSpread({}, xn), {}, { cause: e }))); } }); })); case 7: case "end": return _context42.stop(); } } }, _callee42, this); })); function getUserEncryptKey() { return _getUserEncryptKey.apply(this, arguments); } return getUserEncryptKey; }() }, { key: "getWxAppId", value: function getWxAppId() { return wx.getAccountInfoSync().miniProgram.appId; } }, { key: "platformGetSignOption", value: function () { var _platformGetSignOption = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee43() { var _yield$this$getUserEn, e, t, n; return _regenerator.default.wrap(function _callee43$(_context43) { while (1) { switch (_context43.prev = _context43.next) { case 0: _context43.next = 2; return this.getUserEncryptKey(); case 2: _yield$this$getUserEn = _context43.sent; e = _yield$this$getUserEn.encryptKey; t = _yield$this$getUserEn.iv; n = _yield$this$getUserEn.version; return _context43.abrupt("return", { verifyClientSign: Cn(JSON.stringify({ data: JSON.stringify({}), appId: this.appId, deviceId: this.deviceId, wxAppId: this.getWxAppId(), simulator: "devtools" === ae().platform, timestamp: Date.now() }), e, t), encryptKeyId: n, mpWeixinCode: this.scopedGlobalCache.mpWeixinCode, mpWeixinOpenid: this.scopedGlobalCache.mpWeixinOpenid }); case 7: case "end": return _context43.stop(); } } }, _callee43, this); })); function platformGetSignOption() { return _platformGetSignOption.apply(this, arguments); } return platformGetSignOption; }() }, { key: "platformEncryptData", value: function () { var _platformEncryptData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee44(e) { var _yield$this$getUserEn2, t, n, s, r; return _regenerator.default.wrap(function _callee44$(_context44) { while (1) { switch (_context44.prev = _context44.next) { case 0: _context44.next = 2; return this.getUserEncryptKey(); case 2: _yield$this$getUserEn2 = _context44.sent; t = _yield$this$getUserEn2.encryptKey; n = _yield$this$getUserEn2.iv; s = _yield$this$getUserEn2.version; r = { secretType: this.secretType, encryptKeyId: s, mpWeixinCode: this.scopedGlobalCache.mpWeixinCode, mpWeixinOpenid: this.scopedGlobalCache.mpWeixinOpenid }; return _context44.abrupt("return", this.secretType === Bt ? { content: e, _uniCloudOptions: r } : { content: Cn(JSON.stringify({ data: JSON.stringify(e), appId: this.appId, deviceId: this.deviceId, wxAppId: this.getWxAppId(), simulator: "devtools" === ae().platform, timestamp: Date.now() }), t, n), _uniCloudOptions: r }); case 8: case "end": return _context44.stop(); } } }, _callee44, this); })); function platformEncryptData(_x36) { return _platformEncryptData.apply(this, arguments); } return platformEncryptData; }() }, { key: "platformDecryptResult", value: function () { var _platformDecryptResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee45(e) { var t, _yield$this$getUserEn3, n, s; return _regenerator.default.wrap(function _callee45$(_context45) { while (1) { switch (_context45.prev = _context45.next) { case 0: t = e.content; _context45.next = 3; return this.getUserEncryptKey(); case 3: _yield$this$getUserEn3 = _context45.sent; n = _yield$this$getUserEn3.encryptKey; s = _yield$this$getUserEn3.iv; return _context45.abrupt("return", JSON.parse(function (e, t, n) { var s = new Uint8Array(uni.base64ToArrayBuffer(e)), r = new Uint8Array(uni.base64ToArrayBuffer(t)), i = An.utils.utf8.toBytes(n), o = new An.ModeOfOperation.cbc(r, i), a = An.padding.pkcs7.strip(o.decrypt(s)); return An.utils.utf8.fromBytes(a); }(t, n, s))); case 7: case "end": return _context45.stop(); } } }, _callee45, this); })); function platformDecryptResult(_x37) { return _platformDecryptResult.apply(this, arguments); } return platformDecryptResult; }() }, { key: "isClientKeyNotFound", value: function isClientKeyNotFound() { return !1; } }]); return Nn; }(Ht); function Dn(e) { var t = ["hasClientKey", "encryptGetClientKeyPayload", "setClientKey", "encrypt", "decrypt"], n = {}; var _loop = function _loop(_s11) { var r = t[_s11]; n[r] = function () { for (var _len = arguments.length, t = new Array(_len), _key = 0; _key < _len; _key++) { t[_key] = arguments[_key]; } return new Promise(function (n, s) { "function" == typeof e[r] ? e[r].apply(e, t.concat([function () { var _ref33 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref33.type, t = _ref33.data, r = _ref33.errCode, i = _ref33.errMsg, o = _ref33.errSubject, a = _ref33.message; "success" === e ? n(t) : s(En({ errCode: r, errMsg: On[r] || i || a, errSubject: o })); }])) : s(En({ message: "请检查manifest.json内是否开启安全网络模块,另外注意标准基座不支持安全网络模块" })); }); }; }; for (var _s11 = 0; _s11 < t.length; _s11++) { _loop(_s11); } return n; } var Mn = /*#__PURE__*/function (_Ht2) { (0, _inherits2.default)(Mn, _Ht2); var _super10 = _createSuper(Mn); function Mn(e) { var _this17; (0, _classCallCheck2.default)(this, Mn); _this17 = _super10.call(this, e), _this17.clientType = "app", _this17.appUtils = _objectSpread({}, Dn(uni.requireNativePlugin("plus"))), _this17.systemInfo = Ln || (Ln = ae()); return _this17; } (0, _createClass2.default)(Mn, [{ key: "hasClientKey", value: function () { var _hasClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee46() { return _regenerator.default.wrap(function _callee46$(_context46) { while (1) { switch (_context46.prev = _context46.next) { case 0: _context46.next = 2; return this.appUtils.hasClientKey({ provider: this.provider, spaceId: this.spaceId }); case 2: this._hasClientKey = _context46.sent; return _context46.abrupt("return", this._hasClientKey); case 4: case "end": return _context46.stop(); } } }, _callee46, this); })); function hasClientKey() { return _hasClientKey.apply(this, arguments); } return hasClientKey; }() }, { key: "getAppClientKey", value: function () { var _getAppClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee47() { var _yield$this$appUtils$, e, t, n, s, r; return _regenerator.default.wrap(function _callee47$(_context47) { while (1) { switch (_context47.prev = _context47.next) { case 0: _context47.next = 2; return this.appUtils.encryptGetClientKeyPayload({ data: JSON.stringify({}) }); case 2: _yield$this$appUtils$ = _context47.sent; e = _yield$this$appUtils$.data; t = _yield$this$appUtils$.key; _context47.next = 7; return this.uniCloudIns.callFunction({ name: "DCloud-clientDB", data: { redirectTo: "encryption", action: "getAppClientKey", data: e, key: t } }); case 7: _context47.t0 = _context47.sent.result; if (_context47.t0) { _context47.next = 10; break; } _context47.t0 = {}; case 10: n = _context47.t0; if (!(0 !== n.errCode)) { _context47.next = 13; break; } throw function (e) { return new te({ subject: e.errSubject || "uni-secure-network", code: e.errCode || e.code || Pn.code, message: e.errMsg || e.message }); }(n); case 13: s = n.clientKey, r = n.key; _context47.next = 16; return this.appUtils.setClientKey({ provider: this.provider, spaceId: this.spaceId, clientKey: s, key: r }); case 16: case "end": return _context47.stop(); } } }, _callee47, this); })); function getAppClientKey() { return _getAppClientKey.apply(this, arguments); } return getAppClientKey; }() }, { key: "ensureClientKey", value: function () { var _ensureClientKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee48() { var _this18 = this; var _ref34, _ref34$forceUpdate, e, _args48 = arguments; return _regenerator.default.wrap(function _callee48$(_context48) { while (1) { switch (_context48.prev = _context48.next) { case 0: _ref34 = _args48.length > 0 && _args48[0] !== undefined ? _args48[0] : {}, _ref34$forceUpdate = _ref34.forceUpdate, e = _ref34$forceUpdate === void 0 ? !1 : _ref34$forceUpdate; _context48.t1 = !0; _context48.next = 4; return this.hasClientKey(); case 4: _context48.t2 = _context48.sent; _context48.t0 = _context48.t1 !== _context48.t2; if (_context48.t0) { _context48.next = 8; break; } _context48.t0 = e; case 8: if (!_context48.t0) { _context48.next = 10; break; } return _context48.abrupt("return", (e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus === l || !e && this.scopedGlobalCache.initPromise && this.scopedGlobalCache.initStatus !== p || (this.scopedGlobalCache.initPromise = this.getAppClientKey(), this.scopedGlobalCache.initPromise.then(function (e) { _this18.scopedGlobalCache.initStatus = d; }).catch(function (e) { throw _this18.scopedGlobalCache.initStatus = p, e; }), this.scopedGlobalCache.initStatus = l), this.scopedGlobalCache.initPromise)); case 10: case "end": return _context48.stop(); } } }, _callee48, this); })); function ensureClientKey() { return _ensureClientKey.apply(this, arguments); } return ensureClientKey; }() }, { key: "prepare", value: function () { var _prepare3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee49() { var _ref35, _ref35$forceUpdate, e, _args49 = arguments; return _regenerator.default.wrap(function _callee49$(_context49) { while (1) { switch (_context49.prev = _context49.next) { case 0: _ref35 = _args49.length > 0 && _args49[0] !== undefined ? _args49[0] : {}, _ref35$forceUpdate = _ref35.forceUpdate, e = _ref35$forceUpdate === void 0 ? !1 : _ref35$forceUpdate; _context49.next = 3; return this.ensureClientKey({ forceUpdate: e }); case 3: case "end": return _context49.stop(); } } }, _callee49, this); })); function prepare() { return _prepare3.apply(this, arguments); } return prepare; }() }, { key: "platformGetSignOption", value: function () { var _platformGetSignOption2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee50() { var _yield$this$appUtils$2, e, t; return _regenerator.default.wrap(function _callee50$(_context50) { while (1) { switch (_context50.prev = _context50.next) { case 0: _context50.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify({}) }); case 2: _yield$this$appUtils$2 = _context50.sent; e = _yield$this$appUtils$2.data; t = _yield$this$appUtils$2.key; return _context50.abrupt("return", { verifyClientSign: e, encryptKeyId: t }); case 6: case "end": return _context50.stop(); } } }, _callee50, this); })); function platformGetSignOption() { return _platformGetSignOption2.apply(this, arguments); } return platformGetSignOption; }() }, { key: "platformEncryptData", value: function () { var _platformEncryptData2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee51(e) { var _yield$this$appUtils$3, t, n, s; return _regenerator.default.wrap(function _callee51$(_context51) { while (1) { switch (_context51.prev = _context51.next) { case 0: _context51.next = 2; return this.appUtils.encrypt({ provider: this.provider, spaceId: this.spaceId, data: JSON.stringify(e) }); case 2: _yield$this$appUtils$3 = _context51.sent; t = _yield$this$appUtils$3.data; n = _yield$this$appUtils$3.key; s = { secretType: this.secretType, encryptKeyId: n }; return _context51.abrupt("return", this.secretType === Bt ? { content: e, _uniCloudOptions: s } : { content: t, _uniCloudOptions: s }); case 7: case "end": return _context51.stop(); } } }, _callee51, this); })); function platformEncryptData(_x38) { return _platformEncryptData2.apply(this, arguments); } return platformEncryptData; }() }, { key: "platformDecryptResult", value: function () { var _platformDecryptResult2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee52(e) { var t, _e$_uniCloudOptions, n, s, r; return _regenerator.default.wrap(function _callee52$(_context52) { while (1) { switch (_context52.prev = _context52.next) { case 0: t = e.content; _e$_uniCloudOptions = e._uniCloudOptions; n = _e$_uniCloudOptions === void 0 ? {} : _e$_uniCloudOptions; s = n.encryptKeyId; _context52.next = 6; return this.appUtils.decrypt({ provider: this.provider, spaceId: this.spaceId, data: t, key: s }); case 6: r = _context52.sent; return _context52.abrupt("return", JSON.parse(r.data)); case 8: case "end": return _context52.stop(); } } }, _callee52, this); })); function platformDecryptResult(_x39) { return _platformDecryptResult2.apply(this, arguments); } return platformDecryptResult; }() }, { key: "isClientKeyNotFound", value: function isClientKeyNotFound() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = e.result || {}; return 70009 === t.errCode && "uni-secure-network" === t.errSubject; } }]); return Mn; }(Ht); function qn() { var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref36.secretType; return e === $t || e === Bt || e === Wt; } function Fn() { var _ref37 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref37.name, _ref37$data = _ref37.data, t = _ref37$data === void 0 ? {} : _ref37$data; return "app" === C && "DCloud-clientDB" === e && "encryption" === t.redirectTo && "getAppClientKey" === t.action; } function Kn() { var _ref38 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref38.provider, t = _ref38.spaceId, n = _ref38.functionName; var _ae = ae(), s = _ae.appId, r = _ae.uniPlatform, i = _ae.osName; var o = r; "app" === r && (o = i); var a = function () { var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref39.provider, t = _ref39.spaceId; var n = A; if (!n) return {}; e = function (e) { return "tencent" === e ? "tcb" : e; }(e); var s = n.find(function (n) { return n.provider === e && n.spaceId === t; }); return s && s.config; }({ provider: e, spaceId: t }); if (!a || !a.accessControl || !a.accessControl.enable) return !1; var c = a.accessControl.function || {}, u = Object.keys(c); if (0 === u.length) return !0; var h = function (e, t) { var n, s, r; for (var _i2 = 0; _i2 < e.length; _i2++) { var _o2 = e[_i2]; _o2 !== t ? "*" !== _o2 ? _o2.split(",").map(function (e) { return e.trim(); }).indexOf(t) > -1 && (s = _o2) : r = _o2 : n = _o2; } return n || s || r; }(u, n); if (!h) return !1; if ((c[h] || []).find(function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return e.appId === s && (e.platform || "").toLowerCase() === o.toLowerCase(); })) return !0; throw console.error("\u6B64\u5E94\u7528[appId: ".concat(s, ", platform: ").concat(o, "]\u4E0D\u5728\u4E91\u7AEF\u914D\u7F6E\u7684\u5141\u8BB8\u8BBF\u95EE\u7684\u5E94\u7528\u5217\u8868\u5185\uFF0C\u53C2\u8003\uFF1Ahttps://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client")), En(Tn); } function jn(_ref40) { var e = _ref40.functionName, t = _ref40.result, n = _ref40.logPvd; if (S && this.__dev__.debugLog && t && t.requestId) { var _s12 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e, requestId: t.requestId }); console.log("[".concat(n, "-request]").concat(_s12, "[/").concat(n, "-request]")); } } function $n(e) { var t = e.callFunction, n = function n(_n10) { var _this19 = this; var s = _n10.name; _n10.data = Nt.call(e, { data: _n10.data }); var r = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb", alipay: "alipay" }[this.config.provider], i = qn(_n10), o = Fn(_n10), a = i || o; return t.call(this, _n10).then(function (e) { return e.errCode = 0, !a && jn.call(_this19, { functionName: s, result: e, logPvd: r }), Promise.resolve(e); }, function (e) { return !a && jn.call(_this19, { functionName: s, result: e, logPvd: r }), e && e.message && (e.message = function () { var _ref41 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref41$message = _ref41.message, e = _ref41$message === void 0 ? "" : _ref41$message, _ref41$extraInfo = _ref41.extraInfo, t = _ref41$extraInfo === void 0 ? {} : _ref41$extraInfo, _ref41$formatter = _ref41.formatter, n = _ref41$formatter === void 0 ? [] : _ref41$formatter; for (var _s13 = 0; _s13 < n.length; _s13++) { var _n$_s = n[_s13], _r6 = _n$_s.rule, _i3 = _n$_s.content, _o3 = _n$_s.mode, _a = e.match(_r6); if (!_a) continue; var _c = _i3; for (var _e19 = 1; _e19 < _a.length; _e19++) { _c = Kt(_c, "{$".concat(_e19, "}"), _a[_e19]); } for (var _e20 in t) { _c = Kt(_c, "{".concat(_e20, "}"), t[_e20]); } return "replace" === _o3 ? _c : e + _c; } return e; }({ message: "[".concat(_n10.name, "]: ").concat(e.message), formatter: Mt, extraInfo: { functionName: s } })), Promise.reject(e); }); }; e.callFunction = function (t) { var _e$config = e.config, s = _e$config.provider, r = _e$config.spaceId, i = t.name; var o, a; if (t.data = t.data || {}, S && e.__dev__.debugInfo && !e.__dev__.debugInfo.forceRemote && T ? (e._callCloudFunction || (e._callCloudFunction = n, e._callLocalFunction = Dt), o = Dt) : o = n, o = o.bind(e), Fn(t)) a = n.call(e, t);else if (function (_ref42) { var e = _ref42.name, _ref42$data = _ref42.data, t = _ref42$data === void 0 ? {} : _ref42$data; return "mp-weixin" === C && "uni-id-co" === e && "secureNetworkHandshakeByWeixin" === t.method; }(t)) a = o.call(e, t);else if (qn(t)) { a = new Rn({ secretType: t.secretType, uniCloudIns: e }).wrapEncryptDataCallFunction(n.bind(e))(t); } else if (Kn({ provider: s, spaceId: r, functionName: i })) { a = new Rn({ secretType: t.secretType, uniCloudIns: e }).wrapVerifyClientCallFunction(n.bind(e))(t); } else a = o(t); return Object.defineProperty(a, "result", { get: function get() { return console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}; } }), a.then(function (e) { return "undefined" != typeof UTSJSONObject && (e.result = new UTSJSONObject(e.result)), e; }); }; } Rn = "mp-weixin" !== C && "app" !== C ? /*#__PURE__*/function () { function _class2() { (0, _classCallCheck2.default)(this, _class2); throw En({ message: "Platform ".concat(C, " is not supported by secure network") }); } return (0, _createClass2.default)(_class2); }() : k ? "mp-weixin" === C ? Nn : Mn : /*#__PURE__*/function () { function _class3() { (0, _classCallCheck2.default)(this, _class3); throw En({ message: "Platform ".concat(C, " is not enabled, please check whether secure network module is enabled in your manifest.json") }); } return (0, _createClass2.default)(_class3); }(); var Bn = Symbol("CLIENT_DB_INTERNAL"); function Wn(e, t) { return e.then = "DoNotReturnProxyWithAFunctionNamedThen", e._internalType = Bn, e.inspect = null, e.__ob__ = void 0, new Proxy(e, { get: function get(e, n, s) { if ("_uniClient" === n) return null; if ("symbol" == (0, _typeof2.default)(n)) return e[n]; if (n in e || "string" != typeof n) { var _t11 = e[n]; return "function" == typeof _t11 ? _t11.bind(e) : _t11; } return t.get(e, n, s); } }); } function Hn(e) { return { on: function on(t, n) { e[t] = e[t] || [], e[t].indexOf(n) > -1 || e[t].push(n); }, off: function off(t, n) { e[t] = e[t] || []; var s = e[t].indexOf(n); -1 !== s && e[t].splice(s, 1); } }; } var zn = ["db.Geo", "db.command", "command.aggregate"]; function Jn(e, t) { return zn.indexOf("".concat(e, ".").concat(t)) > -1; } function Vn(e) { switch (f(e)) { case "array": return e.map(function (e) { return Vn(e); }); case "object": return e._internalType === Bn || Object.keys(e).forEach(function (t) { e[t] = Vn(e[t]); }), e; case "regexp": return { $regexp: { source: e.source, flags: e.flags } }; case "date": return { $date: e.toISOString() }; default: return e; } } function Gn(e) { return e && e.content && e.content.$method; } var Yn = /*#__PURE__*/function () { function Yn(e, t, n) { (0, _classCallCheck2.default)(this, Yn); this.content = e, this.prevStage = t || null, this.udb = null, this._database = n; } (0, _createClass2.default)(Yn, [{ key: "toJSON", value: function toJSON() { var e = this; var t = [e.content]; for (; e.prevStage;) { e = e.prevStage, t.push(e.content); } return { $db: t.reverse().map(function (e) { return { $method: e.$method, $param: Vn(e.$param) }; }) }; } }, { key: "toString", value: function toString() { return JSON.stringify(this.toJSON()); } }, { key: "getAction", value: function getAction() { var e = this.toJSON().$db.find(function (e) { return "action" === e.$method; }); return e && e.$param && e.$param[0]; } }, { key: "getCommand", value: function getCommand() { return { $db: this.toJSON().$db.filter(function (e) { return "action" !== e.$method; }) }; } }, { key: "isAggregate", get: function get() { var e = this; for (; e;) { var t = Gn(e), _n11 = Gn(e.prevStage); if ("aggregate" === t && "collection" === _n11 || "pipeline" === t) return !0; e = e.prevStage; } return !1; } }, { key: "isCommand", get: function get() { var e = this; for (; e;) { if ("command" === Gn(e)) return !0; e = e.prevStage; } return !1; } }, { key: "isAggregateCommand", get: function get() { var e = this; for (; e;) { var t = Gn(e), _n12 = Gn(e.prevStage); if ("aggregate" === t && "command" === _n12) return !0; e = e.prevStage; } return !1; } }, { key: "getNextStageFn", value: function getNextStageFn(e) { var t = this; return function () { return Qn({ $method: e, $param: Vn(Array.from(arguments)) }, t, t._database); }; } }, { key: "count", get: function get() { return this.isAggregate ? this.getNextStageFn("count") : function () { return this._send("count", Array.from(arguments)); }; } }, { key: "remove", get: function get() { return this.isCommand ? this.getNextStageFn("remove") : function () { return this._send("remove", Array.from(arguments)); }; } }, { key: "get", value: function get() { return this._send("get", Array.from(arguments)); } }, { key: "add", get: function get() { return this.isCommand ? this.getNextStageFn("add") : function () { return this._send("add", Array.from(arguments)); }; } }, { key: "update", value: function update() { return this._send("update", Array.from(arguments)); } }, { key: "end", value: function end() { return this._send("end", Array.from(arguments)); } }, { key: "set", get: function get() { return this.isCommand ? this.getNextStageFn("set") : function () { throw new Error("JQL禁止使用set方法"); }; } }, { key: "_send", value: function _send(e, t) { var n = this.getAction(), s = this.getCommand(); if (s.$db.push({ $method: e, $param: Vn(t) }), S) { var _e21 = s.$db.find(function (e) { return "collection" === e.$method; }), _t12 = _e21 && _e21.$param; _t12 && 1 === _t12.length && "string" == typeof _e21.$param[0] && _e21.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。"); } return this._database._callCloudFunction({ action: n, command: s }); } }]); return Yn; }(); function Qn(e, t, n) { return Wn(new Yn(e, t, n), { get: function get(e, t) { var s = "db"; return e && e.content && (s = e.content.$method), Jn(s, t) ? Qn({ $method: t }, e, n) : function () { return Qn({ $method: t, $param: Vn(Array.from(arguments)) }, e, n); }; } }); } function Xn(_ref43) { var e = _ref43.path, t = _ref43.method; return /*#__PURE__*/function () { function _class4() { (0, _classCallCheck2.default)(this, _class4); this.param = Array.from(arguments); } (0, _createClass2.default)(_class4, [{ key: "toJSON", value: function toJSON() { return { $newDb: [].concat((0, _toConsumableArray2.default)(e.map(function (e) { return { $method: e }; })), [{ $method: t, $param: this.param }]) }; } }, { key: "toString", value: function toString() { return JSON.stringify(this.toJSON()); } }]); return _class4; }(); } function Zn(e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return Wn(new e(t), { get: function get(e, t) { return Jn("db", t) ? Qn({ $method: t }, null, e) : function () { return Qn({ $method: t, $param: Vn(Array.from(arguments)) }, null, e); }; } }); } var es = /*#__PURE__*/function (_ref44) { (0, _inherits2.default)(es, _ref44); var _super11 = _createSuper(es); function es() { (0, _classCallCheck2.default)(this, es); return _super11.apply(this, arguments); } (0, _createClass2.default)(es, [{ key: "_parseResult", value: function _parseResult(e) { return this._isJQL ? e.result : e; } }, { key: "_callCloudFunction", value: function _callCloudFunction(_ref45) { var _this20 = this; var e = _ref45.action, t = _ref45.command, n = _ref45.multiCommand, s = _ref45.queryList; function r(e, t) { if (n && s) for (var _n13 = 0; _n13 < s.length; _n13++) { var _r7 = s[_n13]; _r7.udb && "function" == typeof _r7.udb.setResult && (t ? _r7.udb.setResult(t) : _r7.udb.setResult(e.result.dataList[_n13])); } } var i = this, o = this._isJQL ? "databaseForJQL" : "database"; function a(e) { return i._callback("error", [e]), M(q(o, "fail"), e).then(function () { return M(q(o, "complete"), e); }).then(function () { return r(null, e), Y(j, { type: W, content: e }), Promise.reject(e); }); } var c = M(q(o, "invoke")), u = this._uniClient; return c.then(function () { return u.callFunction({ name: "DCloud-clientDB", type: h, data: { action: e, command: t, multiCommand: n } }); }).then(function (e) { var _e$result = e.result, t = _e$result.code, n = _e$result.message, s = _e$result.token, c = _e$result.tokenExpired, _e$result$systemInfo = _e$result.systemInfo, u = _e$result$systemInfo === void 0 ? [] : _e$result$systemInfo; if (u) for (var _e22 = 0; _e22 < u.length; _e22++) { var _u$_e = u[_e22], _t13 = _u$_e.level, _n14 = _u$_e.message, _s14 = _u$_e.detail, _r8 = console["app" === C && "warn" === _t13 ? "error" : _t13] || console.log; var _i4 = "[System Info]" + _n14; _s14 && (_i4 = "".concat(_i4, "\n\u8BE6\u7EC6\u4FE1\u606F\uFF1A").concat(_s14)), _r8(_i4); } if (t) { return a(new te({ code: t, message: n, requestId: e.requestId })); } e.result.errCode = e.result.errCode || e.result.code, e.result.errMsg = e.result.errMsg || e.result.message, s && c && (re({ token: s, tokenExpired: c }), _this20._callbackAuth("refreshToken", [{ token: s, tokenExpired: c }]), _this20._callback("refreshToken", [{ token: s, tokenExpired: c }]), Y(B, { token: s, tokenExpired: c })); var h = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }]; var _loop2 = function _loop2(_t14) { var _h$_t = h[_t14], n = _h$_t.prop, s = _h$_t.tips; if (n in e.result) { var _t15 = e.result[n]; Object.defineProperty(e.result, n, { get: function get() { return console.warn(s), _t15; } }); } }; for (var _t14 = 0; _t14 < h.length; _t14++) { _loop2(_t14); } return function (e) { return M(q(o, "success"), e).then(function () { return M(q(o, "complete"), e); }).then(function () { r(e, null); var t = i._parseResult(e); return Y(j, { type: W, content: t }), Promise.resolve(t); }); }(e); }, function (e) { /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB"); return a(new te({ code: e.code || "SYSTEM_ERROR", message: e.message, requestId: e.requestId })); }); } }]); return es; }( /*#__PURE__*/function () { function _class5() { var _ref46 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref46$uniClient = _ref46.uniClient, e = _ref46$uniClient === void 0 ? {} : _ref46$uniClient, _ref46$isJQL = _ref46.isJQL, t = _ref46$isJQL === void 0 ? !1 : _ref46$isJQL; (0, _classCallCheck2.default)(this, _class5); this._uniClient = e, this._authCallBacks = {}, this._dbCallBacks = {}, e._isDefault && (this._dbCallBacks = L("_globalUniCloudDatabaseCallback")), t || (this.auth = Hn(this._authCallBacks)), this._isJQL = t, Object.assign(this, Hn(this._dbCallBacks)), this.env = Wn({}, { get: function get(e, t) { return { $env: t }; } }), this.Geo = Wn({}, { get: function get(e, t) { return Xn({ path: ["Geo"], method: t }); } }), this.serverDate = Xn({ path: [], method: "serverDate" }), this.RegExp = Xn({ path: [], method: "RegExp" }); } (0, _createClass2.default)(_class5, [{ key: "getCloudEnv", value: function getCloudEnv(e) { if ("string" != typeof e || !e.trim()) throw new Error("getCloudEnv参数错误"); return { $env: e.replace("$cloudEnv_", "") }; } }, { key: "_callback", value: function _callback(e, t) { var n = this._dbCallBacks; n[e] && n[e].forEach(function (e) { e.apply(void 0, (0, _toConsumableArray2.default)(t)); }); } }, { key: "_callbackAuth", value: function _callbackAuth(e, t) { var n = this._authCallBacks; n[e] && n[e].forEach(function (e) { e.apply(void 0, (0, _toConsumableArray2.default)(t)); }); } }, { key: "multiSend", value: function multiSend() { var e = Array.from(arguments), t = e.map(function (e) { var t = e.getAction(), n = e.getCommand(); if ("getTemp" !== n.$db[n.$db.length - 1].$method) throw new Error("multiSend只支持子命令内使用getTemp"); return { action: t, command: n }; }); return this._callCloudFunction({ multiCommand: t, queryList: e }); } }]); return _class5; }()); var ts = "token无效,跳转登录页面", ns = "token过期,跳转登录页面", ss = { TOKEN_INVALID_TOKEN_EXPIRED: ns, TOKEN_INVALID_INVALID_CLIENTID: ts, TOKEN_INVALID: ts, TOKEN_INVALID_WRONG_TOKEN: ts, TOKEN_INVALID_ANONYMOUS_USER: ts }, rs = { "uni-id-token-expired": ns, "uni-id-check-token-failed": ts, "uni-id-token-not-exist": ts, "uni-id-check-device-feature-failed": ts }; function is(e, t) { var n = ""; return n = e ? "".concat(e, "/").concat(t) : t, n.replace(/^\//, ""); } function os() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; var n = [], s = []; return e.forEach(function (e) { !0 === e.needLogin ? n.push(is(t, e.path)) : !1 === e.needLogin && s.push(is(t, e.path)); }), { needLoginPage: n, notNeedLoginPage: s }; } function as(e) { return e.split("?")[0].replace(/^\//, ""); } function cs() { return function (e) { var t = e && e.$page && e.$page.fullPath || ""; return t ? ("/" !== t.charAt(0) && (t = "/" + t), t) : t; }(function () { var e = getCurrentPages(); return e[e.length - 1]; }()); } function us() { return as(cs()); } function hs() { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!e) return !1; if (!(t && t.list && t.list.length)) return !1; var n = t.list, s = as(e); return n.some(function (e) { return e.pagePath === s; }); } var ls = !!_pages.default.uniIdRouter; var _ref47 = function () { var _ref28 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pages.default, _ref28$pages = _ref28.pages, t = _ref28$pages === void 0 ? [] : _ref28$pages, _ref28$subPackages = _ref28.subPackages, n = _ref28$subPackages === void 0 ? [] : _ref28$subPackages, _ref28$uniIdRouter = _ref28.uniIdRouter, s = _ref28$uniIdRouter === void 0 ? {} : _ref28$uniIdRouter, _ref28$tabBar = _ref28.tabBar, r = _ref28$tabBar === void 0 ? {} : _ref28$tabBar; var i = s.loginPage, _s$needLogin = s.needLogin, o = _s$needLogin === void 0 ? [] : _s$needLogin, _s$resToLogin = s.resToLogin, a = _s$resToLogin === void 0 ? !0 : _s$resToLogin, _os = os(t), c = _os.needLoginPage, u = _os.notNeedLoginPage, _ref30 = function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var t = [], n = []; return e.forEach(function (e) { var s = e.root, _e$pages = e.pages, r = _e$pages === void 0 ? [] : _e$pages, _os2 = os(r, s), i = _os2.needLoginPage, o = _os2.notNeedLoginPage; t.push.apply(t, (0, _toConsumableArray2.default)(i)), n.push.apply(n, (0, _toConsumableArray2.default)(o)); }), { needLoginPage: t, notNeedLoginPage: n }; }(n), h = _ref30.needLoginPage, l = _ref30.notNeedLoginPage; return { loginPage: i, routerNeedLogin: o, resToLogin: a, needLoginPage: [].concat((0, _toConsumableArray2.default)(c), (0, _toConsumableArray2.default)(h)), notNeedLoginPage: [].concat((0, _toConsumableArray2.default)(u), (0, _toConsumableArray2.default)(l)), loginPageInTabBar: hs(i, r) }; }(), ds = _ref47.loginPage, ps = _ref47.routerNeedLogin, fs = _ref47.resToLogin, gs = _ref47.needLoginPage, ms = _ref47.notNeedLoginPage, ys = _ref47.loginPageInTabBar; if (gs.indexOf(ds) > -1) throw new Error("Login page [".concat(ds, "] should not be \"needLogin\", please check your pages.json")); function _s(e) { var t = us(); if ("/" === e.charAt(0)) return e; var _e$split = e.split("?"), _e$split2 = (0, _slicedToArray2.default)(_e$split, 2), n = _e$split2[0], s = _e$split2[1], r = n.replace(/^\//, "").split("/"), i = t.split("/"); i.pop(); for (var _e23 = 0; _e23 < r.length; _e23++) { var _t16 = r[_e23]; ".." === _t16 ? i.pop() : "." !== _t16 && i.push(_t16); } return "" === i[0] && i.shift(), "/" + i.join("/") + (s ? "?" + s : ""); } function ws(e) { var t = as(_s(e)); return !(ms.indexOf(t) > -1) && (gs.indexOf(t) > -1 || ps.some(function (t) { return function (e, t) { return new RegExp(t).test(e); }(e, t); })); } function vs(_ref48) { var e = _ref48.redirect; var t = as(e), n = as(ds); return us() !== n && t !== n; } function Is() { var _ref49 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref49.api, t = _ref49.redirect; if (!t || !vs({ redirect: t })) return; var n = function (e, t) { return "/" !== e.charAt(0) && (e = "/" + e), t ? e.indexOf("?") > -1 ? e + "&uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e + "?uniIdRedirectUrl=".concat(encodeURIComponent(t)) : e; }(ds, t); ys ? "navigateTo" !== e && "redirectTo" !== e || (e = "switchTab") : "switchTab" === e && (e = "navigateTo"); var s = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, switchTab: uni.switchTab, reLaunch: uni.reLaunch }; setTimeout(function () { s[e]({ url: n }); }, 0); } function Ss() { var _ref50 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref50.url; var t = { abortLoginPageJump: !1, autoToLoginPage: !1 }, n = function () { var _se3 = se(), e = _se3.token, t = _se3.tokenExpired; var n; if (e) { if (t < Date.now()) { var _e24 = "uni-id-token-expired"; n = { errCode: _e24, errMsg: rs[_e24] }; } } else { var _e25 = "uni-id-check-token-failed"; n = { errCode: _e25, errMsg: rs[_e25] }; } return n; }(); if (ws(e) && n) { n.uniIdRedirectUrl = e; if (J($).length > 0) return setTimeout(function () { Y($, n); }, 0), t.abortLoginPageJump = !0, t; t.autoToLoginPage = !0; } return t; } function bs() { !function () { var e = cs(), _Ss = Ss({ url: e }), t = _Ss.abortLoginPageJump, n = _Ss.autoToLoginPage; t || n && Is({ api: "redirectTo", redirect: e }); }(); var e = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]; var _loop3 = function _loop3(_t17) { var n = e[_t17]; uni.addInterceptor(n, { invoke: function invoke(e) { var _Ss2 = Ss({ url: e.url }), t = _Ss2.abortLoginPageJump, s = _Ss2.autoToLoginPage; return t ? e : s ? (Is({ api: n, redirect: _s(e.url) }), !1) : e; } }); }; for (var _t17 = 0; _t17 < e.length; _t17++) { _loop3(_t17); } } function ks() { this.onResponse(function (e) { var t = e.type, n = e.content; var s = !1; switch (t) { case "cloudobject": s = function (e) { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref51 = e || {}, t = _ref51.errCode; return t in rs; }(n); break; case "clientdb": s = function (e) { if ("object" != (0, _typeof2.default)(e)) return !1; var _ref52 = e || {}, t = _ref52.errCode; return t in ss; }(n); } s && function () { var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var t = J($); Z().then(function () { var n = cs(); if (n && vs({ redirect: n })) return t.length > 0 ? Y($, Object.assign({ uniIdRedirectUrl: n }, e)) : void (ds && Is({ api: "navigateTo", redirect: n })); }); }(n); }); } function As(e) { !function (e) { e.onResponse = function (e) { V(j, e); }, e.offResponse = function (e) { G(j, e); }; }(e), function (e) { e.onNeedLogin = function (e) { V($, e); }, e.offNeedLogin = function (e) { G($, e); }, ls && (L("_globalUniCloudStatus").needLoginInit || (L("_globalUniCloudStatus").needLoginInit = !0, Z().then(function () { bs.call(e); }), fs && ks.call(e))); }(e), function (e) { e.onRefreshToken = function (e) { V(B, e); }, e.offRefreshToken = function (e) { G(B, e); }; }(e); } var Cs; var Ps = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", Ts = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; function xs() { var e = se().token || "", t = e.split("."); if (!e || 3 !== t.length) return { uid: null, role: [], permission: [], tokenExpired: 0 }; var n; try { n = JSON.parse((s = t[1], decodeURIComponent(Cs(s).split("").map(function (e) { return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2); }).join("")))); } catch (e) { throw new Error("获取当前用户信息出错,详细错误信息为:" + e.message); } var s; return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n; } Cs = "function" != typeof atob ? function (e) { if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !Ts.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); var t; e += "==".slice(2 - (3 & e.length)); for (var n, s, r = "", i = 0; i < e.length;) { t = Ps.indexOf(e.charAt(i++)) << 18 | Ps.indexOf(e.charAt(i++)) << 12 | (n = Ps.indexOf(e.charAt(i++))) << 6 | (s = Ps.indexOf(e.charAt(i++))), r += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === s ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t); } return r; } : atob; var Os = n(function (e, t) { Object.defineProperty(t, "__esModule", { value: !0 }); var n = "chooseAndUploadFile:ok", s = "chooseAndUploadFile:fail"; function r(e, t) { return e.tempFiles.forEach(function (e, n) { e.name || (e.name = e.path.substring(e.path.lastIndexOf("/") + 1)), t && (e.fileType = t), e.cloudPath = Date.now() + "_" + n + e.name.substring(e.name.lastIndexOf(".")); }), e.tempFilePaths || (e.tempFilePaths = e.tempFiles.map(function (e) { return e.path; })), e; } function i(e, t, _ref53) { var s = _ref53.onChooseFile, r = _ref53.onUploadProgress; return t.then(function (e) { if (s) { var _t18 = s(e); if (void 0 !== _t18) return Promise.resolve(_t18).then(function (t) { return void 0 === t ? e : t; }); } return e; }).then(function (t) { return !1 === t ? { errMsg: n, tempFilePaths: [], tempFiles: [] } : function (e, t) { var s = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5; var r = arguments.length > 3 ? arguments[3] : undefined; (t = Object.assign({}, t)).errMsg = n; var i = t.tempFiles, o = i.length; var a = 0; return new Promise(function (n) { for (; a < s;) { c(); } function c() { var s = a++; if (s >= o) return void (!i.find(function (e) { return !e.url && !e.errMsg; }) && n(t)); var u = i[s]; e.uploadFile({ provider: u.provider, filePath: u.path, cloudPath: u.cloudPath, fileType: u.fileType, cloudPathAsRealPath: u.cloudPathAsRealPath, onUploadProgress: function onUploadProgress(e) { e.index = s, e.tempFile = u, e.tempFilePath = u.path, r && r(e); } }).then(function (e) { u.url = e.fileID, s < o && c(); }).catch(function (e) { u.errMsg = e.errMsg || e.message, s < o && c(); }); } }); }(e, t, 5, r); }); } t.initChooseAndUploadFile = function (e) { return function () { var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { type: "all" }; return "image" === t.type ? i(e, function (e) { var t = e.count, n = e.sizeType, _e$sourceType = e.sourceType, i = _e$sourceType === void 0 ? ["album", "camera"] : _e$sourceType, o = e.extension; return new Promise(function (e, a) { uni.chooseImage({ count: t, sizeType: n, sourceType: i, extension: o, success: function success(t) { e(r(t, "image")); }, fail: function fail(e) { a({ errMsg: e.errMsg.replace("chooseImage:fail", s) }); } }); }); }(t), t) : "video" === t.type ? i(e, function (e) { var t = e.camera, n = e.compressed, i = e.maxDuration, _e$sourceType2 = e.sourceType, o = _e$sourceType2 === void 0 ? ["album", "camera"] : _e$sourceType2, a = e.extension; return new Promise(function (e, c) { uni.chooseVideo({ camera: t, compressed: n, maxDuration: i, sourceType: o, extension: a, success: function success(t) { var n = t.tempFilePath, s = t.duration, i = t.size, o = t.height, a = t.width; e(r({ errMsg: "chooseVideo:ok", tempFilePaths: [n], tempFiles: [{ name: t.tempFile && t.tempFile.name || "", path: n, size: i, type: t.tempFile && t.tempFile.type || "", width: a, height: o, duration: s, fileType: "video", cloudPath: "" }] }, "video")); }, fail: function fail(e) { c({ errMsg: e.errMsg.replace("chooseVideo:fail", s) }); } }); }); }(t), t) : i(e, function (e) { var t = e.count, n = e.extension; return new Promise(function (e, i) { var o = uni.chooseFile; if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (o = wx.chooseMessageFile), "function" != typeof o) return i({ errMsg: s + " 请指定 type 类型,该平台仅支持选择 image 或 video。" }); o({ type: "all", count: t, extension: n, success: function success(t) { e(r(t)); }, fail: function fail(e) { i({ errMsg: e.errMsg.replace("chooseFile:fail", s) }); } }); }); }(t), t); }; }; }), Es = t(Os); var Ls = "manual"; function Rs(e) { return { props: { localdata: { type: Array, default: function _default() { return []; } }, options: { type: [Object, Array], default: function _default() { return {}; } }, spaceInfo: { type: Object, default: function _default() { return {}; } }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: !1 }, gettree: { type: [Boolean, String], default: !1 }, gettreepath: { type: [Boolean, String], default: !1 }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: !1 }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: !1 } }, data: function data() { return { mixinDatacomLoading: !1, mixinDatacomHasMore: !1, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {}, mixinDatacomError: null }; }, created: function created() { var _this21 = this; this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(function () { var e = []; return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach(function (t) { e.push(_this21[t]); }), e; }, function (e, t) { if (_this21.loadtime === Ls) return; var n = !1; var s = []; for (var _r9 = 2; _r9 < e.length; _r9++) { e[_r9] !== t[_r9] && (s.push(e[_r9]), n = !0); } e[0] !== t[0] && (_this21.mixinDatacomPage.current = _this21.pageCurrent), _this21.mixinDatacomPage.size = _this21.pageSize, _this21.onMixinDatacomPropsChange(n, s); }); }, methods: { onMixinDatacomPropsChange: function onMixinDatacomPropsChange(e, t) {}, mixinDatacomEasyGet: function mixinDatacomEasyGet() { var _this22 = this; var _ref54 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref54$getone = _ref54.getone, e = _ref54$getone === void 0 ? !1 : _ref54$getone, t = _ref54.success, n = _ref54.fail; this.mixinDatacomLoading || (this.mixinDatacomLoading = !0, this.mixinDatacomErrorMessage = "", this.mixinDatacomError = null, this.mixinDatacomGet().then(function (n) { _this22.mixinDatacomLoading = !1; var _n$result = n.result, s = _n$result.data, r = _n$result.count; _this22.getcount && (_this22.mixinDatacomPage.count = r), _this22.mixinDatacomHasMore = s.length < _this22.pageSize; var i = e ? s.length ? s[0] : void 0 : s; _this22.mixinDatacomResData = i, t && t(i); }).catch(function (e) { _this22.mixinDatacomLoading = !1, _this22.mixinDatacomErrorMessage = e, _this22.mixinDatacomError = e, n && n(e); })); }, mixinDatacomGet: function mixinDatacomGet() { var _n15; var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var n; t = t || {}, n = "undefined" != typeof __uniX && __uniX ? e.databaseForJQL(this.spaceInfo) : e.database(this.spaceInfo); var s = t.action || this.action; s && (n = n.action(s)); var r = t.collection || this.collection; n = Array.isArray(r) ? (_n15 = n).collection.apply(_n15, (0, _toConsumableArray2.default)(r)) : n.collection(r); var i = t.where || this.where; i && Object.keys(i).length && (n = n.where(i)); var o = t.field || this.field; o && (n = n.field(o)); var a = t.foreignKey || this.foreignKey; a && (n = n.foreignKey(a)); var c = t.groupby || this.groupby; c && (n = n.groupBy(c)); var u = t.groupField || this.groupField; u && (n = n.groupField(u)); !0 === (void 0 !== t.distinct ? t.distinct : this.distinct) && (n = n.distinct()); var h = t.orderby || this.orderby; h && (n = n.orderBy(h)); var l = void 0 !== t.pageCurrent ? t.pageCurrent : this.mixinDatacomPage.current, d = void 0 !== t.pageSize ? t.pageSize : this.mixinDatacomPage.size, p = void 0 !== t.getcount ? t.getcount : this.getcount, f = void 0 !== t.gettree ? t.gettree : this.gettree, g = void 0 !== t.gettreepath ? t.gettreepath : this.gettreepath, m = { getCount: p }, y = { limitLevel: void 0 !== t.limitlevel ? t.limitlevel : this.limitlevel, startWith: void 0 !== t.startwith ? t.startwith : this.startwith }; return f && (m.getTree = y), g && (m.getTreePath = y), n = n.skip(d * (l - 1)).limit(d).get(m), n; } } }; } function Us(e) { return function (t) { var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; n = function (e) { var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return e.customUI = t.customUI || e.customUI, e.parseSystemError = t.parseSystemError || e.parseSystemError, Object.assign(e.loadingOptions, t.loadingOptions), Object.assign(e.errorOptions, t.errorOptions), "object" == (0, _typeof2.default)(t.secretMethods) && (e.secretMethods = t.secretMethods), e; }({ customUI: !1, loadingOptions: { title: "加载中...", mask: !0 }, errorOptions: { type: "modal", retry: !1 } }, n); var _n16 = n, s = _n16.customUI, r = _n16.loadingOptions, i = _n16.errorOptions, o = _n16.parseSystemError, a = !s; return new Proxy({}, { get: function get(s, c) { switch (c) { case "toString": return "[object UniCloudObject]"; case "toJSON": return {}; } return function () { var _ref55 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref55.fn, t = _ref55.interceptorName, n = _ref55.getCallbackArgs; return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee53() { var _len2, s, _key2, r, i, o, _args = arguments; return _regenerator.default.wrap(function _callee53$(_context53) { while (1) { switch (_context53.prev = _context53.next) { case 0: for (_len2 = _args.length, s = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { s[_key2] = _args[_key2]; } r = n ? n({ params: s }) : {}; _context53.prev = 2; _context53.next = 5; return M(q(t, "invoke"), _objectSpread({}, r)); case 5: _context53.next = 7; return e.apply(void 0, s); case 7: i = _context53.sent; _context53.next = 10; return M(q(t, "success"), _objectSpread(_objectSpread({}, r), {}, { result: i })); case 10: return _context53.abrupt("return", i); case 13: _context53.prev = 13; _context53.t0 = _context53["catch"](2); o = _context53.t0; _context53.next = 18; return M(q(t, "fail"), _objectSpread(_objectSpread({}, r), {}, { error: o })); case 18: throw o; case 19: _context53.prev = 19; _context53.next = 22; return M(q(t, "complete"), o ? _objectSpread(_objectSpread({}, r), {}, { error: o }) : _objectSpread(_objectSpread({}, r), {}, { result: i })); case 22: return _context53.finish(19); case 23: case "end": return _context53.stop(); } } }, _callee53, null, [[2, 13, 19, 23]]); })); }({ fn: function () { var _s15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee55() { var l, _len3, h, _key3, d, p, _ref57, f, g, m, y, _e26, _yield, _t19, _n17, _args4 = arguments; return _regenerator.default.wrap(function _callee55$(_context55) { while (1) { switch (_context55.prev = _context55.next) { case 0: a && uni.showLoading({ title: r.title, mask: r.mask }); for (_len3 = _args4.length, h = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { h[_key3] = _args4[_key3]; } d = { name: t, type: u, data: { method: c, params: h } }; "object" == (0, _typeof2.default)(n.secretMethods) && function (e, t) { var n = t.data.method, s = e.secretMethods || {}, r = s[n] || s["*"]; r && (t.secretType = r); }(n, d); p = !1; _context55.prev = 5; _context55.next = 8; return e.callFunction(d); case 8: l = _context55.sent; _context55.next = 14; break; case 11: _context55.prev = 11; _context55.t0 = _context55["catch"](5); p = !0, l = { result: new te(_context55.t0) }; case 14: _ref57 = l.result || {}, f = _ref57.errSubject, g = _ref57.errCode, m = _ref57.errMsg, y = _ref57.newToken; if (!(a && uni.hideLoading(), y && y.token && y.tokenExpired && (re(y), Y(B, _objectSpread({}, y))), g)) { _context55.next = 39; break; } _e26 = m; if (!(p && o)) { _context55.next = 24; break; } _context55.next = 20; return o({ objectName: t, methodName: c, params: h, errSubject: f, errCode: g, errMsg: m }); case 20: _context55.t1 = _context55.sent.errMsg; if (_context55.t1) { _context55.next = 23; break; } _context55.t1 = m; case 23: _e26 = _context55.t1; case 24: if (!a) { _context55.next = 37; break; } if (!("toast" === i.type)) { _context55.next = 29; break; } uni.showToast({ title: _e26, icon: "none" }); _context55.next = 37; break; case 29: if (!("modal" !== i.type)) { _context55.next = 31; break; } throw new Error("Invalid errorOptions.type: ".concat(i.type)); case 31: _context55.next = 33; return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee54() { var _ref59, e, t, n, s, r, _args2 = arguments; return _regenerator.default.wrap(function _callee54$(_context54) { while (1) { switch (_context54.prev = _context54.next) { case 0: _ref59 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, e = _ref59.title, t = _ref59.content, n = _ref59.showCancel, s = _ref59.cancelText, r = _ref59.confirmText; return _context54.abrupt("return", new Promise(function (i, o) { uni.showModal({ title: e, content: t, showCancel: n, cancelText: s, confirmText: r, success: function success(e) { i(e); }, fail: function fail() { i({ confirm: !1, cancel: !0 }); } }); })); case 2: case "end": return _context54.stop(); } } }, _callee54); }))({ title: "提示", content: _e26, showCancel: i.retry, cancelText: "取消", confirmText: i.retry ? "重试" : "确定" }); case 33: _yield = _context55.sent; _t19 = _yield.confirm; if (!(i.retry && _t19)) { _context55.next = 37; break; } return _context55.abrupt("return", s.apply(void 0, h)); case 37: _n17 = new te({ subject: f, code: g, message: m, requestId: l.requestId }); throw _n17.detail = l.result, Y(j, { type: z, content: _n17 }), _n17; case 39: return _context55.abrupt("return", (Y(j, { type: z, content: l.result }), l.result)); case 40: case "end": return _context55.stop(); } } }, _callee55, null, [[5, 11]]); })); function s() { return _s15.apply(this, arguments); } return s; }(), interceptorName: "callObject", getCallbackArgs: function getCallbackArgs() { var _ref60 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref60.params; return { objectName: t, methodName: c, params: e }; } }); } }); }; } function Ns(e) { return L("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", e.config.spaceId)); } function Ds() { return _Ds.apply(this, arguments); } function _Ds() { _Ds = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee58() { var _ref72, e, _ref72$callLoginByWei, t, n, s, r, _args7 = arguments; return _regenerator.default.wrap(function _callee58$(_context58) { while (1) { switch (_context58.prev = _context58.next) { case 0: _ref72 = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}, e = _ref72.openid, _ref72$callLoginByWei = _ref72.callLoginByWeixin, t = _ref72$callLoginByWei === void 0 ? !1 : _ref72$callLoginByWei; n = Ns(this); if (!("mp-weixin" !== C)) { _context58.next = 4; break; } throw new Error("[SecureNetwork] API `initSecureNetworkByWeixin` is not supported on platform `".concat(C, "`")); case 4: if (!(e && t)) { _context58.next = 6; break; } throw new Error("[SecureNetwork] openid and callLoginByWeixin cannot be passed at the same time"); case 6: if (!e) { _context58.next = 8; break; } return _context58.abrupt("return", (n.mpWeixinOpenid = e, {})); case 8: _context58.next = 10; return new Promise(function (e, t) { uni.login({ success: function success(t) { e(t.code); }, fail: function fail(e) { t(new Error(e.errMsg)); } }); }); case 10: s = _context58.sent; r = this.importObject("uni-id-co", { customUI: !0 }); _context58.next = 14; return r.secureNetworkHandshakeByWeixin({ code: s, callLoginByWeixin: t }); case 14: n.mpWeixinCode = s; return _context58.abrupt("return", { code: s }); case 16: case "end": return _context58.stop(); } } }, _callee58, this); })); return _Ds.apply(this, arguments); } function Ms(_x40) { return _Ms.apply(this, arguments); } function _Ms() { _Ms = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee59(e) { var t; return _regenerator.default.wrap(function _callee59$(_context59) { while (1) { switch (_context59.prev = _context59.next) { case 0: t = Ns(this); return _context59.abrupt("return", (t.initPromise || (t.initPromise = Ds.call(this, e).then(function (e) { return e; }).catch(function (e) { throw delete t.initPromise, e; })), t.initPromise)); case 2: case "end": return _context59.stop(); } } }, _callee59, this); })); return _Ms.apply(this, arguments); } function qs(e) { return function () { var _ref61 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, t = _ref61.openid, _ref61$callLoginByWei = _ref61.callLoginByWeixin, n = _ref61$callLoginByWei === void 0 ? !1 : _ref61$callLoginByWei; return Ms.call(e, { openid: t, callLoginByWeixin: n }); }; } function Fs(e) { !function (e) { ue = e; }(e); } function Ks(e) { var t = { getSystemInfo: uni.getSystemInfo, getPushClientId: uni.getPushClientId }; return function (n) { return new Promise(function (s, r) { t[e](_objectSpread(_objectSpread({}, n), {}, { success: function success(e) { s(e); }, fail: function fail(e) { r(e); } })); }); }; } var js = /*#__PURE__*/function (_ref62) { (0, _inherits2.default)(js, _ref62); var _super12 = _createSuper(js); function js() { var _this23; (0, _classCallCheck2.default)(this, js); _this23 = _super12.call(this), _this23._uniPushMessageCallback = _this23._receivePushMessage.bind((0, _assertThisInitialized2.default)(_this23)), _this23._currentMessageId = -1, _this23._payloadQueue = []; return _this23; } (0, _createClass2.default)(js, [{ key: "init", value: function init() { var _this24 = this; return Promise.all([Ks("getSystemInfo")(), Ks("getPushClientId")()]).then(function () { var _ref63 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [], _ref64 = (0, _slicedToArray2.default)(_ref63, 2), _ref64$ = _ref64[0]; _ref64$ = _ref64$ === void 0 ? {} : _ref64$; var e = _ref64$.appId, _ref64$2 = _ref64[1]; _ref64$2 = _ref64$2 === void 0 ? {} : _ref64$2; var t = _ref64$2.cid; if (!e) throw new Error("Invalid appId, please check the manifest.json file"); if (!t) throw new Error("Invalid push client id"); _this24._appId = e, _this24._pushClientId = t, _this24._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), _this24.emit("open"), _this24._initMessageListener(); }, function (e) { throw _this24.emit("error", e), _this24.close(), e; }); } }, { key: "open", value: function () { var _open = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee56() { return _regenerator.default.wrap(function _callee56$(_context56) { while (1) { switch (_context56.prev = _context56.next) { case 0: return _context56.abrupt("return", this.init()); case 1: case "end": return _context56.stop(); } } }, _callee56, this); })); function open() { return _open.apply(this, arguments); } return open; }() }, { key: "_isUniCloudSSE", value: function _isUniCloudSSE(e) { if ("receive" !== e.type) return !1; var t = e && e.data && e.data.payload; return !(!t || "UNI_CLOUD_SSE" !== t.channel || t.seqId !== this._seqId); } }, { key: "_receivePushMessage", value: function _receivePushMessage(e) { if (!this._isUniCloudSSE(e)) return; var t = e && e.data && e.data.payload, n = t.action, s = t.messageId, r = t.message; this._payloadQueue.push({ action: n, messageId: s, message: r }), this._consumMessage(); } }, { key: "_consumMessage", value: function _consumMessage() { var _this25 = this; for (;;) { var _e27 = this._payloadQueue.find(function (e) { return e.messageId === _this25._currentMessageId + 1; }); if (!_e27) break; this._currentMessageId++, this._parseMessagePayload(_e27); } } }, { key: "_parseMessagePayload", value: function _parseMessagePayload(e) { var t = e.action, n = e.messageId, s = e.message; "end" === t ? this._end({ messageId: n, message: s }) : "message" === t && this._appendMessage({ messageId: n, message: s }); } }, { key: "_appendMessage", value: function _appendMessage() { var _ref65 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref65.messageId, t = _ref65.message; this.emit("message", t); } }, { key: "_end", value: function _end() { var _ref66 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, e = _ref66.messageId, t = _ref66.message; this.emit("end", t), this.close(); } }, { key: "_initMessageListener", value: function _initMessageListener() { uni.onPushMessage(this._uniPushMessageCallback); } }, { key: "_destroy", value: function _destroy() { uni.offPushMessage(this._uniPushMessageCallback); } }, { key: "toJSON", value: function toJSON() { return { appId: this._appId, pushClientId: this._pushClientId, seqId: this._seqId }; } }, { key: "close", value: function close() { this._destroy(), this.emit("close"); } }]); return js; }( /*#__PURE__*/function () { function _class6() { (0, _classCallCheck2.default)(this, _class6); this._callback = {}; } (0, _createClass2.default)(_class6, [{ key: "addListener", value: function addListener(e, t) { this._callback[e] || (this._callback[e] = []), this._callback[e].push(t); } }, { key: "on", value: function on(e, t) { return this.addListener(e, t); } }, { key: "removeListener", value: function removeListener(e, t) { if (!t) throw new Error('The "listener" argument must be of type function. Received undefined'); var n = this._callback[e]; if (!n) return; var s = function (e, t) { for (var _n18 = e.length - 1; _n18 >= 0; _n18--) { if (e[_n18] === t) return _n18; } return -1; }(n, t); n.splice(s, 1); } }, { key: "off", value: function off(e, t) { return this.removeListener(e, t); } }, { key: "removeAllListener", value: function removeAllListener(e) { delete this._callback[e]; } }, { key: "emit", value: function emit(e) { var n = this._callback[e]; for (var _len4 = arguments.length, t = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { t[_key4 - 1] = arguments[_key4]; } if (n) for (var _e28 = 0; _e28 < n.length; _e28++) { n[_e28].apply(n, t); } } }]); return _class6; }()); function $s(_x41, _x42) { return _$s.apply(this, arguments); } function _$s() { _$s = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee60(e, t) { var n, _e31, s; return _regenerator.default.wrap(function _callee60$(_context60) { while (1) { switch (_context60.prev = _context60.next) { case 0: n = "http://".concat(e, ":").concat(t, "/system/ping"); _context60.prev = 1; _context60.next = 4; return s = { url: n, timeout: 500 }, new Promise(function (e, t) { ne.request(_objectSpread(_objectSpread({}, s), {}, { success: function success(t) { e(t); }, fail: function fail(e) { t(e); } })); }); case 4: _e31 = _context60.sent; return _context60.abrupt("return", !(!_e31.data || 0 !== _e31.data.code)); case 8: _context60.prev = 8; _context60.t0 = _context60["catch"](1); return _context60.abrupt("return", !1); case 11: case "end": return _context60.stop(); } } }, _callee60, null, [[1, 8]]); })); return _$s.apply(this, arguments); } function Bs(_x43) { return _Bs.apply(this, arguments); } function _Bs() { _Bs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee62(e) { var _ae2, _e32, _t21, t, _t$debugInfo, n, s, _yield2, r, i, o; return _regenerator.default.wrap(function _callee62$(_context62) { while (1) { switch (_context62.prev = _context62.next) { case 0: if (S) { _context62.next = 2; break; } return _context62.abrupt("return", Promise.resolve()); case 2: if ("app" === C) { _ae2 = ae(), _e32 = _ae2.osName, _t21 = _ae2.osVersion; "ios" === _e32 && function (e) { if (!e || "string" != typeof e) return 0; var t = e.match(/^(\d+)./); return t && t[1] ? parseInt(t[1]) : 0; }(_t21) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发期间需要,发行后不需要)"); } t = e.__dev__; if (t.debugInfo) { _context62.next = 6; break; } return _context62.abrupt("return"); case 6: _t$debugInfo = t.debugInfo; n = _t$debugInfo.address; s = _t$debugInfo.servePort; _context62.next = 11; return function () { var _ref73 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee61(e, t) { var n, _s16, _r10; return _regenerator.default.wrap(function _callee61$(_context61) { while (1) { switch (_context61.prev = _context61.next) { case 0: _s16 = 0; case 1: if (!(_s16 < e.length)) { _context61.next = 11; break; } _r10 = e[_s16]; _context61.next = 5; return $s(_r10, t); case 5: if (!_context61.sent) { _context61.next = 8; break; } n = _r10; return _context61.abrupt("break", 11); case 8: _s16++; _context61.next = 1; break; case 11: return _context61.abrupt("return", { address: n, port: t }); case 12: case "end": return _context61.stop(); } } }, _callee61); })); return function (_x44, _x45) { return _ref73.apply(this, arguments); }; }()(n, s); case 11: _yield2 = _context62.sent; r = _yield2.address; if (!r) { _context62.next = 15; break; } return _context62.abrupt("return", (t.localAddress = r, void (t.localPort = s))); case 15: i = console["app" === C ? "error" : "warn"]; o = ""; if (!("remote" === t.debugInfo.initialLaunchType ? (t.debugInfo.forceRemote = !0, o = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", "web" === C && (o += "\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式"), 0 === C.indexOf("mp-") && (o += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t.debugInfo.forceRemote)) { _context62.next = 19; break; } throw new Error(o); case 19: i(o); case 20: case "end": return _context62.stop(); } } }, _callee62); })); return _Bs.apply(this, arguments); } function Ws(e) { e._initPromiseHub || (e._initPromiseHub = new v({ createPromise: function createPromise() { var t = Promise.resolve(); var n; n = 1, t = new Promise(function (e) { setTimeout(function () { e(); }, n); }); var s = e.auth(); return t.then(function () { return s.getLoginState(); }).then(function (e) { return e ? Promise.resolve() : s.signInAnonymously(); }); } })); } var Hs = { tcb: St, tencent: St, aliyun: pe, private: kt, alipay: Ut }; var zs = new ( /*#__PURE__*/function () { function _class7() { (0, _classCallCheck2.default)(this, _class7); } (0, _createClass2.default)(_class7, [{ key: "init", value: function init(e) { var t = {}; var n = Hs[e.provider]; if (!n) throw new Error("未提供正确的provider参数"); t = n.init(e), S && function (e) { if (!S) return; var t = {}; e.__dev__ = t, t.debugLog = S && ("web" === C && navigator.userAgent.indexOf("HBuilderX") > 0 || "app" === C); var n = P; n && !n.code && (t.debugInfo = n); var s = new v({ createPromise: function createPromise() { return Bs(e); } }); t.initLocalNetwork = function () { return s.exec(); }; }(t), Ws(t), $n(t), function (e) { var t = e.uploadFile; e.uploadFile = function (e) { return t.call(this, e); }; }(t), function (e) { e.database = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).database(); if (this._database) return this._database; var n = Zn(es, { uniClient: e }); return this._database = n, n; }, e.databaseForJQL = function (t) { if (t && Object.keys(t).length > 0) return e.init(t).databaseForJQL(); if (this._databaseForJQL) return this._databaseForJQL; var n = Zn(es, { uniClient: e, isJQL: !0 }); return this._databaseForJQL = n, n; }; }(t), function (e) { e.getCurrentUserInfo = xs, e.chooseAndUploadFile = Es.initChooseAndUploadFile(e), Object.assign(e, { get mixinDatacom() { return Rs(e); } }), e.SSEChannel = js, e.initSecureNetworkByWeixin = qs(e), e.setCustomClientInfo = Fs, e.importObject = Us(e); }(t); return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach(function (e) { if (!t[e]) return; var n = t[e]; t[e] = function () { return n.apply(t, Array.from(arguments)); }, t[e] = function (e, t) { return function (n) { var _this26 = this; var s = !1; if ("callFunction" === t) { var _e29 = n && n.type || c; s = _e29 !== c; } var r = "callFunction" === t && !s, i = this._initPromiseHub.exec(); n = n || {}; var _ee2 = ee(n), o = _ee2.success, a = _ee2.fail, u = _ee2.complete, h = i.then(function () { return s ? Promise.resolve() : M(q(t, "invoke"), n); }).then(function () { return e.call(_this26, n); }).then(function (e) { return s ? Promise.resolve(e) : M(q(t, "success"), e).then(function () { return M(q(t, "complete"), e); }).then(function () { return r && Y(j, { type: H, content: e }), Promise.resolve(e); }); }, function (e) { return s ? Promise.reject(e) : M(q(t, "fail"), e).then(function () { return M(q(t, "complete"), e); }).then(function () { return Y(j, { type: H, content: e }), Promise.reject(e); }); }); if (!(o || a || u)) return h; h.then(function (e) { o && o(e), u && u(e), r && Y(j, { type: H, content: e }); }, function (e) { a && a(e), u && u(e), r && Y(j, { type: H, content: e }); }); }; }(t[e], e).bind(t); }), t.init = this.init, t; } }]); return _class7; }())(); (function () { var e = T; var t = {}; if (e && 1 === e.length) t = e[0], zs = zs.init(t), zs._isDefault = !0;else { var _t20 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"]; var _n19; _n19 = e && e.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : x ? "应用未关联服务空间,请在uniCloud目录右键关联服务空间" : "uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间", _t20.forEach(function (e) { zs[e] = function () { return console.error(_n19), Promise.reject(new te({ code: "SYS_ERR", message: _n19 })); }; }); } Object.assign(zs, { get mixinDatacom() { return Rs(zs); } }), As(zs), zs.addInterceptor = N, zs.removeInterceptor = D, zs.interceptObject = F, S && "web" === C && (window.uniCloud = zs); })(); var Js = zs; exports.default = Js; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 52), __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 378)["default"])) /***/ }), /* 378 */ /*!*********************************************************!*\ !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/mp.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1); Object.defineProperty(exports, "__esModule", { value: true }); exports.Behavior = Behavior; exports.Component = Component; exports.Page = Page; exports.nextTick = exports.default = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 159)); var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 28)); var _PROP_DEFAULT_VALUES; function parseData(data, vueComponentOptions) { if (!data) { return; } vueComponentOptions.mpOptions.data = data; } function parseComponents(vueComponentOptions) { vueComponentOptions.components = global.__wxVueOptions.components; } var _toString = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; function isFn(fn) { return typeof fn === 'function'; } function isPlainObject(obj) { return _toString.call(obj) === '[object Object]'; } function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); } function noop() {} /** * Create a cached version of a pure function. */ function cached(fn) { var cache = Object.create(null); return function cachedFn(str) { var hit = cache[str]; return hit || (cache[str] = fn(str)); }; } /** * Camelize a hyphen-delimited string. */ var camelizeRE = /-(\w)/g; var camelize = cached(function (str) { return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }); }); var SOURCE_KEY = '__data__'; var COMPONENT_LIFECYCLE = { created: 'onServiceCreated', attached: 'onServiceAttached', ready: 'mounted', moved: 'moved', detached: 'destroyed' }; var COMPONENT_LIFECYCLE_KEYS = Object.keys(COMPONENT_LIFECYCLE); var PAGE_LIFETIMES = { show: 'onPageShow', hide: 'onPageHide', resize: 'onPageResize' }; var PAGE_LIFETIMES_KEYS = Object.keys(PAGE_LIFETIMES); var PAGE_LIFECYCLE = ['onLoad', 'onShow', 'onReady', 'onHide', 'onUnload', 'onPullDownRefresh', 'onReachBottom', 'onShareAppMessage', 'onPageScroll', 'onResize', 'onTabItemTap']; function parsePageMethods(mpComponentOptions, vueComponentOptions) { var methods = Object.create(null); Object.keys(mpComponentOptions).forEach(function (key) { var value = mpComponentOptions[key]; if (isFn(value) && PAGE_LIFECYCLE.indexOf(key) === -1) { methods[key] = value; } }); vueComponentOptions.methods = methods; } function parsePageLifecycle(mpComponentOptions, vueComponentOptions) { Object.keys(mpComponentOptions).forEach(function (key) { if (PAGE_LIFECYCLE.indexOf(key) !== -1) { vueComponentOptions[key] = mpComponentOptions[key]; } }); } function parsePage(mpComponentOptions) { var vueComponentOptions = { mixins: [], mpOptions: {} }; parseComponents(vueComponentOptions); parseData(mpComponentOptions.data, vueComponentOptions); parsePageMethods(mpComponentOptions, vueComponentOptions); parsePageLifecycle(mpComponentOptions, vueComponentOptions); return vueComponentOptions; } function parseProperties(properties, vueComponentOptions) { if (!properties) { return; } vueComponentOptions.mpOptions.properties = properties; } function parseOptions(options, vueComponentOptions) { if (!options) { return; } vueComponentOptions.mpOptions.options = options; } function parseMethods(methods, vueComponentOptions) { if (!methods) { return; } if (methods.$emit) { console.warn('Method "$emit" conflicts with an existing Vue instance method'); delete methods.$emit; } vueComponentOptions.methods = methods; } function parseLifecycle(mpComponentOptions, vueComponentOptions) { COMPONENT_LIFECYCLE_KEYS.forEach(function (name) { if (hasOwn(mpComponentOptions, name)) { (vueComponentOptions[COMPONENT_LIFECYCLE[name]] || (vueComponentOptions[COMPONENT_LIFECYCLE[name]] = [])).push(mpComponentOptions[name]); } }); } var mpBehaviors = { 'wx://form-field': {}, 'wx://component-export': {} }; function callDefinitionFilter(mpComponentOptions) { var behaviors = mpComponentOptions.behaviors, definitionFilter = mpComponentOptions.definitionFilter; var behaviorDefinitionFilters = []; if (Array.isArray(behaviors)) { behaviors.forEach(function (behavior) { behavior = typeof behavior === 'string' ? mpBehaviors[behavior] : behavior; if (behavior.definitionFilter) { behaviorDefinitionFilters.push(behavior.definitionFilter); behavior.definitionFilter.call(null, mpComponentOptions, []); } }); } if (isFn(definitionFilter)) { return function (defFields) { definitionFilter(defFields, behaviorDefinitionFilters); }; } } function parseDefinitionFilter(mpComponentOptions, vueComponentOptions) { callDefinitionFilter(mpComponentOptions); } function parseBehavior(behavior) { var data = behavior.data, methods = behavior.methods, behaviors = behavior.behaviors, properties = behavior.properties; var vueComponentOptions = { watch: {}, mpOptions: { mpObservers: [] } }; parseData(data, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseProperties(properties, vueComponentOptions); parseLifecycle(behavior, vueComponentOptions); parseDefinitionFilter(behavior); return vueComponentOptions; } var BEHAVIORS = { 'wx://form-field': { beforeCreate: function beforeCreate() { var mpOptions = this.$options.mpOptions; if (!mpOptions.properties) { mpOptions.properties = Object.create(null); } var props = mpOptions.properties; // TODO form submit,reset if (!hasOwn(props, 'name')) { props.name = { type: String }; } if (!hasOwn(props, 'value')) { props.value = { type: String // 默认类型调整为 String,否则默认值为 null,导致一些自定义 input 显示不正确 }; } } } }; function parseBehaviors(behaviors, vueComponentOptions) { if (!behaviors) { return; } behaviors.forEach(function (behavior) { if (typeof behavior === 'string') { BEHAVIORS[behavior] && vueComponentOptions.mixins.push(BEHAVIORS[behavior]); } else { vueComponentOptions.mixins.push(parseBehavior(behavior)); } }); } function parseSinglePath(path) { return path.split('.'); } function parseMultiPaths(paths) { return paths.split(',').map(function (path) { return parseSinglePath(path); }); } function parseObservers(observers, vueComponentOptions) { if (!observers) { return; } var mpObservers = vueComponentOptions.mpOptions.mpObservers; Object.keys(observers).forEach(function (path) { mpObservers.push({ paths: parseMultiPaths(path), observer: observers[path] }); }); } function relative(from, to) { if (to.indexOf('/') === 0) { from = ''; } var fromArr = from.split('/'); var toArr = to.split('/'); fromArr.pop(); while (toArr.length) { var part = toArr.shift(); if (part !== '' && part !== '.') { if (part !== '..') { fromArr.push(part); } else { fromArr.pop(); } } } return fromArr.join('/'); } function parseRelations(relations, vueComponentOptions) { if (!relations) { return; } Object.keys(relations).forEach(function (name) { var relation = relations[name]; relation.name = name; relation.target = relation.target ? String(relation.target) : relative(global.__wxRoute, name); }); vueComponentOptions.mpOptions.relations = relations; } function parseExternalClasses(externalClasses, vueComponentOptions) { if (!externalClasses) { return; } if (!Array.isArray(externalClasses)) { externalClasses = [externalClasses]; } vueComponentOptions.mpOptions.externalClasses = externalClasses; if (!vueComponentOptions.mpOptions.properties) { vueComponentOptions.mpOptions.properties = Object.create(null); } externalClasses.forEach(function (externalClass) { vueComponentOptions.mpOptions.properties[camelize(externalClass)] = { type: String, value: '' }; }); } function parseLifetimes(lifetimes, vueComponentOptions) { if (!lifetimes) { return; } parseLifecycle(lifetimes, vueComponentOptions); } function parsePageLifetimes(pageLifetimes, vueComponentOptions) { if (!pageLifetimes) { return; } PAGE_LIFETIMES_KEYS.forEach(function (key) { var lifetimeFn = pageLifetimes[key]; isFn(lifetimeFn) && (vueComponentOptions[PAGE_LIFETIMES[key]] = lifetimeFn); }); } function parseComponent(mpComponentOptions) { var data = mpComponentOptions.data, options = mpComponentOptions.options, methods = mpComponentOptions.methods, behaviors = mpComponentOptions.behaviors, lifetimes = mpComponentOptions.lifetimes, observers = mpComponentOptions.observers, relations = mpComponentOptions.relations, properties = mpComponentOptions.properties, pageLifetimes = mpComponentOptions.pageLifetimes, externalClasses = mpComponentOptions.externalClasses; var vueComponentOptions = { mixins: [], props: {}, watch: {}, mpOptions: { mpObservers: [] } }; parseComponents(vueComponentOptions); parseData(data, vueComponentOptions); parseOptions(options, vueComponentOptions); parseMethods(methods, vueComponentOptions); parseBehaviors(behaviors, vueComponentOptions); parseLifetimes(lifetimes, vueComponentOptions); parseObservers(observers, vueComponentOptions); parseRelations(relations, vueComponentOptions); parseProperties(properties, vueComponentOptions); parsePageLifetimes(pageLifetimes, vueComponentOptions); parseExternalClasses(externalClasses, vueComponentOptions); parseLifecycle(mpComponentOptions, vueComponentOptions); parseDefinitionFilter(mpComponentOptions); return vueComponentOptions; } function initRelationHandlers(type, handler, target, ctx) { if (!handler) { return; } var name = "_$".concat(type, "Handlers"); (ctx[name] || (ctx[name] = [])).push(function () { handler.call(ctx, target); }); } function initLinkedHandlers(relation, target, ctx) { var type = 'linked'; var name = relation.name; var relationNodes = ctx._$relationNodes || (ctx._$relationNodes = Object.create(null)); (relationNodes[name] || (relationNodes[name] = [])).push(target); initRelationHandlers(type, relation[type], target, ctx); } function initUnlinkedHandlers(relation, target, ctx) { var type = 'unlinked'; initRelationHandlers(type, relation[type], target, ctx); } function findParentRelation(parentVm, target, type) { var relations = parentVm && parentVm.$options.mpOptions && parentVm.$options.mpOptions.relations; if (!relations) { return []; } var name = Object.keys(relations).find(function (name) { var relation = relations[name]; return relation.target === target && relation.type === type; }); if (!name) { return []; } return [relations[name], parentVm]; } function initParentRelation(vm, childRelation, match) { var _match = match(vm, vm.$options.mpOptions.path), _match2 = (0, _slicedToArray2.default)(_match, 2), parentRelation = _match2[0], parentVm = _match2[1]; if (!parentRelation) { return; } initLinkedHandlers(parentRelation, vm, parentVm); initLinkedHandlers(childRelation, parentVm, vm); initUnlinkedHandlers(parentRelation, vm, parentVm); initUnlinkedHandlers(childRelation, parentVm, vm); } function initRelation(relation, vm) { var type = relation.type; if (type === 'parent') { initParentRelation(vm, relation, function matchParent(vm, target) { return findParentRelation(vm.$parent, target, 'child'); }); } else if (type === 'ancestor') { initParentRelation(vm, relation, function matchAncestor(vm, target) { var $parent = vm.$parent; while ($parent) { var ret = findParentRelation($parent, target, 'descendant'); if (ret.length) { return ret; } $parent = $parent.$parent; } return []; }); } } function initRelations(vm) { var _ref = vm.$options.mpOptions || {}, relations = _ref.relations; if (!relations) { return; } Object.keys(relations).forEach(function (name) { initRelation(relations[name], vm); }); } function handleRelations(vm, type) { // TODO 需要移除 relationNodes var handlers = vm["_$".concat(type, "Handlers")]; if (!handlers) { return; } handlers.forEach(function (handler) { return handler(); }); } var sharedPropertyDefinition = { enumerable: true, configurable: true, get: noop, set: noop }; function proxy(target, sourceKey, key) { sharedPropertyDefinition.get = function proxyGetter() { return this[sourceKey][key]; }; sharedPropertyDefinition.set = function proxySetter(val) { this[sourceKey][key] = val; }; Object.defineProperty(target, key, sharedPropertyDefinition); } function setDataByExprPath(exprPath, value, data) { var keys = exprPath.replace(/\[(\d+?)\]/g, '.$1').split('.'); keys.reduce(function (obj, key, idx) { if (idx === keys.length - 1) { obj[key] = value; } else { if (typeof obj[key] === 'undefined') { obj[key] = {}; } return obj[key]; } }, data); return keys.length === 1; } function setData(data, callback) { var _this = this; if (!isPlainObject(data)) { return; } Object.keys(data).forEach(function (key) { if (setDataByExprPath(key, data[key], _this.data)) { !hasOwn(_this, key) && proxy(_this, SOURCE_KEY, key); } }); this.$forceUpdate(); isFn(callback) && this.$nextTick(callback); } /** * https://github.com/swan-team/swan-js/blob/61e2a63f7aa576b5daafbe77fdfa7c65b977060c/src/utils/index.js */ var _toString$1 = Object.prototype.toString; /** * 深度assign的函数 * @param {Object} targetObject 要被拷贝的目标对象 * @param {Object} originObject 拷贝的源对象 * @return {Object} merge后的对象 */ var deepAssign = function deepAssign() { var targetObject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var originObject = arguments.length > 1 ? arguments[1] : undefined; var originType = _toString$1.call(originObject); if (originType === '[object Array]') { targetObject = originObject.slice(0); return targetObject; } else if (originType === '[object Object]') { for (var key in originObject) { targetObject[key] = deepAssign(targetObject[key], originObject[key]); } return targetObject; } else if (originType === '[object Date]') { return new Date(originObject.getTime()); } else if (originType === '[object RegExp]') { var target = String(originObject); var lastIndex = target.lastIndexOf('/'); return new RegExp(target.slice(1, lastIndex), target.slice(lastIndex + 1)); } return originObject; }; /** * 深度拷贝逻辑,不同于lodash等库,但是与微信一致 * @param {*} [originObj] 原对象 * @return {Object|Array} 拷贝结果 */ var deepClone = function deepClone(originObj) { return deepAssign(_toString$1.call(originObj) === '[object Array]' ? [] : {}, originObj); }; var PROP_DEFAULT_VALUES = (_PROP_DEFAULT_VALUES = {}, (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, String, ''), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Number, 0), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Boolean, false), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Object, null), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, Array, []), (0, _defineProperty2.default)(_PROP_DEFAULT_VALUES, null, null), _PROP_DEFAULT_VALUES); function getDefaultVal(propType) { return PROP_DEFAULT_VALUES[propType]; } function getPropertyVal(options) { if (isPlainObject(options)) { if (hasOwn(options, 'value')) { return options.value; } return getDefaultVal(options.type); } return getDefaultVal(options); } function getType(propOptions) { return isPlainObject(propOptions) ? propOptions.type : propOptions; } function validateProp(key, propsOptions, propsData, vm) { var value = propsData[key]; if (value !== undefined) { var propOptions = propsOptions[key]; var type = getType(propOptions); value = formatVal(value, type); var observer = propOptions && propOptions.observer; if (observer) { // 初始化时,异步触发 observer,否则 observer 中无法访问 methods 或其他 setTimeout(function () { observe(observer, vm, value); }, 4); } return value; } return getPropertyVal(propsOptions[key]); } function formatVal(val, type) { if (type === Boolean) { return !!val; } else if (type === String) { return String(val); } return val; } function observe(observer, vm, newVal, oldVal) { try { if (typeof observer === 'function') { observer.call(vm, newVal, oldVal); } else if (typeof observer === 'string' && typeof vm[observer] === 'function') { vm[observer](newVal, oldVal); } } catch (err) { console.error("execute observer ".concat(observer, " callback fail! err: ").concat(err)); } } function initProperties(vm, instanceData) { var properties = vm.$options.mpOptions.properties; if (!properties) { return; } var propsData = deepClone(vm.$options.propsData) || {}; var _loop = function _loop(key) { var observer = isPlainObject(properties[key]) ? properties[key].observer : false; var value = validateProp(key, properties, propsData, vm); Object.defineProperty(instanceData, key, { enumerable: true, configurable: true, get: function get() { return value; }, set: function set(newVal) { var oldVal = value; /* eslint-disable no-self-compare */ if (newVal === value || newVal !== newVal && value !== value) { return; } // TODO 临时方案,clone array value = Array.isArray(newVal) ? newVal.slice(0) : newVal; if (observer) { observe(observer, vm, newVal, oldVal); } // 触发渲染 vm.$forceUpdate(); } }); }; for (var key in properties) { _loop(key); } } function updateProperties(vm) { var properties = vm.$options.mpOptions && vm.$options.mpOptions.properties; var propsData = vm.$options.propsData; if (propsData && properties) { Object.keys(properties).forEach(function (key) { if (hasOwn(propsData, key)) { vm[key] = formatVal(propsData[key], getType(properties[key])); } }); } } function initState(vm) { var instanceData = JSON.parse(JSON.stringify(vm.$options.mpOptions.data || {})); vm[SOURCE_KEY] = instanceData; var propertyDefinition = { get: function get() { return vm[SOURCE_KEY]; }, set: function set(value) { vm[SOURCE_KEY] = value; } }; Object.defineProperties(vm, { data: propertyDefinition, properties: propertyDefinition }); vm.setData = setData; initProperties(vm, instanceData); Object.keys(instanceData).forEach(function (key) { proxy(vm, SOURCE_KEY, key); }); } function initMethods(vm) { var oldEmit = vm.$emit; vm.triggerEvent = function (eventName, detail, options) { var target = { dataset: vm.$el.dataset }; var event = { target: target, currentTarget: target, detail: detail, preventDefault: noop, stopPropagation: noop }; oldEmit.call(vm, eventName, event); }; // 主要是Vant 自己封装了 $emit,放到 methods 中会触发 Vue 的警告,索性,框架直接重写该方法 vm.$emit = function () { vm.triggerEvent.apply(vm, arguments); }; vm.getRelationNodes = function (relationKey) { // 需要过滤已被销毁的vm /* eslint-disable no-mixed-operators */ return (vm._$relationNodes && vm._$relationNodes[relationKey] || []).filter(function (vm) { return !vm._isDestroyed; }); }; vm._$updateProperties = updateProperties; } function handleObservers(vm) { var watch = vm.$options.watch; if (!watch) { return; } Object.keys(watch).forEach(function (name) { var observer = watch[name]; if (observer.mounted) { var val = vm[name]; var handler = observer.handler; if (typeof handler === 'string') { handler = vm[handler]; } handler && handler.call(vm, val, val); } }); } var polyfill = { beforeCreate: function beforeCreate() { // 取消 development 时的 Proxy,避免小程序组件模板中使用尚未定义的属性告警 this._renderProxy = this; this._$self = this; this._$noop = noop; }, created: function created() { // properties 中可能会访问 methods,故需要在 created 中初始化 initState(this); initMethods(this); initRelations(this); }, mounted: function mounted() { handleObservers(this); }, destroyed: function destroyed() { handleRelations(this, 'unlinked'); } }; global.__wxRoute = ''; global.__wxComponents = Object.create(null); global.__wxVueOptions = Object.create(null); function Page(options) { var pageOptions = parsePage(options); pageOptions.mixins.unshift(polyfill); pageOptions.mpOptions.path = global.__wxRoute; global.__wxComponents[global.__wxRoute] = pageOptions; } function initRelationsHandler(vueComponentOptions) { // linked 需要在当前组件 attached 之后再执行 if (!vueComponentOptions.onServiceAttached) { vueComponentOptions.onServiceAttached = []; } vueComponentOptions.onServiceAttached.push(function onServiceAttached() { handleRelations(this, 'linked'); }); } function Component(options) { var componentOptions = parseComponent(options); componentOptions.mixins.unshift(polyfill); componentOptions.mpOptions.path = global.__wxRoute; initRelationsHandler(componentOptions); global.__wxComponents[global.__wxRoute] = componentOptions; } function Behavior(options) { return options; } var nextTick = _vue.default.nextTick; exports.nextTick = nextTick; var index = uni.__$wx__; var _default = index; exports.default = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 52))) /***/ }), /* 379 */ /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ 24); var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 21); var isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ 380); var construct = __webpack_require__(/*! ./construct.js */ 381); function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return construct(Class, arguments, getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return setPrototypeOf(Wrapper, Class); }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _wrapNativeSuper(Class); } module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 380 */ /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } } module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 381 */ /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/construct.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 21); var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ 382); function _construct(t, e, r) { if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && setPrototypeOf(p, r.prototype), p; } module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 382 */ /*!*************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); } module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /* 383 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages.json?{"type":"origin-pages-json"} ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { "easycom": { "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue" }, "pages": [{ "path": "pages/login/login", "style": { "navigationBarTitleText": "" } }, { "path": "pages/xcrw/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/xcrw/detail/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/stlljk/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/spjk/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/spjk/spbf/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/aqjc/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/rain/rain", "style": { "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/homeIndex/index", "style": { "navigationBarTitleText": "", "enablePullDownRefresh": true, "app-plus": { "pullToRefresh": { "support": true, "style": "default", "offset": "70px" } } } }, { "path": "pages/xxsb/index", "style": { "navigationBarTitleText": "信息上报" } }, { "path": "pages/xxsb/from", "style": { "navigationBarTitleText": "" } }, { "path": "pages/xxsb/fromSeverity", "style": { "navigationBarTitleText": "" } }, { "path": "pages/xxsb/dsfrom", "style": { "navigationBarTitleText": "" } }, { "path": "pages/xxsb/map", "style": { "navigationBarTitleText": "地图示例" } }, { "path": "pages/gqzq/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/gqxx", "style": { "navigationBarTitleText": "工情信息" } }, { "path": "pages/gqzq/zqxx", "style": { "navigationBarTitleText": "灾情信息" } }, { "path": "pages/gqzq/detail/index", "style": { "navigationBarTitleText": "查看" } }, { "path": "pages/mypage/mypage", "style": { "navigationBarTitleText": "" } }, { "path": "pages/personInfo/personInfo", "style": { "navigationBarTitleText": "" } }, { "path": "pages/modifyPassword/modifyPassword", "style": { "navigationBarTitleText": "" } }, { "path": "pages/forewarning/forewarning", "style": { "navigationBarTitleText": "" } }, { "path": "pages/forewarning/sh", "style": { "navigationBarTitleText": "" } }, { "path": "pages/forewarning/shInformation/shInformation", "style": { "navigationBarTitleText": "" } }, { "path": "pages/addressBook/addressBook", "style": { "navigationBarTitleText": "" } }, { "path": "pages/water/water", "style": { "navigationBarTitleText": "", "enablePullDownRefresh": false }, "onMessage": "handleMessage" }, { "path": "pages/rainDetail/rainDetail", "style": { "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/hdDetail/hdDetail", "style": { "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/skDetail/skDetail", "style": { "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/addressBook/follow", "style": { "navigationBarTitleText": "" } }, { "path": "pages/addressBook/myDept", "style": { "navigationBarTitleText": "" } }, { "path": "pages/orderFeedback/orderFeedback", "style": { "navigationBarTitleText": "" } }, { "path": "pages/orderFeedback/orderInformation", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/gqxx/gqxx", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/gqxx/qk", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/gqxx/xq", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/gqxx/qkForm", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/gqxx/xqForm", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/zqxx/zqxx", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/zqxx/table", "style": { "navigationBarTitleText": "" } }, { "path": "pages/gqzq/zqxx/form", "style": { "navigationBarTitleText": "" } }, { "path": "pages/wxyh/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/wtcl/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/wtcl/detail/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/yj/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/yj/detail/qxyj", "style": { "navigationBarTitleText": "" } }, { "path": "pages/yj/detail/wyyj", "style": { "navigationBarTitleText": "" } }, { "path": "pages/yj/detail/aiyj", "style": { "navigationBarTitleText": "" } }, { "path": "pages/messageList/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/messageList/detail/index", "style": { "navigationBarTitleText": "" } }, { "path": "pages/skInfo/detail/index", "style": { "navigationBarTitleText": "" } }], "usingComponents": { "map": "/uni_modules/@dcloudio/uni-map/components/uni-map/uni-map" }, "tabBar": { "color": "#333333", "selectedColor": "#59A7FF", "list": [{ "pagePath": "pages/homeIndex/index", "iconPath": "/static/tabs/home.png", "selectedIconPath": "static/tabs/home2.png", "text": "首页" }, { "pagePath": "pages/addressBook/addressBook", "iconPath": "/static/tabs/phone_icon@2x.png", "selectedIconPath": "static/tabs/phone_icon@2x2.png", "text": "通讯录" }, { "pagePath": "pages/mypage/mypage", "iconPath": "/static/images/my2_icon@2x.png", "selectedIconPath": "static/images/my2_icon@2x2.png", "text": "我的" }] }, "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "backgroundColorTop": "transparent", "navigationStyle": "custom", "app-plus": { "background": "#efeff4" } }, "subPackages": [{ "root": "subpkg", "pages": [{ "path": "rainDetail/rainDetail" }] }] }; exports.default = _default; /***/ }), /* 384 */ /*!***********************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages.json?{"type":"stat"} ***! \***********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { "appid": "__UNI__CB311EF" }; exports.default = _default; /***/ }), /* 385 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {/*\r\n * uCharts (R)\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (C) 2018-2022 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts (R) 官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 159));\nvar _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 4));\nvar config = {\n version: 'v2.5.0-20230101',\n yAxisWidth: 15,\n xAxisHeight: 22,\n padding: [10, 10, 10, 10],\n rotate: false,\n fontSize: 13,\n fontColor: '#666666',\n dataPointShape: ['circle', 'circle', 'circle', 'circle'],\n color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\n linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\n pieChartLinePadding: 15,\n pieChartTextPadding: 5,\n titleFontSize: 20,\n subtitleFontSize: 15,\n radarLabelTextMargin: 13\n};\nvar assign = function assign(target) {\n for (var _len2 = arguments.length, varArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n varArgs[_key2 - 1] = arguments[_key2];\n }\n if (target == null) {\n throw new TypeError('[uCharts] Cannot convert undefined or null to object');\n }\n if (!varArgs || varArgs.length <= 0) {\n return target;\n }\n // 深度合并对象\n function deepAssign(obj1, obj2) {\n for (var key in obj2) {\n obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ? deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\n }\n return obj1;\n }\n varArgs.forEach(function (val) {\n target = deepAssign(target, val);\n });\n return target;\n};\nvar util = {\n toFixed: function toFixed(num, limit) {\n limit = limit || 2;\n if (this.isFloat(num)) {\n num = num.toFixed(limit);\n }\n return num;\n },\n isFloat: function isFloat(num) {\n return num % 1 !== 0;\n },\n approximatelyEqual: function approximatelyEqual(num1, num2) {\n return Math.abs(num1 - num2) < 1e-10;\n },\n isSameSign: function isSameSign(num1, num2) {\n return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\n },\n isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\n return this.isSameSign(p1.x, p2.x);\n },\n isCollision: function isCollision(obj1, obj2) {\n obj1.end = {};\n obj1.end.x = obj1.start.x + obj1.width;\n obj1.end.y = obj1.start.y - obj1.height;\n obj2.end = {};\n obj2.end.x = obj2.start.x + obj2.width;\n obj2.end.y = obj2.start.y - obj2.height;\n var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\n return !flag;\n }\n};\n\n//兼容H5点击事件\nfunction getH5Offset(e) {\n e.mp = {\n changedTouches: []\n };\n e.mp.changedTouches.push({\n x: e.offsetX,\n y: e.offsetY\n });\n return e;\n}\n\n// hex 转 rgba\nfunction hexToRgb(hexValue, opc) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\n}\nfunction findRange(num, type, limit) {\n if (isNaN(num)) {\n throw new Error('[uCharts] series数据需为Number格式');\n }\n limit = limit || 10;\n type = type ? type : 'upper';\n var multiple = 1;\n while (limit < 1) {\n limit *= 10;\n multiple *= 10;\n }\n if (type === 'upper') {\n num = Math.ceil(num * multiple);\n } else {\n num = Math.floor(num * multiple);\n }\n while (num % limit !== 0) {\n if (type === 'upper') {\n if (num == num + 1) {\n //修复数据值过大num++无效的bug by 向日葵 @xrk_jy\n break;\n }\n num++;\n } else {\n num--;\n }\n }\n return num / multiple;\n}\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\n var seriesTemp = [];\n for (var k = 0; k < dayArr.length; k++) {\n var seriesItem = {\n data: [],\n name: nameArr[k],\n color: colorArr[k]\n };\n for (var i = 0, len = kdata.length; i < len; i++) {\n if (i < dayArr[k]) {\n seriesItem.data.push(null);\n continue;\n }\n var sum = 0;\n for (var j = 0; j < dayArr[k]; j++) {\n sum += kdata[i - j][1];\n }\n seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\n }\n seriesTemp.push(seriesItem);\n }\n return seriesTemp;\n}\nfunction calValidDistance(self, distance, chartData, config, opts) {\n var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\n var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n dataChartWidth += (opts.extra.mount.widthRatio - 1) * chartData.eachSpacing;\n }\n var validDistance = distance;\n if (distance >= 0) {\n validDistance = 0;\n self.uevent.trigger('scrollLeft');\n self.scrollOption.position = 'left';\n opts.xAxis.scrollPosition = 'left';\n } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\n validDistance = dataChartAreaWidth - dataChartWidth;\n self.uevent.trigger('scrollRight');\n self.scrollOption.position = 'right';\n opts.xAxis.scrollPosition = 'right';\n } else {\n self.scrollOption.position = distance;\n opts.xAxis.scrollPosition = distance;\n }\n return validDistance;\n}\nfunction isInAngleRange(angle, startAngle, endAngle) {\n function adjust(angle) {\n while (angle < 0) {\n angle += 2 * Math.PI;\n }\n while (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n }\n angle = adjust(angle);\n startAngle = adjust(startAngle);\n endAngle = adjust(endAngle);\n if (startAngle > endAngle) {\n endAngle += 2 * Math.PI;\n if (angle < startAngle) {\n angle += 2 * Math.PI;\n }\n }\n return angle >= startAngle && angle <= endAngle;\n}\nfunction createCurveControlPoints(points, i) {\n function isNotMiddlePoint(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y, points[i + 1].y);\n } else {\n return false;\n }\n }\n function isNotMiddlePointX(points, i) {\n if (points[i - 1] && points[i + 1]) {\n return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x, points[i + 1].x);\n } else {\n return false;\n }\n }\n var a = 0.2;\n var b = 0.2;\n var pAx = null;\n var pAy = null;\n var pBx = null;\n var pBy = null;\n if (i < 1) {\n pAx = points[0].x + (points[1].x - points[0].x) * a;\n pAy = points[0].y + (points[1].y - points[0].y) * a;\n } else {\n pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\n pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\n }\n if (i > points.length - 3) {\n var last = points.length - 1;\n pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\n pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\n } else {\n pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\n pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\n }\n if (isNotMiddlePoint(points, i + 1)) {\n pBy = points[i + 1].y;\n }\n if (isNotMiddlePoint(points, i)) {\n pAy = points[i].y;\n }\n if (isNotMiddlePointX(points, i + 1)) {\n pBx = points[i + 1].x;\n }\n if (isNotMiddlePointX(points, i)) {\n pAx = points[i].x;\n }\n if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\n pAy = points[i].y;\n }\n if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\n pBy = points[i + 1].y;\n }\n if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\n pAx = points[i].x;\n }\n if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\n pBx = points[i + 1].x;\n }\n return {\n ctrA: {\n x: pAx,\n y: pAy\n },\n ctrB: {\n x: pBx,\n y: pBy\n }\n };\n}\nfunction convertCoordinateOrigin(x, y, center) {\n return {\n x: center.x + x,\n y: center.y - y\n };\n}\nfunction avoidCollision(obj, target) {\n if (target) {\n // is collision test\n while (util.isCollision(obj, target)) {\n if (obj.start.x > 0) {\n obj.start.y--;\n } else if (obj.start.x < 0) {\n obj.start.y++;\n } else {\n if (obj.start.y > 0) {\n obj.start.y++;\n } else {\n obj.start.y--;\n }\n }\n }\n }\n return obj;\n}\nfunction fixPieSeries(series, opts, config) {\n var pieSeriesArr = [];\n if (series.length > 0 && series[0].data.constructor.toString().indexOf('Array') > -1) {\n opts._pieSeries_ = series;\n var oldseries = series[0].data;\n for (var i = 0; i < oldseries.length; i++) {\n oldseries[i].formatter = series[0].formatter;\n oldseries[i].data = oldseries[i].value;\n pieSeriesArr.push(oldseries[i]);\n }\n opts.series = pieSeriesArr;\n } else {\n pieSeriesArr = series;\n }\n return pieSeriesArr;\n}\nfunction fillSeries(series, opts, config) {\n var index = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (!item.color) {\n item.color = config.color[index];\n index = (index + 1) % config.color.length;\n }\n if (!item.linearIndex) {\n item.linearIndex = i;\n }\n if (!item.index) {\n item.index = 0;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (typeof item.show == \"undefined\") {\n item.show = true;\n }\n if (!item.type) {\n item.type = opts.type;\n }\n if (!item.pointShape) {\n item.pointShape = \"circle\";\n }\n if (!item.legendShape) {\n switch (item.type) {\n case 'line':\n item.legendShape = \"line\";\n break;\n case 'column':\n case 'bar':\n item.legendShape = \"rect\";\n break;\n case 'area':\n case 'mount':\n item.legendShape = \"triangle\";\n break;\n default:\n item.legendShape = \"circle\";\n }\n }\n }\n return series;\n}\nfunction fillCustomColor(linearType, customColor, series, config) {\n var newcolor = customColor || [];\n if (linearType == 'custom' && newcolor.length == 0) {\n newcolor = config.linearColor;\n }\n if (linearType == 'custom' && newcolor.length < series.length) {\n var chazhi = series.length - newcolor.length;\n for (var i = 0; i < chazhi; i++) {\n newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\n }\n }\n return newcolor;\n}\nfunction getDataRange(minData, maxData) {\n var limit = 0;\n var range = maxData - minData;\n if (range >= 10000) {\n limit = 1000;\n } else if (range >= 1000) {\n limit = 100;\n } else if (range >= 100) {\n limit = 10;\n } else if (range >= 10) {\n limit = 5;\n } else if (range >= 1) {\n limit = 1;\n } else if (range >= 0.1) {\n limit = 0.1;\n } else if (range >= 0.01) {\n limit = 0.01;\n } else if (range >= 0.001) {\n limit = 0.001;\n } else if (range >= 0.0001) {\n limit = 0.0001;\n } else if (range >= 0.00001) {\n limit = 0.00001;\n } else {\n limit = 0.000001;\n }\n return {\n minRange: findRange(minData, 'lower', limit),\n maxRange: findRange(maxData, 'upper', limit)\n };\n}\nfunction measureText(text, fontSize, context) {\n var width = 0;\n text = String(text);\n if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\n context.setFontSize(fontSize);\n return context.measureText(text).width;\n } else {\n var text = text.split('');\n for (var i = 0; i < text.length; i++) {\n var item = text[i];\n if (/[a-zA-Z]/.test(item)) {\n width += 7;\n } else if (/[0-9]/.test(item)) {\n width += 5.5;\n } else if (/\\./.test(item)) {\n width += 2.7;\n } else if (/-/.test(item)) {\n width += 3.25;\n } else if (/:/.test(item)) {\n width += 2.5;\n } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\n width += 10;\n } else if (/\\(|\\)/.test(item)) {\n width += 3.73;\n } else if (/\\s/.test(item)) {\n width += 2.5;\n } else if (/%/.test(item)) {\n width += 8;\n } else {\n width += 10;\n }\n }\n return width * fontSize / 10;\n }\n}\nfunction dataCombine(series) {\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data);\n }, []);\n}\nfunction dataCombineStack(series, len) {\n var sum = new Array(len);\n for (var j = 0; j < sum.length; j++) {\n sum[j] = 0;\n }\n for (var i = 0; i < series.length; i++) {\n for (var j = 0; j < sum.length; j++) {\n sum[j] += series[i].data[j];\n }\n }\n return series.reduce(function (a, b) {\n return (a.data ? a.data : a).concat(b.data).concat(sum);\n }, []);\n}\nfunction getTouches(touches, opts, e) {\n var x, y;\n if (touches.clientX) {\n if (opts.rotate) {\n y = opts.height - touches.clientX * opts.pix;\n x = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n } else {\n x = touches.clientX * opts.pix;\n y = (touches.pageY - e.currentTarget.offsetTop - opts.height / opts.pix / 2 * (opts.pix - 1)) * opts.pix;\n }\n } else {\n if (opts.rotate) {\n y = opts.height - touches.x * opts.pix;\n x = touches.y * opts.pix;\n } else {\n x = touches.x * opts.pix;\n y = touches.y * opts.pix;\n }\n }\n return {\n x: x,\n y: y\n };\n}\nfunction getSeriesDataItem(series, index, group) {\n var data = [];\n var newSeries = [];\n var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\n if (indexIsArr) {\n var tempSeries = filterSeries(series);\n for (var i = 0; i < group.length; i++) {\n newSeries.push(tempSeries[group[i]]);\n }\n } else {\n newSeries = series;\n }\n ;\n for (var _i = 0; _i < newSeries.length; _i++) {\n var item = newSeries[_i];\n var tmpindex = -1;\n if (indexIsArr) {\n tmpindex = index[_i];\n } else {\n tmpindex = index;\n }\n if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\n var seriesItem = {};\n seriesItem.color = item.color;\n seriesItem.type = item.type;\n seriesItem.style = item.style;\n seriesItem.pointShape = item.pointShape;\n seriesItem.disableLegend = item.disableLegend;\n seriesItem.legendShape = item.legendShape;\n seriesItem.name = item.name;\n seriesItem.show = item.show;\n seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\n data.push(seriesItem);\n }\n }\n return data;\n}\nfunction getMaxTextListLength(list, fontSize, context) {\n var lengthList = list.map(function (item) {\n return measureText(item, fontSize, context);\n });\n return Math.max.apply(null, lengthList);\n}\nfunction getRadarCoordinateSeries(length) {\n var eachAngle = 2 * Math.PI / length;\n var CoordinateSeries = [];\n for (var i = 0; i < length; i++) {\n CoordinateSeries.push(eachAngle * i);\n }\n return CoordinateSeries.map(function (item) {\n return -1 * item + Math.PI / 2;\n });\n}\nfunction getToolTipData(seriesData, opts, index, group, categories) {\n var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var calPoints = opts.chartData.calPoints ? opts.chartData.calPoints : [];\n var points = {};\n if (group.length > 0) {\n var filterPoints = [];\n for (var i = 0; i < group.length; i++) {\n filterPoints.push(calPoints[group[i]]);\n }\n points = filterPoints[0][index[0]];\n } else {\n for (var _i2 = 0; _i2 < calPoints.length; _i2++) {\n if (calPoints[_i2][index]) {\n points = calPoints[_i2][index];\n break;\n }\n }\n }\n ;\n var textList = seriesData.map(function (item) {\n var titleText = null;\n if (opts.categories && opts.categories.length > 0) {\n titleText = categories[index];\n }\n ;\n return {\n text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\n color: item.color,\n legendShape: opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : opts.extra.tooltip.legendShape\n };\n });\n var offset = {\n x: Math.round(points.x),\n y: Math.round(points.y)\n };\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction getMixToolTipData(seriesData, opts, index, categories) {\n var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\n color: item.color,\n disableLegend: item.disableLegend ? true : false,\n legendShape: opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : opts.extra.tooltip.legendShape\n };\n });\n textList = textList.filter(function (item) {\n if (item.disableLegend !== true) {\n return item;\n }\n });\n var offset = {\n x: Math.round(points),\n y: 0\n };\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\n var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var calPoints = opts.chartData.calPoints;\n var upColor = extra.color.upFill;\n var downColor = extra.color.downFill;\n //颜色顺序为开盘,收盘,最低,最高\n var color = [upColor, upColor, downColor, upColor];\n var textList = [];\n seriesData.map(function (item) {\n if (index == 0) {\n if (item.data[1] - item.data[0] < 0) {\n color[1] = downColor;\n } else {\n color[1] = upColor;\n }\n } else {\n if (item.data[0] < series[index - 1][1]) {\n color[0] = downColor;\n }\n if (item.data[1] < item.data[0]) {\n color[1] = downColor;\n }\n if (item.data[2] > series[index - 1][1]) {\n color[2] = upColor;\n }\n if (item.data[3] < series[index - 1][1]) {\n color[3] = downColor;\n }\n }\n var text1 = {\n text: '开盘:' + item.data[0],\n color: color[0],\n legendShape: opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : opts.extra.tooltip.legendShape\n };\n var text2 = {\n text: '收盘:' + item.data[1],\n color: color[1],\n legendShape: opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : opts.extra.tooltip.legendShape\n };\n var text3 = {\n text: '最低:' + item.data[2],\n color: color[2],\n legendShape: opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : opts.extra.tooltip.legendShape\n };\n var text4 = {\n text: '最高:' + item.data[3],\n color: color[3],\n legendShape: opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : opts.extra.tooltip.legendShape\n };\n textList.push(text1, text2, text3, text4);\n });\n var validCalPoints = [];\n var offset = {\n x: 0,\n y: 0\n };\n for (var i = 0; i < calPoints.length; i++) {\n var points = calPoints[i];\n if (typeof points[index] !== 'undefined' && points[index] !== null) {\n validCalPoints.push(points[index]);\n }\n }\n offset.x = Math.round(validCalPoints[0][0].x);\n return {\n textList: textList,\n offset: offset\n };\n}\nfunction filterSeries(series) {\n var tempSeries = [];\n for (var i = 0; i < series.length; i++) {\n if (series[i].show == true) {\n tempSeries.push(series[i]);\n }\n }\n return tempSeries;\n}\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = {\n index: -1,\n group: []\n };\n var spacing = opts.chartData.eachSpacing / 2;\n var xAxisPoints = [];\n if (calPoints && calPoints.length > 0) {\n if (!opts.categories) {\n spacing = 0;\n } else {\n for (var i = 1; i < opts.chartData.xAxisPoints.length; i++) {\n xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\n }\n if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\n xAxisPoints = opts.chartData.xAxisPoints;\n }\n }\n if (isInExactChartArea(currentPoints, opts, config)) {\n if (!opts.categories) {\n var timePoints = Array(calPoints.length);\n for (var _i3 = 0; _i3 < calPoints.length; _i3++) {\n timePoints[_i3] = Array(calPoints[_i3].length);\n for (var j = 0; j < calPoints[_i3].length; j++) {\n timePoints[_i3][j] = Math.abs(calPoints[_i3][j].x - currentPoints.x);\n }\n }\n ;\n var pointValue = Array(timePoints.length);\n var pointIndex = Array(timePoints.length);\n for (var _i4 = 0; _i4 < timePoints.length; _i4++) {\n pointValue[_i4] = Math.min.apply(null, timePoints[_i4]);\n pointIndex[_i4] = timePoints[_i4].indexOf(pointValue[_i4]);\n }\n var minValue = Math.min.apply(null, pointValue);\n current.index = [];\n for (var _i5 = 0; _i5 < pointValue.length; _i5++) {\n if (pointValue[_i5] == minValue) {\n current.group.push(_i5);\n current.index.push(pointIndex[_i5]);\n }\n }\n ;\n } else {\n xAxisPoints.forEach(function (item, index) {\n if (currentPoints.x + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n }\n return current;\n}\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var current = {\n index: -1,\n group: []\n };\n var spacing = opts.chartData.eachSpacing / 2;\n var yAxisPoints = opts.chartData.yAxisPoints;\n if (calPoints && calPoints.length > 0) {\n if (isInExactChartArea(currentPoints, opts, config)) {\n yAxisPoints.forEach(function (item, index) {\n if (currentPoints.y + offset + spacing > item) {\n current.index = index;\n }\n });\n }\n }\n return current;\n}\nfunction findLegendIndex(currentPoints, legendData, opts) {\n var currentIndex = -1;\n var gap = 0;\n if (isInExactLegendArea(currentPoints, legendData.area)) {\n var points = legendData.points;\n var index = -1;\n for (var i = 0, len = points.length; i < len; i++) {\n var item = points[i];\n for (var j = 0; j < item.length; j++) {\n index += 1;\n var area = item[j]['area'];\n if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\n currentIndex = index;\n break;\n }\n }\n }\n return currentIndex;\n }\n return currentIndex;\n}\nfunction isInExactLegendArea(currentPoints, area) {\n return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\n}\nfunction isInExactChartArea(currentPoints, opts, config) {\n return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\n}\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\n var eachAngleArea = 2 * Math.PI / count;\n var currentIndex = -1;\n if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\n var fixAngle = function fixAngle(angle) {\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n if (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n return angle;\n };\n var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\n angle = -1 * angle;\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n var angleList = radarData.angleList.map(function (item) {\n item = fixAngle(-1 * item);\n return item;\n });\n angleList.forEach(function (item, index) {\n var rangeStart = fixAngle(item - eachAngleArea / 2);\n var rangeEnd = fixAngle(item + eachAngleArea / 2);\n if (rangeEnd < rangeStart) {\n rangeEnd += 2 * Math.PI;\n }\n if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\n currentIndex = index;\n }\n });\n }\n return currentIndex;\n}\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\n var currentIndex = -1;\n for (var i = 0, len = funnelData.series.length; i < len; i++) {\n var item = funnelData.series[i];\n if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\n var currentIndex = -1;\n for (var i = 0, len = wordData.length; i < len; i++) {\n var item = wordData[i];\n if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findMapChartCurrentIndex(currentPoints, opts) {\n var currentIndex = -1;\n var cData = opts.chartData.mapData;\n var data = opts.series;\n var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\n var poi = [tmp.x, tmp.y];\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i].geometry.coordinates;\n if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\n currentIndex = i;\n break;\n }\n }\n return currentIndex;\n}\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.rose && opts.extra.rose.offsetAngle) {\n angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\n var currentIndex = -1;\n var series = getPieDataPoints(pieData.series);\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\n angle = -angle;\n if (opts.extra.pie && opts.extra.pie.offsetAngle) {\n angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\n }\n if (opts.extra.ring && opts.extra.ring.offsetAngle) {\n angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\n }\n for (var i = 0, len = series.length; i < len; i++) {\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\n currentIndex = i;\n break;\n }\n }\n }\n return currentIndex;\n}\nfunction isInExactPieChartArea(currentPoints, center, radius) {\n return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\n}\nfunction splitPoints(points, eachSeries) {\n var newPoints = [];\n var items = [];\n points.forEach(function (item, index) {\n if (eachSeries.connectNulls) {\n if (item !== null) {\n items.push(item);\n }\n } else {\n if (item !== null) {\n items.push(item);\n } else {\n if (items.length) {\n newPoints.push(items);\n }\n items = [];\n }\n }\n });\n if (items.length) {\n newPoints.push(items);\n }\n return newPoints;\n}\nfunction calLegendData(series, opts, config, chartData, context) {\n var legendData = {\n area: {\n start: {\n x: 0,\n y: 0\n },\n end: {\n x: 0,\n y: 0\n },\n width: 0,\n height: 0,\n wholeWidth: 0,\n wholeHeight: 0\n },\n points: [],\n widthArr: [],\n heightArr: []\n };\n if (opts.legend.show === false) {\n chartData.legendData = legendData;\n return legendData;\n }\n var padding = opts.legend.padding * opts.pix;\n var margin = opts.legend.margin * opts.pix;\n var fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n var legendList = [];\n var widthCount = 0;\n var widthCountArr = [];\n var currentRow = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var legendText = item.legendText ? item.legendText : item.name;\n var itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n widthCount = itemWidth;\n currentRow = [item];\n } else {\n widthCount += itemWidth;\n currentRow.push(item);\n }\n }\n if (currentRow.length) {\n legendList.push(currentRow);\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\n legendData.widthArr = widthCountArr;\n var legendWidth = Math.max.apply(null, widthCountArr);\n switch (opts.legend.float) {\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\n legendData.area.end.x = opts.width - opts.area[1];\n break;\n default:\n legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\n legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;\n }\n legendData.area.width = legendWidth + 2 * padding;\n legendData.area.wholeWidth = legendWidth + 2 * padding;\n legendData.area.height = legendList.length * lineHeight + 2 * padding;\n legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\n legendData.points = legendList;\n }\n } else {\n var len = series.length;\n var maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\n var maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\n legendData.area.height = maxLength * lineHeight + padding * 2;\n legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\n switch (opts.legend.float) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n default:\n legendData.area.start.y = (opts.height - legendData.area.height) / 2;\n legendData.area.end.y = (opts.height + legendData.area.height) / 2;\n }\n var lineNum = len % maxLength === 0 ? len / maxLength : Math.floor(len / maxLength + 1);\n var _currentRow = [];\n for (var _i6 = 0; _i6 < lineNum; _i6++) {\n var temp = series.slice(_i6 * maxLength, _i6 * maxLength + maxLength);\n _currentRow.push(temp);\n }\n legendData.points = _currentRow;\n if (_currentRow.length) {\n for (var _i7 = 0; _i7 < _currentRow.length; _i7++) {\n var _item = _currentRow[_i7];\n var maxWidth = 0;\n for (var j = 0; j < _item.length; j++) {\n var _itemWidth = shapeWidth + shapeRight + measureText(_item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\n if (_itemWidth > maxWidth) {\n maxWidth = _itemWidth;\n }\n }\n legendData.widthArr.push(maxWidth);\n legendData.heightArr.push(_item.length * lineHeight + padding * 2);\n }\n var _legendWidth = 0;\n for (var _i8 = 0; _i8 < legendData.widthArr.length; _i8++) {\n _legendWidth += legendData.widthArr[_i8];\n }\n legendData.area.width = _legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\n legendData.area.wholeWidth = legendData.area.width + padding;\n }\n }\n switch (opts.legend.position) {\n case 'top':\n legendData.area.start.y = opts.area[0] + margin;\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\n break;\n case 'bottom':\n legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\n legendData.area.end.y = opts.height - opts.area[2] - margin;\n break;\n case 'left':\n legendData.area.start.x = opts.area[3];\n legendData.area.end.x = opts.area[3] + legendData.area.width;\n break;\n case 'right':\n legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\n legendData.area.end.x = opts.width - opts.area[1];\n break;\n }\n chartData.legendData = legendData;\n return legendData;\n}\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\n var result = {\n angle: 0,\n xAxisHeight: opts.xAxis.lineHeight * opts.pix + opts.xAxis.marginTop * opts.pix\n };\n var fontSize = opts.xAxis.fontSize * opts.pix;\n var categoriesTextLenth = categories.map(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n return measureText(String(xitem), fontSize, context);\n });\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\n if (opts.xAxis.rotateLabel == true) {\n result.angle = opts.xAxis.rotateAngle * Math.PI / 180;\n var tempHeight = opts.xAxis.marginTop * opts.pix * 2 + Math.abs(maxTextLength * Math.sin(result.angle));\n tempHeight = tempHeight < fontSize + opts.xAxis.marginTop * opts.pix * 2 ? tempHeight + opts.xAxis.marginTop * opts.pix * 2 : tempHeight;\n result.xAxisHeight = tempHeight;\n }\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n result.xAxisHeight += 6 * opts.pix;\n }\n if (opts.xAxis.disabled) {\n result.xAxisHeight = 0;\n }\n return result;\n}\nfunction getXAxisTextList(series, opts, config, stack) {\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if ((0, _typeof2.default)(item) === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[0]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n var minData = 0;\n var maxData = 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n //为了兼容v1.9.0之前的项目\n if (index > -1) {\n if (typeof opts.xAxis.data[index].min === 'number') {\n minData = Math.min(opts.xAxis.data[index].min, minData);\n }\n if (typeof opts.xAxis.data[index].max === 'number') {\n maxData = Math.max(opts.xAxis.data[index].max, maxData);\n }\n } else {\n if (typeof opts.xAxis.min === 'number') {\n minData = Math.min(opts.xAxis.min, minData);\n }\n if (typeof opts.xAxis.max === 'number') {\n maxData = Math.max(opts.xAxis.max, maxData);\n }\n }\n if (minData === maxData) {\n var rangeSpan = maxData || 10;\n maxData += rangeSpan;\n }\n //var dataRange = getDataRange(minData, maxData);\n var minRange = minData;\n var maxRange = maxData;\n var range = [];\n var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\n for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range;\n}\nfunction calXAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\"\n }, opts.extra.bar);\n var result = {\n angle: 0,\n xAxisHeight: opts.xAxis.lineHeight * opts.pix + opts.xAxis.marginTop * opts.pix\n };\n result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\n result.rangesFormat = result.ranges.map(function (item) {\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\n item = util.toFixed(item, 2);\n return item;\n });\n var xAxisScaleValues = result.ranges.map(function (item) {\n // 如果刻度值是浮点数,则保留两位小数\n item = util.toFixed(item, 2);\n // 若有自定义格式则调用自定义的格式化函数\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\n return item;\n });\n result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\n // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\\结束点以及总长\n var eachSpacing = result.eachSpacing;\n var textLength = xAxisScaleValues.map(function (item) {\n return measureText(item, opts.xAxis.fontSize * opts.pix, context);\n });\n if (opts.xAxis.disabled === true) {\n result.xAxisHeight = 0;\n }\n return result;\n}\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var radarOption = opts.extra.radar || {};\n radarOption.max = radarOption.max || 0;\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var data = [];\n var _loop2 = function _loop2(i) {\n var each = series[i];\n var listItem = {};\n listItem.color = each.color;\n listItem.legendShape = each.legendShape;\n listItem.pointShape = each.pointShape;\n listItem.data = [];\n each.data.forEach(function (item, index) {\n var tmp = {};\n tmp.angle = angleList[index];\n tmp.proportion = item / maxData;\n tmp.value = item;\n tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\n listItem.data.push(tmp);\n });\n data.push(listItem);\n };\n for (var i = 0; i < series.length; i++) {\n _loop2(i);\n }\n return data;\n}\nfunction getPieDataPoints(series, radius) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var count = 0;\n var _start_ = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n }\n for (var _i9 = 0; _i9 < series.length; _i9++) {\n var _item2 = series[_i9];\n _item2.data = _item2.data === null ? 0 : _item2.data;\n if (count === 0) {\n _item2._proportion_ = 1 / series.length * process;\n } else {\n _item2._proportion_ = _item2.data / count * process;\n }\n _item2._radius_ = radius;\n }\n for (var _i10 = 0; _i10 < series.length; _i10++) {\n var _item3 = series[_i10];\n _item3._start_ = _start_;\n _start_ += 2 * _item3._proportion_ * Math.PI;\n }\n return series;\n}\nfunction getFunnelDataPoints(series, radius, option, eachSpacing) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n for (var i = 0; i < series.length; i++) {\n if (option.type == 'funnel') {\n series[i].radius = series[i].data / series[0].data * radius * process;\n } else {\n series[i].radius = eachSpacing * (series.length - i) / (eachSpacing * series.length) * radius * process;\n }\n series[i]._proportion_ = series[i].data / series[0].data;\n }\n // if(option.type !== 'pyramid'){\n // series.reverse();\n // }\n return series;\n}\nfunction getRoseDataPoints(series, type, minRadius, radius) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var count = 0;\n var _start_ = 0;\n var dataArr = [];\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n count += item.data;\n dataArr.push(item.data);\n }\n var minData = Math.min.apply(null, dataArr);\n var maxData = Math.max.apply(null, dataArr);\n var radiusLength = radius - minRadius;\n for (var _i11 = 0; _i11 < series.length; _i11++) {\n var _item4 = series[_i11];\n _item4.data = _item4.data === null ? 0 : _item4.data;\n if (count === 0) {\n _item4._proportion_ = 1 / series.length * process;\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._proportion_ = _item4.data / count * process;\n if (type == 'area') {\n _item4._rose_proportion_ = 1 / series.length * process;\n } else {\n _item4._rose_proportion_ = _item4.data / count * process;\n }\n }\n _item4._radius_ = minRadius + radiusLength * ((_item4.data - minData) / (maxData - minData)) || radius;\n }\n for (var _i12 = 0; _i12 < series.length; _i12++) {\n var _item5 = series[_i12];\n _item5._start_ = _start_;\n _start_ += 2 * _item5._rose_proportion_ * Math.PI;\n }\n return series;\n}\nfunction getArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.direction == 'ccw') {\n if (arcbarOption.startAngle < arcbarOption.endAngle) {\n totalAngle = 2 + arcbarOption.startAngle - arcbarOption.endAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (arcbarOption.direction == 'ccw') {\n item._proportion_ = arcbarOption.startAngle - totalAngle * item.data * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getGaugeArcbarDataPoints(series, arcbarOption) {\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n if (process == 1) {\n process = 0.999999;\n }\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n var totalAngle = void 0;\n if (arcbarOption.type == 'circle') {\n totalAngle = 2;\n } else {\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\n } else {\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\n }\n }\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\n var totalAngle;\n if (endAngle < startAngle) {\n totalAngle = 2 + endAngle - startAngle;\n } else {\n totalAngle = startAngle - endAngle;\n }\n var tempStartAngle = startAngle;\n for (var i = 0; i < categories.length; i++) {\n categories[i].value = categories[i].value === null ? 0 : categories[i].value;\n categories[i]._startAngle_ = tempStartAngle;\n categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\n if (categories[i]._endAngle_ >= 2) {\n categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\n }\n tempStartAngle = categories[i]._endAngle_;\n }\n return categories;\n}\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\n var process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n item.data = item.data === null ? 0 : item.data;\n if (gaugeOption.pointer.color == 'auto') {\n for (var _i13 = 0; _i13 < categories.length; _i13++) {\n if (item.data <= categories[_i13].value) {\n item.color = categories[_i13].color;\n break;\n }\n }\n } else {\n item.color = gaugeOption.pointer.color;\n }\n var totalAngle = void 0;\n if (gaugeOption.endAngle < gaugeOption.startAngle) {\n totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle;\n } else {\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle;\n }\n item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\n item._oldAngle_ = gaugeOption.oldAngle;\n if (gaugeOption.oldAngle < gaugeOption.endAngle) {\n item._oldAngle_ += 2;\n }\n if (item.data >= gaugeOption.oldData) {\n item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\n } else {\n item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\n }\n if (item._proportion_ >= 2) {\n item._proportion_ = item._proportion_ % 2;\n }\n }\n return series;\n}\nfunction getPieTextMaxLength(series, config, context, opts) {\n series = getPieDataPoints(series);\n var maxLength = 0;\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\n maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\n }\n return maxLength;\n}\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n if (opts.type == 'mix') {\n seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\n } else {\n seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n }\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\n }\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n var seriesGap = 0;\n var categoryGap = 0;\n seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\n categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen);\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen);\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\n return item;\n });\n}\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item) {\n if (item === null) {\n return null;\n }\n item.width = eachSpacing - 2 * categoryGap;\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (index > 0) {\n item.width -= border;\n }\n return item;\n });\n}\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\n var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\n return points.map(function (item, indexn) {\n if (item === null) {\n return null;\n }\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\n }\n if (item.width <= 0) {\n item.width = 1;\n }\n return item;\n });\n}\nfunction getXAxisPoints(categories, opts, config) {\n var spacingValid = opts.width - opts.area[1] - opts.area[3];\n var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\n if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\n dataCount -= 1;\n }\n var widthRatio = 0;\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n widthRatio = opts.extra.mount.widthRatio - 1;\n dataCount += widthRatio;\n }\n var eachSpacing = spacingValid / dataCount;\n var xAxisPoints = [];\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n categories.forEach(function (item, index) {\n xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);\n });\n if (opts.xAxis.boundaryGap !== 'justify') {\n if (opts.enableScroll === true) {\n xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);\n } else {\n xAxisPoints.push(endX);\n }\n }\n return {\n xAxisPoints: xAxisPoints,\n startX: startX,\n endX: endX,\n eachSpacing: eachSpacing\n };\n}\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var cPoints = [];\n item.forEach(function (items, indexs) {\n var point = {};\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n var value = items.value || items;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n cPoints.push(point);\n });\n points.push(cPoints);\n }\n });\n return points;\n}\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var boundaryGap = 'center';\n if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n var xranges, xminRange, xmaxRange;\n xranges = [].concat(opts.chartData.xAxisData.ranges);\n xminRange = xranges.shift();\n xmaxRange = xranges.pop();\n value = item[1];\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n if (opts.type == 'bubble') {\n point.r = item[2];\n point.t = item[3];\n }\n } else {\n value = item.value;\n }\n }\n if (boundaryGap == 'center') {\n point.x += eachSpacing / 2;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\nfunction getLineDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, lineOption, process) {\n var process = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1;\n var boundaryGap = opts.xAxis.boundaryGap;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n if (lineOption.animation == 'vertical') {\n point.x = xAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n var xranges, xminRange, xmaxRange;\n xranges = [].concat(opts.chartData.xAxisData.ranges);\n xminRange = xranges.shift();\n xmaxRange = xranges.pop();\n value = item[1];\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n } else {\n value = item.value;\n }\n }\n if (boundaryGap == 'center') {\n point.x += eachSpacing / 2;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.y = opts.height - height - opts.area[2];\n points.push(point);\n } else {\n point.x = xAxisPoints[0] + eachSpacing * index * process;\n var value = item;\n if (boundaryGap == 'center') {\n point.x += eachSpacing / 2;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n point.y = opts.height - height - opts.area[2];\n points.push(point);\n }\n }\n });\n return points;\n}\nfunction getColumnDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, zeroPoints, process) {\n var process = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n var xranges, xminRange, xmaxRange;\n xranges = [].concat(opts.chartData.xAxisData.ranges);\n xminRange = xranges.shift();\n xmaxRange = xranges.pop();\n value = item[1];\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\n } else {\n value = item.value;\n }\n }\n point.x += eachSpacing / 2;\n var height = validHeight * (value * process - minRange) / (maxRange - minRange);\n point.y = opts.height - height - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\nfunction getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, zeroPoints) {\n var process = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n var mountWidth = eachSpacing * mountOption.widthRatio;\n series.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index];\n point.x += eachSpacing / 2;\n var value = item.data;\n var height = validHeight * (value * process - minRange) / (maxRange - minRange);\n point.y = opts.height - height - opts.area[2];\n point.value = value;\n point.width = mountWidth;\n points.push(point);\n }\n });\n return points;\n}\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n var validWidth = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validWidth * (value - minRange) / (maxRange - minRange);\n height *= process;\n point.height = height;\n point.value = value;\n point.x = height + opts.area[3];\n points.push(point);\n }\n });\n return points;\n}\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.height - opts.area[0] - opts.area[2];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.y = opts.height - Math.round(height) - opts.area[2];\n point.y0 = opts.height - Math.round(heightc) - opts.area[2];\n points.push(point);\n }\n });\n return points;\n}\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\n var points = [];\n var validHeight = opts.width - opts.area[1] - opts.area[3];\n data.forEach(function (item, index) {\n if (item === null) {\n points.push(null);\n } else {\n var point = {};\n point.color = item.color;\n point.y = yAxisPoints[index];\n if (seriesIndex > 0) {\n var value = 0;\n for (var i = 0; i <= seriesIndex; i++) {\n value += stackSeries[i].data[index];\n }\n var value0 = value - item;\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\n } else {\n var value = item;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n value = item.value;\n }\n var height = validHeight * (value - minRange) / (maxRange - minRange);\n var height0 = 0;\n }\n var heightc = height0;\n height *= process;\n heightc *= process;\n point.height = height - heightc;\n point.x = opts.area[3] + height;\n point.x0 = opts.area[3] + heightc;\n points.push(point);\n }\n });\n return points;\n}\nfunction getYAxisTextList(series, opts, config, stack, yData) {\n var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\n var data;\n if (stack == 'stack') {\n data = dataCombineStack(series, opts.categories.length);\n } else {\n data = dataCombine(series);\n }\n var sorted = [];\n // remove null from data\n data = data.filter(function (item) {\n //return item !== null;\n if ((0, _typeof2.default)(item) === 'object' && item !== null) {\n if (item.constructor.toString().indexOf('Array') > -1) {\n return item !== null;\n } else {\n return item.value !== null;\n }\n } else {\n return item !== null;\n }\n });\n data.map(function (item) {\n if ((0, _typeof2.default)(item) === 'object') {\n if (item.constructor.toString().indexOf('Array') > -1) {\n if (opts.type == 'candle') {\n item.map(function (subitem) {\n sorted.push(subitem);\n });\n } else {\n sorted.push(item[1]);\n }\n } else {\n sorted.push(item.value);\n }\n } else {\n sorted.push(item);\n }\n });\n var minData = yData.min || 0;\n var maxData = yData.max || 0;\n if (sorted.length > 0) {\n minData = Math.min.apply(this, sorted);\n maxData = Math.max.apply(this, sorted);\n }\n if (minData === maxData) {\n if (maxData == 0) {\n maxData = 10;\n } else {\n minData = 0;\n }\n }\n var dataRange = getDataRange(minData, maxData);\n var minRange = yData.min === undefined || yData.min === null ? dataRange.minRange : yData.min;\n var maxRange = yData.max === undefined || yData.max === null ? dataRange.maxRange : yData.max;\n var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\n var range = [];\n for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\n range.push(minRange + eachRange * i);\n }\n return range.reverse();\n}\nfunction calYAxisData(series, opts, config, context) {\n //堆叠图重算Y轴\n var columnstyle = assign({}, {\n type: \"\"\n }, opts.extra.column);\n //如果是多Y轴,重新计算\n var YLength = opts.yAxis.data.length;\n var newSeries = new Array(YLength);\n if (YLength > 0) {\n for (var i = 0; i < YLength; i++) {\n newSeries[i] = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].index == i) {\n newSeries[i].push(series[j]);\n }\n }\n }\n var rangesArr = new Array(YLength);\n var rangesFormatArr = new Array(YLength);\n var yAxisWidthArr = new Array(YLength);\n var _loop3 = function _loop3(_i14) {\n var yData = opts.yAxis.data[_i14];\n //如果总开关不显示,强制每个Y轴为不显示\n if (opts.yAxis.disabled == true) {\n yData.disabled = true;\n }\n if (yData.type === 'categories') {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {\n return val + (yData.unit || '');\n };\n }\n yData.categories = yData.categories || opts.categories;\n rangesArr[_i14] = yData.categories;\n } else {\n if (!yData.formatter) {\n yData.formatter = function (val, index, opts) {\n return util.toFixed(val, yData.tofix || 0) + (yData.unit || '');\n };\n }\n rangesArr[_i14] = getYAxisTextList(newSeries[_i14], opts, config, columnstyle.type, yData, _i14);\n }\n var yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\n yAxisWidthArr[_i14] = {\n position: yData.position ? yData.position : 'left',\n width: 0\n };\n rangesFormatArr[_i14] = rangesArr[_i14].map(function (items, index) {\n items = yData.formatter(items, index, opts);\n yAxisWidthArr[_i14].width = Math.max(yAxisWidthArr[_i14].width, measureText(items, yAxisFontSizes, context) + 5);\n return items;\n });\n var calibration = yData.calibration ? 4 * opts.pix : 0;\n yAxisWidthArr[_i14].width += calibration + 3 * opts.pix;\n if (yData.disabled === true) {\n yAxisWidthArr[_i14].width = 0;\n }\n };\n for (var _i14 = 0; _i14 < YLength; _i14++) {\n _loop3(_i14);\n }\n } else {\n var rangesArr = new Array(1);\n var rangesFormatArr = new Array(1);\n var yAxisWidthArr = new Array(1);\n if (opts.type === 'bar') {\n rangesArr[0] = opts.categories;\n if (!opts.yAxis.formatter) {\n opts.yAxis.formatter = function (val, index, opts) {\n return val + (opts.yAxis.unit || '');\n };\n }\n } else {\n if (!opts.yAxis.formatter) {\n opts.yAxis.formatter = function (val, index, opts) {\n return val.toFixed(opts.yAxis.tofix) + (opts.yAxis.unit || '');\n };\n }\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\n }\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0\n };\n var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\n rangesFormatArr[0] = rangesArr[0].map(function (item, index) {\n item = opts.yAxis.formatter(item, index, opts);\n yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\n return item;\n });\n yAxisWidthArr[0].width += 3 * opts.pix;\n if (opts.yAxis.disabled === true) {\n yAxisWidthArr[0] = {\n position: 'left',\n width: 0\n };\n opts.yAxis.data[0] = {\n disabled: true\n };\n } else {\n opts.yAxis.data[0] = {\n disabled: false,\n position: 'left',\n max: opts.yAxis.max,\n min: opts.yAxis.min,\n formatter: opts.yAxis.formatter\n };\n if (opts.type === 'bar') {\n opts.yAxis.data[0].categories = opts.categories;\n opts.yAxis.data[0].type = 'categories';\n }\n }\n }\n return {\n rangesFormat: rangesFormatArr,\n ranges: rangesArr,\n yAxisWidth: yAxisWidthArr\n };\n}\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\n var ranges = [].concat(opts.chartData.yAxisData.ranges);\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var minAxis = opts.area[0];\n var items = [];\n for (var i = 0; i < ranges.length; i++) {\n var maxVal = Math.max.apply(this, ranges[i]);\n var minVal = Math.min.apply(this, ranges[i]);\n var item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\n item = opts.yAxis.data && opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item, i, opts) : item.toFixed(0);\n items.push(String(item));\n }\n return items;\n}\nfunction calMarkLineData(points, opts) {\n var minRange, maxRange;\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n for (var i = 0; i < points.length; i++) {\n points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\n var range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\n minRange = range.pop();\n maxRange = range.shift();\n var height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\n points[i].y = opts.height - Math.round(height) - opts.area[2];\n }\n return points;\n}\nfunction contextRotate(context, opts) {\n if (opts.rotateLock !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n } else if (opts._rotate_ !== true) {\n context.translate(opts.height, 0);\n context.rotate(90 * Math.PI / 180);\n opts._rotate_ = true;\n }\n}\nfunction drawPointShape(points, color, shape, context, opts) {\n context.beginPath();\n if (opts.dataPointShapeType == 'hollow') {\n context.setStrokeStyle(color);\n context.setFillStyle(opts.background);\n context.setLineWidth(2 * opts.pix);\n } else {\n context.setStrokeStyle(\"#ffffff\");\n context.setFillStyle(color);\n context.setLineWidth(1 * opts.pix);\n }\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'none') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n}\nfunction drawActivePoint(points, color, shape, context, opts, option, seriesIndex) {\n if (!opts.tooltip) {\n return;\n }\n if (opts.tooltip.group.length > 0 && opts.tooltip.group.includes(seriesIndex) == false) {\n return;\n }\n var pointIndex = typeof opts.tooltip.index === 'number' ? opts.tooltip.index : opts.tooltip.index[opts.tooltip.group.indexOf(seriesIndex)];\n context.beginPath();\n if (option.activeType == 'hollow') {\n context.setStrokeStyle(color);\n context.setFillStyle(opts.background);\n context.setLineWidth(2 * opts.pix);\n } else {\n context.setStrokeStyle(\"#ffffff\");\n context.setFillStyle(color);\n context.setLineWidth(1 * opts.pix);\n }\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null && pointIndex == index) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null && pointIndex == index) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null && pointIndex == index) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null && pointIndex == index) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'none') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n}\nfunction drawRingTitle(opts, config, context, center) {\n var titlefontSize = opts.title.fontSize || config.titleFontSize;\n var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\n var title = opts.title.name || '';\n var subtitle = opts.subtitle.name || '';\n var titleFontColor = opts.title.color || opts.fontColor;\n var subtitleFontColor = opts.subtitle.color || opts.fontColor;\n var titleHeight = title ? titlefontSize : 0;\n var subtitleHeight = subtitle ? subtitlefontSize : 0;\n var margin = 5;\n if (subtitle) {\n var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\n var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0) * opts.pix;\n var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\n if (title) {\n startY += (titleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(subtitlefontSize * opts.pix);\n context.setFillStyle(subtitleFontColor);\n context.fillText(subtitle, startX, startY);\n context.closePath();\n context.stroke();\n }\n if (title) {\n var _textWidth = measureText(title, titlefontSize * opts.pix, context);\n var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\n var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\n if (subtitle) {\n _startY -= (subtitleHeight * opts.pix + margin) / 2;\n }\n context.beginPath();\n context.setFontSize(titlefontSize * opts.pix);\n context.setFillStyle(titleFontColor);\n context.fillText(title, _startX, _startY);\n context.closePath();\n context.stroke();\n }\n}\nfunction drawPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if ((0, _typeof2.default)(data[index]) === 'object' && data[index] !== null) {\n if (data[index].constructor.toString().indexOf('Array') > -1) {\n value = data[index][1];\n } else {\n value = data[index].value;\n }\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\nfunction drawColumePointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n var Position = opts.extra.column.labelPosition;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if ((0, _typeof2.default)(data[index]) === 'object' && data[index] !== null) {\n if (data[index].constructor.toString().indexOf('Array') > -1) {\n value = data[index][1];\n } else {\n value = data[index].value;\n }\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n var startY = item.y - 4 * opts.pix + textOffset * opts.pix;\n if (item.y > series.zeroPoints) {\n startY = item.y + textOffset * opts.pix + fontSize;\n }\n if (Position == 'insideTop') {\n startY = item.y + fontSize + textOffset * opts.pix;\n if (item.y > series.zeroPoints) {\n startY = item.y - textOffset * opts.pix - 4 * opts.pix;\n }\n }\n if (Position == 'center') {\n startY = item.y + textOffset * opts.pix + (opts.height - opts.area[2] - item.y + fontSize) / 2;\n if (series.zeroPoints < opts.height - opts.area[2]) {\n startY = item.y + textOffset * opts.pix + (series.zeroPoints - item.y + fontSize) / 2;\n }\n if (item.y > series.zeroPoints) {\n startY = item.y - textOffset * opts.pix - (item.y - series.zeroPoints - fontSize) / 2;\n }\n if (opts.extra.column.type == 'stack') {\n startY = item.y + textOffset * opts.pix + (item.y0 - item.y + fontSize) / 2;\n }\n }\n if (Position == 'bottom') {\n startY = opts.height - opts.area[2] + textOffset * opts.pix - 4 * opts.pix;\n if (series.zeroPoints < opts.height - opts.area[2]) {\n startY = series.zeroPoints + textOffset * opts.pix - 4 * opts.pix;\n }\n if (item.y > series.zeroPoints) {\n startY = series.zeroPoints - textOffset * opts.pix + fontSize + 2 * opts.pix;\n }\n if (opts.extra.column.type == 'stack') {\n startY = item.y0 + textOffset * opts.pix - 4 * opts.pix;\n }\n }\n context.fillText(String(formatVal), item.x, startY);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\nfunction drawMountPointText(points, series, config, context, opts, zeroPoints) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n var Position = opts.extra.mount.labelPosition;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series[index].textColor || opts.fontColor);\n var value = item.value;\n var formatVal = series[index].formatter ? series[index].formatter(value, index, series, opts) : value;\n context.setTextAlign('center');\n var startY = item.y - 4 * opts.pix + textOffset * opts.pix;\n if (item.y > zeroPoints) {\n startY = item.y + textOffset * opts.pix + fontSize;\n }\n context.fillText(String(formatVal), item.x, startY);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n }\n });\n}\nfunction drawBarPointText(points, series, config, context, opts) {\n // 绘制数据文案\n var data = series.data;\n var textOffset = series.textOffset ? series.textOffset : 0;\n points.forEach(function (item, index) {\n if (item !== null) {\n context.beginPath();\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(series.textColor || opts.fontColor);\n var value = data[index];\n if ((0, _typeof2.default)(data[index]) === 'object' && data[index] !== null) {\n value = data[index].value;\n }\n var formatVal = series.formatter ? series.formatter(value, index, series, opts) : value;\n context.setTextAlign('left');\n context.fillText(String(formatVal), item.x + 4 * opts.pix, item.y + fontSize / 2 - 3);\n context.closePath();\n context.stroke();\n }\n });\n}\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\n radius = radius < 10 ? 10 : radius;\n var totalAngle;\n if (gaugeOption.endAngle < gaugeOption.startAngle) {\n totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle;\n } else {\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle;\n }\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\n var splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\n var nowAngle = gaugeOption.startAngle;\n var nowNumber = gaugeOption.startNumber;\n for (var i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\n var pos = {\n x: radius * Math.cos(nowAngle * Math.PI),\n y: radius * Math.sin(nowAngle * Math.PI)\n };\n var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber, i, opts) : nowNumber;\n pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\n pos.y += centerPosition.y;\n var startX = pos.x;\n var startY = pos.y;\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\n context.fillText(labelText, startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n nowAngle += splitAngle;\n if (nowAngle >= 2) {\n nowAngle = nowAngle % 2;\n }\n nowNumber += splitNumber;\n }\n}\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\n var radarOption = opts.extra.radar || {};\n angleList.forEach(function (angle, index) {\n if (radarOption.labelPointShow === true && opts.categories[index] !== '') {\n var posPoint = {\n x: radius * Math.cos(angle),\n y: radius * Math.sin(angle)\n };\n var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);\n context.setFillStyle(radarOption.labelPointColor);\n context.beginPath();\n context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);\n context.closePath();\n context.fill();\n }\n if (radarOption.labelShow === true) {\n var pos = {\n x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),\n y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle)\n };\n var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\n var startX = posRelativeCanvas.x;\n var startY = posRelativeCanvas.y;\n if (util.approximatelyEqual(pos.x, 0)) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\n } else if (pos.x < 0) {\n startX -= measureText(opts.categories[index] || '', config.fontSize, context);\n }\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(radarOption.labelColor || opts.fontColor);\n context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\n context.closePath();\n context.stroke();\n }\n });\n}\nfunction drawPieText(series, opts, config, context, radius, center) {\n var lineRadius = config.pieChartLinePadding;\n var textObjectCollection = [];\n var lastTextObject = null;\n var seriesConvert = series.map(function (item, index) {\n var text = item.formatter ? item.formatter(item, index, series, opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\n text = item.labelText ? item.labelText : text;\n var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\n if (item._rose_proportion_) {\n arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\n }\n var color = item.color;\n var radius = item._radius_;\n return {\n arc: arc,\n text: text,\n color: color,\n radius: radius,\n textColor: item.textColor,\n textSize: item.textSize,\n labelShow: item.labelShow\n };\n });\n for (var i = 0; i < seriesConvert.length; i++) {\n var item = seriesConvert[i];\n // line end\n var orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\n var orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\n // line start\n var orginX2 = Math.cos(item.arc) * item.radius;\n var orginY2 = Math.sin(item.arc) * item.radius;\n // text start\n var orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\n var orginY3 = orginY1;\n var textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\n var startY = orginY3;\n if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\n x: orginX3\n })) {\n if (orginX3 > 0) {\n startY = Math.min(orginY3, lastTextObject.start.y);\n } else if (orginX1 < 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n if (orginY3 > 0) {\n startY = Math.max(orginY3, lastTextObject.start.y);\n } else {\n startY = Math.min(orginY3, lastTextObject.start.y);\n }\n }\n }\n if (orginX3 < 0) {\n orginX3 -= textWidth;\n }\n var textObject = {\n lineStart: {\n x: orginX2,\n y: orginY2\n },\n lineEnd: {\n x: orginX1,\n y: orginY1\n },\n start: {\n x: orginX3,\n y: startY\n },\n width: textWidth,\n height: config.fontSize,\n text: item.text,\n color: item.color,\n textColor: item.textColor,\n textSize: item.textSize\n };\n lastTextObject = avoidCollision(textObject, lastTextObject);\n textObjectCollection.push(lastTextObject);\n }\n for (var _i15 = 0; _i15 < textObjectCollection.length; _i15++) {\n if (seriesConvert[_i15].labelShow === false) {\n continue;\n }\n var _item6 = textObjectCollection[_i15];\n var lineStartPoistion = convertCoordinateOrigin(_item6.lineStart.x, _item6.lineStart.y, center);\n var lineEndPoistion = convertCoordinateOrigin(_item6.lineEnd.x, _item6.lineEnd.y, center);\n var textPosition = convertCoordinateOrigin(_item6.start.x, _item6.start.y, center);\n context.setLineWidth(1 * opts.pix);\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.beginPath();\n context.setStrokeStyle(_item6.color);\n context.setFillStyle(_item6.color);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n var curveStartX = _item6.start.x < 0 ? textPosition.x + _item6.width : textPosition.x;\n var textStartX = _item6.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\n context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(textPosition.x + _item6.width, textPosition.y);\n context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(_item6.textSize * opts.pix || config.fontSize);\n context.setFillStyle(_item6.textColor || opts.fontColor);\n context.fillText(_item6.text, textStartX, textPosition.y + 3);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n}\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\n var toolTipOption = opts.extra.tooltip || {};\n toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\n toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(offsetX, startY);\n context.lineTo(offsetX, endY);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.xAxisLabel) {\n var labelText = opts.categories[opts.tooltip.index];\n context.setFontSize(config.fontSize);\n var textWidth = measureText(labelText, config.fontSize, context);\n var textX = offsetX - 0.5 * textWidth;\n var textY = endY + 2 * opts.pix;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(textX - toolTipOption.boxPadding * opts.pix, textY, textWidth + 2 * toolTipOption.boxPadding * opts.pix, config.fontSize + 2 * toolTipOption.boxPadding * opts.pix);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(String(labelText), textX, textY + toolTipOption.boxPadding * opts.pix + config.fontSize);\n context.closePath();\n context.stroke();\n }\n}\nfunction drawMarkLine(opts, config, context) {\n var markLineOption = assign({}, {\n type: 'solid',\n dashLength: 4,\n data: []\n }, opts.extra.markLine);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var points = calMarkLineData(markLineOption.data, opts);\n for (var i = 0; i < points.length; i++) {\n var item = assign({}, {\n lineColor: '#DE4A42',\n showLabel: false,\n labelFontSize: 13,\n labelPadding: 6,\n labelFontColor: '#666666',\n labelBgColor: '#DFE8FF',\n labelBgOpacity: 0.8,\n labelAlign: 'left',\n labelOffsetX: 0,\n labelOffsetY: 0\n }, points[i]);\n if (markLineOption.type == 'dash') {\n context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\n }\n context.setStrokeStyle(item.lineColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, item.y);\n context.lineTo(endX, item.y);\n context.stroke();\n context.setLineDash([]);\n if (item.showLabel) {\n var fontSize = item.labelFontSize * opts.pix;\n var labelText = item.labelText ? item.labelText : item.value;\n context.setFontSize(fontSize);\n var textWidth = measureText(labelText, fontSize, context);\n var bgWidth = textWidth + item.labelPadding * opts.pix * 2;\n var bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];\n bgStartX += item.labelOffsetX;\n var bgStartY = item.y - 0.5 * fontSize - item.labelPadding * opts.pix;\n bgStartY += item.labelOffsetY;\n var textX = bgStartX + item.labelPadding * opts.pix;\n var textY = item.y;\n context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\n context.setStrokeStyle(item.labelBgColor);\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.rect(bgStartX, bgStartY, bgWidth, fontSize + 2 * item.labelPadding * opts.pix);\n context.closePath();\n context.stroke();\n context.fill();\n context.setFontSize(fontSize);\n context.setTextAlign('left');\n context.setFillStyle(item.labelFontColor);\n context.fillText(String(labelText), textX, bgStartY + fontSize + item.labelPadding * opts.pix / 2);\n context.stroke();\n context.setTextAlign('left');\n }\n }\n}\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n gridType: 'solid',\n dashLength: 4\n }, opts.extra.tooltip);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n if (toolTipOption.gridType == 'dash') {\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\n }\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n context.beginPath();\n context.moveTo(startX, opts.tooltip.offset.y);\n context.lineTo(endX, opts.tooltip.offset.y);\n context.stroke();\n context.setLineDash([]);\n if (toolTipOption.yAxisLabel) {\n var boxPadding = toolTipOption.boxPadding * opts.pix;\n var labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\n var widthArr = opts.chartData.yAxisData.yAxisWidth;\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n for (var i = 0; i < labelText.length; i++) {\n context.setFontSize(toolTipOption.fontSize * opts.pix);\n var textWidth = measureText(labelText[i], toolTipOption.fontSize * opts.pix, context);\n var bgStartX = void 0,\n bgEndX = void 0,\n bgWidth = void 0;\n if (widthArr[i].position == 'left') {\n bgStartX = tStartLeft - (textWidth + boxPadding * 2) - 2 * opts.pix;\n bgEndX = Math.max(bgStartX, bgStartX + textWidth + boxPadding * 2);\n } else {\n bgStartX = tStartRight + 2 * opts.pix;\n bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + boxPadding * 2);\n }\n bgWidth = bgEndX - bgStartX;\n var textX = bgStartX + (bgWidth - textWidth) / 2;\n var textY = opts.tooltip.offset.y;\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\n context.setLineWidth(1 * opts.pix);\n context.rect(bgStartX, textY - 0.5 * config.fontSize - boxPadding, bgWidth, config.fontSize + 2 * boxPadding);\n context.closePath();\n context.stroke();\n context.fill();\n context.beginPath();\n context.setFontSize(config.fontSize);\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\n context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\n context.closePath();\n context.stroke();\n if (widthArr[i].position == 'left') {\n tStartLeft -= widthArr[i].width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\n }\n }\n }\n}\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08,\n activeWidth: eachSpacing\n }, opts.extra.column);\n toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;\n var startY = opts.area[0];\n var endY = opts.height - opts.area[2];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\n var toolTipOption = assign({}, {\n activeBgColor: '#000000',\n activeBgOpacity: 0.08\n }, opts.extra.bar);\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\n context.rect(startX, offsetX - eachSpacing / 2, endX - startX, eachSpacing);\n context.closePath();\n context.fill();\n context.setFillStyle(\"#FFFFFF\");\n}\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\n var toolTipOption = assign({}, {\n showBox: true,\n showArrow: true,\n showCategory: false,\n bgColor: '#000000',\n bgOpacity: 0.7,\n borderColor: '#000000',\n borderWidth: 0,\n borderRadius: 0,\n borderOpacity: 0.7,\n boxPadding: 3,\n fontColor: '#FFFFFF',\n fontSize: 13,\n lineHeight: 20,\n legendShow: true,\n legendShape: 'auto',\n splitLine: true\n }, opts.extra.tooltip);\n if (toolTipOption.showCategory == true && opts.categories) {\n textList.unshift({\n text: opts.categories[opts.tooltip.index],\n color: null\n });\n }\n var fontSize = toolTipOption.fontSize * opts.pix;\n var lineHeight = toolTipOption.lineHeight * opts.pix;\n var boxPadding = toolTipOption.boxPadding * opts.pix;\n var legendWidth = fontSize;\n var legendMarginRight = 5 * opts.pix;\n if (toolTipOption.legendShow == false) {\n legendWidth = 0;\n legendMarginRight = 0;\n }\n var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\n var isOverRightBorder = false;\n if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\n if (toolTipOption.splitLine == true) {\n drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\n }\n }\n offset = assign({\n x: 0,\n y: 0\n }, offset);\n offset.y -= 8 * opts.pix;\n var textWidth = textList.map(function (item) {\n return measureText(item.text, fontSize, context);\n });\n var toolTipWidth = legendWidth + legendMarginRight + 4 * boxPadding + Math.max.apply(null, textWidth);\n var toolTipHeight = 2 * boxPadding + textList.length * lineHeight;\n if (toolTipOption.showBox == false) {\n return;\n }\n // if beyond the right border\n if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\n isOverRightBorder = true;\n }\n if (toolTipHeight + offset.y > opts.height) {\n offset.y = opts.height - toolTipHeight;\n }\n // draw background rect\n context.beginPath();\n context.setFillStyle(hexToRgb(toolTipOption.bgColor, toolTipOption.bgOpacity));\n context.setLineWidth(toolTipOption.borderWidth * opts.pix);\n context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\n var radius = toolTipOption.borderRadius;\n if (isOverRightBorder) {\n // 增加左侧仍然超出的判断\n if (toolTipWidth + arrowWidth > opts.width) {\n offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width);\n }\n if (toolTipWidth > offset.x) {\n offset.x = opts.width + Math.abs(opts._scrollDistance_ || 0) + arrowWidth + (toolTipWidth - opts.width);\n }\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n }\n context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n } else {\n if (toolTipOption.showArrow) {\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\n }\n context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\n context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\n if (toolTipOption.showArrow) {\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\n }\n }\n context.closePath();\n context.fill();\n if (toolTipOption.borderWidth > 0) {\n context.stroke();\n }\n // draw legend\n if (toolTipOption.legendShow) {\n textList.forEach(function (item, index) {\n if (item.color !== null) {\n context.beginPath();\n context.setFillStyle(item.color);\n var startX = offset.x + arrowWidth + 2 * boxPadding;\n var startY = offset.y + (lineHeight - fontSize) / 2 + lineHeight * index + boxPadding + 1;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * boxPadding;\n }\n switch (item.legendShape) {\n case 'line':\n context.moveTo(startX, startY + 0.5 * legendWidth - 2 * opts.pix);\n context.fillRect(startX, startY + 0.5 * legendWidth - 2 * opts.pix, legendWidth, 4 * opts.pix);\n break;\n case 'triangle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * legendWidth + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * legendWidth + 5 * opts.pix);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix);\n break;\n case 'diamond':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * legendWidth);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * legendWidth);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix);\n break;\n case 'circle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth);\n context.arc(startX + 7.5 * opts.pix, startY + 0.5 * legendWidth, 5 * opts.pix, 0, 2 * Math.PI);\n break;\n case 'rect':\n context.moveTo(startX, startY + 0.5 * legendWidth - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * legendWidth - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n break;\n case 'square':\n context.moveTo(startX + 2 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix);\n context.fillRect(startX + 2 * opts.pix, startY + 0.5 * legendWidth - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\n break;\n default:\n context.moveTo(startX, startY + 0.5 * legendWidth - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * legendWidth - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n }\n context.closePath();\n context.fill();\n }\n });\n }\n\n // draw text list\n textList.forEach(function (item, index) {\n var startX = offset.x + arrowWidth + 2 * boxPadding + legendWidth + legendMarginRight;\n if (isOverRightBorder) {\n startX = offset.x - toolTipWidth - arrowWidth + 2 * boxPadding + legendWidth + legendMarginRight;\n }\n var startY = offset.y + lineHeight * index + (lineHeight - fontSize) / 2 - 1 + boxPadding + fontSize;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setTextBaseline('normal');\n context.setFillStyle(toolTipOption.fontColor);\n context.fillText(item.text, startX, startY);\n context.closePath();\n context.stroke();\n });\n}\nfunction drawColumnDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0,\n labelPosition: 'outside'\n }, opts.extra.column);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n\n // 计算0轴坐标\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var zeroHeight = spacingValid * (0 - minRange) / (maxRange - minRange);\n var zeroPoints = opts.height - Math.round(zeroHeight) - opts.area[2];\n eachSeries.zeroPoints = zeroPoints;\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getColumnDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, zeroPoints, process);\n var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, zeroPoints);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y > zeroPoints ? zeroPoints : item.y;\n var width = item.width;\n var _height = Math.abs(zeroPoints - item.y);\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n if (item.y > zeroPoints) {\n columnOption.barBorderRadius = [0, 0, width / 2, width / 2];\n }\n var _columnOption$barBord = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord[0],\n r1 = _columnOption$barBord[1],\n r2 = _columnOption$barBord[2],\n r3 = _columnOption$barBord[3];\n var minRadius = Math.min(width / 2, _height / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, zeroPoints);\n context.lineTo(startX, zeroPoints);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n }\n ;\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i16 = 0; _i16 < points.length; _i16++) {\n var _item7 = points[_i16];\n if (_item7 !== null && _i16 > leftNum && _i16 < rightNum) {\n context.beginPath();\n var fillColor = _item7.color || eachSeries.color;\n var startX = _item7.x - _item7.width / 2 + 1;\n var height = opts.height - _item7.y - opts.area[2];\n var height0 = opts.height - _item7.y0 - opts.area[2];\n if (seriesIndex > 0) {\n height -= height0;\n }\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item7.y);\n context.fillRect(startX, _item7.y, _item7.width, height);\n context.closePath();\n context.fill();\n }\n }\n ;\n break;\n case 'meter':\n // 绘制温度计数据图\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\n for (var _i17 = 0; _i17 < points.length; _i17++) {\n var _item8 = points[_i17];\n if (_item8 !== null && _i17 > leftNum && _i17 < rightNum) {\n //画背景颜色\n context.beginPath();\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(columnOption.meterBorder * opts.pix);\n }\n if (seriesIndex == 0) {\n context.setFillStyle(columnOption.meterFillColor);\n } else {\n context.setFillStyle(_item8.color || eachSeries.color);\n }\n var startX = _item8.x - _item8.width / 2;\n var height = opts.height - _item8.y - opts.area[2];\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var _left = startX;\n var _top = _item8.y;\n var _width = _item8.width;\n var _height2 = zeroPoints - _item8.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [_width / 2, _width / 2, 0, 0];\n }\n var _columnOption$barBord2 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n _r = _columnOption$barBord2[0],\n _r2 = _columnOption$barBord2[1],\n _r3 = _columnOption$barBord2[2],\n _r4 = _columnOption$barBord2[3];\n var _minRadius = Math.min(_width / 2, _height2 / 2);\n _r = _r > _minRadius ? _minRadius : _r;\n _r2 = _r2 > _minRadius ? _minRadius : _r2;\n _r3 = _r3 > _minRadius ? _minRadius : _r3;\n _r4 = _r4 > _minRadius ? _minRadius : _r4;\n _r = _r < 0 ? 0 : _r;\n _r2 = _r2 < 0 ? 0 : _r2;\n _r3 = _r3 < 0 ? 0 : _r3;\n _r4 = _r4 < 0 ? 0 : _r4;\n context.arc(_left + _r, _top + _r, _r, -Math.PI, -Math.PI / 2);\n context.arc(_left + _width - _r2, _top + _r2, _r2, -Math.PI / 2, 0);\n context.arc(_left + _width - _r3, _top + _height2 - _r3, _r3, 0, Math.PI / 2);\n context.arc(_left + _r4, _top + _height2 - _r4, _r4, Math.PI / 2, Math.PI);\n context.fill();\n } else {\n context.moveTo(startX, _item8.y);\n context.lineTo(startX + _item8.width, _item8.y);\n context.lineTo(startX + _item8.width, zeroPoints);\n context.lineTo(startX, zeroPoints);\n context.lineTo(startX, _item8.y);\n context.fill();\n }\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\n context.closePath();\n context.stroke();\n }\n }\n }\n break;\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getColumnDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawColumePointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawColumePointText(points, eachSeries, config, context, opts);\n break;\n case 'meter':\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawColumePointText(points, eachSeries, config, context, opts);\n break;\n }\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawMountDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var mountOption = assign({}, {\n type: 'mount',\n widthRatio: 1,\n borderWidth: 1,\n barBorderCircle: false,\n barBorderRadius: [],\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.mount);\n mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;\n mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n }\n mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n\n // 计算0轴坐标\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var zeroHeight = spacingValid * (0 - minRange) / (maxRange - minRange);\n var zeroPoints = opts.height - Math.round(zeroHeight) - opts.area[2];\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, zeroPoints, process);\n switch (mountOption.type) {\n case 'bar':\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || series[i].color;\n var strokeColor = item.color || series[i].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, zeroPoints);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4 || mountOption.barBorderCircle === true) {\n var left = startX;\n var top = item.y > zeroPoints ? zeroPoints : item.y;\n var width = item.width;\n var _height3 = Math.abs(zeroPoints - item.y);\n if (mountOption.barBorderCircle) {\n mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n if (item.y > zeroPoints) {\n mountOption.barBorderRadius = [0, 0, width / 2, width / 2];\n }\n var _mountOption$barBorde = (0, _slicedToArray2.default)(mountOption.barBorderRadius, 4),\n r0 = _mountOption$barBorde[0],\n r1 = _mountOption$barBorde[1],\n r2 = _mountOption$barBorde[2],\n r3 = _mountOption$barBorde[3];\n var minRadius = Math.min(width / 2, _height3 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height3 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height3 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, zeroPoints);\n context.lineTo(startX, zeroPoints);\n context.lineTo(startX, item.y);\n }\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.closePath();\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'triangle':\n for (var _i18 = 0; _i18 < points.length; _i18++) {\n var _item9 = points[_i18];\n if (_item9 !== null && _i18 > leftNum && _i18 < rightNum) {\n var startX = _item9.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item9.y - opts.area[2];\n context.beginPath();\n var fillColor = _item9.color || series[_i18].color;\n var strokeColor = _item9.color || series[_i18].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item9.y, startX, zeroPoints);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i18].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, zeroPoints);\n context.lineTo(_item9.x, _item9.y);\n context.lineTo(startX + _item9.width, zeroPoints);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'mount':\n for (var _i19 = 0; _i19 < points.length; _i19++) {\n var _item10 = points[_i19];\n if (_item10 !== null && _i19 > leftNum && _i19 < rightNum) {\n var startX = _item10.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item10.y - opts.area[2];\n context.beginPath();\n var fillColor = _item10.color || series[_i19].color;\n var strokeColor = _item10.color || series[_i19].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item10.y, startX, zeroPoints);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i19].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, zeroPoints);\n context.bezierCurveTo(_item10.x - _item10.width / 4, zeroPoints, _item10.x - _item10.width / 4, _item10.y, _item10.x, _item10.y);\n context.bezierCurveTo(_item10.x + _item10.width / 4, _item10.y, _item10.x + _item10.width / 4, zeroPoints, startX + _item10.width, zeroPoints);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n case 'sharp':\n for (var _i20 = 0; _i20 < points.length; _i20++) {\n var _item11 = points[_i20];\n if (_item11 !== null && _i20 > leftNum && _i20 < rightNum) {\n var startX = _item11.x - eachSpacing * mountOption.widthRatio / 2;\n var height = opts.height - _item11.y - opts.area[2];\n context.beginPath();\n var fillColor = _item11.color || series[_i20].color;\n var strokeColor = _item11.color || series[_i20].color;\n if (mountOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, _item11.y, startX, zeroPoints);\n //透明渐变\n if (mountOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[_i20].linearIndex], mountOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n context.moveTo(startX, zeroPoints);\n context.quadraticCurveTo(_item11.x - 0, zeroPoints - height / 4, _item11.x, _item11.y);\n context.quadraticCurveTo(_item11.x + 0, zeroPoints - height / 4, startX + _item11.width, zeroPoints);\n context.setStrokeStyle(strokeColor);\n context.setFillStyle(fillColor);\n if (mountOption.borderWidth > 0) {\n context.setLineWidth(mountOption.borderWidth * opts.pix);\n context.stroke();\n }\n context.fill();\n }\n }\n ;\n break;\n }\n if (opts.dataLabel !== false && process === 1) {\n var _ranges, _minRange, _maxRange;\n _ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\n _minRange = _ranges.pop();\n _maxRange = _ranges.shift();\n var points = getMountDataPoints(series, _minRange, _maxRange, xAxisPoints, eachSpacing, opts, mountOption, zeroPoints, process);\n drawMountPointText(points, series, config, context, opts, zeroPoints);\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: points,\n eachSpacing: eachSpacing\n };\n}\nfunction drawBarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var yAxisPoints = [];\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / opts.categories.length;\n for (var i = 0; i < opts.categories.length; i++) {\n yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\n }\n var columnOption = assign({}, {\n type: 'group',\n width: eachSpacing / 2,\n meterBorder: 4,\n meterFillColor: '#FFFFFF',\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.bar);\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = yAxisPoints.length + 2;\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(tooltipPoints);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n for (var _i21 = 0; _i21 < points.length; _i21++) {\n var item = points[_i21];\n //fix issues/I27B1N yyoinge & Joeshu\n if (item !== null && _i21 > leftNum && _i21 < rightNum) {\n //var startX = item.x - item.width / 2;\n var startX = opts.area[3];\n var startY = item.y - item.width / 2;\n var height = item.height;\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle === true) {\n var left = startX;\n var width = item.width;\n var top = item.y - item.width / 2;\n var _height4 = item.height;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord3 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord3[0],\n r1 = _columnOption$barBord3[1],\n r2 = _columnOption$barBord3[2],\n r3 = _columnOption$barBord3[3];\n var minRadius = Math.min(width / 2, _height4 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\n context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\n context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\n context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, startY);\n context.lineTo(item.x, startY);\n context.lineTo(item.x, startY + item.width);\n context.lineTo(startX, startY + item.width);\n context.lineTo(startX, startY);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n //context.stroke();\n context.fill();\n }\n }\n ;\n break;\n case 'stack':\n // 绘制堆叠数据图\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n calPoints.push(points);\n points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\n for (var _i22 = 0; _i22 < points.length; _i22++) {\n var _item12 = points[_i22];\n if (_item12 !== null && _i22 > leftNum && _i22 < rightNum) {\n context.beginPath();\n var fillColor = _item12.color || eachSeries.color;\n var startX = _item12.x0;\n context.setFillStyle(fillColor);\n context.moveTo(startX, _item12.y - _item12.width / 2);\n context.fillRect(startX, _item12.y - _item12.width / 2, _item12.height, _item12.width);\n context.closePath();\n context.fill();\n }\n }\n ;\n break;\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.xAxisData.ranges);\n maxRange = ranges.pop();\n minRange = ranges.shift();\n var data = eachSeries.data;\n switch (columnOption.type) {\n case 'group':\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;\n case 'stack':\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\n drawBarPointText(points, eachSeries, config, context, opts);\n break;\n }\n });\n }\n return {\n yAxisPoints: yAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var candleOption = assign({}, {\n color: {},\n average: {}\n }, opts.extra.candle);\n candleOption.color = assign({}, {\n upLine: '#f04864',\n upFill: '#f04864',\n downLine: '#2fc25b',\n downFill: '#2fc25b'\n }, candleOption.color);\n candleOption.average = assign({}, {\n show: false,\n name: [],\n day: [],\n color: config.color\n }, candleOption.average);\n opts.extra.candle = candleOption;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n //画均线\n if (candleOption.average.show || seriesMA) {\n //Merge pull request !12 from 邱贵翔\n seriesMA.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points = splitPointList[i];\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(1);\n if (_points.length === 1) {\n context.moveTo(_points[0].x, _points[0].y);\n context.arc(_points[0].x, _points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points[0].x, _points[0].y);\n var startPoint = 0;\n for (var j = 0; j < _points.length; j++) {\n var item = _points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n context.moveTo(_points[0].x, _points[0].y);\n }\n context.closePath();\n context.stroke();\n }\n });\n }\n //画K线\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList[0].length; i++) {\n if (i > leftNum && i < rightNum) {\n var item = splitPointList[0][i];\n context.beginPath();\n //如果上涨\n if (data[i][1] - data[i][0] > 0) {\n context.setStrokeStyle(candleOption.color.upLine);\n context.setFillStyle(candleOption.color.upFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n } else {\n context.setStrokeStyle(candleOption.color.downLine);\n context.setFillStyle(candleOption.color.downFill);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(item[3].x, item[3].y); //顶点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[2].x, item[2].y); //底点\n context.lineTo(item[1].x, item[1].y); //收盘中间点\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\n context.lineTo(item[0].x, item[0].y); //开盘中间点\n context.moveTo(item[3].x, item[3].y); //顶点\n }\n\n context.closePath();\n context.fill();\n context.stroke();\n }\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawAreaDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var areaOption = assign({}, {\n type: 'straight',\n opacity: 0.2,\n addLine: false,\n width: 2,\n gradient: false,\n activeType: 'none'\n }, opts.extra.area);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n for (var i = 0; i < splitPointList.length; i++) {\n var _points2 = splitPointList[i];\n // 绘制区域数\n context.beginPath();\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length > 1) {\n var firstPoint = _points2[0];\n var lastPoint = _points2[_points2.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var j = 0; j < _points2.length; j++) {\n var item = _points2[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points2, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n ;\n }\n if (areaOption.type === 'straight') {\n for (var _j = 0; _j < _points2.length; _j++) {\n var _item13 = _points2[_j];\n if (startPoint == 0 && _item13.x > leftSpace) {\n context.moveTo(_item13.x, _item13.y);\n startPoint = 1;\n }\n if (_j > 0 && _item13.x > leftSpace && _item13.x < rightSpace) {\n context.lineTo(_item13.x, _item13.y);\n }\n }\n ;\n }\n if (areaOption.type === 'step') {\n for (var _j2 = 0; _j2 < _points2.length; _j2++) {\n var _item14 = _points2[_j2];\n if (startPoint == 0 && _item14.x > leftSpace) {\n context.moveTo(_item14.x, _item14.y);\n startPoint = 1;\n }\n if (_j2 > 0 && _item14.x > leftSpace && _item14.x < rightSpace) {\n context.lineTo(_item14.x, _points2[_j2 - 1].y);\n context.lineTo(_item14.x, _item14.y);\n }\n }\n ;\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item15 = _points2[0];\n context.moveTo(_item15.x - eachSpacing / 2, _item15.y);\n // context.lineTo(item.x + eachSpacing / 2, item.y);\n // context.lineTo(item.x + eachSpacing / 2, endY);\n // context.lineTo(item.x - eachSpacing / 2, endY);\n // context.moveTo(item.x - eachSpacing / 2, item.y);\n }\n\n context.closePath();\n context.fill();\n //画连线\n if (areaOption.addLine) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(areaOption.width * opts.pix);\n if (_points2.length === 1) {\n context.moveTo(_points2[0].x, _points2[0].y);\n // context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(_points2[0].x, _points2[0].y);\n var _startPoint = 0;\n if (areaOption.type === 'curve') {\n for (var _j3 = 0; _j3 < _points2.length; _j3++) {\n var _item16 = _points2[_j3];\n if (_startPoint == 0 && _item16.x > leftSpace) {\n context.moveTo(_item16.x, _item16.y);\n _startPoint = 1;\n }\n if (_j3 > 0 && _item16.x > leftSpace && _item16.x < rightSpace) {\n var _ctrlPoint = createCurveControlPoints(_points2, _j3 - 1);\n context.bezierCurveTo(_ctrlPoint.ctrA.x, _ctrlPoint.ctrA.y, _ctrlPoint.ctrB.x, _ctrlPoint.ctrB.y, _item16.x, _item16.y);\n }\n }\n ;\n }\n if (areaOption.type === 'straight') {\n for (var _j4 = 0; _j4 < _points2.length; _j4++) {\n var _item17 = _points2[_j4];\n if (_startPoint == 0 && _item17.x > leftSpace) {\n context.moveTo(_item17.x, _item17.y);\n _startPoint = 1;\n }\n if (_j4 > 0 && _item17.x > leftSpace && _item17.x < rightSpace) {\n context.lineTo(_item17.x, _item17.y);\n }\n }\n ;\n }\n if (areaOption.type === 'step') {\n for (var _j5 = 0; _j5 < _points2.length; _j5++) {\n var _item18 = _points2[_j5];\n if (_startPoint == 0 && _item18.x > leftSpace) {\n context.moveTo(_item18.x, _item18.y);\n _startPoint = 1;\n }\n if (_j5 > 0 && _item18.x > leftSpace && _item18.x < rightSpace) {\n context.lineTo(_item18.x, _points2[_j5 - 1].y);\n context.lineTo(_item18.x, _item18.y);\n }\n }\n ;\n }\n context.moveTo(_points2[0].x, _points2[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n }\n }\n //画点\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n drawActivePoint(points, eachSeries.color, eachSeries.pointShape, context, opts, areaOption, seriesIndex);\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawScatterDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var scatterOption = assign({}, {\n type: 'circle'\n }, opts.extra.scatter);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setFillStyle(eachSeries.color);\n context.setLineWidth(1 * opts.pix);\n var shape = eachSeries.pointShape;\n if (shape === 'diamond') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y);\n context.lineTo(item.x, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'circle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\n }\n });\n } else if (shape === 'square') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x - 3.5, item.y - 3.5);\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\n }\n });\n } else if (shape === 'triangle') {\n points.forEach(function (item, index) {\n if (item !== null) {\n context.moveTo(item.x, item.y - 4.5);\n context.lineTo(item.x - 4.5, item.y + 4.5);\n context.lineTo(item.x + 4.5, item.y + 4.5);\n context.lineTo(item.x, item.y - 4.5);\n }\n });\n } else if (shape === 'triangle') {\n return;\n }\n context.closePath();\n context.fill();\n context.stroke();\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawBubbleDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var bubbleOption = assign({}, {\n opacity: 1,\n border: 2\n }, opts.extra.bubble);\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(bubbleOption.border * opts.pix);\n context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\n points.forEach(function (item, index) {\n context.moveTo(item.x + item.r, item.y);\n context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\n });\n context.closePath();\n context.fill();\n context.stroke();\n if (opts.dataLabel !== false && process === 1) {\n points.forEach(function (item, index) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || \"#FFFFFF\");\n context.setTextAlign('center');\n context.fillText(String(item.t), item.x, item.y + fontSize / 2);\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n }\n });\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawLineDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var lineOption = assign({}, {\n type: 'straight',\n width: 2,\n activeType: 'none',\n linearType: 'none',\n onShadow: false,\n animation: 'vertical'\n }, opts.extra.line);\n lineOption.width *= opts.pix;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var calPoints = [];\n context.save();\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n series.forEach(function (eachSeries, seriesIndex) {\n // 这段很神奇的代码用于解决ios16的setStrokeStyle失效的bug\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.moveTo(-10000, -10000);\n context.lineTo(-10001, -10001);\n context.stroke();\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getLineDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, lineOption, process);\n calPoints.push(points);\n var splitPointList = splitPoints(points, eachSeries);\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n var strokeColor = eachSeries.color;\n if (lineOption.linearType !== 'none' && eachSeries.linearColor && eachSeries.linearColor.length > 0) {\n var grd = context.createLinearGradient(opts.chartData.xAxisData.startX, opts.height / 2, opts.chartData.xAxisData.endX, opts.height / 2);\n for (var i = 0; i < eachSeries.linearColor.length; i++) {\n grd.addColorStop(eachSeries.linearColor[i][0], hexToRgb(eachSeries.linearColor[i][1], 1));\n }\n strokeColor = grd;\n }\n context.setStrokeStyle(strokeColor);\n if (lineOption.onShadow == true && eachSeries.setShadow && eachSeries.setShadow.length > 0) {\n context.setShadow(eachSeries.setShadow[0], eachSeries.setShadow[1], eachSeries.setShadow[2], eachSeries.setShadow[3]);\n } else {\n context.setShadow(0, 0, 0, 'rgba(0,0,0,0)');\n }\n context.setLineWidth(lineOption.width);\n splitPointList.forEach(function (points, index) {\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n // context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var startPoint = 0;\n if (lineOption.type === 'curve') {\n for (var j = 0; j < points.length; j++) {\n var item = points[j];\n if (startPoint == 0 && item.x > leftSpace) {\n context.moveTo(item.x, item.y);\n startPoint = 1;\n }\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\n }\n }\n ;\n }\n if (lineOption.type === 'straight') {\n for (var _j6 = 0; _j6 < points.length; _j6++) {\n var _item19 = points[_j6];\n if (startPoint == 0 && _item19.x > leftSpace) {\n context.moveTo(_item19.x, _item19.y);\n startPoint = 1;\n }\n if (_j6 > 0 && _item19.x > leftSpace && _item19.x < rightSpace) {\n context.lineTo(_item19.x, _item19.y);\n }\n }\n ;\n }\n if (lineOption.type === 'step') {\n for (var _j7 = 0; _j7 < points.length; _j7++) {\n var _item20 = points[_j7];\n if (startPoint == 0 && _item20.x > leftSpace) {\n context.moveTo(_item20.x, _item20.y);\n startPoint = 1;\n }\n if (_j7 > 0 && _item20.x > leftSpace && _item20.x < rightSpace) {\n context.lineTo(_item20.x, points[_j7 - 1].y);\n context.lineTo(_item20.x, _item20.y);\n }\n }\n ;\n }\n context.moveTo(points[0].x, points[0].y);\n }\n });\n context.stroke();\n context.setLineDash([]);\n if (opts.dataPointShape !== false) {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n drawActivePoint(points, eachSeries.color, eachSeries.pointShape, context, opts, lineOption);\n });\n if (opts.dataLabel !== false && process === 1) {\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n drawPointText(points, eachSeries, config, context, opts);\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawMixDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n eachSpacing = xAxisData.eachSpacing;\n var columnOption = assign({}, {\n width: eachSpacing / 2,\n barBorderCircle: false,\n barBorderRadius: [],\n seriesGap: 2,\n linearType: 'none',\n linearOpacity: 1,\n customColor: [],\n colorStop: 0\n }, opts.extra.mix.column);\n var areaOption = assign({}, {\n opacity: 0.2,\n gradient: false\n }, opts.extra.mix.area);\n var lineOption = assign({}, {\n width: 2\n }, opts.extra.mix.line);\n var endY = opts.height - opts.area[2];\n var calPoints = [];\n var columnIndex = 0;\n var columnLength = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n if (eachSeries.type == 'column') {\n columnLength += 1;\n }\n });\n context.save();\n var leftNum = -2;\n var rightNum = xAxisPoints.length + 2;\n var leftSpace = 0;\n var rightSpace = opts.width + eachSpacing;\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\n rightNum = leftNum + opts.xAxis.itemCount + 4;\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\n }\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n calPoints.push(points);\n // 绘制柱状数据图\n if (eachSeries.type == 'column') {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n for (var i = 0; i < points.length; i++) {\n var item = points[i];\n if (item !== null && i > leftNum && i < rightNum) {\n var startX = item.x - item.width / 2;\n var height = opts.height - item.y - opts.area[2];\n context.beginPath();\n var fillColor = item.color || eachSeries.color;\n var strokeColor = item.color || eachSeries.color;\n if (columnOption.linearType !== 'none') {\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\n //透明渐变\n if (columnOption.linearType == 'opacity') {\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n } else {\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\n grd.addColorStop(1, hexToRgb(fillColor, 1));\n }\n fillColor = grd;\n }\n // 圆角边框\n if (columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4 || columnOption.barBorderCircle) {\n var left = startX;\n var top = item.y;\n var width = item.width;\n var _height5 = opts.height - opts.area[2] - item.y;\n if (columnOption.barBorderCircle) {\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\n }\n var _columnOption$barBord4 = (0, _slicedToArray2.default)(columnOption.barBorderRadius, 4),\n r0 = _columnOption$barBord4[0],\n r1 = _columnOption$barBord4[1],\n r2 = _columnOption$barBord4[2],\n r3 = _columnOption$barBord4[3];\n var minRadius = Math.min(width / 2, _height5 / 2);\n r0 = r0 > minRadius ? minRadius : r0;\n r1 = r1 > minRadius ? minRadius : r1;\n r2 = r2 > minRadius ? minRadius : r2;\n r3 = r3 > minRadius ? minRadius : r3;\n r0 = r0 < 0 ? 0 : r0;\n r1 = r1 < 0 ? 0 : r1;\n r2 = r2 < 0 ? 0 : r2;\n r3 = r3 < 0 ? 0 : r3;\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\n context.arc(left + width - r2, top + _height5 - r2, r2, 0, Math.PI / 2);\n context.arc(left + r3, top + _height5 - r3, r3, Math.PI / 2, Math.PI);\n } else {\n context.moveTo(startX, item.y);\n context.lineTo(startX + item.width, item.y);\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\n context.lineTo(startX, opts.height - opts.area[2]);\n context.lineTo(startX, item.y);\n context.setLineWidth(1);\n context.setStrokeStyle(strokeColor);\n }\n context.setFillStyle(fillColor);\n context.closePath();\n context.fill();\n }\n }\n columnIndex += 1;\n }\n //绘制区域图数据\n if (eachSeries.type == 'area') {\n var _splitPointList = splitPoints(points, eachSeries);\n for (var _i23 = 0; _i23 < _splitPointList.length; _i23++) {\n var _points3 = _splitPointList[_i23];\n // 绘制区域数据\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n if (areaOption.gradient) {\n var gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n } else {\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\n }\n context.setLineWidth(2 * opts.pix);\n if (_points3.length > 1) {\n var firstPoint = _points3[0];\n var lastPoint = _points3[_points3.length - 1];\n context.moveTo(firstPoint.x, firstPoint.y);\n var startPoint = 0;\n if (eachSeries.style === 'curve') {\n for (var j = 0; j < _points3.length; j++) {\n var _item21 = _points3[j];\n if (startPoint == 0 && _item21.x > leftSpace) {\n context.moveTo(_item21.x, _item21.y);\n startPoint = 1;\n }\n if (j > 0 && _item21.x > leftSpace && _item21.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(_points3, j - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item21.x, _item21.y);\n }\n }\n ;\n } else {\n for (var _j8 = 0; _j8 < _points3.length; _j8++) {\n var _item22 = _points3[_j8];\n if (startPoint == 0 && _item22.x > leftSpace) {\n context.moveTo(_item22.x, _item22.y);\n startPoint = 1;\n }\n if (_j8 > 0 && _item22.x > leftSpace && _item22.x < rightSpace) {\n context.lineTo(_item22.x, _item22.y);\n }\n }\n ;\n }\n context.lineTo(lastPoint.x, endY);\n context.lineTo(firstPoint.x, endY);\n context.lineTo(firstPoint.x, firstPoint.y);\n } else {\n var _item23 = _points3[0];\n context.moveTo(_item23.x - eachSpacing / 2, _item23.y);\n // context.lineTo(item.x + eachSpacing / 2, item.y);\n // context.lineTo(item.x + eachSpacing / 2, endY);\n // context.lineTo(item.x - eachSpacing / 2, endY);\n // context.moveTo(item.x - eachSpacing / 2, item.y);\n }\n\n context.closePath();\n context.fill();\n }\n }\n // 绘制折线数据图\n if (eachSeries.type == 'line') {\n var splitPointList = splitPoints(points, eachSeries);\n splitPointList.forEach(function (points, index) {\n if (eachSeries.lineType == 'dash') {\n var dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\n dashLength *= opts.pix;\n context.setLineDash([dashLength, dashLength]);\n }\n context.beginPath();\n context.setStrokeStyle(eachSeries.color);\n context.setLineWidth(lineOption.width * opts.pix);\n if (points.length === 1) {\n context.moveTo(points[0].x, points[0].y);\n // context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\n } else {\n context.moveTo(points[0].x, points[0].y);\n var _startPoint2 = 0;\n if (eachSeries.style == 'curve') {\n for (var _j9 = 0; _j9 < points.length; _j9++) {\n var _item24 = points[_j9];\n if (_startPoint2 == 0 && _item24.x > leftSpace) {\n context.moveTo(_item24.x, _item24.y);\n _startPoint2 = 1;\n }\n if (_j9 > 0 && _item24.x > leftSpace && _item24.x < rightSpace) {\n var ctrlPoint = createCurveControlPoints(points, _j9 - 1);\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, _item24.x, _item24.y);\n }\n }\n } else {\n for (var _j10 = 0; _j10 < points.length; _j10++) {\n var _item25 = points[_j10];\n if (_startPoint2 == 0 && _item25.x > leftSpace) {\n context.moveTo(_item25.x, _item25.y);\n _startPoint2 = 1;\n }\n if (_j10 > 0 && _item25.x > leftSpace && _item25.x < rightSpace) {\n context.lineTo(_item25.x, _item25.y);\n }\n }\n }\n context.moveTo(points[0].x, points[0].y);\n }\n context.stroke();\n context.setLineDash([]);\n });\n }\n // 绘制点数据图\n if (eachSeries.type == 'point') {\n eachSeries.addPoint = true;\n }\n if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n var columnIndex = 0;\n series.forEach(function (eachSeries, seriesIndex) {\n var ranges, minRange, maxRange;\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\n minRange = ranges.pop();\n maxRange = ranges.shift();\n var data = eachSeries.data;\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\n if (eachSeries.type !== 'column') {\n drawPointText(points, eachSeries, config, context, opts);\n } else {\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\n drawPointText(points, eachSeries, config, context, opts);\n columnIndex += 1;\n }\n });\n }\n context.restore();\n return {\n xAxisPoints: xAxisPoints,\n calPoints: calPoints,\n eachSpacing: eachSpacing\n };\n}\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\n var toolTipOption = opts.extra.tooltip || {};\n if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {\n drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\n drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\n }\n context.restore();\n}\nfunction drawXAxis(categories, opts, config, context) {\n var xAxisData = opts.chartData.xAxisData,\n xAxisPoints = xAxisData.xAxisPoints,\n startX = xAxisData.startX,\n endX = xAxisData.endX,\n eachSpacing = xAxisData.eachSpacing;\n var boundaryGap = 'center';\n if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble') {\n boundaryGap = opts.xAxis.boundaryGap;\n }\n var startY = opts.height - opts.area[2];\n var endY = opts.area[0];\n\n //绘制滚动条\n if (opts.enableScroll && opts.xAxis.scrollShow) {\n var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\n var scrollScreenWidth = endX - startX;\n var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n scrollTotalWidth += (opts.extra.mount.widthRatio - 1) * eachSpacing;\n }\n var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\n var scrollLeft = 0;\n if (opts._scrollDistance_) {\n scrollLeft = -opts._scrollDistance_ * scrollScreenWidth / scrollTotalWidth;\n }\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\n context.moveTo(startX, scrollY);\n context.lineTo(endX, scrollY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.setLineCap('round');\n context.setLineWidth(6 * opts.pix);\n context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\n context.moveTo(startX + scrollLeft, scrollY);\n context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\n context.stroke();\n context.closePath();\n context.setLineCap('butt');\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n //绘制X轴刻度线\n if (opts.xAxis.calibration === true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n xAxisPoints.forEach(function (item, index) {\n if (index > 0) {\n context.beginPath();\n context.moveTo(item - eachSpacing / 2, startY);\n context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\n context.closePath();\n context.stroke();\n }\n });\n }\n //绘制X轴网格\n if (opts.xAxis.disableGrid !== true) {\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\n context.setLineCap('butt');\n context.setLineWidth(1 * opts.pix);\n if (opts.xAxis.gridType == 'dash') {\n context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\n }\n opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\n xAxisPoints.forEach(function (item, index) {\n if (index % opts.xAxis.gridEval == 0) {\n context.beginPath();\n context.moveTo(item, startY);\n context.lineTo(item, endY);\n context.stroke();\n }\n });\n context.setLineDash([]);\n }\n //绘制X轴文案\n if (opts.xAxis.disabled !== true) {\n // 对X轴列表做抽稀处理\n //默认全部显示X轴标签\n var maxXAxisListLength = categories.length;\n //如果设置了X轴单屏数量\n if (opts.xAxis.labelCount) {\n //如果设置X轴密度\n if (opts.xAxis.itemCount) {\n maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\n } else {\n maxXAxisListLength = opts.xAxis.labelCount;\n }\n maxXAxisListLength -= 1;\n }\n var ratio = Math.ceil(categories.length / maxXAxisListLength);\n var newCategories = [];\n var cgLength = categories.length;\n for (var i = 0; i < cgLength; i++) {\n if (i % ratio !== 0) {\n newCategories.push(\"\");\n } else {\n newCategories.push(categories[i]);\n }\n }\n newCategories[cgLength - 1] = categories[cgLength - 1];\n var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\n if (config._xAxisTextAngle_ === 0) {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item, index, opts) : item;\n var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\n if (boundaryGap == 'center') {\n offset += eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] - 1 && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1] + 1) {\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + opts.xAxis.marginTop * opts.pix + (opts.xAxis.lineHeight - opts.xAxis.fontSize) * opts.pix / 2 + opts.xAxis.fontSize * opts.pix);\n context.closePath();\n context.stroke();\n }\n });\n } else {\n newCategories.forEach(function (item, index) {\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\n // 如果在主视图区域内\n var _scrollDistance_ = opts._scrollDistance_ || 0;\n var truePoints = boundaryGap == 'center' ? xAxisPoints[index] + eachSpacing / 2 : xAxisPoints[index];\n if (truePoints - Math.abs(_scrollDistance_) >= opts.area[3] - 1 && truePoints - Math.abs(_scrollDistance_) <= opts.width - opts.area[1] + 1) {\n context.save();\n context.beginPath();\n context.setFontSize(xAxisFontSize);\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\n var textWidth = measureText(String(xitem), xAxisFontSize, context);\n var offsetX = xAxisPoints[index];\n if (boundaryGap == 'center') {\n offsetX = xAxisPoints[index] + eachSpacing / 2;\n }\n var scrollHeight = 0;\n if (opts.xAxis.scrollShow) {\n scrollHeight = 6 * opts.pix;\n }\n var offsetY = startY + opts.xAxis.marginTop * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));\n if (opts.xAxis.rotateAngle < 0) {\n offsetX -= xAxisFontSize / 2;\n textWidth = 0;\n } else {\n offsetX += xAxisFontSize / 2;\n textWidth = -textWidth;\n }\n context.translate(offsetX, offsetY);\n context.rotate(-1 * config._xAxisTextAngle_);\n context.fillText(String(xitem), textWidth, 0);\n context.closePath();\n context.stroke();\n context.restore();\n }\n });\n }\n }\n context.restore();\n\n //画X轴标题\n if (opts.xAxis.title) {\n context.beginPath();\n context.setFontSize(opts.xAxis.titleFontSize * opts.pix);\n context.setFillStyle(opts.xAxis.titleFontColor);\n context.fillText(String(opts.xAxis.title), opts.width - opts.area[1] + opts.xAxis.titleOffsetX * opts.pix, opts.height - opts.area[2] + opts.xAxis.marginTop * opts.pix + (opts.xAxis.lineHeight - opts.xAxis.titleFontSize) * opts.pix / 2 + (opts.xAxis.titleFontSize + opts.xAxis.titleOffsetY) * opts.pix);\n context.closePath();\n context.stroke();\n }\n\n //绘制X轴轴线\n if (opts.xAxis.axisLine) {\n context.beginPath();\n context.setStrokeStyle(opts.xAxis.axisLineColor);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(startX, opts.height - opts.area[2]);\n context.lineTo(endX, opts.height - opts.area[2]);\n context.stroke();\n }\n}\nfunction drawYAxisGrid(categories, opts, config, context) {\n if (opts.yAxis.disableGrid === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\n var TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\n if (opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1) {\n if (opts.extra.mount.widthRatio > 2) opts.extra.mount.widthRatio = 2;\n TotalWidth += (opts.extra.mount.widthRatio - 1) * xAxiseachSpacing;\n }\n var endX = startX + TotalWidth;\n var points = [];\n var startY = 1;\n if (opts.xAxis.axisLine === false) {\n startY = 0;\n }\n for (var i = startY; i < opts.yAxis.splitNumber + 1; i++) {\n points.push(opts.height - opts.area[2] - eachSpacing * i);\n }\n context.save();\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\n context.translate(opts._scrollDistance_, 0);\n }\n if (opts.yAxis.gridType == 'dash') {\n context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\n }\n context.setStrokeStyle(opts.yAxis.gridColor);\n context.setLineWidth(1 * opts.pix);\n points.forEach(function (item, index) {\n context.beginPath();\n context.moveTo(startX, item);\n context.lineTo(endX, item);\n context.stroke();\n });\n context.setLineDash([]);\n context.restore();\n}\nfunction drawYAxis(series, opts, config, context) {\n if (opts.yAxis.disabled === true) {\n return;\n }\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\n var startX = opts.area[3];\n var endX = opts.width - opts.area[1];\n var endY = opts.height - opts.area[2];\n // set YAxis background\n context.beginPath();\n context.setFillStyle(opts.background);\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\n context.fillRect(0, 0, startX, endY + 2 * opts.pix);\n }\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\n context.fillRect(endX, 0, opts.width, endY + 2 * opts.pix);\n }\n context.closePath();\n context.stroke();\n var tStartLeft = opts.area[3];\n var tStartRight = opts.width - opts.area[1];\n var tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\n if (opts.yAxis.data) {\n var _loop4 = function _loop4(i) {\n var yData = opts.yAxis.data[i];\n points = [];\n if (yData.type === 'categories') {\n for (var _i24 = 0; _i24 <= yData.categories.length; _i24++) {\n points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * _i24);\n }\n } else {\n for (var _i25 = 0; _i25 <= opts.yAxis.splitNumber; _i25++) {\n points.push(opts.area[0] + eachSpacing * _i25);\n }\n }\n if (yData.disabled !== true) {\n var rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\n var yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\n var yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\n var textAlign = yData.textAlign || \"right\";\n //画Y轴刻度及文案\n rangesFormat.forEach(function (item, index) {\n var pos = points[index];\n context.beginPath();\n context.setFontSize(yAxisFontSize);\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setFillStyle(yData.fontColor || opts.fontColor);\n var tmpstrat = 0;\n var gapwidth = 4 * opts.pix;\n if (yAxisWidth.position == 'left') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartLeft, pos);\n context.lineTo(tStartLeft - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartLeft - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartLeft - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartLeft - yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n } else if (yAxisWidth.position == 'right') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartRight, pos);\n context.lineTo(tStartRight + 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartRight + gapwidth;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartRight + yAxisWidth.width;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartRight + yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n //画刻度线\n if (yData.calibration == true) {\n context.moveTo(tStartCenter, pos);\n context.lineTo(tStartCenter - 3 * opts.pix, pos);\n gapwidth += 3 * opts.pix;\n }\n //画文字\n switch (textAlign) {\n case \"left\":\n context.setTextAlign('left');\n tmpstrat = tStartCenter - yAxisWidth.width;\n break;\n case \"right\":\n context.setTextAlign('right');\n tmpstrat = tStartCenter - gapwidth;\n break;\n default:\n context.setTextAlign('center');\n tmpstrat = tStartCenter - yAxisWidth.width / 2;\n }\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\n }\n context.closePath();\n context.stroke();\n context.setTextAlign('left');\n });\n //画Y轴轴线\n if (yData.axisLine !== false) {\n context.beginPath();\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\n context.setLineWidth(1 * opts.pix);\n if (yAxisWidth.position == 'left') {\n context.moveTo(tStartLeft, opts.height - opts.area[2]);\n context.lineTo(tStartLeft, opts.area[0]);\n } else if (yAxisWidth.position == 'right') {\n context.moveTo(tStartRight, opts.height - opts.area[2]);\n context.lineTo(tStartRight, opts.area[0]);\n } else if (yAxisWidth.position == 'center') {\n context.moveTo(tStartCenter, opts.height - opts.area[2]);\n context.lineTo(tStartCenter, opts.area[0]);\n }\n context.stroke();\n }\n //画Y轴标题\n if (opts.yAxis.showTitle) {\n var titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\n var title = yData.title;\n context.beginPath();\n context.setFontSize(titleFontSize);\n context.setFillStyle(yData.titleFontColor || opts.fontColor);\n if (yAxisWidth.position == 'left') {\n context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'right') {\n context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n } else if (yAxisWidth.position == 'center') {\n context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\n }\n context.closePath();\n context.stroke();\n }\n if (yAxisWidth.position == 'left') {\n tStartLeft -= yAxisWidth.width + opts.yAxis.padding * opts.pix;\n } else {\n tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\n }\n }\n };\n for (var i = 0; i < opts.yAxis.data.length; i++) {\n var points;\n _loop4(i);\n }\n }\n}\nfunction drawLegend(series, opts, config, context, chartData) {\n if (opts.legend.show === false) {\n return;\n }\n var legendData = chartData.legendData;\n var legendList = legendData.points;\n var legendArea = legendData.area;\n var padding = opts.legend.padding * opts.pix;\n var fontSize = opts.legend.fontSize * opts.pix;\n var shapeWidth = 15 * opts.pix;\n var shapeRight = 5 * opts.pix;\n var itemGap = opts.legend.itemGap * opts.pix;\n var lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\n //画背景及边框\n context.beginPath();\n context.setLineWidth(opts.legend.borderWidth * opts.pix);\n context.setStrokeStyle(opts.legend.borderColor);\n context.setFillStyle(opts.legend.backgroundColor);\n context.moveTo(legendArea.start.x, legendArea.start.y);\n context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\n context.closePath();\n context.fill();\n context.stroke();\n legendList.forEach(function (itemList, listIndex) {\n var width = 0;\n var height = 0;\n width = legendData.widthArr[listIndex];\n height = legendData.heightArr[listIndex];\n var startX = 0;\n var startY = 0;\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n switch (opts.legend.float) {\n case 'left':\n startX = legendArea.start.x + padding;\n break;\n case 'right':\n startX = legendArea.start.x + legendArea.width - width;\n break;\n default:\n startX = legendArea.start.x + (legendArea.width - width) / 2;\n }\n startY = legendArea.start.y + padding + listIndex * lineHeight;\n } else {\n if (listIndex == 0) {\n width = 0;\n } else {\n width = legendData.widthArr[listIndex - 1];\n }\n startX = legendArea.start.x + padding + width;\n startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\n }\n context.setFontSize(config.fontSize);\n for (var i = 0; i < itemList.length; i++) {\n var item = itemList[i];\n item.area = [0, 0, 0, 0];\n item.area[0] = startX;\n item.area[1] = startY;\n item.area[3] = startY + lineHeight;\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\n context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\n switch (item.legendShape) {\n case 'line':\n context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\n break;\n case 'triangle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'diamond':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n break;\n case 'circle':\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\n context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\n break;\n case 'rect':\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n break;\n case 'square':\n context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\n break;\n case 'none':\n break;\n default:\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\n }\n context.closePath();\n context.fill();\n context.stroke();\n startX += shapeWidth + shapeRight;\n var fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\n var legendText = item.legendText ? item.legendText : item.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\n context.fillText(legendText, startX, startY + fontTrans);\n context.closePath();\n context.stroke();\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\n startX += measureText(legendText, fontSize, context) + itemGap;\n item.area[2] = startX;\n } else {\n item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;\n ;\n startX -= shapeWidth + shapeRight;\n startY += lineHeight;\n }\n }\n });\n}\nfunction drawPieDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var pieOption = assign({}, {\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n ringWidth: 30,\n customRadius: 0,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n centerColor: '#FFFFFF',\n linearType: 'none',\n customColor: []\n }, opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\n }\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n if (pieOption.customRadius > 0) {\n radius = pieOption.customRadius * opts.pix;\n }\n series = getPieDataPoints(series, radius, process);\n var activeRadius = pieOption.activeRadius * opts.pix;\n pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += pieOption.offsetAngle * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(pieOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(pieOption.borderColor);\n var fillcolor = eachSeries.color;\n if (pieOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (pieOption.border == true) {\n context.stroke();\n }\n });\n if (opts.type === 'ring') {\n var innerPieWidth = radius * 0.6;\n if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\n innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\n }\n context.beginPath();\n context.setFillStyle(pieOption.centerColor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n }\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n if (process === 1 && opts.type === 'ring') {\n drawRingTitle(opts, config, context, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawRoseDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var roseOption = assign({}, {\n type: 'area',\n activeOpacity: 0.5,\n activeRadius: 10,\n offsetAngle: 0,\n labelWidth: 15,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n linearType: 'none',\n customColor: []\n }, opts.extra.rose);\n if (config.pieChartLinePadding == 0) {\n config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\n }\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\n radius = radius < 10 ? 10 : radius;\n var minRadius = roseOption.minRadius || radius * 0.5;\n if (radius < minRadius) {\n radius = minRadius + 10;\n }\n series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\n var activeRadius = roseOption.activeRadius * opts.pix;\n roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\n series = series.map(function (eachSeries) {\n eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\n return eachSeries;\n });\n series.forEach(function (eachSeries, seriesIndex) {\n if (opts.tooltip) {\n if (opts.tooltip.index == seriesIndex) {\n context.beginPath();\n context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n }\n }\n context.beginPath();\n context.setLineWidth(roseOption.borderWidth * opts.pix);\n context.lineJoin = \"round\";\n context.setStrokeStyle(roseOption.borderColor);\n var fillcolor = eachSeries.color;\n if (roseOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, eachSeries._radius_);\n }\n grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n context.moveTo(centerPosition.x, centerPosition.y);\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\n context.closePath();\n context.fill();\n if (roseOption.border == true) {\n context.stroke();\n }\n });\n if (opts.dataLabel !== false && process === 1) {\n drawPieText(series, opts, config, context, radius, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawArcbarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var arcbarOption = assign({}, {\n startAngle: 0.75,\n endAngle: 0.25,\n type: 'default',\n direction: 'cw',\n lineCap: 'round',\n width: 12,\n gap: 2,\n linearType: 'none',\n customColor: []\n }, opts.extra.arcbar);\n series = getArcbarDataPoints(series, arcbarOption, process);\n var centerPosition;\n if (arcbarOption.centerX || arcbarOption.centerY) {\n centerPosition = {\n x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\n y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2\n };\n } else {\n centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2\n };\n }\n var radius;\n if (arcbarOption.radius) {\n radius = arcbarOption.radius;\n } else {\n radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= arcbarOption.width / 2;\n }\n radius = radius < 10 ? 10 : radius;\n arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\n for (var i = 0; i < series.length; i++) {\n var eachSeries = series[i];\n //背景颜色\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n if (arcbarOption.type == 'default') {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, arcbarOption.direction == 'ccw');\n } else {\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, arcbarOption.direction == 'ccw');\n }\n context.stroke();\n //进度条\n var fillColor = eachSeries.color;\n if (arcbarOption.linearType == 'custom') {\n var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\n grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1));\n grd.addColorStop(0, hexToRgb(eachSeries.color, 1));\n fillColor = grd;\n }\n context.setLineWidth(arcbarOption.width * opts.pix);\n context.setStrokeStyle(fillColor);\n context.setLineCap(arcbarOption.lineCap);\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, arcbarOption.direction == 'ccw');\n context.stroke();\n }\n drawRingTitle(opts, config, context, centerPosition);\n return {\n center: centerPosition,\n radius: radius,\n series: series\n };\n}\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\n var gaugeOption = assign({}, {\n type: 'default',\n startAngle: 0.75,\n endAngle: 0.25,\n width: 15,\n labelOffset: 13,\n splitLine: {\n fixRadius: 0,\n splitNumber: 10,\n width: 15,\n color: '#FFFFFF',\n childNumber: 5,\n childWidth: 5\n },\n pointer: {\n width: 15,\n color: 'auto'\n }\n }, opts.extra.gauge);\n if (gaugeOption.oldAngle == undefined) {\n gaugeOption.oldAngle = gaugeOption.startAngle;\n }\n if (gaugeOption.oldData == undefined) {\n gaugeOption.oldData = 0;\n }\n categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\n var centerPosition = {\n x: opts.width / 2,\n y: opts.height / 2\n };\n var radius = Math.min(centerPosition.x, centerPosition.y);\n radius -= 5 * opts.pix;\n radius -= gaugeOption.width / 2;\n radius = radius < 10 ? 10 : radius;\n var innerRadius = radius - gaugeOption.width;\n var totalAngle = 0;\n //判断仪表盘的样式:default百度样式,progress新样式\n if (gaugeOption.type == 'progress') {\n //## 第一步画中心圆形背景和进度条背景\n //中心圆形背景\n var pieRadius = radius - gaugeOption.width * 3;\n context.beginPath();\n var gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\n //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径)\n gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\n context.setFillStyle(gradient);\n context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\n context.fill();\n //画进度条背景\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\n context.stroke();\n //## 第二步画刻度线\n if (gaugeOption.endAngle < gaugeOption.startAngle) {\n totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle;\n } else {\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle;\n }\n var splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n var len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\n var proc = series[0].data * process;\n for (var i = 0; i < len; i++) {\n context.beginPath();\n //刻度线随进度变色\n if (proc > i / len) {\n context.setStrokeStyle(hexToRgb(series[0].color, 1));\n } else {\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\n }\n context.setLineWidth(3 * opts.pix);\n context.moveTo(startX, 0);\n context.lineTo(endX, 0);\n context.stroke();\n context.rotate(childAngle * Math.PI);\n }\n context.restore();\n //## 第三步画进度条\n series = getGaugeArcbarDataPoints(series, gaugeOption, process);\n context.setLineWidth(gaugeOption.width);\n context.setStrokeStyle(series[0].color);\n context.setLineCap('round');\n context.beginPath();\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\n context.stroke();\n //## 第四步画指针\n var pointerRadius = radius - gaugeOption.width * 2.5;\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((series[0]._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setLineWidth(gaugeOption.width / 3);\n var gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\n gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\n gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\n gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\n context.setStrokeStyle(gradient3);\n context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\n context.stroke();\n context.beginPath();\n context.setLineWidth(1);\n context.setStrokeStyle(series[0].color);\n context.setFillStyle(series[0].color);\n context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\n context.stroke();\n context.fill();\n context.restore();\n //default百度样式\n } else {\n //画背景\n context.setLineWidth(gaugeOption.width);\n context.setLineCap('butt');\n for (var _i26 = 0; _i26 < categories.length; _i26++) {\n var eachCategories = categories[_i26];\n context.beginPath();\n context.setStrokeStyle(eachCategories.color);\n context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\n context.stroke();\n }\n context.save();\n //画刻度线\n if (gaugeOption.endAngle < gaugeOption.startAngle) {\n totalAngle = 2 + gaugeOption.endAngle - gaugeOption.startAngle;\n } else {\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle;\n }\n var _splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\n var _childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\n var _startX2 = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\n var _endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\n var childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i27 = 0; _i27 < gaugeOption.splitLine.splitNumber + 1; _i27++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(2 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(_endX, 0);\n context.stroke();\n context.rotate(_splitAngle * Math.PI);\n }\n context.restore();\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\n for (var _i28 = 0; _i28 < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; _i28++) {\n context.beginPath();\n context.setStrokeStyle(gaugeOption.splitLine.color);\n context.setLineWidth(1 * opts.pix);\n context.moveTo(_startX2, 0);\n context.lineTo(childendX, 0);\n context.stroke();\n context.rotate(_childAngle * Math.PI);\n }\n context.restore();\n //画指针\n series = getGaugeDataPoints(series, categories, gaugeOption, process);\n for (var _i29 = 0; _i29 < series.length; _i29++) {\n var eachSeries = series[_i29];\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n context.rotate((eachSeries._proportion_ - 1) * Math.PI);\n context.beginPath();\n context.setFillStyle(eachSeries.color);\n context.moveTo(gaugeOption.pointer.width, 0);\n context.lineTo(0, -gaugeOption.pointer.width / 2);\n context.lineTo(-innerRadius, 0);\n context.lineTo(0, gaugeOption.pointer.width / 2);\n context.lineTo(gaugeOption.pointer.width, 0);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFillStyle('#FFFFFF');\n context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\n context.fill();\n context.restore();\n }\n if (opts.dataLabel !== false) {\n drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\n }\n }\n //画仪表盘标题,副标题\n drawRingTitle(opts, config, context, centerPosition);\n if (process === 1 && opts.type === 'gauge') {\n opts.extra.gauge.oldAngle = series[0]._proportion_;\n opts.extra.gauge.oldData = series[0].data;\n }\n return {\n center: centerPosition,\n radius: radius,\n innerRadius: innerRadius,\n categories: categories,\n totalAngle: totalAngle\n };\n}\nfunction drawRadarDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var radarOption = assign({}, {\n gridColor: '#cccccc',\n gridType: 'radar',\n gridEval: 1,\n axisLabel: false,\n axisLabelTofix: 0,\n labelShow: true,\n labelColor: '#666666',\n labelPointShow: false,\n labelPointRadius: 3,\n labelPointColor: '#cccccc',\n opacity: 0.2,\n gridCount: 3,\n border: false,\n borderWidth: 2,\n linearType: 'none',\n customColor: []\n }, opts.extra.radar);\n var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\n };\n var xr = (opts.width - opts.area[1] - opts.area[3]) / 2;\n var yr = (opts.height - opts.area[0] - opts.area[2]) / 2;\n var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\n radius -= config.radarLabelTextMargin * opts.pix;\n radius = radius < 10 ? 10 : radius;\n radius = radarOption.radius ? radarOption.radius : radius;\n // 画分割线\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\n context.moveTo(centerPosition.x, centerPosition.y);\n if (index % radarOption.gridEval == 0) {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.stroke();\n context.closePath();\n\n // 画背景网格\n var _loop = function _loop(i) {\n var startPos = {};\n context.beginPath();\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(radarOption.gridColor);\n if (radarOption.gridType == 'radar') {\n coordinateAngle.forEach(function (angle, index) {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius / radarOption.gridCount * i * Math.sin(angle), centerPosition);\n if (index === 0) {\n startPos = pos;\n context.moveTo(pos.x, pos.y);\n } else {\n context.lineTo(pos.x, pos.y);\n }\n });\n context.lineTo(startPos.x, startPos.y);\n } else {\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\n context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\n }\n context.stroke();\n context.closePath();\n };\n for (var i = 1; i <= radarOption.gridCount; i++) {\n _loop(i);\n }\n radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);\n var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n // 绘制区域数据\n context.beginPath();\n context.setLineWidth(radarOption.borderWidth * opts.pix);\n context.setStrokeStyle(eachSeries.color);\n var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);\n if (radarOption.linearType == 'custom') {\n var grd;\n if (context.createCircularGradient) {\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius);\n } else {\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0, centerPosition.x, centerPosition.y, radius);\n }\n grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity));\n grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity));\n fillcolor = grd;\n }\n context.setFillStyle(fillcolor);\n eachSeries.data.forEach(function (item, index) {\n if (index === 0) {\n context.moveTo(item.position.x, item.position.y);\n } else {\n context.lineTo(item.position.x, item.position.y);\n }\n });\n context.closePath();\n context.fill();\n if (radarOption.border === true) {\n context.stroke();\n }\n context.closePath();\n if (opts.dataPointShape !== false) {\n var points = eachSeries.data.map(function (item) {\n return item.position;\n });\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\n }\n });\n // 画刻度值\n if (radarOption.axisLabel === true) {\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\n var stepLength = radius / radarOption.gridCount;\n var fontSize = opts.fontSize * opts.pix;\n context.setFontSize(fontSize);\n context.setFillStyle(opts.fontColor);\n context.setTextAlign('left');\n for (var i = 0; i < radarOption.gridCount + 1; i++) {\n var label = i * maxData / radarOption.gridCount;\n label = label.toFixed(radarOption.axisLabelTofix);\n context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);\n }\n }\n\n // draw label text\n drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\n\n // draw dataLabel\n if (opts.dataLabel !== false && process === 1) {\n radarDataPoints.forEach(function (eachSeries, seriesIndex) {\n context.beginPath();\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\n context.setFontSize(fontSize);\n context.setFillStyle(eachSeries.textColor || opts.fontColor);\n eachSeries.data.forEach(function (item, index) {\n //如果是中心点垂直的上下点位\n if (Math.abs(item.position.x - centerPosition.x) < 2) {\n //如果在上面\n if (item.position.y < centerPosition.y) {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y - 4);\n } else {\n context.setTextAlign('center');\n context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\n }\n } else {\n //如果在左侧\n if (item.position.x < centerPosition.x) {\n context.setTextAlign('right');\n context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\n } else {\n context.setTextAlign('left');\n context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\n }\n }\n });\n context.closePath();\n context.stroke();\n });\n context.setTextAlign('left');\n }\n return {\n center: centerPosition,\n radius: radius,\n angleList: coordinateAngle\n };\n}\n\n// 经纬度转墨卡托\nfunction lonlat2mercator(longitude, latitude) {\n var mercator = Array(2);\n var x = longitude * 20037508.34 / 180;\n var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\n y = y * 20037508.34 / 180;\n mercator[0] = x;\n mercator[1] = y;\n return mercator;\n}\n\n// 墨卡托转经纬度\nfunction mercator2lonlat(longitude, latitude) {\n var lonlat = Array(2);\n var x = longitude / 20037508.34 * 180;\n var y = latitude / 20037508.34 * 180;\n y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\n lonlat[0] = x;\n lonlat[1] = y;\n return lonlat;\n}\nfunction getBoundingBox(data) {\n var bounds = {},\n coords;\n bounds.xMin = 180;\n bounds.xMax = 0;\n bounds.yMin = 90;\n bounds.yMax = 0;\n for (var i = 0; i < data.length; i++) {\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var longitude = coords[j][0];\n var latitude = coords[j][1];\n var point = {\n x: longitude,\n y: latitude\n };\n bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\n bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\n bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\n bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\n }\n }\n }\n return bounds;\n}\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\n return {\n x: (longitude - bounds.xMin) * scale + xoffset,\n y: (bounds.yMax - latitude) * scale + yoffset\n };\n}\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\n return {\n x: (pointX - xoffset) / scale + bounds.xMin,\n y: bounds.yMax - (pointY - yoffset) / scale\n };\n}\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\n if (s_poi[1] == e_poi[1]) {\n return false;\n }\n if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\n return false;\n }\n if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\n return false;\n }\n if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\n return false;\n }\n if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\n return false;\n }\n var xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\n if (xseg < poi[0]) {\n return false;\n } else {\n return true;\n }\n}\nfunction isPoiWithinPoly(poi, poly, mercator) {\n var sinsc = 0;\n for (var i = 0; i < poly.length; i++) {\n var epoly = poly[i][0];\n if (poly.length == 1) {\n epoly = poly[i][0];\n }\n for (var j = 0; j < epoly.length - 1; j++) {\n var s_poi = epoly[j];\n var e_poi = epoly[j + 1];\n if (mercator) {\n s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\n e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\n }\n if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\n sinsc += 1;\n }\n }\n }\n if (sinsc % 2 == 1) {\n return true;\n } else {\n return false;\n }\n}\nfunction drawMapDataPoints(series, opts, config, context) {\n var mapOption = assign({}, {\n border: true,\n mercator: false,\n borderWidth: 1,\n active: true,\n borderColor: '#666666',\n fillOpacity: 0.6,\n activeBorderColor: '#f04864',\n activeFillColor: '#facc14',\n activeFillOpacity: 1\n }, opts.extra.map);\n var coords, point;\n var data = series;\n var bounds = getBoundingBox(data);\n if (mapOption.mercator) {\n var max = lonlat2mercator(bounds.xMax, bounds.yMax);\n var min = lonlat2mercator(bounds.xMin, bounds.yMin);\n bounds.xMax = max[0];\n bounds.yMax = max[1];\n bounds.xMin = min[0];\n bounds.yMin = min[1];\n }\n var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\n var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\n var scale = xScale < yScale ? xScale : yScale;\n var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\n var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\n for (var i = 0; i < data.length; i++) {\n context.beginPath();\n context.setLineWidth(mapOption.borderWidth * opts.pix);\n context.setStrokeStyle(mapOption.borderColor);\n context.setFillStyle(hexToRgb(series[i].color, series[i].fillOpacity || mapOption.fillOpacity));\n if (mapOption.active == true && opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.setStrokeStyle(mapOption.activeBorderColor);\n context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\n }\n }\n var coorda = data[i].geometry.coordinates;\n for (var k = 0; k < coorda.length; k++) {\n coords = coorda[k];\n if (coords.length == 1) {\n coords = coords[0];\n }\n for (var j = 0; j < coords.length; j++) {\n var gaosi = Array(2);\n if (mapOption.mercator) {\n gaosi = lonlat2mercator(coords[j][0], coords[j][1]);\n } else {\n gaosi = coords[j];\n }\n point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset);\n if (j === 0) {\n context.beginPath();\n context.moveTo(point.x, point.y);\n } else {\n context.lineTo(point.x, point.y);\n }\n }\n context.fill();\n if (mapOption.border == true) {\n context.stroke();\n }\n }\n }\n if (opts.dataLabel == true) {\n for (var i = 0; i < data.length; i++) {\n var centerPoint = data[i].properties.centroid;\n if (centerPoint) {\n if (mapOption.mercator) {\n centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1]);\n }\n point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\n var fontSize = data[i].textSize * opts.pix || config.fontSize;\n var fontColor = data[i].textColor || opts.fontColor;\n if (mapOption.active && mapOption.activeTextColor && opts.tooltip && opts.tooltip.index == i) {\n fontColor = mapOption.activeTextColor;\n }\n var text = data[i].properties.name;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(fontColor);\n context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\n context.closePath();\n context.stroke();\n }\n }\n }\n opts.chartData.mapData = {\n bounds: bounds,\n scale: scale,\n xoffset: xoffset,\n yoffset: yoffset,\n mercator: mapOption.mercator\n };\n drawToolTipBridge(opts, config, context, 1);\n context.draw();\n}\nfunction normalInt(min, max, iter) {\n iter = iter == 0 ? 1 : iter;\n var arr = [];\n for (var i = 0; i < iter; i++) {\n arr[i] = Math.random();\n }\n ;\n return Math.floor(arr.reduce(function (i, j) {\n return i + j;\n }) / iter * (max - min)) + min;\n}\n;\nfunction collisionNew(area, points, width, height) {\n var isIn = false;\n for (var i = 0; i < points.length; i++) {\n if (points[i].area) {\n if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\n if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\n isIn = true;\n break;\n } else {\n isIn = false;\n }\n } else {\n isIn = true;\n break;\n }\n }\n }\n return isIn;\n}\n;\nfunction getWordCloudPoint(opts, type, context) {\n var points = opts.series;\n switch (type) {\n case 'normal':\n for (var i = 0; i < points.length; i++) {\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n var x = void 0,\n y = void 0;\n var area = void 0;\n var breaknum = 0;\n while (true) {\n breaknum++;\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 + opts.height / 2];\n var isCollision = collisionNew(area, points, opts.width, opts.height);\n if (!isCollision) break;\n if (breaknum == 1000) {\n area = [-100, -100, -100, -100];\n break;\n }\n }\n ;\n points[i].area = area;\n }\n break;\n case 'vertical':\n var Spin = function Spin() {\n //获取均匀随机值,是否旋转,旋转的概率为(1-0.5)\n if (Math.random() > 0.7) {\n return true;\n } else {\n return false;\n }\n ;\n };\n ;\n for (var _i30 = 0; _i30 < points.length; _i30++) {\n var _text = points[_i30].name;\n var _tHeight = points[_i30].textSize * opts.pix;\n var _tWidth = measureText(_text, _tHeight, context);\n var isSpin = Spin();\n var _x = void 0,\n _y = void 0,\n _area = void 0,\n areav = void 0;\n var _breaknum = 0;\n while (true) {\n _breaknum++;\n var _isCollision = void 0;\n if (isSpin) {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_y - 5 - _tWidth + opts.width / 2, -_x - 5 + opts.height / 2, _y + 5 + opts.width / 2, -_x + _tHeight + 5 + opts.height / 2];\n areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) - 5, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-_x + _tHeight + 5 + opts.height / 2) + _tHeight, opts.height / 2 - opts.width / 2 + (_y - 5 - _tWidth + opts.width / 2) + _tWidth + 5];\n _isCollision = collisionNew(areav, points, opts.height, opts.width);\n } else {\n _x = normalInt(-opts.width / 2, opts.width / 2, 5) - _tWidth / 2;\n _y = normalInt(-opts.height / 2, opts.height / 2, 5) + _tHeight / 2;\n _area = [_x - 5 + opts.width / 2, _y - 5 - _tHeight + opts.height / 2, _x + _tWidth + 5 + opts.width / 2, _y + 5 + opts.height / 2];\n _isCollision = collisionNew(_area, points, opts.width, opts.height);\n }\n if (!_isCollision) break;\n if (_breaknum == 1000) {\n _area = [-1000, -1000, -1000, -1000];\n break;\n }\n }\n ;\n if (isSpin) {\n points[_i30].area = areav;\n points[_i30].areav = _area;\n } else {\n points[_i30].area = _area;\n }\n points[_i30].rotate = isSpin;\n }\n ;\n break;\n }\n return points;\n}\nfunction drawWordCloudDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var wordOption = assign({}, {\n type: 'normal',\n autoColors: true\n }, opts.extra.word);\n if (!opts.chartData.wordCloudData) {\n opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\n }\n context.beginPath();\n context.setFillStyle(opts.background);\n context.rect(0, 0, opts.width, opts.height);\n context.fill();\n context.save();\n var points = opts.chartData.wordCloudData;\n context.translate(opts.width / 2, opts.height / 2);\n for (var i = 0; i < points.length; i++) {\n context.save();\n if (points[i].rotate) {\n context.rotate(90 * Math.PI / 180);\n }\n var text = points[i].name;\n var tHeight = points[i].textSize * opts.pix;\n var tWidth = measureText(text, tHeight, context);\n context.beginPath();\n context.setStrokeStyle(points[i].color);\n context.setFillStyle(points[i].color);\n context.setFontSize(tHeight);\n if (points[i].rotate) {\n if (points[i].areav[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n } else {\n if (points[i].area[0] > 0) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n } else {\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\n }\n }\n }\n context.stroke();\n context.restore();\n }\n context.restore();\n}\nfunction drawFunnelDataPoints(series, opts, config, context) {\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var funnelOption = assign({}, {\n type: 'funnel',\n activeWidth: 10,\n activeOpacity: 0.3,\n border: false,\n borderWidth: 2,\n borderColor: '#FFFFFF',\n fillOpacity: 1,\n minSize: 0,\n labelAlign: 'right',\n linearType: 'none',\n customColor: []\n }, opts.extra.funnel);\n var eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\n var centerPosition = {\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\n y: opts.height - opts.area[2]\n };\n var activeWidth = funnelOption.activeWidth * opts.pix;\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\n var seriesNew = getFunnelDataPoints(series, radius, funnelOption, eachSpacing, process);\n context.save();\n context.translate(centerPosition.x, centerPosition.y);\n funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\n if (funnelOption.type == 'pyramid') {\n for (var i = 0; i < seriesNew.length; i++) {\n if (i == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth, -eachSpacing);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(activeWidth, -eachSpacing);\n context.lineTo(-activeWidth, -eachSpacing);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, -eachSpacing);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, -eachSpacing);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == i) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[i].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius - activeWidth, 0);\n context.lineTo(-seriesNew[i + 1].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[i].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[i].funnelArea = [centerPosition.x - seriesNew[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + seriesNew[i].radius, centerPosition.y - eachSpacing * i];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[i].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[i].radius, -eachSpacing, -seriesNew[i].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[i].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[i].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[i].radius, 0);\n context.lineTo(-seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i + 1].radius, -eachSpacing);\n context.lineTo(seriesNew[i].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, -eachSpacing);\n }\n } else {\n context.translate(0, -(seriesNew.length - 1) * eachSpacing);\n for (var _i31 = 0; _i31 < seriesNew.length; _i31++) {\n if (_i31 == seriesNew.length - 1) {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(activeWidth + funnelOption.minSize / 2, 0);\n context.lineTo(-activeWidth - funnelOption.minSize / 2, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing, centerPosition.x + seriesNew[_i31].radius, centerPosition.y];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-funnelOption.minSize / 2, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(funnelOption.minSize / 2, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n } else {\n if (opts.tooltip) {\n if (opts.tooltip.index == _i31) {\n context.beginPath();\n context.setFillStyle(hexToRgb(seriesNew[_i31].color, funnelOption.activeOpacity));\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius - activeWidth, 0);\n context.lineTo(-seriesNew[_i31].radius - activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius + activeWidth, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius + activeWidth, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n }\n }\n seriesNew[_i31].funnelArea = [centerPosition.x - seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31), centerPosition.x + seriesNew[_i31].radius, centerPosition.y - eachSpacing * (seriesNew.length - _i31 - 1)];\n context.beginPath();\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\n context.setStrokeStyle(funnelOption.borderColor);\n var fillColor = hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity);\n if (funnelOption.linearType == 'custom') {\n var grd = context.createLinearGradient(seriesNew[_i31].radius, -eachSpacing, -seriesNew[_i31].radius, -eachSpacing);\n grd.addColorStop(0, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[seriesNew[_i31].linearIndex], funnelOption.fillOpacity));\n grd.addColorStop(1, hexToRgb(seriesNew[_i31].color, funnelOption.fillOpacity));\n fillColor = grd;\n }\n context.setFillStyle(fillColor);\n context.moveTo(0, 0);\n context.lineTo(-seriesNew[_i31 + 1].radius, 0);\n context.lineTo(-seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31].radius, -eachSpacing);\n context.lineTo(seriesNew[_i31 + 1].radius, 0);\n context.lineTo(0, 0);\n context.closePath();\n context.fill();\n if (funnelOption.border == true) {\n context.stroke();\n }\n }\n context.translate(0, eachSpacing);\n }\n }\n context.restore();\n if (opts.dataLabel !== false && process === 1) {\n drawFunnelText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n if (process === 1) {\n drawFunnelCenterText(seriesNew, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\n }\n return {\n center: centerPosition,\n radius: radius,\n series: seriesNew\n };\n}\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n if (item.labelShow === false) {\n continue;\n }\n var startX = void 0,\n endX = void 0,\n startY = void 0,\n fontSize = void 0;\n var text = item.formatter ? item.formatter(item, i, series, opts) : util.toFixed(item._proportion_ * 100) + '%';\n text = item.labelText ? item.labelText : text;\n if (labelAlign == 'right') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\n }\n endX = startX + activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n if (labelAlign == 'left') {\n if (i == series.length - 1) {\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\n } else {\n startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\n }\n endX = startX - activeWidth * 2;\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\n context.setLineWidth(1 * opts.pix);\n context.setStrokeStyle(item.color);\n context.setFillStyle(item.color);\n context.beginPath();\n context.moveTo(startX, startY);\n context.lineTo(endX, startY);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(endX, startY);\n context.arc(endX, startY, 2, 0, 2 * Math.PI);\n context.closePath();\n context.fill();\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.textColor || opts.fontColor);\n context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\nfunction drawFunnelCenterText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\n for (var i = 0; i < series.length; i++) {\n var item = series[i];\n var startY = void 0,\n fontSize = void 0;\n if (item.centerText) {\n startY = item.funnelArea[1] + eachSpacing / 2;\n fontSize = item.centerTextSize * opts.pix || opts.fontSize * opts.pix;\n context.beginPath();\n context.setFontSize(fontSize);\n context.setFillStyle(item.centerTextColor || \"#FFFFFF\");\n context.fillText(item.centerText, centerPosition.x - measureText(item.centerText, fontSize, context) / 2, startY + fontSize / 2 - 2);\n context.closePath();\n context.stroke();\n context.closePath();\n }\n }\n}\nfunction drawCanvas(opts, context) {\n context.save();\n context.translate(0, 0.5);\n context.restore();\n context.draw();\n}\nvar Timing = {\n easeIn: function easeIn(pos) {\n return Math.pow(pos, 3);\n },\n easeOut: function easeOut(pos) {\n return Math.pow(pos - 1, 3) + 1;\n },\n easeInOut: function easeInOut(pos) {\n if ((pos /= 0.5) < 1) {\n return 0.5 * Math.pow(pos, 3);\n } else {\n return 0.5 * (Math.pow(pos - 2, 3) + 2);\n }\n },\n linear: function linear(pos) {\n return pos;\n }\n};\nfunction Animation(opts) {\n this.isStop = false;\n opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\n opts.timing = opts.timing || 'easeInOut';\n var delay = 17;\n function createAnimationFrame() {\n if (typeof setTimeout !== 'undefined') {\n return function (step, delay) {\n setTimeout(function () {\n var timeStamp = +new Date();\n step(timeStamp);\n }, delay);\n };\n } else if (typeof requestAnimationFrame !== 'undefined') {\n return requestAnimationFrame;\n } else {\n return function (step) {\n step(null);\n };\n }\n }\n ;\n var animationFrame = createAnimationFrame();\n var startTimeStamp = null;\n var _step = function step(timestamp) {\n if (timestamp === null || this.isStop === true) {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n return;\n }\n if (startTimeStamp === null) {\n startTimeStamp = timestamp;\n }\n if (timestamp - startTimeStamp < opts.duration) {\n var process = (timestamp - startTimeStamp) / opts.duration;\n var timingFunction = Timing[opts.timing];\n process = timingFunction(process);\n opts.onProcess && opts.onProcess(process);\n animationFrame(_step, delay);\n } else {\n opts.onProcess && opts.onProcess(1);\n opts.onAnimationFinish && opts.onAnimationFinish();\n }\n };\n _step = _step.bind(this);\n animationFrame(_step, delay);\n}\nAnimation.prototype.stop = function () {\n this.isStop = true;\n};\nfunction drawCharts(type, opts, config, context) {\n var _this2 = this;\n var _this = this;\n var series = opts.series;\n //兼容ECharts饼图类数据格式\n if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {\n series = fixPieSeries(series, opts, config);\n }\n var categories = opts.categories;\n if (type === 'mount') {\n categories = [];\n for (var j = 0; j < series.length; j++) {\n if (series[j].show !== false) categories.push(series[j].name);\n }\n opts.categories = categories;\n }\n series = fillSeries(series, opts, config);\n var duration = opts.animation ? opts.duration : 0;\n _this.animationInstance && _this.animationInstance.stop();\n var seriesMA = null;\n if (type == 'candle') {\n var average = assign({}, opts.extra.candle.average);\n if (average.show) {\n seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\n seriesMA = fillSeries(seriesMA, opts, config);\n opts.seriesMA = seriesMA;\n } else if (opts.seriesMA) {\n seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\n } else {\n seriesMA = series;\n }\n } else {\n seriesMA = series;\n }\n /* 过滤掉show=false的series */\n opts._series_ = series = filterSeries(series);\n //重新计算图表区域\n opts.area = new Array(4);\n //复位绘图区域\n for (var _j11 = 0; _j11 < 4; _j11++) {\n opts.area[_j11] = opts.padding[_j11] * opts.pix;\n }\n //通过计算三大区域:图例、X轴、Y轴的大小,确定绘图区域\n var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\n legendHeight = _calLegendData.area.wholeHeight,\n legendWidth = _calLegendData.area.wholeWidth;\n switch (opts.legend.position) {\n case 'top':\n opts.area[0] += legendHeight;\n break;\n case 'bottom':\n opts.area[2] += legendHeight;\n break;\n case 'left':\n opts.area[3] += legendWidth;\n break;\n case 'right':\n opts.area[1] += legendWidth;\n break;\n }\n var _calYAxisData = {},\n yAxisWidth = 0;\n if (opts.type === 'line' || opts.type === 'column' || opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n _calYAxisData = calYAxisData(series, opts, config, context);\n yAxisWidth = _calYAxisData.yAxisWidth;\n //如果显示Y轴标题\n if (opts.yAxis.showTitle) {\n var maxTitleHeight = 0;\n for (var i = 0; i < opts.yAxis.data.length; i++) {\n maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize);\n }\n opts.area[0] += maxTitleHeight;\n }\n var rightIndex = 0,\n leftIndex = 0;\n //计算主绘图区域左右位置\n for (var _i32 = 0; _i32 < yAxisWidth.length; _i32++) {\n if (yAxisWidth[_i32].position == 'left') {\n if (leftIndex > 0) {\n opts.area[3] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[3] += yAxisWidth[_i32].width;\n }\n leftIndex += 1;\n } else if (yAxisWidth[_i32].position == 'right') {\n if (rightIndex > 0) {\n opts.area[1] += yAxisWidth[_i32].width + opts.yAxis.padding * opts.pix;\n } else {\n opts.area[1] += yAxisWidth[_i32].width;\n }\n rightIndex += 1;\n }\n }\n } else {\n config.yAxisWidth = yAxisWidth;\n }\n opts.chartData.yAxisData = _calYAxisData;\n if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\n opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\n var _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n xAxisHeight = _calCategoriesData.xAxisHeight,\n angle = _calCategoriesData.angle;\n config.xAxisHeight = xAxisHeight;\n config._xAxisTextAngle_ = angle;\n opts.area[2] += xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData;\n } else {\n if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\n opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\n categories = opts.chartData.xAxisData.rangesFormat;\n var _calCategoriesData2 = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\n _xAxisHeight = _calCategoriesData2.xAxisHeight,\n _angle = _calCategoriesData2.angle;\n config.xAxisHeight = _xAxisHeight;\n config._xAxisTextAngle_ = _angle;\n opts.area[2] += _xAxisHeight;\n opts.chartData.categoriesData = _calCategoriesData2;\n } else {\n opts.chartData.xAxisData = {\n xAxisPoints: []\n };\n }\n }\n\n //计算右对齐偏移距离\n if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\n var offsetLeft = 0,\n xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\n startX = opts.chartData.xAxisData.startX,\n endX = opts.chartData.xAxisData.endX,\n eachSpacing = opts.chartData.xAxisData.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n _this.scrollOption.currentOffset = offsetLeft;\n _this.scrollOption.startTouchX = offsetLeft;\n _this.scrollOption.distance = 0;\n _this.scrollOption.lastMoveTime = 0;\n opts._scrollDistance_ = offsetLeft;\n }\n if (type === 'pie' || type === 'ring' || type === 'rose') {\n config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\n }\n switch (type) {\n case 'word':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawWordCloudDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'map':\n context.clearRect(0, 0, opts.width, opts.height);\n drawMapDataPoints(series, opts, config, context);\n setTimeout(function () {\n _this2.uevent.trigger('renderComplete');\n }, 50);\n break;\n case 'funnel':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'line':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawLineDataPoints.xAxisPoints,\n calPoints = _drawLineDataPoints.calPoints,\n eachSpacing = _drawLineDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'scatter':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawScatterDataPoints.xAxisPoints,\n calPoints = _drawScatterDataPoints.calPoints,\n eachSpacing = _drawScatterDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'bubble':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\n calPoints = _drawBubbleDataPoints.calPoints,\n eachSpacing = _drawBubbleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'mix':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMixDataPoints.xAxisPoints,\n calPoints = _drawMixDataPoints.calPoints,\n eachSpacing = _drawMixDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'column':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawColumnDataPoints.xAxisPoints,\n calPoints = _drawColumnDataPoints.calPoints,\n eachSpacing = _drawColumnDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'mount':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawMountDataPoints.xAxisPoints,\n calPoints = _drawMountDataPoints.calPoints,\n eachSpacing = _drawMountDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'bar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawXAxis(categories, opts, config, context);\n var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\n yAxisPoints = _drawBarDataPoints.yAxisPoints,\n calPoints = _drawBarDataPoints.calPoints,\n eachSpacing = _drawBarDataPoints.eachSpacing;\n opts.chartData.yAxisPoints = yAxisPoints;\n opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'area':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\n xAxisPoints = _drawAreaDataPoints.xAxisPoints,\n calPoints = _drawAreaDataPoints.calPoints,\n eachSpacing = _drawAreaDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'ring':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'pie':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'rose':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'radar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\n drawLegend(opts.series, opts, config, context, opts.chartData);\n drawToolTipBridge(opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'arcbar':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'gauge':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n case 'candle':\n this.animationInstance = new Animation({\n timing: opts.timing,\n duration: duration,\n onProcess: function onProcess(process) {\n context.clearRect(0, 0, opts.width, opts.height);\n if (opts.rotate) {\n contextRotate(context, opts);\n }\n drawYAxisGrid(categories, opts, config, context);\n drawXAxis(categories, opts, config, context);\n var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\n xAxisPoints = _drawCandleDataPoints.xAxisPoints,\n calPoints = _drawCandleDataPoints.calPoints,\n eachSpacing = _drawCandleDataPoints.eachSpacing;\n opts.chartData.xAxisPoints = xAxisPoints;\n opts.chartData.calPoints = calPoints;\n opts.chartData.eachSpacing = eachSpacing;\n drawYAxis(series, opts, config, context);\n if (opts.enableMarkLine !== false && process === 1) {\n drawMarkLine(opts, config, context);\n }\n if (seriesMA) {\n drawLegend(seriesMA, opts, config, context, opts.chartData);\n } else {\n drawLegend(opts.series, opts, config, context, opts.chartData);\n }\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\n drawCanvas(opts, context);\n },\n onAnimationFinish: function onAnimationFinish() {\n _this.uevent.trigger('renderComplete');\n }\n });\n break;\n }\n}\nfunction uChartsEvent() {\n this.events = {};\n}\nuChartsEvent.prototype.addEventListener = function (type, listener) {\n this.events[type] = this.events[type] || [];\n this.events[type].push(listener);\n};\nuChartsEvent.prototype.delEventListener = function (type) {\n this.events[type] = [];\n};\nuChartsEvent.prototype.trigger = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var type = args[0];\n var params = args.slice(1);\n if (!!this.events[type]) {\n this.events[type].forEach(function (listener) {\n try {\n listener.apply(null, params);\n } catch (e) {\n //console.log('[uCharts] '+e);\n }\n });\n }\n};\nvar uCharts = function uCharts(opts) {\n opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\n opts.fontSize = opts.fontSize ? opts.fontSize : 13;\n opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\n if (opts.background == \"\" || opts.background == \"none\") {\n opts.background = \"#FFFFFF\";\n }\n opts.title = assign({}, opts.title);\n opts.subtitle = assign({}, opts.subtitle);\n opts.duration = opts.duration ? opts.duration : 1000;\n opts.yAxis = assign({}, {\n data: [],\n showTitle: false,\n disabled: false,\n disableGrid: false,\n gridSet: 'number',\n splitNumber: 5,\n gridType: 'solid',\n dashLength: 4 * opts.pix,\n gridColor: '#cccccc',\n padding: 10,\n fontColor: '#666666'\n }, opts.yAxis);\n opts.xAxis = assign({}, {\n rotateLabel: false,\n rotateAngle: 45,\n disabled: false,\n disableGrid: false,\n splitNumber: 5,\n calibration: false,\n fontColor: '#666666',\n fontSize: 13,\n lineHeight: 20,\n marginTop: 0,\n gridType: 'solid',\n dashLength: 4,\n scrollAlign: 'left',\n boundaryGap: 'center',\n axisLine: true,\n axisLineColor: '#cccccc',\n titleFontSize: 13,\n titleOffsetY: 0,\n titleOffsetX: 0,\n titleFontColor: '#666666'\n }, opts.xAxis);\n opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\n opts.legend = assign({}, {\n show: true,\n position: 'bottom',\n float: 'center',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n padding: 5,\n margin: 5,\n itemGap: 10,\n fontSize: opts.fontSize,\n lineHeight: opts.fontSize,\n fontColor: opts.fontColor,\n formatter: {},\n hiddenColor: '#CECECE'\n }, opts.legend);\n opts.extra = assign({\n tooltip: {\n legendShape: 'auto'\n }\n }, opts.extra);\n opts.rotate = opts.rotate ? true : false;\n opts.animation = opts.animation ? true : false;\n opts.rotate = opts.rotate ? true : false;\n opts.canvas2d = opts.canvas2d ? true : false;\n var config$$1 = assign({}, config);\n config$$1.color = opts.color ? opts.color : config$$1.color;\n if (opts.type == 'pie') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'ring') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n if (opts.type == 'rose') {\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\n }\n config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\n\n //屏幕旋转\n config$$1.rotate = opts.rotate;\n if (opts.rotate) {\n var tempWidth = opts.width;\n var tempHeight = opts.height;\n opts.width = tempHeight;\n opts.height = tempWidth;\n }\n\n //适配高分屏\n opts.padding = opts.padding ? opts.padding : config$$1.padding;\n config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\n config$$1.fontSize = opts.fontSize * opts.pix;\n config$$1.titleFontSize = config.titleFontSize * opts.pix;\n config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\n if (!opts.context) {\n throw new Error('[uCharts] 未获取到context!注意:v2.0版本后,需要自行获取canvas的绘图上下文并传入opts.context!');\n }\n this.context = opts.context;\n if (!this.context.setTextAlign) {\n this.context.setStrokeStyle = function (e) {\n return this.strokeStyle = e;\n };\n this.context.setLineWidth = function (e) {\n return this.lineWidth = e;\n };\n this.context.setLineCap = function (e) {\n return this.lineCap = e;\n };\n this.context.setFontSize = function (e) {\n return this.font = e + \"px sans-serif\";\n };\n this.context.setFillStyle = function (e) {\n return this.fillStyle = e;\n };\n this.context.setTextAlign = function (e) {\n return this.textAlign = e;\n };\n this.context.setTextBaseline = function (e) {\n return this.textBaseline = e;\n };\n this.context.setShadow = function (offsetX, offsetY, blur, color) {\n this.shadowColor = color;\n this.shadowOffsetX = offsetX;\n this.shadowOffsetY = offsetY;\n this.shadowBlur = blur;\n };\n this.context.draw = function () {};\n }\n //兼容NVUEsetLineDash\n if (!this.context.setLineDash) {\n this.context.setLineDash = function (e) {};\n }\n opts.chartData = {};\n this.uevent = new uChartsEvent();\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n this.opts = opts;\n this.config = config$$1;\n drawCharts.call(this, opts.type, opts, config$$1, this.context);\n};\nuCharts.prototype.updateData = function () {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.opts = assign({}, this.opts, data);\n this.opts.updateData = true;\n var scrollPosition = data.scrollPosition || 'current';\n switch (scrollPosition) {\n case 'current':\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n break;\n case 'left':\n this.opts._scrollDistance_ = 0;\n this.scrollOption = {\n currentOffset: 0,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n break;\n case 'right':\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var totalWidth = eachSpacing * (xAxisPoints.length - 1);\n var screenWidth = endX - startX;\n offsetLeft = screenWidth - totalWidth;\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: offsetLeft,\n distance: 0,\n lastMoveTime: 0\n };\n this.opts._scrollDistance_ = offsetLeft;\n break;\n }\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.zoom = function () {\n var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7193\");\n return;\n }\n //当前屏幕中间点\n var centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\n this.opts.animation = false;\n this.opts.xAxis.itemCount = val.itemCount;\n //重新计算x轴偏移距离\n var _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\n yAxisWidth = _calYAxisData.yAxisWidth;\n this.config.yAxisWidth = yAxisWidth;\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var centerLeft = eachSpacing * centerPoint;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = screenWidth / 2 - centerLeft;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption = {\n currentOffset: offsetLeft,\n startTouchX: 0,\n distance: 0,\n lastMoveTime: 0\n };\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.dobuleZoom = function (e) {\n if (this.opts.enableScroll !== true) {\n __f__(\"log\", '[uCharts] 请启用滚动条后使用', \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7233\");\n return;\n }\n var tcs = e.changedTouches;\n if (tcs.length < 2) {\n return;\n }\n for (var i = 0; i < tcs.length; i++) {\n tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;\n tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;\n }\n var ntcs = [getTouches(tcs[0], this.opts, e), getTouches(tcs[1], this.opts, e)];\n var xlength = Math.abs(ntcs[0].x - ntcs[1].x);\n // 记录初始的两指之间的数据\n if (!this.scrollOption.moveCount) {\n var cts0 = {\n changedTouches: [{\n x: tcs[0].x,\n y: this.opts.area[0] / this.opts.pix + 2\n }]\n };\n var cts1 = {\n changedTouches: [{\n x: tcs[1].x,\n y: this.opts.area[0] / this.opts.pix + 2\n }]\n };\n if (this.opts.rotate) {\n cts0 = {\n changedTouches: [{\n x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,\n y: tcs[0].y\n }]\n };\n cts1 = {\n changedTouches: [{\n x: this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,\n y: tcs[1].y\n }]\n };\n }\n var moveCurrent1 = this.getCurrentDataIndex(cts0).index;\n var moveCurrent2 = this.getCurrentDataIndex(cts1).index;\n var moveCount = Math.abs(moveCurrent1 - moveCurrent2);\n this.scrollOption.moveCount = moveCount;\n this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);\n this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);\n return;\n }\n var currentEachSpacing = xlength / this.scrollOption.moveCount;\n var itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;\n itemCount = itemCount <= 2 ? 2 : itemCount;\n itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;\n this.opts.animation = false;\n this.opts.xAxis.itemCount = itemCount;\n // 重新计算滚动条偏移距离\n var offsetLeft = 0;\n var _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\n startX = _getXAxisPoints0.startX,\n endX = _getXAxisPoints0.endX,\n eachSpacing = _getXAxisPoints0.eachSpacing;\n var currentLeft = eachSpacing * this.scrollOption.moveCurrent1;\n var screenWidth = endX - startX;\n var MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\n offsetLeft = -currentLeft + Math.min(ntcs[0].x, ntcs[1].x) - this.opts.area[3] - eachSpacing;\n if (offsetLeft > 0) {\n offsetLeft = 0;\n }\n if (offsetLeft < MaxLeft) {\n offsetLeft = MaxLeft;\n }\n this.scrollOption.currentOffset = offsetLeft;\n this.scrollOption.startTouchX = 0;\n this.scrollOption.distance = 0;\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\n this.opts._scrollDistance_ = offsetLeft;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n};\nuCharts.prototype.stopAnimation = function () {\n this.animationInstance && this.animationInstance.stop();\n};\nuCharts.prototype.addEventListener = function (type, listener) {\n this.uevent.addEventListener(type, listener);\n};\nuCharts.prototype.delEventListener = function (type) {\n this.uevent.delEventListener(type);\n};\nuCharts.prototype.getCurrentDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n if (this.opts.type === 'pie' || this.opts.type === 'ring') {\n return findPieChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'rose') {\n return findRoseChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.pieData, this.opts);\n } else if (this.opts.type === 'radar') {\n return findRadarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.radarData, this.opts.categories.length);\n } else if (this.opts.type === 'funnel') {\n return findFunnelChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.funnelData);\n } else if (this.opts.type === 'map') {\n return findMapChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts);\n } else if (this.opts.type === 'word') {\n return findWordChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.wordCloudData);\n } else if (this.opts.type === 'bar') {\n return findBarChartCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n } else {\n return findCurrentIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\n }\n }\n return -1;\n};\nuCharts.prototype.getLegendDataIndex = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n return findLegendIndex({\n x: _touches$.x,\n y: _touches$.y\n }, this.opts.chartData.legendData);\n }\n return -1;\n};\nuCharts.prototype.touchLegend = function (e) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches) {\n var _touches$ = getTouches(touches, this.opts, e);\n var index = this.getLegendDataIndex(e);\n if (index >= 0) {\n if (this.opts.type == 'candle') {\n this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\n } else {\n this.opts.series[index].show = !this.opts.series[index].show;\n }\n this.opts.animation = option.animation ? true : false;\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\n }\n }\n};\nuCharts.prototype.showToolTip = function (e) {\n var _this3 = this;\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (!touches) {\n __f__(\"log\", \"[uCharts] 未获取到event坐标信息\", \" at uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js:7411\");\n }\n var _touches$ = getTouches(touches, this.opts, e);\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index,\n group: current.group\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mount') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color,\n legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape\n }];\n var offset = {\n x: opts.chartData.calPoints[index].x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'bar') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1 || index.length > 0) {\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\n if (seriesData.length !== 0) {\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.x = _touches$.x;\n opts.tooltip = {\n textList: option.textList !== undefined ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'mix') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\n textList = _getMixToolTipData.textList,\n offset = _getMixToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'candle') {\n var current = this.getCurrentDataIndex(e);\n var index = option.index == undefined ? current.index : option.index;\n if (index > -1) {\n var currentOffset = this.scrollOption.currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset,\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\n textList = _getToolTipData.textList,\n offset = _getToolTipData.offset;\n offset.y = _touches$.y;\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, opts._series_[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\n color: seriesData.color,\n legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'map') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, this.opts.series[index]);\n seriesData.name = seriesData.properties.name;\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color,\n legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'word') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = assign({}, this.opts.series[index]);\n var textList = [{\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\n color: seriesData.color,\n legendShape: this.opts.extra.tooltip.legendShape == 'auto' ? seriesData.legendShape : this.opts.extra.tooltip.legendShape\n }];\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n opts.updateData = false;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n if (this.opts.type === 'radar') {\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\n if (index > -1) {\n var opts = assign({}, this.opts, {\n animation: false\n });\n var seriesData = getSeriesDataItem(this.opts.series, index);\n if (seriesData.length !== 0) {\n var textList = seriesData.map(function (item) {\n return {\n text: option.formatter ? option.formatter(item, _this3.opts.categories[index], index, _this3.opts) : item.name + ': ' + item.data,\n color: item.color,\n legendShape: _this3.opts.extra.tooltip.legendShape == 'auto' ? item.legendShape : _this3.opts.extra.tooltip.legendShape\n };\n });\n var offset = {\n x: _touches$.x,\n y: _touches$.y\n };\n opts.tooltip = {\n textList: option.textList ? option.textList : textList,\n offset: option.offset !== undefined ? option.offset : offset,\n option: option,\n index: index\n };\n }\n }\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n }\n};\nuCharts.prototype.translate = function (distance) {\n this.scrollOption = {\n currentOffset: distance,\n startTouchX: distance,\n distance: 0,\n lastMoveTime: 0\n };\n var opts = assign({}, this.opts, {\n _scrollDistance_: distance,\n animation: false\n });\n drawCharts.call(this, this.opts.type, opts, this.config, this.context);\n};\nuCharts.prototype.scrollStart = function (e) {\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n var _touches$ = getTouches(touches, this.opts, e);\n if (touches && this.opts.enableScroll === true) {\n this.scrollOption.startTouchX = _touches$.x;\n }\n};\nuCharts.prototype.scroll = function (e) {\n if (this.scrollOption.lastMoveTime === 0) {\n this.scrollOption.lastMoveTime = Date.now();\n }\n var Limit = this.opts.touchMoveLimit || 60;\n var currMoveTime = Date.now();\n var duration = currMoveTime - this.scrollOption.lastMoveTime;\n if (duration < Math.floor(1000 / Limit)) return;\n if (this.scrollOption.startTouchX == 0) return;\n this.scrollOption.lastMoveTime = currMoveTime;\n var touches = null;\n if (e.changedTouches) {\n touches = e.changedTouches[0];\n } else {\n touches = e.mp.changedTouches[0];\n }\n if (touches && this.opts.enableScroll === true) {\n var _touches$ = getTouches(touches, this.opts, e);\n var _distance;\n _distance = _touches$.x - this.scrollOption.startTouchX;\n var currentOffset = this.scrollOption.currentOffset;\n var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\n this.scrollOption.distance = _distance = validDistance - currentOffset;\n var opts = assign({}, this.opts, {\n _scrollDistance_: currentOffset + _distance,\n animation: false\n });\n this.opts = opts;\n drawCharts.call(this, opts.type, opts, this.config, this.context);\n return currentOffset + _distance;\n }\n};\nuCharts.prototype.scrollEnd = function (e) {\n if (this.opts.enableScroll === true) {\n var _scrollOption = this.scrollOption,\n currentOffset = _scrollOption.currentOffset,\n distance = _scrollOption.distance;\n this.scrollOption.currentOffset = currentOffset + distance;\n this.scrollOption.distance = 0;\n this.scrollOption.moveCount = 0;\n }\n};\nvar _default = uCharts;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvdS1jaGFydHMuanMiXSwibmFtZXMiOlsiY29uZmlnIiwidmVyc2lvbiIsInlBeGlzV2lkdGgiLCJ4QXhpc0hlaWdodCIsInBhZGRpbmciLCJyb3RhdGUiLCJmb250U2l6ZSIsImZvbnRDb2xvciIsImRhdGFQb2ludFNoYXBlIiwiY29sb3IiLCJsaW5lYXJDb2xvciIsInBpZUNoYXJ0TGluZVBhZGRpbmciLCJwaWVDaGFydFRleHRQYWRkaW5nIiwidGl0bGVGb250U2l6ZSIsInN1YnRpdGxlRm9udFNpemUiLCJyYWRhckxhYmVsVGV4dE1hcmdpbiIsImFzc2lnbiIsInRhcmdldCIsInZhckFyZ3MiLCJUeXBlRXJyb3IiLCJsZW5ndGgiLCJkZWVwQXNzaWduIiwib2JqMSIsIm9iajIiLCJrZXkiLCJ0b1N0cmluZyIsImZvckVhY2giLCJ2YWwiLCJ1dGlsIiwidG9GaXhlZCIsIm51bSIsImxpbWl0IiwiaXNGbG9hdCIsImFwcHJveGltYXRlbHlFcXVhbCIsIm51bTEiLCJudW0yIiwiTWF0aCIsImFicyIsImlzU2FtZVNpZ24iLCJpc1NhbWVYQ29vcmRpbmF0ZUFyZWEiLCJwMSIsInAyIiwieCIsImlzQ29sbGlzaW9uIiwiZW5kIiwic3RhcnQiLCJ3aWR0aCIsInkiLCJoZWlnaHQiLCJmbGFnIiwiZ2V0SDVPZmZzZXQiLCJlIiwibXAiLCJjaGFuZ2VkVG91Y2hlcyIsInB1c2giLCJvZmZzZXRYIiwib2Zmc2V0WSIsImhleFRvUmdiIiwiaGV4VmFsdWUiLCJvcGMiLCJyZ3giLCJoZXgiLCJyZXBsYWNlIiwibSIsInIiLCJnIiwiYiIsInJnYiIsImV4ZWMiLCJwYXJzZUludCIsImZpbmRSYW5nZSIsInR5cGUiLCJpc05hTiIsIkVycm9yIiwibXVsdGlwbGUiLCJjZWlsIiwiZmxvb3IiLCJjYWxDYW5kbGVNQSIsImRheUFyciIsIm5hbWVBcnIiLCJjb2xvckFyciIsImtkYXRhIiwic2VyaWVzVGVtcCIsImsiLCJzZXJpZXNJdGVtIiwiZGF0YSIsIm5hbWUiLCJpIiwibGVuIiwic3VtIiwiaiIsImNhbFZhbGlkRGlzdGFuY2UiLCJzZWxmIiwiZGlzdGFuY2UiLCJjaGFydERhdGEiLCJvcHRzIiwiZGF0YUNoYXJ0QXJlYVdpZHRoIiwiYXJlYSIsImRhdGFDaGFydFdpZHRoIiwiZWFjaFNwYWNpbmciLCJ4QXhpc0RhdGEiLCJ4QXhpc1BvaW50cyIsImV4dHJhIiwibW91bnQiLCJ3aWR0aFJhdGlvIiwidmFsaWREaXN0YW5jZSIsInVldmVudCIsInRyaWdnZXIiLCJzY3JvbGxPcHRpb24iLCJwb3NpdGlvbiIsInhBeGlzIiwic2Nyb2xsUG9zaXRpb24iLCJpc0luQW5nbGVSYW5nZSIsImFuZ2xlIiwic3RhcnRBbmdsZSIsImVuZEFuZ2xlIiwiYWRqdXN0IiwiUEkiLCJjcmVhdGVDdXJ2ZUNvbnRyb2xQb2ludHMiLCJwb2ludHMiLCJpc05vdE1pZGRsZVBvaW50IiwibWF4IiwibWluIiwiaXNOb3RNaWRkbGVQb2ludFgiLCJhIiwicEF4IiwicEF5IiwicEJ4IiwicEJ5IiwibGFzdCIsImN0ckEiLCJjdHJCIiwiY29udmVydENvb3JkaW5hdGVPcmlnaW4iLCJjZW50ZXIiLCJhdm9pZENvbGxpc2lvbiIsIm9iaiIsImZpeFBpZVNlcmllcyIsInNlcmllcyIsInBpZVNlcmllc0FyciIsImNvbnN0cnVjdG9yIiwiaW5kZXhPZiIsIl9waWVTZXJpZXNfIiwib2xkc2VyaWVzIiwiZm9ybWF0dGVyIiwidmFsdWUiLCJmaWxsU2VyaWVzIiwiaW5kZXgiLCJpdGVtIiwibGluZWFySW5kZXgiLCJzaG93IiwicG9pbnRTaGFwZSIsImxlZ2VuZFNoYXBlIiwiZmlsbEN1c3RvbUNvbG9yIiwibGluZWFyVHlwZSIsImN1c3RvbUNvbG9yIiwibmV3Y29sb3IiLCJjaGF6aGkiLCJnZXREYXRhUmFuZ2UiLCJtaW5EYXRhIiwibWF4RGF0YSIsInJhbmdlIiwibWluUmFuZ2UiLCJtYXhSYW5nZSIsIm1lYXN1cmVUZXh0IiwidGV4dCIsImNvbnRleHQiLCJTdHJpbmciLCJ1bmRlZmluZWQiLCJzZXRGb250U2l6ZSIsInNwbGl0IiwidGVzdCIsImRhdGFDb21iaW5lIiwicmVkdWNlIiwiY29uY2F0IiwiZGF0YUNvbWJpbmVTdGFjayIsIkFycmF5IiwiZ2V0VG91Y2hlcyIsInRvdWNoZXMiLCJjbGllbnRYIiwicGl4IiwicGFnZVkiLCJjdXJyZW50VGFyZ2V0Iiwib2Zmc2V0VG9wIiwiZ2V0U2VyaWVzRGF0YUl0ZW0iLCJncm91cCIsIm5ld1NlcmllcyIsImluZGV4SXNBcnIiLCJ0ZW1wU2VyaWVzIiwiZmlsdGVyU2VyaWVzIiwidG1waW5kZXgiLCJzdHlsZSIsImRpc2FibGVMZWdlbmQiLCJnZXRNYXhUZXh0TGlzdExlbmd0aCIsImxpc3QiLCJsZW5ndGhMaXN0IiwibWFwIiwiYXBwbHkiLCJnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMiLCJlYWNoQW5nbGUiLCJDb29yZGluYXRlU2VyaWVzIiwiZ2V0VG9vbFRpcERhdGEiLCJzZXJpZXNEYXRhIiwiY2F0ZWdvcmllcyIsIm9wdGlvbiIsImFyZ3VtZW50cyIsImNhbFBvaW50cyIsImZpbHRlclBvaW50cyIsInRleHRMaXN0IiwidGl0bGVUZXh0IiwidG9vbHRpcCIsIm9mZnNldCIsInJvdW5kIiwiZ2V0TWl4VG9vbFRpcERhdGEiLCJmaWx0ZXIiLCJnZXRDYW5kbGVUb29sVGlwRGF0YSIsInVwQ29sb3IiLCJ1cEZpbGwiLCJkb3duQ29sb3IiLCJkb3duRmlsbCIsInRleHQxIiwidGV4dDIiLCJ0ZXh0MyIsInRleHQ0IiwidmFsaWRDYWxQb2ludHMiLCJmaW5kQ3VycmVudEluZGV4IiwiY3VycmVudFBvaW50cyIsImN1cnJlbnQiLCJzcGFjaW5nIiwiYm91bmRhcnlHYXAiLCJpc0luRXhhY3RDaGFydEFyZWEiLCJ0aW1lUG9pbnRzIiwicG9pbnRWYWx1ZSIsInBvaW50SW5kZXgiLCJtaW5WYWx1ZSIsImZpbmRCYXJDaGFydEN1cnJlbnRJbmRleCIsInlBeGlzUG9pbnRzIiwiZmluZExlZ2VuZEluZGV4IiwibGVnZW5kRGF0YSIsImN1cnJlbnRJbmRleCIsImdhcCIsImlzSW5FeGFjdExlZ2VuZEFyZWEiLCJmaW5kUmFkYXJDaGFydEN1cnJlbnRJbmRleCIsInJhZGFyRGF0YSIsImNvdW50IiwiZWFjaEFuZ2xlQXJlYSIsImlzSW5FeGFjdFBpZUNoYXJ0QXJlYSIsInJhZGl1cyIsImZpeEFuZ2xlIiwiYXRhbjIiLCJhbmdsZUxpc3QiLCJyYW5nZVN0YXJ0IiwicmFuZ2VFbmQiLCJmaW5kRnVubmVsQ2hhcnRDdXJyZW50SW5kZXgiLCJmdW5uZWxEYXRhIiwiZnVubmVsQXJlYSIsImZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgiLCJ3b3JkRGF0YSIsImZpbmRNYXBDaGFydEN1cnJlbnRJbmRleCIsImNEYXRhIiwibWFwRGF0YSIsInRtcCIsInBvaW50VG9Db29yZGluYXRlIiwiYm91bmRzIiwic2NhbGUiLCJ4b2Zmc2V0IiwieW9mZnNldCIsInBvaSIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJpc1BvaVdpdGhpblBvbHkiLCJtZXJjYXRvciIsImZpbmRSb3NlQ2hhcnRDdXJyZW50SW5kZXgiLCJwaWVEYXRhIiwiZ2V0Um9zZURhdGFQb2ludHMiLCJfc2VyaWVzXyIsInJvc2UiLCJvZmZzZXRBbmdsZSIsIl9zdGFydF8iLCJfcm9zZV9wcm9wb3J0aW9uXyIsImZpbmRQaWVDaGFydEN1cnJlbnRJbmRleCIsImdldFBpZURhdGFQb2ludHMiLCJwaWUiLCJyaW5nIiwiX3Byb3BvcnRpb25fIiwicG93Iiwic3BsaXRQb2ludHMiLCJlYWNoU2VyaWVzIiwibmV3UG9pbnRzIiwiaXRlbXMiLCJjb25uZWN0TnVsbHMiLCJjYWxMZWdlbmREYXRhIiwid2hvbGVXaWR0aCIsIndob2xlSGVpZ2h0Iiwid2lkdGhBcnIiLCJoZWlnaHRBcnIiLCJsZWdlbmQiLCJtYXJnaW4iLCJzaGFwZVdpZHRoIiwic2hhcGVSaWdodCIsImxpbmVIZWlnaHQiLCJsZWdlbmRMaXN0Iiwid2lkdGhDb3VudCIsIndpZHRoQ291bnRBcnIiLCJjdXJyZW50Um93IiwibGVnZW5kVGV4dCIsIml0ZW1XaWR0aCIsIml0ZW1HYXAiLCJsZWdlbmRXaWR0aCIsImZsb2F0IiwibWF4SGVpZ2h0IiwibWF4TGVuZ3RoIiwibGluZU51bSIsInRlbXAiLCJzbGljZSIsIm1heFdpZHRoIiwiY2FsQ2F0ZWdvcmllc0RhdGEiLCJyZXN1bHQiLCJtYXJnaW5Ub3AiLCJjYXRlZ29yaWVzVGV4dExlbnRoIiwieGl0ZW0iLCJtYXhUZXh0TGVuZ3RoIiwicm90YXRlTGFiZWwiLCJyb3RhdGVBbmdsZSIsInRlbXBIZWlnaHQiLCJzaW4iLCJlbmFibGVTY3JvbGwiLCJzY3JvbGxTaG93IiwiZGlzYWJsZWQiLCJnZXRYQXhpc1RleHRMaXN0Iiwic3RhY2siLCJzb3J0ZWQiLCJzdWJpdGVtIiwicmFuZ2VTcGFuIiwiZWFjaFJhbmdlIiwic3BsaXROdW1iZXIiLCJjYWxYQXhpc0RhdGEiLCJjb2x1bW5zdHlsZSIsImJhciIsInJhbmdlcyIsInJhbmdlc0Zvcm1hdCIsInhBeGlzU2NhbGVWYWx1ZXMiLCJPYmplY3QiLCJnZXRYQXhpc1BvaW50cyIsInRleHRMZW5ndGgiLCJnZXRSYWRhckRhdGFQb2ludHMiLCJwcm9jZXNzIiwicmFkYXJPcHRpb24iLCJyYWRhciIsImVhY2giLCJsaXN0SXRlbSIsInByb3BvcnRpb24iLCJjb3MiLCJfcmFkaXVzXyIsImdldEZ1bm5lbERhdGFQb2ludHMiLCJtaW5SYWRpdXMiLCJkYXRhQXJyIiwicmFkaXVzTGVuZ3RoIiwiZ2V0QXJjYmFyRGF0YVBvaW50cyIsImFyY2Jhck9wdGlvbiIsInRvdGFsQW5nbGUiLCJkaXJlY3Rpb24iLCJnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMiLCJnZXRHYXVnZUF4aXNQb2ludHMiLCJ0ZW1wU3RhcnRBbmdsZSIsIl9zdGFydEFuZ2xlXyIsIl9lbmRBbmdsZV8iLCJnZXRHYXVnZURhdGFQb2ludHMiLCJnYXVnZU9wdGlvbiIsInBvaW50ZXIiLCJfb2xkQW5nbGVfIiwib2xkQW5nbGUiLCJvbGREYXRhIiwiZ2V0UGllVGV4dE1heExlbmd0aCIsInRleHRTaXplIiwiZml4Q29sdW1lRGF0YSIsImNvbHVtbkxlbiIsInNlcmllc0dhcCIsImNhdGVnb3J5R2FwIiwibWl4IiwiY29sdW1uIiwiZml4QmFyRGF0YSIsImZpeENvbHVtZU1ldGVyRGF0YSIsImJvcmRlciIsImZpeENvbHVtZVN0YWNrRGF0YSIsImluZGV4biIsImZpeEJhclN0YWNrRGF0YSIsInNwYWNpbmdWYWxpZCIsImRhdGFDb3VudCIsIml0ZW1Db3VudCIsInN0YXJ0WCIsImVuZFgiLCJnZXRDYW5kbGVEYXRhUG9pbnRzIiwidmFsaWRIZWlnaHQiLCJjUG9pbnRzIiwiaW5kZXhzIiwicG9pbnQiLCJnZXREYXRhUG9pbnRzIiwidmFsaWRXaWR0aCIsInhyYW5nZXMiLCJ4bWluUmFuZ2UiLCJ4bWF4UmFuZ2UiLCJzaGlmdCIsInBvcCIsInQiLCJnZXRMaW5lRGF0YVBvaW50cyIsImxpbmVPcHRpb24iLCJhbmltYXRpb24iLCJnZXRDb2x1bW5EYXRhUG9pbnRzIiwiemVyb1BvaW50cyIsImdldE1vdW50RGF0YVBvaW50cyIsIm1vdW50T3B0aW9uIiwibW91bnRXaWR0aCIsImdldEJhckRhdGFQb2ludHMiLCJnZXRTdGFja0RhdGFQb2ludHMiLCJzZXJpZXNJbmRleCIsInN0YWNrU2VyaWVzIiwidmFsdWUwIiwiaGVpZ2h0MCIsImhlaWdodGMiLCJ5MCIsImdldEJhclN0YWNrRGF0YVBvaW50cyIsIngwIiwiZ2V0WUF4aXNUZXh0TGlzdCIsInlEYXRhIiwiZGF0YVJhbmdlIiwieUF4aXMiLCJyZXZlcnNlIiwiY2FsWUF4aXNEYXRhIiwiWUxlbmd0aCIsInJhbmdlc0FyciIsInJhbmdlc0Zvcm1hdEFyciIsInlBeGlzV2lkdGhBcnIiLCJ1bml0IiwidG9maXgiLCJ5QXhpc0ZvbnRTaXplcyIsImNhbGlicmF0aW9uIiwieUF4aXNGb250U2l6ZSIsImNhbFRvb2x0aXBZQXhpc0RhdGEiLCJ5QXhpc0RhdGEiLCJtaW5BeGlzIiwibWF4VmFsIiwibWluVmFsIiwiY2FsTWFya0xpbmVEYXRhIiwieUF4aXNJbmRleCIsImNvbnRleHRSb3RhdGUiLCJyb3RhdGVMb2NrIiwidHJhbnNsYXRlIiwiX3JvdGF0ZV8iLCJkcmF3UG9pbnRTaGFwZSIsInNoYXBlIiwiYmVnaW5QYXRoIiwiZGF0YVBvaW50U2hhcGVUeXBlIiwic2V0U3Ryb2tlU3R5bGUiLCJzZXRGaWxsU3R5bGUiLCJiYWNrZ3JvdW5kIiwic2V0TGluZVdpZHRoIiwibW92ZVRvIiwibGluZVRvIiwiYXJjIiwicmVjdCIsImNsb3NlUGF0aCIsImZpbGwiLCJzdHJva2UiLCJkcmF3QWN0aXZlUG9pbnQiLCJpbmNsdWRlcyIsImFjdGl2ZVR5cGUiLCJkcmF3UmluZ1RpdGxlIiwidGl0bGVmb250U2l6ZSIsInRpdGxlIiwic3VidGl0bGVmb250U2l6ZSIsInN1YnRpdGxlIiwidGl0bGVGb250Q29sb3IiLCJzdWJ0aXRsZUZvbnRDb2xvciIsInRpdGxlSGVpZ2h0Iiwic3VidGl0bGVIZWlnaHQiLCJ0ZXh0V2lkdGgiLCJzdGFydFkiLCJmaWxsVGV4dCIsIl90ZXh0V2lkdGgiLCJfc3RhcnRYIiwiX3N0YXJ0WSIsImRyYXdQb2ludFRleHQiLCJ0ZXh0T2Zmc2V0IiwidGV4dENvbG9yIiwiZm9ybWF0VmFsIiwic2V0VGV4dEFsaWduIiwiZHJhd0NvbHVtZVBvaW50VGV4dCIsIlBvc2l0aW9uIiwibGFiZWxQb3NpdGlvbiIsImRyYXdNb3VudFBvaW50VGV4dCIsImRyYXdCYXJQb2ludFRleHQiLCJkcmF3R2F1Z2VMYWJlbCIsImNlbnRlclBvc2l0aW9uIiwibGFiZWxPZmZzZXQiLCJzcGxpdEFuZ2xlIiwic3BsaXRMaW5lIiwidG90YWxOdW1iZXIiLCJlbmROdW1iZXIiLCJzdGFydE51bWJlciIsIm5vd0FuZ2xlIiwibm93TnVtYmVyIiwicG9zIiwibGFiZWxUZXh0IiwibGFiZWxDb2xvciIsImRyYXdSYWRhckxhYmVsIiwibGFiZWxQb2ludFNob3ciLCJwb3NQb2ludCIsInBvc1BvaW50QXhpcyIsImxhYmVsUG9pbnRDb2xvciIsImxhYmVsUG9pbnRSYWRpdXMiLCJsYWJlbFNob3ciLCJwb3NSZWxhdGl2ZUNhbnZhcyIsImRyYXdQaWVUZXh0IiwibGluZVJhZGl1cyIsInRleHRPYmplY3RDb2xsZWN0aW9uIiwibGFzdFRleHRPYmplY3QiLCJzZXJpZXNDb252ZXJ0Iiwib3JnaW5YMSIsIm9yZ2luWTEiLCJvcmdpblgyIiwib3JnaW5ZMiIsIm9yZ2luWDMiLCJvcmdpblkzIiwidGV4dE9iamVjdCIsImxpbmVTdGFydCIsImxpbmVFbmQiLCJsaW5lU3RhcnRQb2lzdGlvbiIsImxpbmVFbmRQb2lzdGlvbiIsInRleHRQb3NpdGlvbiIsImN1cnZlU3RhcnRYIiwidGV4dFN0YXJ0WCIsInF1YWRyYXRpY0N1cnZlVG8iLCJkcmF3VG9vbFRpcFNwbGl0TGluZSIsInRvb2xUaXBPcHRpb24iLCJncmlkVHlwZSIsImRhc2hMZW5ndGgiLCJlbmRZIiwic2V0TGluZURhc2giLCJncmlkQ29sb3IiLCJ4QXhpc0xhYmVsIiwidGV4dFgiLCJ0ZXh0WSIsImxhYmVsQmdDb2xvciIsInRvb2xUaXBCYWNrZ3JvdW5kIiwibGFiZWxCZ09wYWNpdHkiLCJ0b29sVGlwT3BhY2l0eSIsImJveFBhZGRpbmciLCJsYWJlbEZvbnRDb2xvciIsImRyYXdNYXJrTGluZSIsIm1hcmtMaW5lT3B0aW9uIiwibWFya0xpbmUiLCJsaW5lQ29sb3IiLCJzaG93TGFiZWwiLCJsYWJlbEZvbnRTaXplIiwibGFiZWxQYWRkaW5nIiwibGFiZWxBbGlnbiIsImxhYmVsT2Zmc2V0WCIsImxhYmVsT2Zmc2V0WSIsImJnV2lkdGgiLCJiZ1N0YXJ0WCIsImJnU3RhcnRZIiwiZHJhd1Rvb2xUaXBIb3JpemVudGFsTGluZSIsInlBeGlzTGFiZWwiLCJ0U3RhcnRMZWZ0IiwidFN0YXJ0UmlnaHQiLCJiZ0VuZFgiLCJkcmF3VG9vbFRpcFNwbGl0QXJlYSIsImFjdGl2ZUJnQ29sb3IiLCJhY3RpdmVCZ09wYWNpdHkiLCJhY3RpdmVXaWR0aCIsImRyYXdCYXJUb29sVGlwU3BsaXRBcmVhIiwiZHJhd1Rvb2xUaXAiLCJzaG93Qm94Iiwic2hvd0Fycm93Iiwic2hvd0NhdGVnb3J5IiwiYmdDb2xvciIsImJnT3BhY2l0eSIsImJvcmRlckNvbG9yIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJPcGFjaXR5IiwibGVnZW5kU2hvdyIsInVuc2hpZnQiLCJsZWdlbmRNYXJnaW5SaWdodCIsImFycm93V2lkdGgiLCJpc092ZXJSaWdodEJvcmRlciIsInRvb2xUaXBXaWR0aCIsInRvb2xUaXBIZWlnaHQiLCJfc2Nyb2xsRGlzdGFuY2VfIiwiZmlsbFJlY3QiLCJzZXRUZXh0QmFzZWxpbmUiLCJkcmF3Q29sdW1uRGF0YVBvaW50cyIsImNvbHVtbk9wdGlvbiIsIm1ldGVyQm9yZGVyIiwibWV0ZXJGaWxsQ29sb3IiLCJiYXJCb3JkZXJDaXJjbGUiLCJiYXJCb3JkZXJSYWRpdXMiLCJsaW5lYXJPcGFjaXR5IiwiY29sb3JTdG9wIiwic2F2ZSIsImxlZnROdW0iLCJyaWdodE51bSIsInplcm9IZWlnaHQiLCJ0b29sdGlwUG9pbnRzIiwiZmlsbENvbG9yIiwic3Ryb2tlQ29sb3IiLCJncmQiLCJjcmVhdGVMaW5lYXJHcmFkaWVudCIsImFkZENvbG9yU3RvcCIsImxlZnQiLCJ0b3AiLCJyMCIsInIxIiwicjIiLCJyMyIsImRhdGFMYWJlbCIsInJlc3RvcmUiLCJkcmF3TW91bnREYXRhUG9pbnRzIiwiYmV6aWVyQ3VydmVUbyIsImRyYXdCYXJEYXRhUG9pbnRzIiwiZHJhd0NhbmRsZURhdGFQb2ludHMiLCJzZXJpZXNNQSIsImNhbmRsZU9wdGlvbiIsImF2ZXJhZ2UiLCJjYW5kbGUiLCJ1cExpbmUiLCJkb3duTGluZSIsImRheSIsImxlZnRTcGFjZSIsInJpZ2h0U3BhY2UiLCJzcGxpdFBvaW50TGlzdCIsInN0YXJ0UG9pbnQiLCJjdHJsUG9pbnQiLCJkcmF3QXJlYURhdGFQb2ludHMiLCJhcmVhT3B0aW9uIiwib3BhY2l0eSIsImFkZExpbmUiLCJncmFkaWVudCIsImZpcnN0UG9pbnQiLCJsYXN0UG9pbnQiLCJsaW5lVHlwZSIsImRyYXdTY2F0dGVyRGF0YVBvaW50cyIsInNjYXR0ZXJPcHRpb24iLCJzY2F0dGVyIiwiZHJhd0J1YmJsZURhdGFQb2ludHMiLCJidWJibGVPcHRpb24iLCJidWJibGUiLCJkcmF3TGluZURhdGFQb2ludHMiLCJvblNoYWRvdyIsImxpbmUiLCJzZXRTaGFkb3ciLCJkcmF3TWl4RGF0YVBvaW50cyIsImNvbHVtbkluZGV4IiwiY29sdW1uTGVuZ3RoIiwiYWRkUG9pbnQiLCJkcmF3VG9vbFRpcEJyaWRnZSIsImhvcml6ZW50YWxMaW5lIiwiZHJhd1hBeGlzIiwic2Nyb2xsWSIsInNjcm9sbFNjcmVlbldpZHRoIiwic2Nyb2xsVG90YWxXaWR0aCIsInNjcm9sbFdpZHRoIiwic2Nyb2xsTGVmdCIsInNldExpbmVDYXAiLCJzY3JvbGxCYWNrZ3JvdW5kQ29sb3IiLCJzY3JvbGxDb2xvciIsImRpc2FibGVHcmlkIiwiZ3JpZEV2YWwiLCJtYXhYQXhpc0xpc3RMZW5ndGgiLCJsYWJlbENvdW50IiwicmF0aW8iLCJuZXdDYXRlZ29yaWVzIiwiY2dMZW5ndGgiLCJ4QXhpc0ZvbnRTaXplIiwiX3hBeGlzVGV4dEFuZ2xlXyIsInNjcm9sbEhlaWdodCIsInRydWVQb2ludHMiLCJ0aXRsZU9mZnNldFgiLCJ0aXRsZU9mZnNldFkiLCJheGlzTGluZSIsImF4aXNMaW5lQ29sb3IiLCJkcmF3WUF4aXNHcmlkIiwieEF4aXNlYWNoU3BhY2luZyIsIlRvdGFsV2lkdGgiLCJkcmF3WUF4aXMiLCJ0U3RhcnRDZW50ZXIiLCJ0ZXh0QWxpZ24iLCJ0bXBzdHJhdCIsImdhcHdpZHRoIiwic2hvd1RpdGxlIiwiZHJhd0xlZ2VuZCIsImxlZ2VuZEFyZWEiLCJiYWNrZ3JvdW5kQ29sb3IiLCJpdGVtTGlzdCIsImxpc3RJbmRleCIsImhpZGRlbkNvbG9yIiwiZm9udFRyYW5zIiwiZHJhd1BpZURhdGFQb2ludHMiLCJwaWVPcHRpb24iLCJhY3RpdmVPcGFjaXR5IiwiYWN0aXZlUmFkaXVzIiwibGFiZWxXaWR0aCIsInJpbmdXaWR0aCIsImN1c3RvbVJhZGl1cyIsImNlbnRlckNvbG9yIiwiX3BpZVRleHRNYXhMZW5ndGhfIiwibGluZUpvaW4iLCJmaWxsY29sb3IiLCJjcmVhdGVDaXJjdWxhckdyYWRpZW50IiwiY3JlYXRlUmFkaWFsR3JhZGllbnQiLCJpbm5lclBpZVdpZHRoIiwiZHJhd1Jvc2VEYXRhUG9pbnRzIiwicm9zZU9wdGlvbiIsImRyYXdBcmNiYXJEYXRhUG9pbnRzIiwibGluZUNhcCIsImFyY2JhciIsImNlbnRlclgiLCJjZW50ZXJZIiwiZHJhd0dhdWdlRGF0YVBvaW50cyIsImZpeFJhZGl1cyIsImNoaWxkTnVtYmVyIiwiY2hpbGRXaWR0aCIsImdhdWdlIiwiaW5uZXJSYWRpdXMiLCJwaWVSYWRpdXMiLCJjaGlsZEFuZ2xlIiwicHJvYyIsInBvaW50ZXJSYWRpdXMiLCJncmFkaWVudDMiLCJlYWNoQ2F0ZWdvcmllcyIsImNoaWxkZW5kWCIsImRyYXdSYWRhckRhdGFQb2ludHMiLCJheGlzTGFiZWwiLCJheGlzTGFiZWxUb2ZpeCIsImdyaWRDb3VudCIsImNvb3JkaW5hdGVBbmdsZSIsInhyIiwieXIiLCJfbG9vcCIsInN0YXJ0UG9zIiwicmFkYXJEYXRhUG9pbnRzIiwic3RlcExlbmd0aCIsImxhYmVsIiwibG9ubGF0Mm1lcmNhdG9yIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJsb2ciLCJ0YW4iLCJtZXJjYXRvcjJsb25sYXQiLCJsb25sYXQiLCJhdGFuIiwiZXhwIiwiZ2V0Qm91bmRpbmdCb3giLCJjb29yZHMiLCJ4TWluIiwieE1heCIsInlNaW4iLCJ5TWF4IiwiY29vcmRhIiwiY29vcmRpbmF0ZVRvUG9pbnQiLCJwb2ludFkiLCJwb2ludFgiLCJpc1JheUludGVyc2VjdHNTZWdtZW50Iiwic19wb2kiLCJlX3BvaSIsInhzZWciLCJwb2x5Iiwic2luc2MiLCJlcG9seSIsImRyYXdNYXBEYXRhUG9pbnRzIiwibWFwT3B0aW9uIiwiYWN0aXZlIiwiZmlsbE9wYWNpdHkiLCJhY3RpdmVCb3JkZXJDb2xvciIsImFjdGl2ZUZpbGxDb2xvciIsImFjdGl2ZUZpbGxPcGFjaXR5IiwieFNjYWxlIiwieVNjYWxlIiwiZ2Fvc2kiLCJjZW50ZXJQb2ludCIsInByb3BlcnRpZXMiLCJjZW50cm9pZCIsImFjdGl2ZVRleHRDb2xvciIsImRyYXciLCJub3JtYWxJbnQiLCJpdGVyIiwiYXJyIiwicmFuZG9tIiwiY29sbGlzaW9uTmV3IiwiaXNJbiIsImdldFdvcmRDbG91ZFBvaW50IiwidEhlaWdodCIsInRXaWR0aCIsImJyZWFrbnVtIiwiU3BpbiIsImlzU3BpbiIsImFyZWF2IiwiZHJhd1dvcmRDbG91ZERhdGFQb2ludHMiLCJ3b3JkT3B0aW9uIiwiYXV0b0NvbG9ycyIsIndvcmQiLCJ3b3JkQ2xvdWREYXRhIiwic3Ryb2tlVGV4dCIsImRyYXdGdW5uZWxEYXRhUG9pbnRzIiwiZnVubmVsT3B0aW9uIiwibWluU2l6ZSIsImZ1bm5lbCIsInNlcmllc05ldyIsImRyYXdGdW5uZWxUZXh0IiwiZHJhd0Z1bm5lbENlbnRlclRleHQiLCJjZW50ZXJUZXh0IiwiY2VudGVyVGV4dFNpemUiLCJjZW50ZXJUZXh0Q29sb3IiLCJkcmF3Q2FudmFzIiwiVGltaW5nIiwiZWFzZUluIiwiZWFzZU91dCIsImVhc2VJbk91dCIsImxpbmVhciIsIkFuaW1hdGlvbiIsImlzU3RvcCIsImR1cmF0aW9uIiwidGltaW5nIiwiZGVsYXkiLCJjcmVhdGVBbmltYXRpb25GcmFtZSIsInNldFRpbWVvdXQiLCJzdGVwIiwidGltZVN0YW1wIiwiRGF0ZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImFuaW1hdGlvbkZyYW1lIiwic3RhcnRUaW1lU3RhbXAiLCJfc3RlcCIsInRpbWVzdGFtcCIsIm9uUHJvY2VzcyIsIm9uQW5pbWF0aW9uRmluaXNoIiwidGltaW5nRnVuY3Rpb24iLCJiaW5kIiwicHJvdG90eXBlIiwic3RvcCIsImRyYXdDaGFydHMiLCJfdGhpcyIsImFuaW1hdGlvbkluc3RhbmNlIiwiX2NhbExlZ2VuZERhdGEiLCJsZWdlbmRIZWlnaHQiLCJfY2FsWUF4aXNEYXRhIiwibWF4VGl0bGVIZWlnaHQiLCJyaWdodEluZGV4IiwibGVmdEluZGV4IiwiX2NhbENhdGVnb3JpZXNEYXRhIiwiY2F0ZWdvcmllc0RhdGEiLCJzY3JvbGxBbGlnbiIsIm9mZnNldExlZnQiLCJ0b3RhbFdpZHRoIiwic2NyZWVuV2lkdGgiLCJjdXJyZW50T2Zmc2V0Iiwic3RhcnRUb3VjaFgiLCJsYXN0TW92ZVRpbWUiLCJjbGVhclJlY3QiLCJfZHJhd0xpbmVEYXRhUG9pbnRzIiwiZW5hYmxlTWFya0xpbmUiLCJfZHJhd1NjYXR0ZXJEYXRhUG9pbnRzIiwiX2RyYXdCdWJibGVEYXRhUG9pbnRzIiwiX2RyYXdNaXhEYXRhUG9pbnRzIiwiX2RyYXdDb2x1bW5EYXRhUG9pbnRzIiwiX2RyYXdNb3VudERhdGFQb2ludHMiLCJfZHJhd0JhckRhdGFQb2ludHMiLCJfZHJhd0FyZWFEYXRhUG9pbnRzIiwiYXJjYmFyRGF0YSIsImdhdWdlRGF0YSIsIl9kcmF3Q2FuZGxlRGF0YVBvaW50cyIsInVDaGFydHNFdmVudCIsImV2ZW50cyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5lciIsImRlbEV2ZW50TGlzdGVuZXIiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJwYXJhbXMiLCJ1Q2hhcnRzIiwicGl4ZWxSYXRpbyIsImdyaWRTZXQiLCJjYW52YXMyZCIsImNvbmZpZyQkMSIsInRlbXBXaWR0aCIsInN0cm9rZVN0eWxlIiwibGluZVdpZHRoIiwiZm9udCIsImZpbGxTdHlsZSIsInRleHRCYXNlbGluZSIsImJsdXIiLCJzaGFkb3dDb2xvciIsInNoYWRvd09mZnNldFgiLCJzaGFkb3dPZmZzZXRZIiwic2hhZG93Qmx1ciIsImNhbGwiLCJ1cGRhdGVEYXRhIiwiX2dldFhBeGlzUG9pbnRzMCIsInpvb20iLCJjZW50ZXJMZWZ0IiwiTWF4TGVmdCIsImRvYnVsZVpvb20iLCJ0Y3MiLCJjbGllbnRZIiwibnRjcyIsInhsZW5ndGgiLCJtb3ZlQ291bnQiLCJjdHMwIiwiY3RzMSIsIm1vdmVDdXJyZW50MSIsImdldEN1cnJlbnREYXRhSW5kZXgiLCJtb3ZlQ3VycmVudDIiLCJjdXJyZW50RWFjaFNwYWNpbmciLCJjdXJyZW50TGVmdCIsInN0b3BBbmltYXRpb24iLCJfdG91Y2hlcyQiLCJnZXRMZWdlbmREYXRhSW5kZXgiLCJ0b3VjaExlZ2VuZCIsInNob3dUb29sVGlwIiwiX2dldFRvb2xUaXBEYXRhIiwiX2dldE1peFRvb2xUaXBEYXRhIiwic2Nyb2xsU3RhcnQiLCJzY3JvbGwiLCJub3ciLCJMaW1pdCIsInRvdWNoTW92ZUxpbWl0IiwiY3Vyck1vdmVUaW1lIiwiX2Rpc3RhbmNlIiwic2Nyb2xsRW5kIiwiX3Njcm9sbE9wdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFBQTtBQUFBO0VBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUViLElBQUlBLE1BQU0sR0FBRztFQUNYQyxPQUFPLEVBQUUsaUJBQWlCO0VBQzFCQyxVQUFVLEVBQUUsRUFBRTtFQUNkQyxXQUFXLEVBQUUsRUFBRTtFQUNmQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7RUFDekJDLE1BQU0sRUFBRSxLQUFLO0VBQ2JDLFFBQVEsRUFBRSxFQUFFO0VBQ1pDLFNBQVMsRUFBRSxTQUFTO0VBQ3BCQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7RUFDeERDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0VBQzFHQyxXQUFXLEVBQUUs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LEVBQUU7TUFDL0I2ZSxnQkFBZ0IsRUFBRTJRLGFBQWEsR0FBR3lFLFNBQVM7TUFDM0MxZ0IsU0FBUyxFQUFFO0lBQ2IsQ0FBQyxDQUFDO0lBQ0osSUFBSSxDQUFDdlQsSUFBSSxHQUFHQSxJQUFJO0lBQ2R5dUIsVUFBVSxDQUFDd0QsSUFBSSxDQUFDLElBQUksRUFBRWp5QixJQUFJLENBQUN4QixJQUFJLEVBQUV3QixJQUFJLEVBQUUsSUFBSSxDQUFDL0YsTUFBTSxFQUFFLElBQUksQ0FBQ3FLLE9BQU8sQ0FBQztJQUNqRSxPQUFPa3JCLGFBQWEsR0FBR3lFLFNBQVM7RUFDbEM7QUFDRixDQUFDO0FBRURoRCxPQUFPLENBQUMxQyxTQUFTLENBQUMyRixTQUFTLEdBQUcsVUFBUzkyQixDQUFDLEVBQUU7RUFDeEMsSUFBSSxJQUFJLENBQUM0QyxJQUFJLENBQUNzTyxZQUFZLEtBQUssSUFBSSxFQUFFO0lBQ25DLElBQUk2bEIsYUFBYSxHQUFHLElBQUksQ0FBQ3R6QixZQUFZO01BQ25DMnVCLGFBQWEsR0FBRzJFLGFBQWEsQ0FBQzNFLGFBQWE7TUFDM0MxdkIsUUFBUSxHQUFHcTBCLGFBQWEsQ0FBQ3IwQixRQUFRO0lBQ25DLElBQUksQ0FBQ2UsWUFBWSxDQUFDMnVCLGFBQWEsR0FBR0EsYUFBYSxHQUFHMXZCLFFBQVE7SUFDMUQsSUFBSSxDQUFDZSxZQUFZLENBQUNmLFFBQVEsR0FBRyxDQUFDO0lBQzlCLElBQUksQ0FBQ2UsWUFBWSxDQUFDK3hCLFNBQVMsR0FBRyxDQUFDO0VBQ2pDO0FBQ0YsQ0FBQztBQUFDLGVBRWEzQixPQUFPO0FBQUEsMkIiLCJmaWxlIjoiMzg1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogdUNoYXJ0cyAoUilcclxuICog6auY5oCn6IO96Leo5bmz5Y+w5Zu+6KGo5bqT77yM5pSv5oyBSDXjgIFBUFDjgIHlsI/nqIvluo/vvIjlvq7kv6Ev5pSv5LuY5a6dL+eZvuW6pi/lpLTmnaEvUVEvMzYwL+W/q+aJi++8ieOAgVZ1ZeOAgVRhcm/nrYnmlK/mjIFjYW52YXPnmoTmoYbmnrblubPlj7BcclxuICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjIgUUlVTiAoUikg56eL5LqRIGh0dHBzOi8vd3d3LnVjaGFydHMuY24gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxyXG4gKiDlpI3liLbkvb/nlKjor7fkv53nlZnmnKzmrrXms6jph4rvvIzmhJ/osKLmlK/mjIHlvIDmupDvvIFcclxuICogXHJcbiAqIHVDaGFydHMgKFIpIOWumOaWuee9keermVxyXG4gKiBodHRwczovL3d3dy51Q2hhcnRzLmNuXHJcbiAqIFxyXG4gKiDlvIDmupDlnLDlnYA6XHJcbiAqIGh0dHBzOi8vZ2l0ZWUuY29tL3VDaGFydHMvdUNoYXJ0c1xyXG4gKiBcclxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxyXG4gKiBodHRwOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI3MVxyXG4gKiBcclxuICovXHJcblxyXG4ndXNlIHN0cmljdCc7XHJcblxyXG52YXIgY29uZmlnID0ge1xyXG4gIHZlcnNpb246ICd2Mi41LjAtMjAyMzAxMDEnLFxyXG4gIHlBeGlzV2lkdGg6IDE1LFxyXG4gIHhBeGlzSGVpZ2h0OiAyMixcclxuICBwYWRkaW5nOiBbMTAsIDEwLCAxMCwgMTBdLFxyXG4gIHJvdGF0ZTogZmFsc2UsXHJcbiAgZm9udFNpemU6IDEzLFxyXG4gIGZvbnRDb2xvcjogJyM2NjY2NjYnLFxyXG4gIGRhdGFQb2ludFNoYXBlOiBbJ2NpcmNsZScsICdjaXJjbGUnLCAnY2lyY2xlJywgJ2NpcmNsZSddLFxyXG4gIGNvbG9yOiBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ10sXHJcbiAgbGluZWFyQ29sb3I6IFsnIzBFRTJGOCcsICcjMkJEQ0E4JywgJyNGQTdEOEQnLCAnI0VCODhFMicsICcjMkFFM0EwJywgJyMwRUUyRjgnLCAnI0VCODhFMicsICcjNjc3M0UzJywgJyNGNzhBODUnXSxcclxuICBwaWVDaGFydExpbmVQYWRkaW5nOiAxNSxcclxuICBwaWVDaGFydFRleHRQYWRkaW5nOiA1LFxyXG4gIHRpdGxlRm9udFNpemU6IDIwLFxyXG4gIHN1YnRpdGxlRm9udFNpemU6IDE1LFxyXG4gIHJhZGFyTGFiZWxUZXh0TWFyZ2luOiAxMyxcclxufTtcclxuXHJcbnZhciBhc3NpZ24gPSBmdW5jdGlvbih0YXJnZXQsIC4uLnZhckFyZ3MpIHtcclxuICBpZiAodGFyZ2V0ID09IG51bGwpIHtcclxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1t1Q2hhcnRzXSBDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QnKTtcclxuICB9XHJcbiAgaWYgKCF2YXJBcmdzIHx8IHZhckFyZ3MubGVuZ3RoIDw9IDApIHtcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgfVxyXG4gIC8vIOa3seW6puWQiOW5tuWvueixoVxyXG4gIGZ1bmN0aW9uIGRlZXBBc3NpZ24ob2JqMSwgb2JqMikge1xyXG4gICAgZm9yIChsZXQga2V5IGluIG9iajIpIHtcclxuICAgICAgb2JqMVtrZXldID0gb2JqMVtrZXldICYmIG9iajFba2V5XS50b1N0cmluZygpID09PSBcIltvYmplY3QgT2JqZWN0XVwiID9cclxuICAgICAgICBkZWVwQXNzaWduKG9iajFba2V5XSwgb2JqMltrZXldKSA6IG9iajFba2V5XSA9IG9iajJba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmoxO1xyXG4gIH1cclxuICB2YXJBcmdzLmZvckVhY2godmFsID0+IHtcclxuICAgIHRhcmdldCA9IGRlZXBBc3NpZ24odGFyZ2V0LCB2YWwpO1xyXG4gIH0pO1xyXG4gIHJldHVybiB0YXJnZXQ7XHJcbn07XHJcblxyXG52YXIgdXRpbCA9IHtcclxuICB0b0ZpeGVkOiBmdW5jdGlvbiB0b0ZpeGVkKG51bSwgbGltaXQpIHtcclxuICAgIGxpbWl0ID0gbGltaXQgfHwgMjtcclxuICAgIGlmICh0aGlzLmlzRmxvYXQobnVtKSkge1xyXG4gICAgICBudW0gPSBudW0udG9GaXhlZChsaW1pdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVtO1xyXG4gIH0sXHJcbiAgaXNGbG9hdDogZnVuY3Rpb24gaXNGbG9hdChudW0pIHtcclxuICAgIHJldHVybiBudW0gJSAxICE9PSAwO1xyXG4gIH0sXHJcbiAgYXBwcm94aW1hdGVseUVxdWFsOiBmdW5jdGlvbiBhcHByb3hpbWF0ZWx5RXF1YWwobnVtMSwgbnVtMikge1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKG51bTEgLSBudW0yKSA8IDFlLTEwO1xyXG4gIH0sXHJcbiAgaXNTYW1lU2lnbjogZnVuY3Rpb24gaXNTYW1lU2lnbihudW0xLCBudW0yKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMobnVtMSkgPT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgPT09IG51bTIgfHwgTWF0aC5hYnMobnVtMSkgIT09IG51bTEgJiYgTWF0aC5hYnMobnVtMikgIT09IG51bTI7XHJcbiAgfSxcclxuICBpc1NhbWVYQ29vcmRpbmF0ZUFyZWE6IGZ1bmN0aW9uIGlzU2FtZVhDb29yZGluYXRlQXJlYShwMSwgcDIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzU2FtZVNpZ24ocDEueCwgcDIueCk7XHJcbiAgfSxcclxuICBpc0NvbGxpc2lvbjogZnVuY3Rpb24gaXNDb2xsaXNpb24ob2JqMSwgb2JqMikge1xyXG4gICAgb2JqMS5lbmQgPSB7fTtcclxuICAgIG9iajEuZW5kLnggPSBvYmoxLnN0YXJ0LnggKyBvYmoxLndpZHRoO1xyXG4gICAgb2JqMS5lbmQueSA9IG9iajEuc3RhcnQueSAtIG9iajEuaGVpZ2h0O1xyXG4gICAgb2JqMi5lbmQgPSB7fTtcclxuICAgIG9iajIuZW5kLnggPSBvYmoyLnN0YXJ0LnggKyBvYmoyLndpZHRoO1xyXG4gICAgb2JqMi5lbmQueSA9IG9iajIuc3RhcnQueSAtIG9iajIuaGVpZ2h0O1xyXG4gICAgdmFyIGZsYWcgPSBvYmoyLnN0YXJ0LnggPiBvYmoxLmVuZC54IHx8IG9iajIuZW5kLnggPCBvYmoxLnN0YXJ0LnggfHwgb2JqMi5lbmQueSA+IG9iajEuc3RhcnQueSB8fCBvYmoyLnN0YXJ0LnkgPCBvYmoxLmVuZC55O1xyXG4gICAgcmV0dXJuICFmbGFnO1xyXG4gIH1cclxufTtcclxuXHJcbi8v5YW85a65SDXngrnlh7vkuovku7ZcclxuZnVuY3Rpb24gZ2V0SDVPZmZzZXQoZSkge1xyXG4gIGUubXAgPSB7XHJcbiAgICBjaGFuZ2VkVG91Y2hlczogW11cclxuICB9O1xyXG4gIGUubXAuY2hhbmdlZFRvdWNoZXMucHVzaCh7XHJcbiAgICB4OiBlLm9mZnNldFgsXHJcbiAgICB5OiBlLm9mZnNldFlcclxuICB9KTtcclxuICByZXR1cm4gZTtcclxufVxyXG5cclxuLy8gaGV4IOi9rCByZ2JhXHJcbmZ1bmN0aW9uIGhleFRvUmdiKGhleFZhbHVlLCBvcGMpIHtcclxuICB2YXIgcmd4ID0gL14jPyhbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKSQvaTtcclxuICB2YXIgaGV4ID0gaGV4VmFsdWUucmVwbGFjZShyZ3gsIGZ1bmN0aW9uKG0sIHIsIGcsIGIpIHtcclxuICAgIHJldHVybiByICsgciArIGcgKyBnICsgYiArIGI7XHJcbiAgfSk7XHJcbiAgdmFyIHJnYiA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXgpO1xyXG4gIHZhciByID0gcGFyc2VJbnQocmdiWzFdLCAxNik7XHJcbiAgdmFyIGcgPSBwYXJzZUludChyZ2JbMl0sIDE2KTtcclxuICB2YXIgYiA9IHBhcnNlSW50KHJnYlszXSwgMTYpO1xyXG4gIHJldHVybiAncmdiYSgnICsgciArICcsJyArIGcgKyAnLCcgKyBiICsgJywnICsgb3BjICsgJyknO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kUmFuZ2UobnVtLCB0eXBlLCBsaW1pdCkge1xyXG4gIGlmIChpc05hTihudW0pKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t1Q2hhcnRzXSBzZXJpZXPmlbDmja7pnIDkuLpOdW1iZXLmoLzlvI8nKTtcclxuICB9XHJcbiAgbGltaXQgPSBsaW1pdCB8fCAxMDtcclxuICB0eXBlID0gdHlwZSA/IHR5cGUgOiAndXBwZXInO1xyXG4gIHZhciBtdWx0aXBsZSA9IDE7XHJcbiAgd2hpbGUgKGxpbWl0IDwgMSkge1xyXG4gICAgbGltaXQgKj0gMTA7XHJcbiAgICBtdWx0aXBsZSAqPSAxMDtcclxuICB9XHJcbiAgaWYgKHR5cGUgPT09ICd1cHBlcicpIHtcclxuICAgIG51bSA9IE1hdGguY2VpbChudW0gKiBtdWx0aXBsZSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIG51bSA9IE1hdGguZmxvb3IobnVtICogbXVsdGlwbGUpO1xyXG4gIH1cclxuICB3aGlsZSAobnVtICUgbGltaXQgIT09IDApIHtcclxuICAgIGlmICh0eXBlID09PSAndXBwZXInKSB7XHJcbiAgICAgIGlmIChudW0gPT0gbnVtICsgMSkgeyAvL+S/ruWkjeaVsOaNruWAvOi/h+Wkp251bSsr5peg5pWI55qEYnVnIGJ5IOWQkeaXpeiRtSBAeHJrX2p5XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgbnVtKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBudW0tLTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG51bSAvIG11bHRpcGxlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxDYW5kbGVNQShkYXlBcnIsIG5hbWVBcnIsIGNvbG9yQXJyLCBrZGF0YSkge1xyXG4gIGxldCBzZXJpZXNUZW1wID0gW107XHJcbiAgZm9yIChsZXQgayA9IDA7IGsgPCBkYXlBcnIubGVuZ3RoOyBrKyspIHtcclxuICAgIGxldCBzZXJpZXNJdGVtID0ge1xyXG4gICAgICBkYXRhOiBbXSxcclxuICAgICAgbmFtZTogbmFtZUFycltrXSxcclxuICAgICAgY29sb3I6IGNvbG9yQXJyW2tdXHJcbiAgICB9O1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGtkYXRhLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChpIDwgZGF5QXJyW2tdKSB7XHJcbiAgICAgICAgc2VyaWVzSXRlbS5kYXRhLnB1c2gobnVsbCk7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHN1bSA9IDA7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGF5QXJyW2tdOyBqKyspIHtcclxuICAgICAgICBzdW0gKz0ga2RhdGFbaSAtIGpdWzFdO1xyXG4gICAgICB9XHJcbiAgICAgIHNlcmllc0l0ZW0uZGF0YS5wdXNoKCsoc3VtIC8gZGF5QXJyW2tdKS50b0ZpeGVkKDMpKTtcclxuICAgIH1cclxuICAgIHNlcmllc1RlbXAucHVzaChzZXJpZXNJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIHNlcmllc1RlbXA7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFZhbGlkRGlzdGFuY2Uoc2VsZiwgZGlzdGFuY2UsIGNoYXJ0RGF0YSwgY29uZmlnLCBvcHRzKSB7XHJcbiAgdmFyIGRhdGFDaGFydEFyZWFXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGRhdGFDaGFydFdpZHRoID0gY2hhcnREYXRhLmVhY2hTcGFjaW5nICogKG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS54QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICBpZihvcHRzLnR5cGUgPT0gJ21vdW50JyAmJiBvcHRzLmV4dHJhICYmIG9wdHMuZXh0cmEubW91bnQgJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA+IDEpe1xyXG4gICAgaWYob3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvPjIpIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA9IDJcclxuICAgIGRhdGFDaGFydFdpZHRoICs9IChvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gLSAxKSpjaGFydERhdGEuZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHZhciB2YWxpZERpc3RhbmNlID0gZGlzdGFuY2U7XHJcbiAgaWYgKGRpc3RhbmNlID49IDApIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSAwO1xyXG4gICAgc2VsZi51ZXZlbnQudHJpZ2dlcignc2Nyb2xsTGVmdCcpO1xyXG4gICAgc2VsZi5zY3JvbGxPcHRpb24ucG9zaXRpb24gPSAnbGVmdCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAnbGVmdCc7XHJcbiAgfSBlbHNlIGlmIChNYXRoLmFicyhkaXN0YW5jZSkgPj0gZGF0YUNoYXJ0V2lkdGggLSBkYXRhQ2hhcnRBcmVhV2lkdGgpIHtcclxuICAgIHZhbGlkRGlzdGFuY2UgPSBkYXRhQ2hhcnRBcmVhV2lkdGggLSBkYXRhQ2hhcnRXaWR0aDtcclxuICAgIHNlbGYudWV2ZW50LnRyaWdnZXIoJ3Njcm9sbFJpZ2h0Jyk7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9ICdyaWdodCdcclxuICAgIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSAncmlnaHQnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBzZWxmLnNjcm9sbE9wdGlvbi5wb3NpdGlvbiA9IGRpc3RhbmNlXHJcbiAgICBvcHRzLnhBeGlzLnNjcm9sbFBvc2l0aW9uID0gZGlzdGFuY2U7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZERpc3RhbmNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0luQW5nbGVSYW5nZShhbmdsZSwgc3RhcnRBbmdsZSwgZW5kQW5nbGUpIHtcclxuICBmdW5jdGlvbiBhZGp1c3QoYW5nbGUpIHtcclxuICAgIHdoaWxlIChhbmdsZSA8IDApIHtcclxuICAgICAgYW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoYW5nbGUgPiAyICogTWF0aC5QSSkge1xyXG4gICAgICBhbmdsZSAtPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbmdsZTtcclxuICB9XHJcbiAgYW5nbGUgPSBhZGp1c3QoYW5nbGUpO1xyXG4gIHN0YXJ0QW5nbGUgPSBhZGp1c3Qoc3RhcnRBbmdsZSk7XHJcbiAgZW5kQW5nbGUgPSBhZGp1c3QoZW5kQW5nbGUpO1xyXG4gIGlmIChzdGFydEFuZ2xlID4gZW5kQW5nbGUpIHtcclxuICAgIGVuZEFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgaWYgKGFuZ2xlIDwgc3RhcnRBbmdsZSkge1xyXG4gICAgICBhbmdsZSArPSAyICogTWF0aC5QSTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGFuZ2xlID49IHN0YXJ0QW5nbGUgJiYgYW5nbGUgPD0gZW5kQW5nbGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGkpIHtcclxuICBmdW5jdGlvbiBpc05vdE1pZGRsZVBvaW50KHBvaW50cywgaSkge1xyXG4gICAgaWYgKHBvaW50c1tpIC0gMV0gJiYgcG9pbnRzW2kgKyAxXSkge1xyXG4gICAgICByZXR1cm4gcG9pbnRzW2ldLnkgPj0gTWF0aC5tYXgocG9pbnRzW2kgLSAxXS55LCBwb2ludHNbaSArIDFdLnkpIHx8IHBvaW50c1tpXS55IDw9IE1hdGgubWluKHBvaW50c1tpIC0gMV0ueSxcclxuICAgICAgICBwb2ludHNbaSArIDFdLnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBmdW5jdGlvbiBpc05vdE1pZGRsZVBvaW50WChwb2ludHMsIGkpIHtcclxuICAgIGlmIChwb2ludHNbaSAtIDFdICYmIHBvaW50c1tpICsgMV0pIHtcclxuICAgICAgcmV0dXJuIHBvaW50c1tpXS54ID49IE1hdGgubWF4KHBvaW50c1tpIC0gMV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwb2ludHNbaV0ueCA8PSBNYXRoLm1pbihwb2ludHNbaSAtIDFdLngsXHJcbiAgICAgICAgcG9pbnRzW2kgKyAxXS54KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgdmFyIGEgPSAwLjI7XHJcbiAgdmFyIGIgPSAwLjI7XHJcbiAgdmFyIHBBeCA9IG51bGw7XHJcbiAgdmFyIHBBeSA9IG51bGw7XHJcbiAgdmFyIHBCeCA9IG51bGw7XHJcbiAgdmFyIHBCeSA9IG51bGw7XHJcbiAgaWYgKGkgPCAxKSB7XHJcbiAgICBwQXggPSBwb2ludHNbMF0ueCArIChwb2ludHNbMV0ueCAtIHBvaW50c1swXS54KSAqIGE7XHJcbiAgICBwQXkgPSBwb2ludHNbMF0ueSArIChwb2ludHNbMV0ueSAtIHBvaW50c1swXS55KSAqIGE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54ICsgKHBvaW50c1tpICsgMV0ueCAtIHBvaW50c1tpIC0gMV0ueCkgKiBhO1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnkgKyAocG9pbnRzW2kgKyAxXS55IC0gcG9pbnRzW2kgLSAxXS55KSAqIGE7XHJcbiAgfVxyXG5cclxuICBpZiAoaSA+IHBvaW50cy5sZW5ndGggLSAzKSB7XHJcbiAgICB2YXIgbGFzdCA9IHBvaW50cy5sZW5ndGggLSAxO1xyXG4gICAgcEJ4ID0gcG9pbnRzW2xhc3RdLnggLSAocG9pbnRzW2xhc3RdLnggLSBwb2ludHNbbGFzdCAtIDFdLngpICogYjtcclxuICAgIHBCeSA9IHBvaW50c1tsYXN0XS55IC0gKHBvaW50c1tsYXN0XS55IC0gcG9pbnRzW2xhc3QgLSAxXS55KSAqIGI7XHJcbiAgfSBlbHNlIHtcclxuICAgIHBCeCA9IHBvaW50c1tpICsgMV0ueCAtIChwb2ludHNbaSArIDJdLnggLSBwb2ludHNbaV0ueCkgKiBiO1xyXG4gICAgcEJ5ID0gcG9pbnRzW2kgKyAxXS55IC0gKHBvaW50c1tpICsgMl0ueSAtIHBvaW50c1tpXS55KSAqIGI7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50KHBvaW50cywgaSArIDEpKSB7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnk7XHJcbiAgfVxyXG4gIGlmIChpc05vdE1pZGRsZVBvaW50KHBvaW50cywgaSkpIHtcclxuICAgIHBBeSA9IHBvaW50c1tpXS55O1xyXG4gIH1cclxuICBpZiAoaXNOb3RNaWRkbGVQb2ludFgocG9pbnRzLCBpICsgMSkpIHtcclxuICAgIHBCeCA9IHBvaW50c1tpICsgMV0ueDtcclxuICB9XHJcbiAgaWYgKGlzTm90TWlkZGxlUG9pbnRYKHBvaW50cywgaSkpIHtcclxuICAgIHBBeCA9IHBvaW50c1tpXS54O1xyXG4gIH1cclxuICBpZiAocEF5ID49IE1hdGgubWF4KHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpIHx8IHBBeSA8PSBNYXRoLm1pbihwb2ludHNbaV0ueSwgcG9pbnRzW2kgKyAxXS55KSkge1xyXG4gICAgcEF5ID0gcG9pbnRzW2ldLnk7XHJcbiAgfVxyXG4gIGlmIChwQnkgPj0gTWF0aC5tYXgocG9pbnRzW2ldLnksIHBvaW50c1tpICsgMV0ueSkgfHwgcEJ5IDw9IE1hdGgubWluKHBvaW50c1tpXS55LCBwb2ludHNbaSArIDFdLnkpKSB7XHJcbiAgICBwQnkgPSBwb2ludHNbaSArIDFdLnk7XHJcbiAgfVxyXG4gIGlmIChwQXggPj0gTWF0aC5tYXgocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkgfHwgcEF4IDw9IE1hdGgubWluKHBvaW50c1tpXS54LCBwb2ludHNbaSArIDFdLngpKSB7XHJcbiAgICBwQXggPSBwb2ludHNbaV0ueDtcclxuICB9XHJcbiAgaWYgKHBCeCA+PSBNYXRoLm1heChwb2ludHNbaV0ueCwgcG9pbnRzW2kgKyAxXS54KSB8fCBwQnggPD0gTWF0aC5taW4ocG9pbnRzW2ldLngsIHBvaW50c1tpICsgMV0ueCkpIHtcclxuICAgIHBCeCA9IHBvaW50c1tpICsgMV0ueDtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGN0ckE6IHtcclxuICAgICAgeDogcEF4LFxyXG4gICAgICB5OiBwQXlcclxuICAgIH0sXHJcbiAgICBjdHJCOiB7XHJcbiAgICAgIHg6IHBCeCxcclxuICAgICAgeTogcEJ5XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKHgsIHksIGNlbnRlcikge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiBjZW50ZXIueCArIHgsXHJcbiAgICB5OiBjZW50ZXIueSAtIHlcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBhdm9pZENvbGxpc2lvbihvYmosIHRhcmdldCkge1xyXG4gIGlmICh0YXJnZXQpIHtcclxuICAgIC8vIGlzIGNvbGxpc2lvbiB0ZXN0XHJcbiAgICB3aGlsZSAodXRpbC5pc0NvbGxpc2lvbihvYmosIHRhcmdldCkpIHtcclxuICAgICAgaWYgKG9iai5zdGFydC54ID4gMCkge1xyXG4gICAgICAgIG9iai5zdGFydC55LS07XHJcbiAgICAgIH0gZWxzZSBpZiAob2JqLnN0YXJ0LnggPCAwKSB7XHJcbiAgICAgICAgb2JqLnN0YXJ0LnkrKztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAob2JqLnN0YXJ0LnkgPiAwKSB7XHJcbiAgICAgICAgICBvYmouc3RhcnQueSsrO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmouc3RhcnQueS0tO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhQaWVTZXJpZXMoc2VyaWVzLCBvcHRzLCBjb25maWcpe1xyXG4gIGxldCBwaWVTZXJpZXNBcnIgPSBbXTtcclxuICBpZihzZXJpZXMubGVuZ3RoPjAgJiYgc2VyaWVzWzBdLmRhdGEuY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpe1xyXG4gICAgb3B0cy5fcGllU2VyaWVzXyA9IHNlcmllcztcclxuICAgIGxldCBvbGRzZXJpZXMgPSBzZXJpZXNbMF0uZGF0YTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2xkc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG9sZHNlcmllc1tpXS5mb3JtYXR0ZXIgPSBzZXJpZXNbMF0uZm9ybWF0dGVyO1xyXG4gICAgICBvbGRzZXJpZXNbaV0uZGF0YSA9IG9sZHNlcmllc1tpXS52YWx1ZTtcclxuICAgICAgcGllU2VyaWVzQXJyLnB1c2gob2xkc2VyaWVzW2ldKTtcclxuICAgIH1cclxuICAgIG9wdHMuc2VyaWVzID0gcGllU2VyaWVzQXJyO1xyXG4gIH1lbHNle1xyXG4gICAgcGllU2VyaWVzQXJyID0gc2VyaWVzO1xyXG4gIH1cclxuICByZXR1cm4gcGllU2VyaWVzQXJyO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxsU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIGluZGV4ID0gMDtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpZiAoIWl0ZW0uY29sb3IpIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGNvbmZpZy5jb2xvcltpbmRleF07XHJcbiAgICAgIGluZGV4ID0gKGluZGV4ICsgMSkgJSBjb25maWcuY29sb3IubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmxpbmVhckluZGV4KSB7XHJcbiAgICAgIGl0ZW0ubGluZWFySW5kZXggPSBpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLmluZGV4KSB7XHJcbiAgICAgIGl0ZW0uaW5kZXggPSAwO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLnR5cGUpIHtcclxuICAgICAgaXRlbS50eXBlID0gb3B0cy50eXBlO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBpdGVtLnNob3cgPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICBpdGVtLnNob3cgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLnR5cGUpIHtcclxuICAgICAgaXRlbS50eXBlID0gb3B0cy50eXBlO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtLnBvaW50U2hhcGUpIHtcclxuICAgICAgaXRlbS5wb2ludFNoYXBlID0gXCJjaXJjbGVcIjtcclxuICAgIH1cclxuICAgIGlmICghaXRlbS5sZWdlbmRTaGFwZSkge1xyXG4gICAgICBzd2l0Y2ggKGl0ZW0udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwibGluZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnY29sdW1uJzpcclxuICAgICAgICBjYXNlICdiYXInOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwicmVjdFwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYXJlYSc6XHJcbiAgICAgICAgY2FzZSAnbW91bnQnOlxyXG4gICAgICAgICAgaXRlbS5sZWdlbmRTaGFwZSA9IFwidHJpYW5nbGVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBpdGVtLmxlZ2VuZFNoYXBlID0gXCJjaXJjbGVcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxsQ3VzdG9tQ29sb3IobGluZWFyVHlwZSwgY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKSB7XHJcbiAgdmFyIG5ld2NvbG9yID0gY3VzdG9tQ29sb3IgfHwgW107XHJcbiAgaWYgKGxpbmVhclR5cGUgPT0gJ2N1c3RvbScgJiYgbmV3Y29sb3IubGVuZ3RoID09IDAgKSB7XHJcbiAgICBuZXdjb2xvciA9IGNvbmZpZy5saW5lYXJDb2xvcjtcclxuICB9XHJcbiAgaWYgKGxpbmVhclR5cGUgPT0gJ2N1c3RvbScgJiYgbmV3Y29sb3IubGVuZ3RoIDwgc2VyaWVzLmxlbmd0aCkge1xyXG4gICAgbGV0IGNoYXpoaSA9IHNlcmllcy5sZW5ndGggLSBuZXdjb2xvci5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXpoaTsgaSsrKSB7XHJcbiAgICAgIG5ld2NvbG9yLnB1c2goY29uZmlnLmxpbmVhckNvbG9yWyhpICsgMSkgJSBjb25maWcubGluZWFyQ29sb3IubGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBuZXdjb2xvcjtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0RGF0YVJhbmdlKG1pbkRhdGEsIG1heERhdGEpIHtcclxuICB2YXIgbGltaXQgPSAwO1xyXG4gIHZhciByYW5nZSA9IG1heERhdGEgLSBtaW5EYXRhO1xyXG4gIGlmIChyYW5nZSA+PSAxMDAwMCkge1xyXG4gICAgbGltaXQgPSAxMDAwO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMTAwMCkge1xyXG4gICAgbGltaXQgPSAxMDA7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxMDApIHtcclxuICAgIGxpbWl0ID0gMTA7XHJcbiAgfSBlbHNlIGlmIChyYW5nZSA+PSAxMCkge1xyXG4gICAgbGltaXQgPSA1O1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMSkge1xyXG4gICAgbGltaXQgPSAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4xKSB7XHJcbiAgICBsaW1pdCA9IDAuMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDAxO1xyXG4gIH0gZWxzZSBpZiAocmFuZ2UgPj0gMC4wMDAxKSB7XHJcbiAgICBsaW1pdCA9IDAuMDAwMTtcclxuICB9IGVsc2UgaWYgKHJhbmdlID49IDAuMDAwMDEpIHtcclxuICAgIGxpbWl0ID0gMC4wMDAwMTtcclxuICB9IGVsc2Uge1xyXG4gICAgbGltaXQgPSAwLjAwMDAwMTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIG1pblJhbmdlOiBmaW5kUmFuZ2UobWluRGF0YSwgJ2xvd2VyJywgbGltaXQpLFxyXG4gICAgbWF4UmFuZ2U6IGZpbmRSYW5nZShtYXhEYXRhLCAndXBwZXInLCBsaW1pdClcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCkge1xyXG4gIHZhciB3aWR0aCA9IDA7XHJcbiAgdGV4dCA9IFN0cmluZyh0ZXh0KTtcclxuXHJcblxyXG5cclxuICBpZiAoY29udGV4dCAhPT0gZmFsc2UgJiYgY29udGV4dCAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQuc2V0Rm9udFNpemUgJiYgY29udGV4dC5tZWFzdXJlVGV4dCkge1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICByZXR1cm4gY29udGV4dC5tZWFzdXJlVGV4dCh0ZXh0KS53aWR0aDtcclxuICB9IGVsc2Uge1xyXG4gICAgdmFyIHRleHQgPSB0ZXh0LnNwbGl0KCcnKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IHRleHRbaV07XHJcbiAgICAgIGlmICgvW2EtekEtWl0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSA3O1xyXG4gICAgICB9IGVsc2UgaWYgKC9bMC05XS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDUuNTtcclxuICAgICAgfSBlbHNlIGlmICgvXFwuLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMi43O1xyXG4gICAgICB9IGVsc2UgaWYgKC8tLy50ZXN0KGl0ZW0pKSB7XHJcbiAgICAgICAgd2lkdGggKz0gMy4yNTtcclxuICAgICAgfSBlbHNlIGlmICgvOi8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDIuNTtcclxuICAgICAgfSBlbHNlIGlmICgvW1xcdTRlMDAtXFx1OWZhNV0vLnRlc3QoaXRlbSkpIHtcclxuICAgICAgICB3aWR0aCArPSAxMDtcclxuICAgICAgfSBlbHNlIGlmICgvXFwofFxcKS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDMuNzM7XHJcbiAgICAgIH0gZWxzZSBpZiAoL1xccy8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDIuNTtcclxuICAgICAgfSBlbHNlIGlmICgvJS8udGVzdChpdGVtKSkge1xyXG4gICAgICAgIHdpZHRoICs9IDg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2lkdGggKz0gMTA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB3aWR0aCAqIGZvbnRTaXplIC8gMTA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkYXRhQ29tYmluZShzZXJpZXMpIHtcclxuICByZXR1cm4gc2VyaWVzLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7XHJcbiAgICByZXR1cm4gKGEuZGF0YSA/IGEuZGF0YSA6IGEpLmNvbmNhdChiLmRhdGEpO1xyXG4gIH0sIFtdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGF0YUNvbWJpbmVTdGFjayhzZXJpZXMsIGxlbikge1xyXG4gIHZhciBzdW0gPSBuZXcgQXJyYXkobGVuKTtcclxuICBmb3IgKHZhciBqID0gMDsgaiA8IHN1bS5sZW5ndGg7IGorKykge1xyXG4gICAgc3VtW2pdID0gMDtcclxuICB9XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3VtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgIHN1bVtqXSArPSBzZXJpZXNbaV0uZGF0YVtqXTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikge1xyXG4gICAgcmV0dXJuIChhLmRhdGEgPyBhLmRhdGEgOiBhKS5jb25jYXQoYi5kYXRhKS5jb25jYXQoc3VtKTtcclxuICB9LCBbXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFRvdWNoZXModG91Y2hlcywgb3B0cywgZSkge1xyXG4gIGxldCB4LCB5O1xyXG4gIGlmICh0b3VjaGVzLmNsaWVudFgpIHtcclxuICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICB5ID0gb3B0cy5oZWlnaHQgLSB0b3VjaGVzLmNsaWVudFggKiBvcHRzLnBpeDtcclxuICAgICAgeCA9ICh0b3VjaGVzLnBhZ2VZIC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcCAtIChvcHRzLmhlaWdodCAvIG9wdHMucGl4IC8gMikgKiAob3B0cy5waXggLSAxKSkgKiBvcHRzLnBpeDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHggPSB0b3VjaGVzLmNsaWVudFggKiBvcHRzLnBpeDtcclxuICAgICAgeSA9ICh0b3VjaGVzLnBhZ2VZIC0gZS5jdXJyZW50VGFyZ2V0Lm9mZnNldFRvcCAtIChvcHRzLmhlaWdodCAvIG9wdHMucGl4IC8gMikgKiAob3B0cy5waXggLSAxKSkgKiBvcHRzLnBpeDtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgIHkgPSBvcHRzLmhlaWdodCAtIHRvdWNoZXMueCAqIG9wdHMucGl4O1xyXG4gICAgICB4ID0gdG91Y2hlcy55ICogb3B0cy5waXg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB4ID0gdG91Y2hlcy54ICogb3B0cy5waXg7XHJcbiAgICAgIHkgPSB0b3VjaGVzLnkgKiBvcHRzLnBpeDtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IHgsXHJcbiAgICB5OiB5XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTZXJpZXNEYXRhSXRlbShzZXJpZXMsIGluZGV4LCBncm91cCkge1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgdmFyIG5ld1NlcmllcyA9IFtdO1xyXG4gIHZhciBpbmRleElzQXJyID0gaW5kZXguY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTE7XHJcbiAgaWYoaW5kZXhJc0Fycil7XHJcbiAgICBsZXQgdGVtcFNlcmllcyA9IGZpbHRlclNlcmllcyhzZXJpZXMpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBuZXdTZXJpZXMucHVzaCh0ZW1wU2VyaWVzW2dyb3VwW2ldXSk7XHJcbiAgICB9XHJcbiAgfWVsc2V7XHJcbiAgICBuZXdTZXJpZXMgPSBzZXJpZXM7XHJcbiAgfTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1Nlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBuZXdTZXJpZXNbaV07XHJcbiAgICBsZXQgdG1waW5kZXggPSAtMTtcclxuICAgIGlmKGluZGV4SXNBcnIpe1xyXG4gICAgICB0bXBpbmRleCA9IGluZGV4W2ldO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRtcGluZGV4ID0gaW5kZXg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhW3RtcGluZGV4XSAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlbS5kYXRhW3RtcGluZGV4XSAhPT0gJ3VuZGVmaW5lZCcgJiYgaXRlbS5zaG93KSB7XHJcbiAgICAgIGxldCBzZXJpZXNJdGVtID0ge307XHJcbiAgICAgIHNlcmllc0l0ZW0uY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBzZXJpZXNJdGVtLnR5cGUgPSBpdGVtLnR5cGU7XHJcbiAgICAgIHNlcmllc0l0ZW0uc3R5bGUgPSBpdGVtLnN0eWxlO1xyXG4gICAgICBzZXJpZXNJdGVtLnBvaW50U2hhcGUgPSBpdGVtLnBvaW50U2hhcGU7XHJcbiAgICAgIHNlcmllc0l0ZW0uZGlzYWJsZUxlZ2VuZCA9IGl0ZW0uZGlzYWJsZUxlZ2VuZDtcclxuICAgICAgc2VyaWVzSXRlbS5sZWdlbmRTaGFwZSA9IGl0ZW0ubGVnZW5kU2hhcGU7XHJcbiAgICAgIHNlcmllc0l0ZW0ubmFtZSA9IGl0ZW0ubmFtZTtcclxuICAgICAgc2VyaWVzSXRlbS5zaG93ID0gaXRlbS5zaG93O1xyXG4gICAgICBzZXJpZXNJdGVtLmRhdGEgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKGl0ZW0uZGF0YVt0bXBpbmRleF0pIDogaXRlbS5kYXRhW3RtcGluZGV4XTtcclxuICAgICAgZGF0YS5wdXNoKHNlcmllc0l0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZGF0YTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWF4VGV4dExpc3RMZW5ndGgobGlzdCwgZm9udFNpemUsIGNvbnRleHQpIHtcclxuICB2YXIgbGVuZ3RoTGlzdCA9IGxpc3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBmb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsIGxlbmd0aExpc3QpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckNvb3JkaW5hdGVTZXJpZXMobGVuZ3RoKSB7XHJcbiAgdmFyIGVhY2hBbmdsZSA9IDIgKiBNYXRoLlBJIC8gbGVuZ3RoO1xyXG4gIHZhciBDb29yZGluYXRlU2VyaWVzID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgQ29vcmRpbmF0ZVNlcmllcy5wdXNoKGVhY2hBbmdsZSAqIGkpO1xyXG4gIH1cclxuICByZXR1cm4gQ29vcmRpbmF0ZVNlcmllcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgcmV0dXJuIC0xICogaXRlbSArIE1hdGguUEkgLyAyO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRUb29sVGlwRGF0YShzZXJpZXNEYXRhLCBvcHRzLCBpbmRleCwgZ3JvdXAsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiB7fTtcclxuICB2YXIgY2FsUG9pbnRzID0gb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzP29wdHMuY2hhcnREYXRhLmNhbFBvaW50czpbXTtcclxuICBsZXQgcG9pbnRzID0ge307XHJcbiAgaWYoZ3JvdXAubGVuZ3RoID4gMCl7XHJcbiAgICBsZXQgZmlsdGVyUG9pbnRzID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZpbHRlclBvaW50cy5wdXNoKGNhbFBvaW50c1tncm91cFtpXV0pXHJcbiAgICB9XHJcbiAgICBwb2ludHMgPSBmaWx0ZXJQb2ludHNbMF1baW5kZXhbMF1dO1xyXG4gIH1lbHNle1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYWxQb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYoY2FsUG9pbnRzW2ldW2luZGV4XSl7XHJcbiAgICAgICAgcG9pbnRzID0gY2FsUG9pbnRzW2ldW2luZGV4XTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgdmFyIHRleHRMaXN0ID0gc2VyaWVzRGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgbGV0IHRpdGxlVGV4dCA9IG51bGw7XHJcbiAgICBpZiAob3B0cy5jYXRlZ29yaWVzICYmIG9wdHMuY2F0ZWdvcmllcy5sZW5ndGg+MCkge1xyXG4gICAgICB0aXRsZVRleHQgPSBjYXRlZ29yaWVzW2luZGV4XTtcclxuICAgIH07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0ZXh0OiBvcHRpb24uZm9ybWF0dGVyID8gb3B0aW9uLmZvcm1hdHRlcihpdGVtLCB0aXRsZVRleHQsIGluZGV4LCBvcHRzKSA6IGl0ZW0ubmFtZSArICc6ICcgKyBpdGVtLmRhdGEsXHJcbiAgICAgIGNvbG9yOiBpdGVtLmNvbG9yLFxyXG4gICAgICBsZWdlbmRTaGFwZTogb3B0cy5leHRyYS50b29sdGlwLmxlZ2VuZFNoYXBlID09ICdhdXRvJz8gaXRlbS5sZWdlbmRTaGFwZSA6IG9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZVxyXG4gICAgfTtcclxuICB9KTtcclxuICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgeDogTWF0aC5yb3VuZChwb2ludHMueCksXHJcbiAgICB5OiBNYXRoLnJvdW5kKHBvaW50cy55KVxyXG4gIH07XHJcbiAgcmV0dXJuIHtcclxuICAgIHRleHRMaXN0OiB0ZXh0TGlzdCxcclxuICAgIG9mZnNldDogb2Zmc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgb3B0cywgaW5kZXgsIGNhdGVnb3JpZXMpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiB7fTtcclxuICB2YXIgcG9pbnRzID0gb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHNbaW5kZXhdICsgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIHZhciB0ZXh0TGlzdCA9IHNlcmllc0RhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIGNhdGVnb3JpZXNbaW5kZXhdLCBpbmRleCwgb3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgZGlzYWJsZUxlZ2VuZDogaXRlbS5kaXNhYmxlTGVnZW5kID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBsZWdlbmRTaGFwZTogb3B0cy5leHRyYS50b29sdGlwLmxlZ2VuZFNoYXBlID09ICdhdXRvJz8gaXRlbS5sZWdlbmRTaGFwZSA6IG9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZVxyXG4gICAgfTtcclxuICB9KTtcclxuICB0ZXh0TGlzdCA9IHRleHRMaXN0LmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbS5kaXNhYmxlTGVnZW5kICE9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHZhciBvZmZzZXQgPSB7XHJcbiAgICB4OiBNYXRoLnJvdW5kKHBvaW50cyksXHJcbiAgICB5OiAwXHJcbiAgfTtcclxuICByZXR1cm4ge1xyXG4gICAgdGV4dExpc3Q6IHRleHRMaXN0LFxyXG4gICAgb2Zmc2V0OiBvZmZzZXRcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDYW5kbGVUb29sVGlwRGF0YShzZXJpZXMsIHNlcmllc0RhdGEsIG9wdHMsIGluZGV4LCBjYXRlZ29yaWVzLCBleHRyYSkge1xyXG4gIHZhciBvcHRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gNiAmJiBhcmd1bWVudHNbNl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s2XSA6IHt9O1xyXG4gIHZhciBjYWxQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHM7XHJcbiAgbGV0IHVwQ29sb3IgPSBleHRyYS5jb2xvci51cEZpbGw7XHJcbiAgbGV0IGRvd25Db2xvciA9IGV4dHJhLmNvbG9yLmRvd25GaWxsO1xyXG4gIC8v6aKc6Imy6aG65bqP5Li65byA55uY77yM5pS255uY77yM5pyA5L2O77yM5pyA6auYXHJcbiAgbGV0IGNvbG9yID0gW3VwQ29sb3IsIHVwQ29sb3IsIGRvd25Db2xvciwgdXBDb2xvcl07XHJcbiAgdmFyIHRleHRMaXN0ID0gW107XHJcbiAgc2VyaWVzRGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGluZGV4ID09IDApIHtcclxuICAgICAgaWYgKGl0ZW0uZGF0YVsxXSAtIGl0ZW0uZGF0YVswXSA8IDApIHtcclxuICAgICAgICBjb2xvclsxXSA9IGRvd25Db2xvcjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xvclsxXSA9IHVwQ29sb3I7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMF0gPCBzZXJpZXNbaW5kZXggLSAxXVsxXSkge1xyXG4gICAgICAgIGNvbG9yWzBdID0gZG93bkNvbG9yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmRhdGFbMV0gPCBpdGVtLmRhdGFbMF0pIHtcclxuICAgICAgICBjb2xvclsxXSA9IGRvd25Db2xvcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5kYXRhWzJdID4gc2VyaWVzW2luZGV4IC0gMV1bMV0pIHtcclxuICAgICAgICBjb2xvclsyXSA9IHVwQ29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0uZGF0YVszXSA8IHNlcmllc1tpbmRleCAtIDFdWzFdKSB7XHJcbiAgICAgICAgY29sb3JbM10gPSBkb3duQ29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCB0ZXh0MSA9IHtcclxuICAgICAgdGV4dDogJ+W8gOebmO+8micgKyBpdGVtLmRhdGFbMF0sXHJcbiAgICAgIGNvbG9yOiBjb2xvclswXSxcclxuICAgICAgbGVnZW5kU2hhcGU6IG9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZSA9PSAnYXV0byc/IGl0ZW0ubGVnZW5kU2hhcGUgOiBvcHRzLmV4dHJhLnRvb2x0aXAubGVnZW5kU2hhcGVcclxuICAgIH07XHJcbiAgICBsZXQgdGV4dDIgPSB7XHJcbiAgICAgIHRleHQ6ICfmlLbnm5jvvJonICsgaXRlbS5kYXRhWzFdLFxyXG4gICAgICBjb2xvcjogY29sb3JbMV0sXHJcbiAgICAgIGxlZ2VuZFNoYXBlOiBvcHRzLmV4dHJhLnRvb2x0aXAubGVnZW5kU2hhcGUgPT0gJ2F1dG8nPyBpdGVtLmxlZ2VuZFNoYXBlIDogb3B0cy5leHRyYS50b29sdGlwLmxlZ2VuZFNoYXBlXHJcbiAgICB9O1xyXG4gICAgbGV0IHRleHQzID0ge1xyXG4gICAgICB0ZXh0OiAn5pyA5L2O77yaJyArIGl0ZW0uZGF0YVsyXSxcclxuICAgICAgY29sb3I6IGNvbG9yWzJdLFxyXG4gICAgICBsZWdlbmRTaGFwZTogb3B0cy5leHRyYS50b29sdGlwLmxlZ2VuZFNoYXBlID09ICdhdXRvJz8gaXRlbS5sZWdlbmRTaGFwZSA6IG9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZVxyXG4gICAgfTtcclxuICAgIGxldCB0ZXh0NCA9IHtcclxuICAgICAgdGV4dDogJ+acgOmrmO+8micgKyBpdGVtLmRhdGFbM10sXHJcbiAgICAgIGNvbG9yOiBjb2xvclszXSxcclxuICAgICAgbGVnZW5kU2hhcGU6IG9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZSA9PSAnYXV0byc/IGl0ZW0ubGVnZW5kU2hhcGUgOiBvcHRzLmV4dHJhLnRvb2x0aXAubGVnZW5kU2hhcGVcclxuICAgIH07XHJcbiAgICB0ZXh0TGlzdC5wdXNoKHRleHQxLCB0ZXh0MiwgdGV4dDMsIHRleHQ0KTtcclxuICB9KTtcclxuICB2YXIgdmFsaWRDYWxQb2ludHMgPSBbXTtcclxuICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgeDogMCxcclxuICAgIHk6IDBcclxuICB9O1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsUG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgcG9pbnRzID0gY2FsUG9pbnRzW2ldO1xyXG4gICAgaWYgKHR5cGVvZiBwb2ludHNbaW5kZXhdICE9PSAndW5kZWZpbmVkJyAmJiBwb2ludHNbaW5kZXhdICE9PSBudWxsKSB7XHJcbiAgICAgIHZhbGlkQ2FsUG9pbnRzLnB1c2gocG9pbnRzW2luZGV4XSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9mZnNldC54ID0gTWF0aC5yb3VuZCh2YWxpZENhbFBvaW50c1swXVswXS54KTtcclxuICByZXR1cm4ge1xyXG4gICAgdGV4dExpc3Q6IHRleHRMaXN0LFxyXG4gICAgb2Zmc2V0OiBvZmZzZXRcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWx0ZXJTZXJpZXMoc2VyaWVzKSB7XHJcbiAgbGV0IHRlbXBTZXJpZXMgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYgKHNlcmllc1tpXS5zaG93ID09IHRydWUpIHtcclxuICAgICAgdGVtcFNlcmllcy5wdXNoKHNlcmllc1tpXSlcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHRlbXBTZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgY2FsUG9pbnRzLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAwO1xyXG4gIHZhciBjdXJyZW50PXsgaW5kZXg6LTEsIGdyb3VwOltdIH07XHJcbiAgdmFyIHNwYWNpbmcgPSBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyAvIDI7XHJcbiAgbGV0IHhBeGlzUG9pbnRzID0gW107XHJcbiAgaWYgKGNhbFBvaW50cyAmJiBjYWxQb2ludHMubGVuZ3RoID4gMCkge1xyXG4gICAgaWYgKCFvcHRzLmNhdGVnb3JpZXMpIHtcclxuICAgICAgc3BhY2luZyA9IDA7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHhBeGlzUG9pbnRzLnB1c2gob3B0cy5jaGFydERhdGEueEF4aXNQb2ludHNbaV0gLSBzcGFjaW5nKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJykgJiYgb3B0cy54QXhpcy5ib3VuZGFyeUdhcCA9PSAnanVzdGlmeScpIHtcclxuICAgICAgICB4QXhpc1BvaW50cyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaXNJbkV4YWN0Q2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIG9wdHMsIGNvbmZpZykpIHtcclxuICAgICAgaWYgKCFvcHRzLmNhdGVnb3JpZXMpIHtcclxuICAgICAgICBsZXQgdGltZVBvaW50cyA9IEFycmF5KGNhbFBvaW50cy5sZW5ndGgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsUG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICB0aW1lUG9pbnRzW2ldID0gQXJyYXkoY2FsUG9pbnRzW2ldLmxlbmd0aClcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2FsUG9pbnRzW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIHRpbWVQb2ludHNbaV1bal0gPSAoTWF0aC5hYnMoY2FsUG9pbnRzW2ldW2pdLnggLSBjdXJyZW50UG9pbnRzLngpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGxldCBwb2ludFZhbHVlID0gIEFycmF5KHRpbWVQb2ludHMubGVuZ3RoKTtcclxuICAgICAgICBsZXQgcG9pbnRJbmRleCA9ICBBcnJheSh0aW1lUG9pbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aW1lUG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBwb2ludFZhbHVlW2ldID0gTWF0aC5taW4uYXBwbHkobnVsbCwgdGltZVBvaW50c1tpXSk7XHJcbiAgICAgICAgICBwb2ludEluZGV4W2ldID0gdGltZVBvaW50c1tpXS5pbmRleE9mKHBvaW50VmFsdWVbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWluVmFsdWUgPSBNYXRoLm1pbi5hcHBseShudWxsLCBwb2ludFZhbHVlKTtcclxuICAgICAgICBjdXJyZW50LmluZGV4ID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludFZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZihwb2ludFZhbHVlW2ldID09IG1pblZhbHVlKXtcclxuICAgICAgICAgICAgY3VycmVudC5ncm91cC5wdXNoKGkpO1xyXG4gICAgICAgICAgICBjdXJyZW50LmluZGV4LnB1c2gocG9pbnRJbmRleFtpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgeEF4aXNQb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgICAgaWYgKGN1cnJlbnRQb2ludHMueCArIG9mZnNldCArIHNwYWNpbmcgPiBpdGVtKSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnQuaW5kZXggPSBpbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY3VycmVudDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZEJhckNoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIGNhbFBvaW50cywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMDtcclxuICB2YXIgY3VycmVudD17IGluZGV4Oi0xLCBncm91cDpbXSB9O1xyXG4gIHZhciBzcGFjaW5nID0gb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgLyAyO1xyXG4gIGxldCB5QXhpc1BvaW50cyA9IG9wdHMuY2hhcnREYXRhLnlBeGlzUG9pbnRzO1xyXG4gIGlmIChjYWxQb2ludHMgJiYgY2FsUG9pbnRzLmxlbmd0aCA+IDApIHtcclxuICAgIGlmIChpc0luRXhhY3RDaGFydEFyZWEoY3VycmVudFBvaW50cywgb3B0cywgY29uZmlnKSkge1xyXG4gICAgICB5QXhpc1BvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRQb2ludHMueSArIG9mZnNldCArIHNwYWNpbmcgPiBpdGVtKSB7XHJcbiAgICAgICAgICBjdXJyZW50LmluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRMZWdlbmRJbmRleChjdXJyZW50UG9pbnRzLCBsZWdlbmREYXRhLCBvcHRzKSB7XHJcbiAgbGV0IGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIGxldCBnYXAgPSAwO1xyXG4gIGlmIChpc0luRXhhY3RMZWdlbmRBcmVhKGN1cnJlbnRQb2ludHMsIGxlZ2VuZERhdGEuYXJlYSkpIHtcclxuICAgIGxldCBwb2ludHMgPSBsZWdlbmREYXRhLnBvaW50cztcclxuICAgIGxldCBpbmRleCA9IC0xO1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHBvaW50cy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaW5kZXggKz0gMTtcclxuICAgICAgICBsZXQgYXJlYSA9IGl0ZW1bal1bJ2FyZWEnXTtcclxuICAgICAgICBpZiAoYXJlYSAmJiBjdXJyZW50UG9pbnRzLnggPiBhcmVhWzBdIC0gZ2FwICYmIGN1cnJlbnRQb2ludHMueCA8IGFyZWFbMl0gKyBnYXAgJiYgY3VycmVudFBvaW50cy55ID4gYXJlYVsxXSAtIGdhcCAmJiBjdXJyZW50UG9pbnRzLnkgPCBhcmVhWzNdICsgZ2FwKSB7XHJcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNJbkV4YWN0TGVnZW5kQXJlYShjdXJyZW50UG9pbnRzLCBhcmVhKSB7XHJcbiAgcmV0dXJuIGN1cnJlbnRQb2ludHMueCA+IGFyZWEuc3RhcnQueCAmJiBjdXJyZW50UG9pbnRzLnggPCBhcmVhLmVuZC54ICYmIGN1cnJlbnRQb2ludHMueSA+IGFyZWEuc3RhcnQueSAmJiBjdXJyZW50UG9pbnRzLnkgPCBhcmVhLmVuZC55O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0luRXhhY3RDaGFydEFyZWEoY3VycmVudFBvaW50cywgb3B0cywgY29uZmlnKSB7XHJcbiAgcmV0dXJuIGN1cnJlbnRQb2ludHMueCA8PSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdICsgMTAgJiYgY3VycmVudFBvaW50cy54ID49IG9wdHMuYXJlYVszXSAtIDEwICYmIGN1cnJlbnRQb2ludHMueSA+PSBvcHRzLmFyZWFbMF0gJiYgY3VycmVudFBvaW50cy55IDw9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kUmFkYXJDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCByYWRhckRhdGEsIGNvdW50KSB7XHJcbiAgdmFyIGVhY2hBbmdsZUFyZWEgPSAyICogTWF0aC5QSSAvIGNvdW50O1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICBpZiAoaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIHJhZGFyRGF0YS5jZW50ZXIsIHJhZGFyRGF0YS5yYWRpdXMpKSB7XHJcbiAgICB2YXIgZml4QW5nbGUgPSBmdW5jdGlvbiBmaXhBbmdsZShhbmdsZSkge1xyXG4gICAgICBpZiAoYW5nbGUgPCAwKSB7XHJcbiAgICAgICAgYW5nbGUgKz0gMiAqIE1hdGguUEk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFuZ2xlID4gMiAqIE1hdGguUEkpIHtcclxuICAgICAgICBhbmdsZSAtPSAyICogTWF0aC5QSTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYW5nbGU7XHJcbiAgICB9O1xyXG4gICAgdmFyIGFuZ2xlID0gTWF0aC5hdGFuMihyYWRhckRhdGEuY2VudGVyLnkgLSBjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCAtIHJhZGFyRGF0YS5jZW50ZXIueCk7XHJcbiAgICBhbmdsZSA9IC0xICogYW5nbGU7XHJcbiAgICBpZiAoYW5nbGUgPCAwKSB7XHJcbiAgICAgIGFuZ2xlICs9IDIgKiBNYXRoLlBJO1xyXG4gICAgfVxyXG4gICAgdmFyIGFuZ2xlTGlzdCA9IHJhZGFyRGF0YS5hbmdsZUxpc3QubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgICAgaXRlbSA9IGZpeEFuZ2xlKC0xICogaXRlbSk7XHJcbiAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfSk7XHJcbiAgICBhbmdsZUxpc3QuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICB2YXIgcmFuZ2VTdGFydCA9IGZpeEFuZ2xlKGl0ZW0gLSBlYWNoQW5nbGVBcmVhIC8gMik7XHJcbiAgICAgIHZhciByYW5nZUVuZCA9IGZpeEFuZ2xlKGl0ZW0gKyBlYWNoQW5nbGVBcmVhIC8gMik7XHJcbiAgICAgIGlmIChyYW5nZUVuZCA8IHJhbmdlU3RhcnQpIHtcclxuICAgICAgICByYW5nZUVuZCArPSAyICogTWF0aC5QSTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYW5nbGUgPj0gcmFuZ2VTdGFydCAmJiBhbmdsZSA8PSByYW5nZUVuZCB8fCBhbmdsZSArIDIgKiBNYXRoLlBJID49IHJhbmdlU3RhcnQgJiYgYW5nbGUgKyAyICogTWF0aC5QSSA8PSByYW5nZUVuZCkge1xyXG4gICAgICAgIGN1cnJlbnRJbmRleCA9IGluZGV4O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZEZ1bm5lbENoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIGZ1bm5lbERhdGEpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGZ1bm5lbERhdGEuc2VyaWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICB2YXIgaXRlbSA9IGZ1bm5lbERhdGEuc2VyaWVzW2ldO1xyXG4gICAgaWYgKGN1cnJlbnRQb2ludHMueCA+IGl0ZW0uZnVubmVsQXJlYVswXSAmJiBjdXJyZW50UG9pbnRzLnggPCBpdGVtLmZ1bm5lbEFyZWFbMl0gJiYgY3VycmVudFBvaW50cy55ID4gaXRlbS5mdW5uZWxBcmVhWzFdICYmIGN1cnJlbnRQb2ludHMueSA8IGl0ZW0uZnVubmVsQXJlYVszXSkge1xyXG4gICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFdvcmRDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCB3b3JkRGF0YSkge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gd29yZERhdGEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgIHZhciBpdGVtID0gd29yZERhdGFbaV07XHJcbiAgICBpZiAoY3VycmVudFBvaW50cy54ID4gaXRlbS5hcmVhWzBdICYmIGN1cnJlbnRQb2ludHMueCA8IGl0ZW0uYXJlYVsyXSAmJiBjdXJyZW50UG9pbnRzLnkgPiBpdGVtLmFyZWFbMV0gJiYgY3VycmVudFBvaW50cy55IDwgaXRlbS5hcmVhWzNdKSB7XHJcbiAgICAgIGN1cnJlbnRJbmRleCA9IGk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY3VycmVudEluZGV4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaW5kTWFwQ2hhcnRDdXJyZW50SW5kZXgoY3VycmVudFBvaW50cywgb3B0cykge1xyXG4gIHZhciBjdXJyZW50SW5kZXggPSAtMTtcclxuICB2YXIgY0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS5tYXBEYXRhO1xyXG4gIHZhciBkYXRhID0gb3B0cy5zZXJpZXM7XHJcbiAgdmFyIHRtcCA9IHBvaW50VG9Db29yZGluYXRlKGN1cnJlbnRQb2ludHMueSwgY3VycmVudFBvaW50cy54LCBjRGF0YS5ib3VuZHMsIGNEYXRhLnNjYWxlLCBjRGF0YS54b2Zmc2V0LCBjRGF0YS55b2Zmc2V0KTtcclxuICB2YXIgcG9pID0gW3RtcC54LCB0bXAueV07XHJcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGRhdGEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgIHZhciBpdGVtID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlcztcclxuICAgIGlmIChpc1BvaVdpdGhpblBvbHkocG9pLCBpdGVtLCBvcHRzLmNoYXJ0RGF0YS5tYXBEYXRhLm1lcmNhdG9yKSkge1xyXG4gICAgICBjdXJyZW50SW5kZXggPSBpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFJvc2VDaGFydEN1cnJlbnRJbmRleChjdXJyZW50UG9pbnRzLCBwaWVEYXRhLCBvcHRzKSB7XHJcbiAgdmFyIGN1cnJlbnRJbmRleCA9IC0xO1xyXG4gIHZhciBzZXJpZXMgPSBnZXRSb3NlRGF0YVBvaW50cyhvcHRzLl9zZXJpZXNfLCBvcHRzLmV4dHJhLnJvc2UudHlwZSwgcGllRGF0YS5yYWRpdXMsIHBpZURhdGEucmFkaXVzKTtcclxuICBpZiAocGllRGF0YSAmJiBwaWVEYXRhLmNlbnRlciAmJiBpc0luRXhhY3RQaWVDaGFydEFyZWEoY3VycmVudFBvaW50cywgcGllRGF0YS5jZW50ZXIsIHBpZURhdGEucmFkaXVzKSkge1xyXG4gICAgdmFyIGFuZ2xlID0gTWF0aC5hdGFuMihwaWVEYXRhLmNlbnRlci55IC0gY3VycmVudFBvaW50cy55LCBjdXJyZW50UG9pbnRzLnggLSBwaWVEYXRhLmNlbnRlci54KTtcclxuICAgIGFuZ2xlID0gLWFuZ2xlO1xyXG4gICAgaWYob3B0cy5leHRyYS5yb3NlICYmIG9wdHMuZXh0cmEucm9zZS5vZmZzZXRBbmdsZSl7XHJcbiAgICAgIGFuZ2xlID0gYW5nbGUgLSBvcHRzLmV4dHJhLnJvc2Uub2Zmc2V0QW5nbGUgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgfVxyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHNlcmllcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBpZiAoaXNJbkFuZ2xlUmFuZ2UoYW5nbGUsIHNlcmllc1tpXS5fc3RhcnRfLCBzZXJpZXNbaV0uX3N0YXJ0XyArIHNlcmllc1tpXS5fcm9zZV9wcm9wb3J0aW9uXyAqIDIgKiBNYXRoLlBJKSkge1xyXG4gICAgICAgIGN1cnJlbnRJbmRleCA9IGk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZFBpZUNoYXJ0Q3VycmVudEluZGV4KGN1cnJlbnRQb2ludHMsIHBpZURhdGEsIG9wdHMpIHtcclxuICB2YXIgY3VycmVudEluZGV4ID0gLTE7XHJcbiAgdmFyIHNlcmllcyA9IGdldFBpZURhdGFQb2ludHMocGllRGF0YS5zZXJpZXMpO1xyXG4gIGlmIChwaWVEYXRhICYmIHBpZURhdGEuY2VudGVyICYmIGlzSW5FeGFjdFBpZUNoYXJ0QXJlYShjdXJyZW50UG9pbnRzLCBwaWVEYXRhLmNlbnRlciwgcGllRGF0YS5yYWRpdXMpKSB7XHJcbiAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHBpZURhdGEuY2VudGVyLnkgLSBjdXJyZW50UG9pbnRzLnksIGN1cnJlbnRQb2ludHMueCAtIHBpZURhdGEuY2VudGVyLngpO1xyXG4gICAgYW5nbGUgPSAtYW5nbGU7XHJcbiAgICBpZihvcHRzLmV4dHJhLnBpZSAmJiBvcHRzLmV4dHJhLnBpZS5vZmZzZXRBbmdsZSl7XHJcbiAgICAgIGFuZ2xlID0gYW5nbGUgLSBvcHRzLmV4dHJhLnBpZS5vZmZzZXRBbmdsZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICB9XHJcbiAgICBpZihvcHRzLmV4dHJhLnJpbmcgJiYgb3B0cy5leHRyYS5yaW5nLm9mZnNldEFuZ2xlKXtcclxuICAgICAgYW5nbGUgPSBhbmdsZSAtIG9wdHMuZXh0cmEucmluZy5vZmZzZXRBbmdsZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc2VyaWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgIGlmIChpc0luQW5nbGVSYW5nZShhbmdsZSwgc2VyaWVzW2ldLl9zdGFydF8sIHNlcmllc1tpXS5fc3RhcnRfICsgc2VyaWVzW2ldLl9wcm9wb3J0aW9uXyAqIDIgKiBNYXRoLlBJKSkge1xyXG4gICAgICAgIGN1cnJlbnRJbmRleCA9IGk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGN1cnJlbnRJbmRleDtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNJbkV4YWN0UGllQ2hhcnRBcmVhKGN1cnJlbnRQb2ludHMsIGNlbnRlciwgcmFkaXVzKSB7XHJcbiAgcmV0dXJuIE1hdGgucG93KGN1cnJlbnRQb2ludHMueCAtIGNlbnRlci54LCAyKSArIE1hdGgucG93KGN1cnJlbnRQb2ludHMueSAtIGNlbnRlci55LCAyKSA8PSBNYXRoLnBvdyhyYWRpdXMsIDIpO1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpIHtcclxuICB2YXIgbmV3UG9pbnRzID0gW107XHJcbiAgdmFyIGl0ZW1zID0gW107XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmKGVhY2hTZXJpZXMuY29ubmVjdE51bGxzKXtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgIG5ld1BvaW50cy5wdXNoKGl0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfSk7XHJcbiAgaWYgKGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgbmV3UG9pbnRzLnB1c2goaXRlbXMpO1xyXG4gIH1cclxuICByZXR1cm4gbmV3UG9pbnRzO1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gY2FsTGVnZW5kRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY2hhcnREYXRhLCBjb250ZXh0KSB7XHJcbiAgbGV0IGxlZ2VuZERhdGEgPSB7XHJcbiAgICBhcmVhOiB7XHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgeDogMCxcclxuICAgICAgICB5OiAwXHJcbiAgICAgIH0sXHJcbiAgICAgIGVuZDoge1xyXG4gICAgICAgIHg6IDAsXHJcbiAgICAgICAgeTogMFxyXG4gICAgICB9LFxyXG4gICAgICB3aWR0aDogMCxcclxuICAgICAgaGVpZ2h0OiAwLFxyXG4gICAgICB3aG9sZVdpZHRoOiAwLFxyXG4gICAgICB3aG9sZUhlaWdodDogMFxyXG4gICAgfSxcclxuICAgIHBvaW50czogW10sXHJcbiAgICB3aWR0aEFycjogW10sXHJcbiAgICBoZWlnaHRBcnI6IFtdXHJcbiAgfTtcclxuICBpZiAob3B0cy5sZWdlbmQuc2hvdyA9PT0gZmFsc2UpIHtcclxuICAgIGNoYXJ0RGF0YS5sZWdlbmREYXRhID0gbGVnZW5kRGF0YTtcclxuICAgIHJldHVybiBsZWdlbmREYXRhO1xyXG4gIH1cclxuICBsZXQgcGFkZGluZyA9IG9wdHMubGVnZW5kLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICBsZXQgbWFyZ2luID0gb3B0cy5sZWdlbmQubWFyZ2luICogb3B0cy5waXg7XHJcbiAgbGV0IGZvbnRTaXplID0gb3B0cy5sZWdlbmQuZm9udFNpemUgPyBvcHRzLmxlZ2VuZC5mb250U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplO1xyXG4gIGxldCBzaGFwZVdpZHRoID0gMTUgKiBvcHRzLnBpeDtcclxuICBsZXQgc2hhcGVSaWdodCA9IDUgKiBvcHRzLnBpeDtcclxuICBsZXQgbGluZUhlaWdodCA9IE1hdGgubWF4KG9wdHMubGVnZW5kLmxpbmVIZWlnaHQgKiBvcHRzLnBpeCwgZm9udFNpemUpO1xyXG4gIGlmIChvcHRzLmxlZ2VuZC5wb3NpdGlvbiA9PSAndG9wJyB8fCBvcHRzLmxlZ2VuZC5wb3NpdGlvbiA9PSAnYm90dG9tJykge1xyXG4gICAgbGV0IGxlZ2VuZExpc3QgPSBbXTtcclxuICAgIGxldCB3aWR0aENvdW50ID0gMDtcclxuICAgIGxldCB3aWR0aENvdW50QXJyID0gW107XHJcbiAgICBsZXQgY3VycmVudFJvdyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICAgIGNvbnN0IGxlZ2VuZFRleHQgPSBpdGVtLmxlZ2VuZFRleHQgPyBpdGVtLmxlZ2VuZFRleHQgOiBpdGVtLm5hbWU7XHJcbiAgICAgIGxldCBpdGVtV2lkdGggPSBzaGFwZVdpZHRoICsgc2hhcGVSaWdodCArIG1lYXN1cmVUZXh0KGxlZ2VuZFRleHQgfHwgJ3VuZGVmaW5lZCcsIGZvbnRTaXplLCBjb250ZXh0KSArIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeDtcclxuICAgICAgaWYgKHdpZHRoQ291bnQgKyBpdGVtV2lkdGggPiBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSB7XHJcbiAgICAgICAgbGVnZW5kTGlzdC5wdXNoKGN1cnJlbnRSb3cpO1xyXG4gICAgICAgIHdpZHRoQ291bnRBcnIucHVzaCh3aWR0aENvdW50IC0gb3B0cy5sZWdlbmQuaXRlbUdhcCAqIG9wdHMucGl4KTtcclxuICAgICAgICB3aWR0aENvdW50ID0gaXRlbVdpZHRoO1xyXG4gICAgICAgIGN1cnJlbnRSb3cgPSBbaXRlbV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2lkdGhDb3VudCArPSBpdGVtV2lkdGg7XHJcbiAgICAgICAgY3VycmVudFJvdy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoY3VycmVudFJvdy5sZW5ndGgpIHtcclxuICAgICAgbGVnZW5kTGlzdC5wdXNoKGN1cnJlbnRSb3cpO1xyXG4gICAgICB3aWR0aENvdW50QXJyLnB1c2god2lkdGhDb3VudCAtIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGxlZ2VuZERhdGEud2lkdGhBcnIgPSB3aWR0aENvdW50QXJyO1xyXG4gICAgICBsZXQgbGVnZW5kV2lkdGggPSBNYXRoLm1heC5hcHBseShudWxsLCB3aWR0aENvdW50QXJyKTtcclxuICAgICAgc3dpdGNoIChvcHRzLmxlZ2VuZC5mbG9hdCkge1xyXG4gICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnggPSBvcHRzLmFyZWFbM107XHJcbiAgICAgICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnggPSBvcHRzLmFyZWFbM10gKyBsZWdlbmRXaWR0aCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gbGVnZW5kV2lkdGggLSAyICogcGFkZGluZztcclxuICAgICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnggPSAob3B0cy53aWR0aCAtIGxlZ2VuZFdpZHRoKSAvIDIgLSBwYWRkaW5nO1xyXG4gICAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gKG9wdHMud2lkdGggKyBsZWdlbmRXaWR0aCkgLyAyICsgcGFkZGluZztcclxuICAgICAgfVxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEud2lkdGggPSBsZWdlbmRXaWR0aCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEud2hvbGVXaWR0aCA9IGxlZ2VuZFdpZHRoICsgMiAqIHBhZGRpbmc7XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQgPSBsZWdlbmRMaXN0Lmxlbmd0aCAqIGxpbmVIZWlnaHQgKyAyICogcGFkZGluZztcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLndob2xlSGVpZ2h0ID0gbGVnZW5kTGlzdC5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgMiAqIHBhZGRpbmcgKyAyICogbWFyZ2luO1xyXG4gICAgICBsZWdlbmREYXRhLnBvaW50cyA9IGxlZ2VuZExpc3Q7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIGxldCBsZW4gPSBzZXJpZXMubGVuZ3RoO1xyXG4gICAgbGV0IG1heEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdIC0gMiAqIG1hcmdpbiAtIDIgKiBwYWRkaW5nO1xyXG4gICAgbGV0IG1heExlbmd0aCA9IE1hdGgubWluKE1hdGguZmxvb3IobWF4SGVpZ2h0IC8gbGluZUhlaWdodCksIGxlbik7XHJcbiAgICBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0ID0gbWF4TGVuZ3RoICogbGluZUhlaWdodCArIHBhZGRpbmcgKiAyO1xyXG4gICAgbGVnZW5kRGF0YS5hcmVhLndob2xlSGVpZ2h0ID0gbWF4TGVuZ3RoICogbGluZUhlaWdodCArIHBhZGRpbmcgKiAyO1xyXG4gICAgc3dpdGNoIChvcHRzLmxlZ2VuZC5mbG9hdCkge1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luO1xyXG4gICAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueSA9IG9wdHMuYXJlYVswXSArIG1hcmdpbiArIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIG1hcmdpbiAtIGxlZ2VuZERhdGEuYXJlYS5oZWlnaHQ7XHJcbiAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBtYXJnaW47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnkgPSAob3B0cy5oZWlnaHQgLSBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0KSAvIDI7XHJcbiAgICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC55ID0gKG9wdHMuaGVpZ2h0ICsgbGVnZW5kRGF0YS5hcmVhLmhlaWdodCkgLyAyO1xyXG4gICAgfVxyXG4gICAgbGV0IGxpbmVOdW0gPSBsZW4gJSBtYXhMZW5ndGggPT09IDAgPyBsZW4gLyBtYXhMZW5ndGggOiBNYXRoLmZsb29yKChsZW4gLyBtYXhMZW5ndGgpICsgMSk7XHJcbiAgICBsZXQgY3VycmVudFJvdyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lTnVtOyBpKyspIHtcclxuICAgICAgbGV0IHRlbXAgPSBzZXJpZXMuc2xpY2UoaSAqIG1heExlbmd0aCwgaSAqIG1heExlbmd0aCArIG1heExlbmd0aCk7XHJcbiAgICAgIGN1cnJlbnRSb3cucHVzaCh0ZW1wKTtcclxuICAgIH1cclxuICAgIGxlZ2VuZERhdGEucG9pbnRzID0gY3VycmVudFJvdztcclxuICAgIGlmIChjdXJyZW50Um93Lmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGN1cnJlbnRSb3cubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGN1cnJlbnRSb3dbaV07XHJcbiAgICAgICAgbGV0IG1heFdpZHRoID0gMDtcclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGl0ZW0ubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtV2lkdGggPSBzaGFwZVdpZHRoICsgc2hhcGVSaWdodCArIG1lYXN1cmVUZXh0KGl0ZW1bal0ubmFtZSB8fCAndW5kZWZpbmVkJywgZm9udFNpemUsIGNvbnRleHQpICsgb3B0cy5sZWdlbmQuaXRlbUdhcCAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgaWYgKGl0ZW1XaWR0aCA+IG1heFdpZHRoKSB7XHJcbiAgICAgICAgICAgIG1heFdpZHRoID0gaXRlbVdpZHRoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZWdlbmREYXRhLndpZHRoQXJyLnB1c2gobWF4V2lkdGgpO1xyXG4gICAgICAgIGxlZ2VuZERhdGEuaGVpZ2h0QXJyLnB1c2goaXRlbS5sZW5ndGggKiBsaW5lSGVpZ2h0ICsgcGFkZGluZyAqIDIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBsZWdlbmRXaWR0aCA9IDBcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZWdlbmREYXRhLndpZHRoQXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGVnZW5kV2lkdGggKz0gbGVnZW5kRGF0YS53aWR0aEFycltpXTtcclxuICAgICAgfVxyXG4gICAgICBsZWdlbmREYXRhLmFyZWEud2lkdGggPSBsZWdlbmRXaWR0aCAtIG9wdHMubGVnZW5kLml0ZW1HYXAgKiBvcHRzLnBpeCArIDIgKiBwYWRkaW5nO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEud2hvbGVXaWR0aCA9IGxlZ2VuZERhdGEuYXJlYS53aWR0aCArIHBhZGRpbmc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN3aXRjaCAob3B0cy5sZWdlbmQucG9zaXRpb24pIHtcclxuICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5hcmVhWzBdICsgbWFyZ2luO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmFyZWFbMF0gKyBtYXJnaW4gKyBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC55ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBsZWdlbmREYXRhLmFyZWEuaGVpZ2h0IC0gbWFyZ2luO1xyXG4gICAgICBsZWdlbmREYXRhLmFyZWEuZW5kLnkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIG1hcmdpbjtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLnN0YXJ0LnggPSBvcHRzLmFyZWFbM107XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5lbmQueCA9IG9wdHMuYXJlYVszXSArIGxlZ2VuZERhdGEuYXJlYS53aWR0aDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgIGxlZ2VuZERhdGEuYXJlYS5zdGFydC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIGxlZ2VuZERhdGEuYXJlYS53aWR0aDtcclxuICAgICAgbGVnZW5kRGF0YS5hcmVhLmVuZC54ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG4gIGNoYXJ0RGF0YS5sZWdlbmREYXRhID0gbGVnZW5kRGF0YTtcclxuICByZXR1cm4gbGVnZW5kRGF0YTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsQ2F0ZWdvcmllc0RhdGEoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBlYWNoU3BhY2luZywgY29udGV4dCkge1xyXG4gIHZhciByZXN1bHQgPSB7XHJcbiAgICBhbmdsZTogMCxcclxuICAgIHhBeGlzSGVpZ2h0OiBvcHRzLnhBeGlzLmxpbmVIZWlnaHQgKiBvcHRzLnBpeCArIG9wdHMueEF4aXMubWFyZ2luVG9wICogb3B0cy5waXhcclxuICB9O1xyXG4gIHZhciBmb250U2l6ZSA9IG9wdHMueEF4aXMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICB2YXIgY2F0ZWdvcmllc1RleHRMZW50aCA9IGNhdGVnb3JpZXMubWFwKGZ1bmN0aW9uKGl0ZW0saW5kZXgpIHtcclxuICAgIHZhciB4aXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoaXRlbSxpbmRleCxvcHRzKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoU3RyaW5nKHhpdGVtKSwgZm9udFNpemUsIGNvbnRleHQpO1xyXG4gIH0pO1xyXG4gIHZhciBtYXhUZXh0TGVuZ3RoID0gTWF0aC5tYXguYXBwbHkodGhpcywgY2F0ZWdvcmllc1RleHRMZW50aCk7XHJcbiAgaWYgKG9wdHMueEF4aXMucm90YXRlTGFiZWwgPT0gdHJ1ZSkge1xyXG4gICAgcmVzdWx0LmFuZ2xlID0gb3B0cy54QXhpcy5yb3RhdGVBbmdsZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICBsZXQgdGVtcEhlaWdodCA9IG9wdHMueEF4aXMubWFyZ2luVG9wICogb3B0cy5waXggKiAyICsgIE1hdGguYWJzKG1heFRleHRMZW5ndGggKiBNYXRoLnNpbihyZXN1bHQuYW5nbGUpKVxyXG4gICAgdGVtcEhlaWdodCA9IHRlbXBIZWlnaHQgPCBmb250U2l6ZSArIG9wdHMueEF4aXMubWFyZ2luVG9wICogb3B0cy5waXggKiAyID8gdGVtcEhlaWdodCArIG9wdHMueEF4aXMubWFyZ2luVG9wICogb3B0cy5waXggKiAyIDogdGVtcEhlaWdodDtcclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IHRlbXBIZWlnaHQ7XHJcbiAgfVxyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCAmJiBvcHRzLnhBeGlzLnNjcm9sbFNob3cpIHtcclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCArPSA2ICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkKXtcclxuICAgIHJlc3VsdC54QXhpc0hlaWdodCA9IDA7XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFhBeGlzVGV4dExpc3Qoc2VyaWVzLCBvcHRzLCBjb25maWcsIHN0YWNrKSB7XHJcbiAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAtMTtcclxuICB2YXIgZGF0YTtcclxuICBpZiAoc3RhY2sgPT0gJ3N0YWNrJykge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lU3RhY2soc2VyaWVzLCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGFDb21iaW5lKHNlcmllcyk7XHJcbiAgfVxyXG4gIHZhciBzb3J0ZWQgPSBbXTtcclxuICAvLyByZW1vdmUgbnVsbCBmcm9tIGRhdGFcclxuICBkYXRhID0gZGF0YS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9yZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlICE9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaXRlbSAhPT0gbnVsbDtcclxuICAgIH1cclxuICB9KTtcclxuICBkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgICAgaXRlbS5tYXAoZnVuY3Rpb24oc3ViaXRlbSkge1xyXG4gICAgICAgICAgICBzb3J0ZWQucHVzaChzdWJpdGVtKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNvcnRlZC5wdXNoKGl0ZW1bMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzb3J0ZWQucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc29ydGVkLnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbiAgdmFyIG1pbkRhdGEgPSAwO1xyXG4gIHZhciBtYXhEYXRhID0gMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIC8v5Li65LqG5YW85a65djEuOS4w5LmL5YmN55qE6aG555uuXHJcbiAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgIGlmICh0eXBlb2Ygb3B0cy54QXhpcy5kYXRhW2luZGV4XS5taW4gPT09ICdudW1iZXInKSB7XHJcbiAgICAgIG1pbkRhdGEgPSBNYXRoLm1pbihvcHRzLnhBeGlzLmRhdGFbaW5kZXhdLm1pbiwgbWluRGF0YSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMuZGF0YVtpbmRleF0ubWF4ID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtYXhEYXRhID0gTWF0aC5tYXgob3B0cy54QXhpcy5kYXRhW2luZGV4XS5tYXgsIG1heERhdGEpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMueEF4aXMubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICBtaW5EYXRhID0gTWF0aC5taW4ob3B0cy54QXhpcy5taW4sIG1pbkRhdGEpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRzLnhBeGlzLm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgbWF4RGF0YSA9IE1hdGgubWF4KG9wdHMueEF4aXMubWF4LCBtYXhEYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKG1pbkRhdGEgPT09IG1heERhdGEpIHtcclxuICAgIHZhciByYW5nZVNwYW4gPSBtYXhEYXRhIHx8IDEwO1xyXG4gICAgbWF4RGF0YSArPSByYW5nZVNwYW47XHJcbiAgfVxyXG4gIC8vdmFyIGRhdGFSYW5nZSA9IGdldERhdGFSYW5nZShtaW5EYXRhLCBtYXhEYXRhKTtcclxuICB2YXIgbWluUmFuZ2UgPSBtaW5EYXRhO1xyXG4gIHZhciBtYXhSYW5nZSA9IG1heERhdGE7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueEF4aXMuc3BsaXROdW1iZXI7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy54QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FsWEF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgLy/loIblj6Dlm77ph43nrpdZ6L20XHJcbiAgdmFyIGNvbHVtbnN0eWxlID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiBcIlwiXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIHZhciByZXN1bHQgPSB7XHJcbiAgICBhbmdsZTogMCxcclxuICAgIHhBeGlzSGVpZ2h0OiBvcHRzLnhBeGlzLmxpbmVIZWlnaHQgKiBvcHRzLnBpeCArIG9wdHMueEF4aXMubWFyZ2luVG9wICogb3B0cy5waXhcclxuICB9O1xyXG4gIHJlc3VsdC5yYW5nZXMgPSBnZXRYQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlKTtcclxuICByZXN1bHQucmFuZ2VzRm9ybWF0ID0gcmVzdWx0LnJhbmdlcy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgLy9pdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IHV0aWwudG9GaXhlZChpdGVtLCAyKTtcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICB2YXIgeEF4aXNTY2FsZVZhbHVlcyA9IHJlc3VsdC5yYW5nZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIC8vIOWmguaenOWIu+W6puWAvOaYr+a1rueCueaVsCzliJnkv53nlZnkuKTkvY3lsI/mlbBcclxuICAgIGl0ZW0gPSB1dGlsLnRvRml4ZWQoaXRlbSwgMik7XHJcbiAgICAvLyDoi6XmnInoh6rlrprkuYnmoLzlvI/liJnosIPnlKjoh6rlrprkuYnnmoTmoLzlvI/ljJblh73mlbBcclxuICAgIC8vaXRlbSA9IG9wdHMueEF4aXMuZm9ybWF0dGVyID8gb3B0cy54QXhpcy5mb3JtYXR0ZXIoTnVtYmVyKGl0ZW0pKSA6IGl0ZW07XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxuICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwgZ2V0WEF4aXNQb2ludHMoeEF4aXNTY2FsZVZhbHVlcywgb3B0cywgY29uZmlnKSk7XHJcbiAgLy8g6K6h566XWOi9tOWIu+W6pueahOWxnuaAp+itrOWmguavj+S4quWIu+W6pueahOmXtOmalCzliLvluqbnmoTotbflp4vngrlcXOe7k+adn+eCueS7peWPiuaAu+mVv1xyXG4gIHZhciBlYWNoU3BhY2luZyA9IHJlc3VsdC5lYWNoU3BhY2luZztcclxuICB2YXIgdGV4dExlbmd0aCA9IHhBeGlzU2NhbGVWYWx1ZXMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIHJldHVybiBtZWFzdXJlVGV4dChpdGVtLCBvcHRzLnhBeGlzLmZvbnRTaXplICogb3B0cy5waXgsIGNvbnRleHQpO1xyXG4gIH0pO1xyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICByZXN1bHQueEF4aXNIZWlnaHQgPSAwO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSYWRhckRhdGFQb2ludHMoYW5nbGVMaXN0LCBjZW50ZXIsIHJhZGl1cywgc2VyaWVzLCBvcHRzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IDE7XHJcbiAgdmFyIHJhZGFyT3B0aW9uID0gb3B0cy5leHRyYS5yYWRhciB8fCB7fTtcclxuICByYWRhck9wdGlvbi5tYXggPSByYWRhck9wdGlvbi5tYXggfHwgMDtcclxuICB2YXIgbWF4RGF0YSA9IE1hdGgubWF4KHJhZGFyT3B0aW9uLm1heCwgTWF0aC5tYXguYXBwbHkobnVsbCwgZGF0YUNvbWJpbmUoc2VyaWVzKSkpO1xyXG4gIHZhciBkYXRhID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGxldCBlYWNoID0gc2VyaWVzW2ldO1xyXG4gICAgbGV0IGxpc3RJdGVtID0ge307XHJcbiAgICBsaXN0SXRlbS5jb2xvciA9IGVhY2guY29sb3I7XHJcbiAgICBsaXN0SXRlbS5sZWdlbmRTaGFwZSA9IGVhY2gubGVnZW5kU2hhcGU7XHJcbiAgICBsaXN0SXRlbS5wb2ludFNoYXBlID0gZWFjaC5wb2ludFNoYXBlO1xyXG4gICAgbGlzdEl0ZW0uZGF0YSA9IFtdO1xyXG4gICAgZWFjaC5kYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgbGV0IHRtcCA9IHt9O1xyXG4gICAgICB0bXAuYW5nbGUgPSBhbmdsZUxpc3RbaW5kZXhdO1xyXG4gICAgICB0bXAucHJvcG9ydGlvbiA9IGl0ZW0gLyBtYXhEYXRhO1xyXG4gICAgICB0bXAudmFsdWUgPSBpdGVtO1xyXG4gICAgICB0bXAucG9zaXRpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLmNvcyh0bXAuYW5nbGUpLCByYWRpdXMgKiB0bXAucHJvcG9ydGlvbiAqIHByb2Nlc3MgKiBNYXRoLnNpbih0bXAuYW5nbGUpLCBjZW50ZXIpO1xyXG4gICAgICBsaXN0SXRlbS5kYXRhLnB1c2godG1wKTtcclxuICAgIH0pO1xyXG4gICAgZGF0YS5wdXNoKGxpc3RJdGVtKTtcclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBpZURhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICB2YXIgY291bnQgPSAwO1xyXG4gIHZhciBfc3RhcnRfID0gMDtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgaWYgKGNvdW50ID09PSAwKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gMSAvIHNlcmllcy5sZW5ndGggKiBwcm9jZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBpdGVtLl9yYWRpdXNfID0gcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJO1xyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRGdW5uZWxEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCBvcHRpb24sIGVhY2hTcGFjaW5nKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXJpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmKG9wdGlvbi50eXBlID09ICdmdW5uZWwnKXtcclxuICAgICAgc2VyaWVzW2ldLnJhZGl1cyA9IHNlcmllc1tpXS5kYXRhIC8gc2VyaWVzWzBdLmRhdGEgKiByYWRpdXMgKiBwcm9jZXNzO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHNlcmllc1tpXS5yYWRpdXMgPSAgKGVhY2hTcGFjaW5nICogKHNlcmllcy5sZW5ndGggLSBpKSkgLyAoZWFjaFNwYWNpbmcgKiBzZXJpZXMubGVuZ3RoKSAqIHJhZGl1cyAqIHByb2Nlc3M7XHJcbiAgICB9XHJcbiAgICBzZXJpZXNbaV0uX3Byb3BvcnRpb25fID0gc2VyaWVzW2ldLmRhdGEgLyBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgLy8gaWYob3B0aW9uLnR5cGUgIT09ICdweXJhbWlkJyl7XHJcbiAgLy8gICBzZXJpZXMucmV2ZXJzZSgpO1xyXG4gIC8vIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRSb3NlRGF0YVBvaW50cyhzZXJpZXMsIHR5cGUsIG1pblJhZGl1cywgcmFkaXVzKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIGNvdW50ID0gMDtcclxuICB2YXIgX3N0YXJ0XyA9IDA7XHJcbiAgdmFyIGRhdGFBcnIgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLmRhdGEgPSBpdGVtLmRhdGEgPT09IG51bGwgPyAwIDogaXRlbS5kYXRhO1xyXG4gICAgY291bnQgKz0gaXRlbS5kYXRhO1xyXG4gICAgZGF0YUFyci5wdXNoKGl0ZW0uZGF0YSk7XHJcbiAgfVxyXG4gIHZhciBtaW5EYXRhID0gTWF0aC5taW4uYXBwbHkobnVsbCwgZGF0YUFycik7XHJcbiAgdmFyIG1heERhdGEgPSBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQXJyKTtcclxuICB2YXIgcmFkaXVzTGVuZ3RoID0gcmFkaXVzIC0gbWluUmFkaXVzO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uZGF0YSAvIGNvdW50ICogcHJvY2VzcztcclxuICAgICAgaWYodHlwZSA9PSAnYXJlYScpe1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSAxIC8gc2VyaWVzLmxlbmd0aCAqIHByb2Nlc3M7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGl0ZW0uX3Jvc2VfcHJvcG9ydGlvbl8gPSBpdGVtLmRhdGEgLyBjb3VudCAqIHByb2Nlc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGl0ZW0uX3JhZGl1c18gPSBtaW5SYWRpdXMgKyByYWRpdXNMZW5ndGggKiAoKGl0ZW0uZGF0YSAtIG1pbkRhdGEpIC8gKG1heERhdGEgLSBtaW5EYXRhKSkgfHwgcmFkaXVzO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpdGVtLl9zdGFydF8gPSBfc3RhcnRfO1xyXG4gICAgX3N0YXJ0XyArPSAyICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEk7XHJcbiAgfVxyXG4gIHJldHVybiBzZXJpZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKGFyY2Jhck9wdGlvbi5kaXJlY3Rpb24gPT0gJ2Njdycpe1xyXG4gICAgICAgIGlmIChhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSA8IGFyY2Jhck9wdGlvbi5lbmRBbmdsZSkge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IDIgKyBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIGFyY2Jhck9wdGlvbi5lbmRBbmdsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgaWYgKGFyY2Jhck9wdGlvbi5lbmRBbmdsZSA8IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlKSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gMiArIGFyY2Jhck9wdGlvbi5lbmRBbmdsZSAtIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0b3RhbEFuZ2xlID0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgLSBhcmNiYXJPcHRpb24uZW5kQW5nbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZihhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKXtcclxuICAgICAgaXRlbS5fcHJvcG9ydGlvbl8gPSBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSAtIHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzIDtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLl9wcm9wb3J0aW9uXyA+PSAyKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fcHJvcG9ydGlvbl8gJSAyO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24pIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMTtcclxuICBpZiAocHJvY2VzcyA9PSAxKSB7XHJcbiAgICBwcm9jZXNzID0gMC45OTk5OTk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChhcmNiYXJPcHRpb24udHlwZSA9PSAnY2lyY2xlJykge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChhcmNiYXJPcHRpb24uZW5kQW5nbGUgPCBhcmNiYXJPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICAgIHRvdGFsQW5nbGUgPSAyICsgYXJjYmFyT3B0aW9uLmVuZEFuZ2xlIC0gYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdG90YWxBbmdsZSA9IGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlIC0gYXJjYmFyT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IHRvdGFsQW5nbGUgKiBpdGVtLmRhdGEgKiBwcm9jZXNzICsgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpZiAoaXRlbS5fcHJvcG9ydGlvbl8gPj0gMikge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX3Byb3BvcnRpb25fICUgMjtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHNlcmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0R2F1Z2VBeGlzUG9pbnRzKGNhdGVnb3JpZXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKSB7XHJcbiAgbGV0IHRvdGFsQW5nbGU7XHJcbiAgaWYgKGVuZEFuZ2xlIDwgc3RhcnRBbmdsZSkge1xyXG4gICAgdG90YWxBbmdsZSA9IDIgKyBlbmRBbmdsZSAtIHN0YXJ0QW5nbGU7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRvdGFsQW5nbGUgPSBzdGFydEFuZ2xlIC0gZW5kQW5nbGU7XHJcbiAgfVxyXG4gIGxldCB0ZW1wU3RhcnRBbmdsZSA9IHN0YXJ0QW5nbGU7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjYXRlZ29yaWVzW2ldLnZhbHVlID0gY2F0ZWdvcmllc1tpXS52YWx1ZSA9PT0gbnVsbCA/IDAgOiBjYXRlZ29yaWVzW2ldLnZhbHVlO1xyXG4gICAgY2F0ZWdvcmllc1tpXS5fc3RhcnRBbmdsZV8gPSB0ZW1wU3RhcnRBbmdsZTtcclxuICAgIGNhdGVnb3JpZXNbaV0uX2VuZEFuZ2xlXyA9IHRvdGFsQW5nbGUgKiBjYXRlZ29yaWVzW2ldLnZhbHVlICsgc3RhcnRBbmdsZTtcclxuICAgIGlmIChjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPj0gMikge1xyXG4gICAgICBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV8gJSAyO1xyXG4gICAgfVxyXG4gICAgdGVtcFN0YXJ0QW5nbGUgPSBjYXRlZ29yaWVzW2ldLl9lbmRBbmdsZV87XHJcbiAgfVxyXG4gIHJldHVybiBjYXRlZ29yaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbikge1xyXG4gIGxldCBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAxO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGl0ZW0uZGF0YSA9IGl0ZW0uZGF0YSA9PT0gbnVsbCA/IDAgOiBpdGVtLmRhdGE7XHJcbiAgICBpZiAoZ2F1Z2VPcHRpb24ucG9pbnRlci5jb2xvciA9PSAnYXV0bycpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uZGF0YSA8PSBjYXRlZ29yaWVzW2ldLnZhbHVlKSB7XHJcbiAgICAgICAgICBpdGVtLmNvbG9yID0gY2F0ZWdvcmllc1tpXS5jb2xvcjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS5jb2xvciA9IGdhdWdlT3B0aW9uLnBvaW50ZXIuY29sb3I7XHJcbiAgICB9XHJcbiAgICBsZXQgdG90YWxBbmdsZTtcclxuICAgIGlmIChnYXVnZU9wdGlvbi5lbmRBbmdsZSA8IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUpIHtcclxuICAgICAgdG90YWxBbmdsZSA9IDIgKyBnYXVnZU9wdGlvbi5lbmRBbmdsZSAtIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIGdhdWdlT3B0aW9uLmVuZEFuZ2xlO1xyXG4gICAgfVxyXG4gICAgaXRlbS5fZW5kQW5nbGVfID0gdG90YWxBbmdsZSAqIGl0ZW0uZGF0YSArIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgICBpdGVtLl9vbGRBbmdsZV8gPSBnYXVnZU9wdGlvbi5vbGRBbmdsZTtcclxuICAgIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA8IGdhdWdlT3B0aW9uLmVuZEFuZ2xlKSB7XHJcbiAgICAgIGl0ZW0uX29sZEFuZ2xlXyArPSAyO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uZGF0YSA+PSBnYXVnZU9wdGlvbi5vbGREYXRhKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gKGl0ZW0uX2VuZEFuZ2xlXyAtIGl0ZW0uX29sZEFuZ2xlXykgKiBwcm9jZXNzICsgZ2F1Z2VPcHRpb24ub2xkQW5nbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLl9wcm9wb3J0aW9uXyA9IGl0ZW0uX29sZEFuZ2xlXyAtIChpdGVtLl9vbGRBbmdsZV8gLSBpdGVtLl9lbmRBbmdsZV8pICogcHJvY2VzcztcclxuICAgIH1cclxuICAgIGlmIChpdGVtLl9wcm9wb3J0aW9uXyA+PSAyKSB7XHJcbiAgICAgIGl0ZW0uX3Byb3BvcnRpb25fID0gaXRlbS5fcHJvcG9ydGlvbl8gJSAyO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gc2VyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRQaWVUZXh0TWF4TGVuZ3RoKHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgc2VyaWVzID0gZ2V0UGllRGF0YVBvaW50cyhzZXJpZXMpO1xyXG4gIGxldCBtYXhMZW5ndGggPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGxldCB0ZXh0ID0gaXRlbS5mb3JtYXR0ZXIgPyBpdGVtLmZvcm1hdHRlcigraXRlbS5fcHJvcG9ydGlvbl8udG9GaXhlZCgyKSkgOiB1dGlsLnRvRml4ZWQoaXRlbS5fcHJvcG9ydGlvbl8gKiAxMDApICsgJyUnO1xyXG4gICAgbWF4TGVuZ3RoID0gTWF0aC5tYXgobWF4TGVuZ3RoLCBtZWFzdXJlVGV4dCh0ZXh0LCBpdGVtLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplLCBjb250ZXh0KSk7XHJcbiAgfVxyXG4gIHJldHVybiBtYXhMZW5ndGg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeENvbHVtZURhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgY29sdW1uTGVuLCBpbmRleCwgY29uZmlnLCBvcHRzKSB7XHJcbiAgcmV0dXJuIHBvaW50cy5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICB2YXIgc2VyaWVzR2FwID0gMDtcclxuICAgIHZhciBjYXRlZ29yeUdhcCA9IDA7XHJcbiAgICBpZiAob3B0cy50eXBlID09ICdtaXgnKSB7XHJcbiAgICAgIHNlcmllc0dhcCA9IG9wdHMuZXh0cmEubWl4LmNvbHVtbi5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgICBjYXRlZ29yeUdhcCA9IG9wdHMuZXh0cmEubWl4LmNvbHVtbi5jYXRlZ29yeUdhcCAqIG9wdHMucGl4IHx8IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXJpZXNHYXAgPSBvcHRzLmV4dHJhLmNvbHVtbi5zZXJpZXNHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgICBjYXRlZ29yeUdhcCA9IG9wdHMuZXh0cmEuY29sdW1uLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIH1cclxuICAgIHNlcmllc0dhcCA9ICBNYXRoLm1pbihzZXJpZXNHYXAsIGVhY2hTcGFjaW5nIC8gY29sdW1uTGVuKVxyXG4gICAgY2F0ZWdvcnlHYXAgPSAgTWF0aC5taW4oY2F0ZWdvcnlHYXAsIGVhY2hTcGFjaW5nIC8gY29sdW1uTGVuKVxyXG4gICAgaXRlbS53aWR0aCA9IE1hdGguY2VpbCgoZWFjaFNwYWNpbmcgLSAyICogY2F0ZWdvcnlHYXAgLSBzZXJpZXNHYXAgKiAoY29sdW1uTGVuIC0gMSkpIC8gY29sdW1uTGVuKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLm1peCAmJiBvcHRzLmV4dHJhLm1peC5jb2x1bW4ud2lkdGggJiYgK29wdHMuZXh0cmEubWl4LmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLm1peC5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0cy5leHRyYS5jb2x1bW4gJiYgb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggJiYgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuY29sdW1uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIGl0ZW0ueCArPSAoaW5kZXggKyAwLjUgLSBjb2x1bW5MZW4gLyAyKSAqIChpdGVtLndpZHRoICsgc2VyaWVzR2FwKTtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaXhCYXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cykge1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgdmFyIHNlcmllc0dhcCA9IDA7XHJcbiAgICB2YXIgY2F0ZWdvcnlHYXAgPSAwO1xyXG4gICAgc2VyaWVzR2FwID0gb3B0cy5leHRyYS5iYXIuc2VyaWVzR2FwICogb3B0cy5waXggfHwgMDtcclxuICAgIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5iYXIuY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gICAgc2VyaWVzR2FwID0gIE1hdGgubWluKHNlcmllc0dhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBjYXRlZ29yeUdhcCA9ICBNYXRoLm1pbihjYXRlZ29yeUdhcCwgZWFjaFNwYWNpbmcgLyBjb2x1bW5MZW4pXHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCAtIHNlcmllc0dhcCAqIChjb2x1bW5MZW4gLSAxKSkgLyBjb2x1bW5MZW4pO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuYmFyICYmIG9wdHMuZXh0cmEuYmFyLndpZHRoICYmICtvcHRzLmV4dHJhLmJhci53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmJhci53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtLndpZHRoIDw9IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IDE7XHJcbiAgICB9XHJcbiAgICBpdGVtLnkgKz0gKGluZGV4ICsgMC41IC0gY29sdW1uTGVuIC8gMikgKiAoaXRlbS53aWR0aCArIHNlcmllc0dhcCk7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgYm9yZGVyKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaXRlbS53aWR0aCA9IGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwO1xyXG4gICAgaWYgKG9wdHMuZXh0cmEuY29sdW1uICYmIG9wdHMuZXh0cmEuY29sdW1uLndpZHRoICYmICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCA9IE1hdGgubWluKGl0ZW0ud2lkdGgsICtvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgaXRlbS53aWR0aCAtPSBib3JkZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZml4Q29sdW1lU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbiwgaW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKSB7XHJcbiAgdmFyIGNhdGVnb3J5R2FwID0gb3B0cy5leHRyYS5jb2x1bW4uY2F0ZWdvcnlHYXAgKiBvcHRzLnBpeCB8fCAwO1xyXG4gIHJldHVybiBwb2ludHMubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4bikge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBpdGVtLndpZHRoID0gTWF0aC5jZWlsKGVhY2hTcGFjaW5nIC0gMiAqIGNhdGVnb3J5R2FwKTtcclxuICAgIGlmIChvcHRzLmV4dHJhLmNvbHVtbiAmJiBvcHRzLmV4dHJhLmNvbHVtbi53aWR0aCAmJiArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggPiAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSBNYXRoLm1pbihpdGVtLndpZHRoLCArb3B0cy5leHRyYS5jb2x1bW4ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS53aWR0aCA8PSAwKSB7XHJcbiAgICAgIGl0ZW0ud2lkdGggPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpeEJhclN0YWNrRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBjb2x1bW5MZW4sIGluZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcykge1xyXG4gIHZhciBjYXRlZ29yeUdhcCA9IG9wdHMuZXh0cmEuYmFyLmNhdGVnb3J5R2FwICogb3B0cy5waXggfHwgMDtcclxuICByZXR1cm4gcG9pbnRzLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleG4pIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgaXRlbS53aWR0aCA9IE1hdGguY2VpbChlYWNoU3BhY2luZyAtIDIgKiBjYXRlZ29yeUdhcCk7XHJcbiAgICBpZiAob3B0cy5leHRyYS5iYXIgJiYgb3B0cy5leHRyYS5iYXIud2lkdGggJiYgK29wdHMuZXh0cmEuYmFyLndpZHRoID4gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gTWF0aC5taW4oaXRlbS53aWR0aCwgK29wdHMuZXh0cmEuYmFyLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0ud2lkdGggPD0gMCkge1xyXG4gICAgICBpdGVtLndpZHRoID0gMTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRYQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcpIHtcclxuICB2YXIgc3BhY2luZ1ZhbGlkID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICB2YXIgZGF0YUNvdW50ID0gb3B0cy5lbmFibGVTY3JvbGwgPyBNYXRoLm1pbihvcHRzLnhBeGlzLml0ZW1Db3VudCwgY2F0ZWdvcmllcy5sZW5ndGgpIDogY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgaWYgKChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdzY2F0dGVyJyB8fCBvcHRzLnR5cGUgPT0gJ2J1YmJsZScgfHwgb3B0cy50eXBlID09ICdiYXInKSAmJiBkYXRhQ291bnQgPiAxICYmIG9wdHMueEF4aXMuYm91bmRhcnlHYXAgPT0gJ2p1c3RpZnknKSB7XHJcbiAgICBkYXRhQ291bnQgLT0gMTtcclxuICB9XHJcbiAgdmFyIHdpZHRoUmF0aW8gPSAwO1xyXG4gIGlmKG9wdHMudHlwZSA9PSAnbW91bnQnICYmIG9wdHMuZXh0cmEgJiYgb3B0cy5leHRyYS5tb3VudCAmJiBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID4gMSl7XHJcbiAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgd2lkdGhSYXRpbyA9IG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyAtIDE7XHJcbiAgICBkYXRhQ291bnQgKz0gd2lkdGhSYXRpbztcclxuICB9XHJcbiAgdmFyIGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gZGF0YUNvdW50O1xyXG4gIHZhciB4QXhpc1BvaW50cyA9IFtdO1xyXG4gIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgdmFyIGVuZFggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdO1xyXG4gIGNhdGVnb3JpZXMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgeEF4aXNQb2ludHMucHVzaChzdGFydFggKyB3aWR0aFJhdGlvIC8gMiAqIGVhY2hTcGFjaW5nICsgaW5kZXggKiBlYWNoU3BhY2luZyk7XHJcbiAgfSk7XHJcbiAgaWYgKG9wdHMueEF4aXMuYm91bmRhcnlHYXAgIT09ICdqdXN0aWZ5Jykge1xyXG4gICAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICAgIHhBeGlzUG9pbnRzLnB1c2goc3RhcnRYICsgd2lkdGhSYXRpbyAqIGVhY2hTcGFjaW5nICsgY2F0ZWdvcmllcy5sZW5ndGggKiBlYWNoU3BhY2luZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB4QXhpc1BvaW50cy5wdXNoKGVuZFgpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYOiBzdGFydFgsXHJcbiAgICBlbmRYOiBlbmRYLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2FuZGxlRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgY1BvaW50cyA9IFtdO1xyXG4gICAgICBpdGVtLmZvckVhY2goZnVuY3Rpb24oaXRlbXMsIGluZGV4cykge1xyXG4gICAgICAgIHZhciBwb2ludCA9IHt9O1xyXG4gICAgICAgIHBvaW50LnggPSB4QXhpc1BvaW50c1tpbmRleF0gKyBNYXRoLnJvdW5kKGVhY2hTcGFjaW5nIC8gMik7XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbXMudmFsdWUgfHwgaXRlbXM7XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICAgIHBvaW50LnkgPSBvcHRzLmhlaWdodCAtIE1hdGgucm91bmQoaGVpZ2h0KSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICBjUG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgICB9KTtcclxuICAgICAgcG9pbnRzLnB1c2goY1BvaW50cyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIGJvdW5kYXJ5R2FwID0gJ2NlbnRlcic7XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT0gJ3NjYXR0ZXInIHx8IG9wdHMudHlwZSA9PSAnYnViYmxlJyApIHtcclxuICAgIGJvdW5kYXJ5R2FwID0gb3B0cy54QXhpcy5ib3VuZGFyeUdhcDtcclxuICB9XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciB2YWxpZFdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICAgIGxldCB4cmFuZ2VzLCB4bWluUmFuZ2UsIHhtYXhSYW5nZTtcclxuICAgICAgICAgIHhyYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICAgICAgICB4bWluUmFuZ2UgPSB4cmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgICAgICB4bWF4UmFuZ2UgPSB4cmFuZ2VzLnBvcCgpO1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtWzFdO1xyXG4gICAgICAgICAgcG9pbnQueCA9IG9wdHMuYXJlYVszXSArIHZhbGlkV2lkdGggKiAoaXRlbVswXSAtIHhtaW5SYW5nZSkgLyAoeG1heFJhbmdlIC0geG1pblJhbmdlKTtcclxuICAgICAgICAgIGlmKG9wdHMudHlwZSA9PSAnYnViYmxlJyl7XHJcbiAgICAgICAgICAgIHBvaW50LnIgPSBpdGVtWzJdO1xyXG4gICAgICAgICAgICBwb2ludC50ID0gaXRlbVszXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICBwb2ludC54ICs9IGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgfVxyXG4gICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIGhlaWdodCAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBoZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRMaW5lRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBsaW5lT3B0aW9uLCBwcm9jZXNzKXtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA4ICYmIGFyZ3VtZW50c1s4XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzhdIDogMTtcclxuICB2YXIgYm91bmRhcnlHYXAgPSBvcHRzLnhBeGlzLmJvdW5kYXJ5R2FwO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgdmFsaWRXaWR0aCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM107XHJcbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb2ludCA9IHt9O1xyXG4gICAgICBwb2ludC5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIGlmKGxpbmVPcHRpb24uYW5pbWF0aW9uID09ICd2ZXJ0aWNhbCcpe1xyXG4gICAgICAgIHBvaW50LnggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGxldCB4cmFuZ2VzLCB4bWluUmFuZ2UsIHhtYXhSYW5nZTtcclxuICAgICAgICAgICAgeHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzKTtcclxuICAgICAgICAgICAgeG1pblJhbmdlID0geHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICAgICAgICB4bWF4UmFuZ2UgPSB4cmFuZ2VzLnBvcCgpO1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGl0ZW1bMV07XHJcbiAgICAgICAgICAgIHBvaW50LnggPSBvcHRzLmFyZWFbM10gKyB2YWxpZFdpZHRoICogKGl0ZW1bMF0gLSB4bWluUmFuZ2UpIC8gKHhtYXhSYW5nZSAtIHhtaW5SYW5nZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgcG9pbnQueCArPSBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBoZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbMF0gKyBlYWNoU3BhY2luZyAqIGluZGV4ICogcHJvY2VzcztcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgcG9pbnQueCArPSBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBoZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q29sdW1uRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCB6ZXJvUG9pbnRzLCBwcm9jZXNzKXtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA4ICYmIGFyZ3VtZW50c1s4XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzhdIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gPT09IG51bGwpIHtcclxuICAgICAgcG9pbnRzLnB1c2gobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgcG9pbnQgPSB7fTtcclxuICAgICAgcG9pbnQuY29sb3IgPSBpdGVtLmNvbG9yO1xyXG4gICAgICBwb2ludC54ID0geEF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmIGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoaXRlbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpLmluZGV4T2YoJ0FycmF5JykgPiAtMSkge1xyXG4gICAgICAgICAgbGV0IHhyYW5nZXMsIHhtaW5SYW5nZSwgeG1heFJhbmdlO1xyXG4gICAgICAgICAgeHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzKTtcclxuICAgICAgICAgIHhtaW5SYW5nZSA9IHhyYW5nZXMuc2hpZnQoKTtcclxuICAgICAgICAgIHhtYXhSYW5nZSA9IHhyYW5nZXMucG9wKCk7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW1bMV07XHJcbiAgICAgICAgICBwb2ludC54ID0gb3B0cy5hcmVhWzNdICsgdmFsaWRXaWR0aCAqIChpdGVtWzBdIC0geG1pblJhbmdlKSAvICh4bWF4UmFuZ2UgLSB4bWluUmFuZ2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHBvaW50LnggKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgKiBwcm9jZXNzIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBwb2ludC55ID0gb3B0cy5oZWlnaHQgLSBoZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNb3VudERhdGFQb2ludHMoc2VyaWVzLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgbW91bnRPcHRpb24sIHplcm9Qb2ludHMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA4ICYmIGFyZ3VtZW50c1s4XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzhdIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIHZhbGlkV2lkdGggPSBvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBtb3VudFdpZHRoID0gZWFjaFNwYWNpbmcgKiBtb3VudE9wdGlvbi53aWR0aFJhdGlvO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICBpZiAoaXRlbSA9PT0gbnVsbCkge1xyXG4gICAgICBwb2ludHMucHVzaChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb2ludCA9IHt9O1xyXG4gICAgICBwb2ludC5jb2xvciA9IGl0ZW0uY29sb3I7XHJcbiAgICAgIHBvaW50LnggPSB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgIHBvaW50LnggKz0gZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICB2YXIgdmFsdWUgPSBpdGVtLmRhdGE7XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAqIHByb2Nlc3MgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgIHBvaW50LnkgPSBvcHRzLmhlaWdodCAtIGhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgcG9pbnQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgcG9pbnQud2lkdGggPSBtb3VudFdpZHRoO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QmFyRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnKSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNyAmJiBhcmd1bWVudHNbN10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s3XSA6IDE7XHJcbiAgdmFyIHBvaW50cyA9IFtdO1xyXG4gIHZhciB2YWxpZEhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIHZhciB2YWxpZFdpZHRoID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueSA9IHlBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgdmFyIHZhbHVlID0gaXRlbTtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHQgPSB2YWxpZFdpZHRoICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICBwb2ludC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICBwb2ludC54ID0gaGVpZ2h0ICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgICBwb2ludHMucHVzaChwb2ludCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzdGFja1Nlcmllcykge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDkgJiYgYXJndW1lbnRzWzldICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbOV0gOiAxO1xyXG4gIHZhciBwb2ludHMgPSBbXTtcclxuICB2YXIgdmFsaWRIZWlnaHQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueCA9IHhBeGlzUG9pbnRzW2luZGV4XSArIE1hdGgucm91bmQoZWFjaFNwYWNpbmcgLyAyKTtcclxuXHJcbiAgICAgIGlmIChzZXJpZXNJbmRleCA+IDApIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHNlcmllc0luZGV4OyBpKyspIHtcclxuICAgICAgICAgIHZhbHVlICs9IHN0YWNrU2VyaWVzW2ldLmRhdGFbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgdmFsdWUwID0gdmFsdWUgLSBpdGVtO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlMCAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdmFsaWRIZWlnaHQgKiAodmFsdWUgLSBtaW5SYW5nZSkgLyAobWF4UmFuZ2UgLSBtaW5SYW5nZSk7XHJcbiAgICAgICAgdmFyIGhlaWdodDAgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBoZWlnaHRjID0gaGVpZ2h0MDtcclxuICAgICAgaGVpZ2h0ICo9IHByb2Nlc3M7XHJcbiAgICAgIGhlaWdodGMgKj0gcHJvY2VzcztcclxuICAgICAgcG9pbnQueSA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICBwb2ludC55MCA9IG9wdHMuaGVpZ2h0IC0gTWF0aC5yb3VuZChoZWlnaHRjKSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgcG9pbnRzLnB1c2gocG9pbnQpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwb2ludHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc3RhY2tTZXJpZXMpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA5ICYmIGFyZ3VtZW50c1s5XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzldIDogMTtcclxuICB2YXIgcG9pbnRzID0gW107XHJcbiAgdmFyIHZhbGlkSGVpZ2h0ID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXTtcclxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGlmIChpdGVtID09PSBudWxsKSB7XHJcbiAgICAgIHBvaW50cy5wdXNoKG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIHBvaW50ID0ge307XHJcbiAgICAgIHBvaW50LmNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgICAgcG9pbnQueSA9IHlBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gc2VyaWVzSW5kZXg7IGkrKykge1xyXG4gICAgICAgICAgdmFsdWUgKz0gc3RhY2tTZXJpZXNbaV0uZGF0YVtpbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB2YWx1ZTAgPSB2YWx1ZSAtIGl0ZW07XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHZhbGlkSGVpZ2h0ICogKHZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICAgIHZhciBoZWlnaHQwID0gdmFsaWRIZWlnaHQgKiAodmFsdWUwIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW07XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBoZWlnaHQgPSB2YWxpZEhlaWdodCAqICh2YWx1ZSAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgICAgICB2YXIgaGVpZ2h0MCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGhlaWdodGMgPSBoZWlnaHQwO1xyXG4gICAgICBoZWlnaHQgKj0gcHJvY2VzcztcclxuICAgICAgaGVpZ2h0YyAqPSBwcm9jZXNzO1xyXG4gICAgICBwb2ludC5oZWlnaHQgPSBoZWlnaHQgLSBoZWlnaHRjO1xyXG4gICAgICBwb2ludC54ID0gb3B0cy5hcmVhWzNdICsgaGVpZ2h0O1xyXG4gICAgICBwb2ludC54MCA9IG9wdHMuYXJlYVszXSArIGhlaWdodGM7XHJcbiAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gcG9pbnRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRZQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBzdGFjaywgeURhdGEpIHtcclxuICB2YXIgaW5kZXggPSBhcmd1bWVudHMubGVuZ3RoID4gNSAmJiBhcmd1bWVudHNbNV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s1XSA6IC0xO1xyXG4gIHZhciBkYXRhO1xyXG4gIGlmIChzdGFjayA9PSAnc3RhY2snKSB7XHJcbiAgICBkYXRhID0gZGF0YUNvbWJpbmVTdGFjayhzZXJpZXMsIG9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBkYXRhID0gZGF0YUNvbWJpbmUoc2VyaWVzKTtcclxuICB9XHJcbiAgdmFyIHNvcnRlZCA9IFtdO1xyXG4gIC8vIHJlbW92ZSBudWxsIGZyb20gZGF0YVxyXG4gIGRhdGEgPSBkYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7XHJcbiAgICAvL3JldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkuaW5kZXhPZignQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0gIT09IG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWUgIT09IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBpdGVtICE9PSBudWxsO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGRhdGEubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcclxuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgaWYgKGl0ZW0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpID4gLTEpIHtcclxuICAgICAgICBpZiAob3B0cy50eXBlID09ICdjYW5kbGUnKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcChmdW5jdGlvbihzdWJpdGVtKSB7XHJcbiAgICAgICAgICAgIHNvcnRlZC5wdXNoKHN1Yml0ZW0pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc29ydGVkLnB1c2goaXRlbVsxXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvcnRlZC5wdXNoKGl0ZW0udmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzb3J0ZWQucHVzaChpdGVtKTtcclxuICAgIH1cclxuICB9KVxyXG4gIHZhciBtaW5EYXRhID0geURhdGEubWluIHx8IDA7XHJcbiAgdmFyIG1heERhdGEgPSB5RGF0YS5tYXggfHwgMDtcclxuICBpZiAoc29ydGVkLmxlbmd0aCA+IDApIHtcclxuICAgIG1pbkRhdGEgPSBNYXRoLm1pbi5hcHBseSh0aGlzLCBzb3J0ZWQpO1xyXG4gICAgbWF4RGF0YSA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHNvcnRlZCk7XHJcbiAgfVxyXG4gIGlmIChtaW5EYXRhID09PSBtYXhEYXRhKSB7XHJcbiAgICBpZihtYXhEYXRhID09IDApe1xyXG4gICAgICBtYXhEYXRhID0gMTA7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbWluRGF0YSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHZhciBkYXRhUmFuZ2UgPSBnZXREYXRhUmFuZ2UobWluRGF0YSwgbWF4RGF0YSk7XHJcbiAgdmFyIG1pblJhbmdlID0gKHlEYXRhLm1pbiA9PT0gdW5kZWZpbmVkIHx8IHlEYXRhLm1pbiA9PT0gbnVsbCkgPyBkYXRhUmFuZ2UubWluUmFuZ2UgOiB5RGF0YS5taW47XHJcbiAgdmFyIG1heFJhbmdlID0gKHlEYXRhLm1heCA9PT0gdW5kZWZpbmVkIHx8IHlEYXRhLm1heCA9PT0gbnVsbCkgPyBkYXRhUmFuZ2UubWF4UmFuZ2UgOiB5RGF0YS5tYXg7XHJcbiAgdmFyIGVhY2hSYW5nZSA9IChtYXhSYW5nZSAtIG1pblJhbmdlKSAvIG9wdHMueUF4aXMuc3BsaXROdW1iZXI7XHJcbiAgdmFyIHJhbmdlID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPD0gb3B0cy55QXhpcy5zcGxpdE51bWJlcjsgaSsrKSB7XHJcbiAgICByYW5nZS5wdXNoKG1pblJhbmdlICsgZWFjaFJhbmdlICogaSk7XHJcbiAgfVxyXG4gIHJldHVybiByYW5nZS5yZXZlcnNlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbFlBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIC8v5aCG5Y+g5Zu+6YeN566XWei9tFxyXG4gIHZhciBjb2x1bW5zdHlsZSA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogXCJcIlxyXG4gIH0sIG9wdHMuZXh0cmEuY29sdW1uKTtcclxuICAvL+WmguaenOaYr+WkmlnovbTvvIzph43mlrDorqHnrpdcclxuICB2YXIgWUxlbmd0aCA9IG9wdHMueUF4aXMuZGF0YS5sZW5ndGg7XHJcbiAgdmFyIG5ld1NlcmllcyA9IG5ldyBBcnJheShZTGVuZ3RoKTtcclxuICBpZiAoWUxlbmd0aCA+IDApIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgWUxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIG5ld1Nlcmllc1tpXSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlcmllcy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmIChzZXJpZXNbal0uaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgbmV3U2VyaWVzW2ldLnB1c2goc2VyaWVzW2pdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciByYW5nZXNBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcbiAgICB2YXIgcmFuZ2VzRm9ybWF0QXJyID0gbmV3IEFycmF5KFlMZW5ndGgpO1xyXG4gICAgdmFyIHlBeGlzV2lkdGhBcnIgPSBuZXcgQXJyYXkoWUxlbmd0aCk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBZTGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHlEYXRhID0gb3B0cy55QXhpcy5kYXRhW2ldO1xyXG4gICAgICAvL+WmguaenOaAu+W8gOWFs+S4jeaYvuekuu+8jOW8uuWItuavj+S4qlnovbTkuLrkuI3mmL7npLpcclxuICAgICAgaWYgKG9wdHMueUF4aXMuZGlzYWJsZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIHlEYXRhLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZih5RGF0YS50eXBlID09PSAnY2F0ZWdvcmllcycpe1xyXG4gICAgICAgIGlmKCF5RGF0YS5mb3JtYXR0ZXIpe1xyXG4gICAgICAgICAgeURhdGEuZm9ybWF0dGVyID0gKHZhbCxpbmRleCxvcHRzKSA9PiB7cmV0dXJuIHZhbCArICh5RGF0YS51bml0IHx8ICcnKX07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHlEYXRhLmNhdGVnb3JpZXMgPSB5RGF0YS5jYXRlZ29yaWVzIHx8IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgICByYW5nZXNBcnJbaV0gPSB5RGF0YS5jYXRlZ29yaWVzO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZigheURhdGEuZm9ybWF0dGVyKXtcclxuICAgICAgICAgIHlEYXRhLmZvcm1hdHRlciA9ICh2YWwsaW5kZXgsb3B0cykgPT4ge3JldHVybiB1dGlsLnRvRml4ZWQodmFsLCB5RGF0YS50b2ZpeCB8fCAwKSArICh5RGF0YS51bml0IHx8ICcnKX07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJhbmdlc0FycltpXSA9IGdldFlBeGlzVGV4dExpc3QobmV3U2VyaWVzW2ldLCBvcHRzLCBjb25maWcsIGNvbHVtbnN0eWxlLnR5cGUsIHlEYXRhLCBpKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgeUF4aXNGb250U2l6ZXMgPSB5RGF0YS5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgeUF4aXNXaWR0aEFycltpXSA9IHtcclxuICAgICAgICBwb3NpdGlvbjogeURhdGEucG9zaXRpb24gPyB5RGF0YS5wb3NpdGlvbiA6ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICByYW5nZXNGb3JtYXRBcnJbaV0gPSByYW5nZXNBcnJbaV0ubWFwKGZ1bmN0aW9uKGl0ZW1zLGluZGV4KSB7XHJcbiAgICAgICAgaXRlbXMgPSB5RGF0YS5mb3JtYXR0ZXIoaXRlbXMsaW5kZXgsb3B0cyk7XHJcbiAgICAgICAgeUF4aXNXaWR0aEFycltpXS53aWR0aCA9IE1hdGgubWF4KHlBeGlzV2lkdGhBcnJbaV0ud2lkdGgsIG1lYXN1cmVUZXh0KGl0ZW1zLCB5QXhpc0ZvbnRTaXplcywgY29udGV4dCkgKyA1KTtcclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgY2FsaWJyYXRpb24gPSB5RGF0YS5jYWxpYnJhdGlvbiA/IDQgKiBvcHRzLnBpeCA6IDA7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbaV0ud2lkdGggKz0gY2FsaWJyYXRpb24gKyAzICogb3B0cy5waXg7XHJcbiAgICAgIGlmICh5RGF0YS5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHlBeGlzV2lkdGhBcnJbaV0ud2lkdGggPSAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHZhciByYW5nZXNBcnIgPSBuZXcgQXJyYXkoMSk7XHJcbiAgICB2YXIgcmFuZ2VzRm9ybWF0QXJyID0gbmV3IEFycmF5KDEpO1xyXG4gICAgdmFyIHlBeGlzV2lkdGhBcnIgPSBuZXcgQXJyYXkoMSk7XHJcbiAgICBpZihvcHRzLnR5cGUgPT09ICdiYXInKXtcclxuICAgICAgcmFuZ2VzQXJyWzBdID0gb3B0cy5jYXRlZ29yaWVzO1xyXG4gICAgICBpZighb3B0cy55QXhpcy5mb3JtYXR0ZXIpe1xyXG4gICAgICAgIG9wdHMueUF4aXMuZm9ybWF0dGVyID0gKHZhbCxpbmRleCxvcHRzKSA9PiB7cmV0dXJuIHZhbCArIChvcHRzLnlBeGlzLnVuaXQgfHwgJycpfVxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYoIW9wdHMueUF4aXMuZm9ybWF0dGVyKXtcclxuICAgICAgICBvcHRzLnlBeGlzLmZvcm1hdHRlciA9ICh2YWwsaW5kZXgsb3B0cykgPT4ge3JldHVybiB2YWwudG9GaXhlZChvcHRzLnlBeGlzLnRvZml4ICkgKyAob3B0cy55QXhpcy51bml0IHx8ICcnKX1cclxuICAgICAgfVxyXG4gICAgICByYW5nZXNBcnJbMF0gPSBnZXRZQXhpc1RleHRMaXN0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb2x1bW5zdHlsZS50eXBlLCB7fSk7XHJcbiAgICB9XHJcbiAgICB5QXhpc1dpZHRoQXJyWzBdID0ge1xyXG4gICAgICBwb3NpdGlvbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogMFxyXG4gICAgfTtcclxuICAgIHZhciB5QXhpc0ZvbnRTaXplID0gb3B0cy55QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgIHJhbmdlc0Zvcm1hdEFyclswXSA9IHJhbmdlc0FyclswXS5tYXAoZnVuY3Rpb24oaXRlbSxpbmRleCkge1xyXG4gICAgICBpdGVtID0gb3B0cy55QXhpcy5mb3JtYXR0ZXIoaXRlbSxpbmRleCxvcHRzKTtcclxuICAgICAgeUF4aXNXaWR0aEFyclswXS53aWR0aCA9IE1hdGgubWF4KHlBeGlzV2lkdGhBcnJbMF0ud2lkdGgsIG1lYXN1cmVUZXh0KGl0ZW0sIHlBeGlzRm9udFNpemUsIGNvbnRleHQpICsgNSk7XHJcbiAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgfSk7XHJcbiAgICB5QXhpc1dpZHRoQXJyWzBdLndpZHRoICs9IDMgKiBvcHRzLnBpeDtcclxuICAgIGlmIChvcHRzLnlBeGlzLmRpc2FibGVkID09PSB0cnVlKSB7XHJcbiAgICAgIHlBeGlzV2lkdGhBcnJbMF0gPSB7XHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICB3aWR0aDogMFxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnlBeGlzLmRhdGFbMF0gPSB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IHRydWVcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMueUF4aXMuZGF0YVswXSA9IHtcclxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgICBtYXg6IG9wdHMueUF4aXMubWF4LFxyXG4gICAgICAgIG1pbjogb3B0cy55QXhpcy5taW4sXHJcbiAgICAgICAgZm9ybWF0dGVyOiBvcHRzLnlBeGlzLmZvcm1hdHRlclxyXG4gICAgICB9O1xyXG4gICAgICBpZihvcHRzLnR5cGUgPT09ICdiYXInKXtcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0uY2F0ZWdvcmllcyA9IG9wdHMuY2F0ZWdvcmllcztcclxuICAgICAgICBvcHRzLnlBeGlzLmRhdGFbMF0udHlwZSA9ICdjYXRlZ29yaWVzJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgcmFuZ2VzRm9ybWF0OiByYW5nZXNGb3JtYXRBcnIsXHJcbiAgICByYW5nZXM6IHJhbmdlc0FycixcclxuICAgIHlBeGlzV2lkdGg6IHlBeGlzV2lkdGhBcnJcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxUb29sdGlwWUF4aXNEYXRhKHBvaW50LCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcpIHtcclxuICBsZXQgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXMpO1xyXG4gIGxldCBzcGFjaW5nVmFsaWQgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgbWluQXhpcyA9IG9wdHMuYXJlYVswXTtcclxuICBsZXQgaXRlbXMgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IG1heFZhbCA9IE1hdGgubWF4LmFwcGx5KHRoaXMsIHJhbmdlc1tpXSk7XHJcbiAgICBsZXQgbWluVmFsID0gTWF0aC5taW4uYXBwbHkodGhpcywgcmFuZ2VzW2ldKTtcclxuICAgIGxldCBpdGVtID0gbWF4VmFsIC0gKG1heFZhbCAtIG1pblZhbCkgKiAocG9pbnQgLSBtaW5BeGlzKSAvIHNwYWNpbmdWYWxpZDtcclxuICAgIGl0ZW0gPSBvcHRzLnlBeGlzLmRhdGEgJiYgb3B0cy55QXhpcy5kYXRhW2ldLmZvcm1hdHRlciA/IG9wdHMueUF4aXMuZGF0YVtpXS5mb3JtYXR0ZXIoaXRlbSwgaSwgb3B0cykgOiBpdGVtLnRvRml4ZWQoMCk7XHJcbiAgICBpdGVtcy5wdXNoKFN0cmluZyhpdGVtKSlcclxuICB9XHJcbiAgcmV0dXJuIGl0ZW1zO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYWxNYXJrTGluZURhdGEocG9pbnRzLCBvcHRzKSB7XHJcbiAgbGV0IG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgIHBvaW50c1tpXS55QXhpc0luZGV4ID0gcG9pbnRzW2ldLnlBeGlzSW5kZXggPyBwb2ludHNbaV0ueUF4aXNJbmRleCA6IDA7XHJcbiAgICBsZXQgcmFuZ2UgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1twb2ludHNbaV0ueUF4aXNJbmRleF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZS5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2Uuc2hpZnQoKTtcclxuICAgIGxldCBoZWlnaHQgPSBzcGFjaW5nVmFsaWQgKiAocG9pbnRzW2ldLnZhbHVlIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgcG9pbnRzW2ldLnkgPSBvcHRzLmhlaWdodCAtIE1hdGgucm91bmQoaGVpZ2h0KSAtIG9wdHMuYXJlYVsyXTtcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKSB7XHJcbiAgaWYgKG9wdHMucm90YXRlTG9jayAhPT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5oZWlnaHQsIDApO1xyXG4gICAgY29udGV4dC5yb3RhdGUoOTAgKiBNYXRoLlBJIC8gMTgwKTtcclxuICB9IGVsc2UgaWYgKG9wdHMuX3JvdGF0ZV8gIT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuaGVpZ2h0LCAwKTtcclxuICAgIGNvbnRleHQucm90YXRlKDkwICogTWF0aC5QSSAvIDE4MCk7XHJcbiAgICBvcHRzLl9yb3RhdGVfID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQb2ludFNoYXBlKHBvaW50cywgY29sb3IsIHNoYXBlLCBjb250ZXh0LCBvcHRzKSB7XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZVR5cGUgPT0gJ2hvbGxvdycpIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5iYWNrZ3JvdW5kKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDIgKiBvcHRzLnBpeCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoXCIjZmZmZmZmXCIpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgaWYgKHNoYXBlID09PSAnZGlhbW9uZCcpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgNC41LCBpdGVtLnkpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUpO1xyXG4gICAgICAgIGNvbnRleHQucmVjdChpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSwgNywgNyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICd0cmlhbmdsZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIDQuNSwgaXRlbS55ICsgNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgLSA0LjUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHNoYXBlID09PSAnbm9uZScpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QWN0aXZlUG9pbnQocG9pbnRzLCBjb2xvciwgc2hhcGUsIGNvbnRleHQsIG9wdHMsIG9wdGlvbiwgc2VyaWVzSW5kZXgpIHtcclxuICBpZighb3B0cy50b29sdGlwKXtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZihvcHRzLnRvb2x0aXAuZ3JvdXAubGVuZ3RoPjAgJiYgb3B0cy50b29sdGlwLmdyb3VwLmluY2x1ZGVzKHNlcmllc0luZGV4KSA9PSBmYWxzZSl7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgdmFyIHBvaW50SW5kZXggPSB0eXBlb2Ygb3B0cy50b29sdGlwLmluZGV4ID09PSAnbnVtYmVyJyA/IG9wdHMudG9vbHRpcC5pbmRleCA6IG9wdHMudG9vbHRpcC5pbmRleFtvcHRzLnRvb2x0aXAuZ3JvdXAuaW5kZXhPZihzZXJpZXNJbmRleCldO1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgaWYgKG9wdGlvbi5hY3RpdmVUeXBlID09ICdob2xsb3cnKSB7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKFwiI2ZmZmZmZlwiKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgfVxyXG4gIGlmIChzaGFwZSA9PT0gJ2RpYW1vbmQnKSB7XHJcbiAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBwb2ludEluZGV4ID09IGluZGV4ICkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkgKyA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIDQuNSwgaXRlbS55KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdjaXJjbGUnKSB7XHJcbiAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBwb2ludEluZGV4ID09IGluZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54ICsgMi41ICogb3B0cy5waXgsIGl0ZW0ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIHBvaW50SW5kZXggPT0gaW5kZXgpIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSAzLjUsIGl0ZW0ueSAtIDMuNSk7XHJcbiAgICAgICAgY29udGV4dC5yZWN0KGl0ZW0ueCAtIDMuNSwgaXRlbS55IC0gMy41LCA3LCA3KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgcG9pbnRJbmRleCA9PSBpbmRleCkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54ICsgNC41LCBpdGVtLnkgKyA0LjUpO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55IC0gNC41KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ25vbmUnKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JpbmdUaXRsZShvcHRzLCBjb25maWcsIGNvbnRleHQsIGNlbnRlcikge1xyXG4gIHZhciB0aXRsZWZvbnRTaXplID0gb3B0cy50aXRsZS5mb250U2l6ZSB8fCBjb25maWcudGl0bGVGb250U2l6ZTtcclxuICB2YXIgc3VidGl0bGVmb250U2l6ZSA9IG9wdHMuc3VidGl0bGUuZm9udFNpemUgfHwgY29uZmlnLnN1YnRpdGxlRm9udFNpemU7XHJcbiAgdmFyIHRpdGxlID0gb3B0cy50aXRsZS5uYW1lIHx8ICcnO1xyXG4gIHZhciBzdWJ0aXRsZSA9IG9wdHMuc3VidGl0bGUubmFtZSB8fCAnJztcclxuICB2YXIgdGl0bGVGb250Q29sb3IgPSBvcHRzLnRpdGxlLmNvbG9yIHx8IG9wdHMuZm9udENvbG9yO1xyXG4gIHZhciBzdWJ0aXRsZUZvbnRDb2xvciA9IG9wdHMuc3VidGl0bGUuY29sb3IgfHwgb3B0cy5mb250Q29sb3I7XHJcbiAgdmFyIHRpdGxlSGVpZ2h0ID0gdGl0bGUgPyB0aXRsZWZvbnRTaXplIDogMDtcclxuICB2YXIgc3VidGl0bGVIZWlnaHQgPSBzdWJ0aXRsZSA/IHN1YnRpdGxlZm9udFNpemUgOiAwO1xyXG4gIHZhciBtYXJnaW4gPSA1O1xyXG4gIGlmIChzdWJ0aXRsZSkge1xyXG4gICAgdmFyIHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KHN1YnRpdGxlLCBzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXgsIGNvbnRleHQpO1xyXG4gICAgdmFyIHN0YXJ0WCA9IGNlbnRlci54IC0gdGV4dFdpZHRoIC8gMiArIChvcHRzLnN1YnRpdGxlLm9mZnNldFh8fCAwKSAqIG9wdHMucGl4IDtcclxuICAgIHZhciBzdGFydFkgPSBjZW50ZXIueSArIHN1YnRpdGxlZm9udFNpemUgKiBvcHRzLnBpeCAvIDIgKyAob3B0cy5zdWJ0aXRsZS5vZmZzZXRZIHx8IDApICogb3B0cy5waXg7XHJcbiAgICBpZiAodGl0bGUpIHtcclxuICAgICAgc3RhcnRZICs9ICh0aXRsZUhlaWdodCAqIG9wdHMucGl4ICsgbWFyZ2luKSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShzdWJ0aXRsZWZvbnRTaXplICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoc3VidGl0bGVGb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChzdWJ0aXRsZSwgc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGlmICh0aXRsZSkge1xyXG4gICAgdmFyIF90ZXh0V2lkdGggPSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVmb250U2l6ZSAqIG9wdHMucGl4LCBjb250ZXh0KTtcclxuICAgIHZhciBfc3RhcnRYID0gY2VudGVyLnggLSBfdGV4dFdpZHRoIC8gMiArIChvcHRzLnRpdGxlLm9mZnNldFggfHwgMCk7XHJcbiAgICB2YXIgX3N0YXJ0WSA9IGNlbnRlci55ICsgdGl0bGVmb250U2l6ZSAqIG9wdHMucGl4IC8gMiArIChvcHRzLnRpdGxlLm9mZnNldFkgfHwgMCkgKiBvcHRzLnBpeDtcclxuICAgIGlmIChzdWJ0aXRsZSkge1xyXG4gICAgICBfc3RhcnRZIC09IChzdWJ0aXRsZUhlaWdodCAqIG9wdHMucGl4ICsgbWFyZ2luKSAvIDI7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZSh0aXRsZWZvbnRTaXplICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUodGl0bGVGb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgX3N0YXJ0WCwgX3N0YXJ0WSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQb2ludFRleHQocG9pbnRzLCBzZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cykge1xyXG4gIC8vIOe7mOWItuaVsOaNruaWh+ahiFxyXG4gIHZhciBkYXRhID0gc2VyaWVzLmRhdGE7XHJcbiAgdmFyIHRleHRPZmZzZXQgPSBzZXJpZXMudGV4dE9mZnNldCA/IHNlcmllcy50ZXh0T2Zmc2V0IDogMDtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gc2VyaWVzLnRleHRTaXplID8gc2VyaWVzLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgdmFyIHZhbHVlID0gZGF0YVtpbmRleF1cclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2luZGV4XSA9PT0gJ29iamVjdCcgJiYgZGF0YVtpbmRleF0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoZGF0YVtpbmRleF0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpPi0xKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdWzFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXMuZm9ybWF0dGVyID8gc2VyaWVzLmZvcm1hdHRlcih2YWx1ZSxpbmRleCxzZXJpZXMsb3B0cykgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhmb3JtYXRWYWwpLCBpdGVtLngsIGl0ZW0ueSAtIDQgKyB0ZXh0T2Zmc2V0ICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Q29sdW1lUG9pbnRUZXh0KHBvaW50cywgc2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpIHtcclxuICAvLyDnu5jliLbmlbDmja7mlofmoYhcclxuICB2YXIgZGF0YSA9IHNlcmllcy5kYXRhO1xyXG4gIHZhciB0ZXh0T2Zmc2V0ID0gc2VyaWVzLnRleHRPZmZzZXQgPyBzZXJpZXMudGV4dE9mZnNldCA6IDA7XHJcbiAgdmFyIFBvc2l0aW9uID0gb3B0cy5leHRyYS5jb2x1bW4ubGFiZWxQb3NpdGlvbjtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gc2VyaWVzLnRleHRTaXplID8gc2VyaWVzLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgdmFyIHZhbHVlID0gZGF0YVtpbmRleF1cclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2luZGV4XSA9PT0gJ29iamVjdCcgJiYgZGF0YVtpbmRleF0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoZGF0YVtpbmRleF0uY29uc3RydWN0b3IudG9TdHJpbmcoKS5pbmRleE9mKCdBcnJheScpPi0xKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdWzFdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdLnZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHZhciBmb3JtYXRWYWwgPSBzZXJpZXMuZm9ybWF0dGVyID8gc2VyaWVzLmZvcm1hdHRlcih2YWx1ZSxpbmRleCxzZXJpZXMsb3B0cykgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICB2YXIgc3RhcnRZID0gaXRlbS55IC0gNCAqIG9wdHMucGl4ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4O1xyXG4gICAgICBpZihpdGVtLnkgPiBzZXJpZXMuemVyb1BvaW50cyl7XHJcbiAgICAgICAgc3RhcnRZID0gaXRlbS55ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4ICsgZm9udFNpemU7XHJcbiAgICAgIH1cclxuICAgICAgaWYoUG9zaXRpb24gPT0gJ2luc2lkZVRvcCcpe1xyXG4gICAgICAgIHN0YXJ0WSA9IGl0ZW0ueSArIGZvbnRTaXplICsgdGV4dE9mZnNldCAqIG9wdHMucGl4O1xyXG4gICAgICAgIGlmKGl0ZW0ueSA+IHNlcmllcy56ZXJvUG9pbnRzKXtcclxuICAgICAgICAgIHN0YXJ0WSA9IGl0ZW0ueSAtIHRleHRPZmZzZXQgKiBvcHRzLnBpeCAtIDQgKiBvcHRzLnBpeDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoUG9zaXRpb24gPT0gJ2NlbnRlcicpe1xyXG4gICAgICAgIHN0YXJ0WSA9IGl0ZW0ueSArIHRleHRPZmZzZXQgKiBvcHRzLnBpeCArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSAtIGl0ZW0ueSArIGZvbnRTaXplKS8yO1xyXG4gICAgICAgIGlmKHNlcmllcy56ZXJvUG9pbnRzIDwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pe1xyXG4gICAgICAgICAgc3RhcnRZID0gaXRlbS55ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4ICsgKHNlcmllcy56ZXJvUG9pbnRzIC0gaXRlbS55ICsgZm9udFNpemUpLzI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGl0ZW0ueSA+IHNlcmllcy56ZXJvUG9pbnRzKXtcclxuICAgICAgICAgIHN0YXJ0WSA9IGl0ZW0ueSAtIHRleHRPZmZzZXQgKiBvcHRzLnBpeCAtIChpdGVtLnkgLSBzZXJpZXMuemVyb1BvaW50cyAtIGZvbnRTaXplKS8yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihvcHRzLmV4dHJhLmNvbHVtbi50eXBlID09ICdzdGFjaycpe1xyXG4gICAgICAgICAgc3RhcnRZID0gaXRlbS55ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4ICsgKGl0ZW0ueTAgLSBpdGVtLnkgKyBmb250U2l6ZSkvMjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoUG9zaXRpb24gPT0gJ2JvdHRvbScpe1xyXG4gICAgICAgIHN0YXJ0WSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdICsgdGV4dE9mZnNldCAqIG9wdHMucGl4IC0gNCAqIG9wdHMucGl4O1xyXG4gICAgICAgIGlmKHNlcmllcy56ZXJvUG9pbnRzIDwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pe1xyXG4gICAgICAgICAgc3RhcnRZID0gc2VyaWVzLnplcm9Qb2ludHMgKyB0ZXh0T2Zmc2V0ICogb3B0cy5waXggLSA0ICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGl0ZW0ueSA+IHNlcmllcy56ZXJvUG9pbnRzKXtcclxuICAgICAgICAgIHN0YXJ0WSA9IHNlcmllcy56ZXJvUG9pbnRzIC0gdGV4dE9mZnNldCAqIG9wdHMucGl4ICsgZm9udFNpemUgKyAyICogb3B0cy5waXg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG9wdHMuZXh0cmEuY29sdW1uLnR5cGUgPT0gJ3N0YWNrJyl7XHJcbiAgICAgICAgICBzdGFydFkgPSBpdGVtLnkwICsgdGV4dE9mZnNldCAqIG9wdHMucGl4IC0gNCAqIG9wdHMucGl4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhmb3JtYXRWYWwpLCBpdGVtLngsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdNb3VudFBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzLCB6ZXJvUG9pbnRzKSB7XHJcbiAgLy8g57uY5Yi25pWw5o2u5paH5qGIXHJcbiAgdmFyIGRhdGEgPSBzZXJpZXMuZGF0YTtcclxuICB2YXIgdGV4dE9mZnNldCA9IHNlcmllcy50ZXh0T2Zmc2V0ID8gc2VyaWVzLnRleHRPZmZzZXQgOiAwO1xyXG4gIHZhciBQb3NpdGlvbiA9IG9wdHMuZXh0cmEubW91bnQubGFiZWxQb3NpdGlvbjtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gc2VyaWVzW2luZGV4XS50ZXh0U2l6ZSA/IHNlcmllc1tpbmRleF0udGV4dFNpemUgKiBvcHRzLnBpeCA6IGNvbmZpZy5mb250U2l6ZTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllc1tpbmRleF0udGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgdmFyIHZhbHVlID0gaXRlbS52YWx1ZVxyXG4gICAgICB2YXIgZm9ybWF0VmFsID0gc2VyaWVzW2luZGV4XS5mb3JtYXR0ZXIgPyBzZXJpZXNbaW5kZXhdLmZvcm1hdHRlcih2YWx1ZSxpbmRleCxzZXJpZXMsb3B0cykgOiB2YWx1ZTtcclxuICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICB2YXIgc3RhcnRZID0gaXRlbS55IC0gNCAqIG9wdHMucGl4ICsgdGV4dE9mZnNldCAqIG9wdHMucGl4O1xyXG4gICAgICBpZihpdGVtLnkgPiB6ZXJvUG9pbnRzKXtcclxuICAgICAgICBzdGFydFkgPSBpdGVtLnkgKyB0ZXh0T2Zmc2V0ICogb3B0cy5waXggKyBmb250U2l6ZTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhmb3JtYXRWYWwpLCBpdGVtLngsIHN0YXJ0WSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBzZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cykge1xyXG4gIC8vIOe7mOWItuaVsOaNruaWh+ahiFxyXG4gIHZhciBkYXRhID0gc2VyaWVzLmRhdGE7XHJcbiAgdmFyIHRleHRPZmZzZXQgPSBzZXJpZXMudGV4dE9mZnNldCA/IHNlcmllcy50ZXh0T2Zmc2V0IDogMDtcclxuICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgdmFyIGZvbnRTaXplID0gc2VyaWVzLnRleHRTaXplID8gc2VyaWVzLnRleHRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShzZXJpZXMudGV4dENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgdmFyIHZhbHVlID0gZGF0YVtpbmRleF1cclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2luZGV4XSA9PT0gJ29iamVjdCcgJiYgZGF0YVtpbmRleF0gIT09IG51bGwpIHtcclxuICAgICAgICB2YWx1ZSA9IGRhdGFbaW5kZXhdLnZhbHVlIDtcclxuICAgICAgfVxyXG4gICAgICB2YXIgZm9ybWF0VmFsID0gc2VyaWVzLmZvcm1hdHRlciA/IHNlcmllcy5mb3JtYXR0ZXIodmFsdWUsaW5kZXgsc2VyaWVzLG9wdHMpIDogdmFsdWU7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGZvcm1hdFZhbCksIGl0ZW0ueCArIDQgKiBvcHRzLnBpeCAsIGl0ZW0ueSArIGZvbnRTaXplIC8gMiAtIDMgKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlTGFiZWwoZ2F1Z2VPcHRpb24sIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDIgKyBnYXVnZU9wdGlvbi5sYWJlbE9mZnNldCAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgbGV0IHRvdGFsQW5nbGU7XHJcbiAgaWYgKGdhdWdlT3B0aW9uLmVuZEFuZ2xlIDwgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgdG90YWxBbmdsZSA9IDIgKyBnYXVnZU9wdGlvbi5lbmRBbmdsZSAtIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGU7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGU7XHJcbiAgfVxyXG4gIGxldCBzcGxpdEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICBsZXQgdG90YWxOdW1iZXIgPSBnYXVnZU9wdGlvbi5lbmROdW1iZXIgLSBnYXVnZU9wdGlvbi5zdGFydE51bWJlcjtcclxuICBsZXQgc3BsaXROdW1iZXIgPSB0b3RhbE51bWJlciAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICBsZXQgbm93QW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gIGxldCBub3dOdW1iZXIgPSBnYXVnZU9wdGlvbi5zdGFydE51bWJlcjtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciArIDE7IGkrKykge1xyXG4gICAgdmFyIHBvcyA9IHtcclxuICAgICAgeDogcmFkaXVzICogTWF0aC5jb3Mobm93QW5nbGUgKiBNYXRoLlBJKSxcclxuICAgICAgeTogcmFkaXVzICogTWF0aC5zaW4obm93QW5nbGUgKiBNYXRoLlBJKVxyXG4gICAgfTtcclxuICAgIHZhciBsYWJlbFRleHQgPSBnYXVnZU9wdGlvbi5mb3JtYXR0ZXIgPyBnYXVnZU9wdGlvbi5mb3JtYXR0ZXIobm93TnVtYmVyLGksb3B0cykgOiBub3dOdW1iZXI7XHJcbiAgICBwb3MueCArPSBjZW50ZXJQb3NpdGlvbi54IC0gbWVhc3VyZVRleHQobGFiZWxUZXh0LCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpIC8gMjtcclxuICAgIHBvcy55ICs9IGNlbnRlclBvc2l0aW9uLnk7XHJcbiAgICB2YXIgc3RhcnRYID0gcG9zLng7XHJcbiAgICB2YXIgc3RhcnRZID0gcG9zLnk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZ2F1Z2VPcHRpb24ubGFiZWxDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGxhYmVsVGV4dCwgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUgLyAyKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgbm93QW5nbGUgKz0gc3BsaXRBbmdsZTtcclxuICAgIGlmIChub3dBbmdsZSA+PSAyKSB7XHJcbiAgICAgIG5vd0FuZ2xlID0gbm93QW5nbGUgJSAyO1xyXG4gICAgfVxyXG4gICAgbm93TnVtYmVyICs9IHNwbGl0TnVtYmVyO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JhZGFyTGFiZWwoYW5nbGVMaXN0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcmFkYXJPcHRpb24gPSBvcHRzLmV4dHJhLnJhZGFyIHx8IHt9O1xyXG4gIGFuZ2xlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGFuZ2xlLCBpbmRleCkge1xyXG4gICAgaWYocmFkYXJPcHRpb24ubGFiZWxQb2ludFNob3cgPT09IHRydWUgJiYgb3B0cy5jYXRlZ29yaWVzW2luZGV4XSAhPT0gJycpe1xyXG4gICAgICB2YXIgcG9zUG9pbnQgPSB7XHJcbiAgICAgICAgeDogcmFkaXVzICogTWF0aC5jb3MoYW5nbGUpLFxyXG4gICAgICAgIHk6IHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKVxyXG4gICAgICB9O1xyXG4gICAgICB2YXIgcG9zUG9pbnRBeGlzID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocG9zUG9pbnQueCwgcG9zUG9pbnQueSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShyYWRhck9wdGlvbi5sYWJlbFBvaW50Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LmFyYyhwb3NQb2ludEF4aXMueCwgcG9zUG9pbnRBeGlzLnksIHJhZGFyT3B0aW9uLmxhYmVsUG9pbnRSYWRpdXMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICB9XHJcbiAgICBpZihyYWRhck9wdGlvbi5sYWJlbFNob3cgPT09IHRydWUpe1xyXG4gICAgICB2YXIgcG9zID0ge1xyXG4gICAgICAgIHg6IChyYWRpdXMgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4gKiBvcHRzLnBpeCkgKiBNYXRoLmNvcyhhbmdsZSksXHJcbiAgICAgICAgeTogKHJhZGl1cyArIGNvbmZpZy5yYWRhckxhYmVsVGV4dE1hcmdpbiAqIG9wdHMucGl4KSAqIE1hdGguc2luKGFuZ2xlKVxyXG4gICAgICB9O1xyXG4gICAgICB2YXIgcG9zUmVsYXRpdmVDYW52YXMgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihwb3MueCwgcG9zLnksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgdmFyIHN0YXJ0WCA9IHBvc1JlbGF0aXZlQ2FudmFzLng7XHJcbiAgICAgIHZhciBzdGFydFkgPSBwb3NSZWxhdGl2ZUNhbnZhcy55O1xyXG4gICAgICBpZiAodXRpbC5hcHByb3hpbWF0ZWx5RXF1YWwocG9zLngsIDApKSB7XHJcbiAgICAgICAgc3RhcnRYIC09IG1lYXN1cmVUZXh0KG9wdHMuY2F0ZWdvcmllc1tpbmRleF0gfHwgJycsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCkgLyAyO1xyXG4gICAgICB9IGVsc2UgaWYgKHBvcy54IDwgMCkge1xyXG4gICAgICAgIHN0YXJ0WCAtPSBtZWFzdXJlVGV4dChvcHRzLmNhdGVnb3JpZXNbaW5kZXhdIHx8ICcnLCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUocmFkYXJPcHRpb24ubGFiZWxDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQob3B0cy5jYXRlZ29yaWVzW2luZGV4XSB8fCAnJywgc3RhcnRYLCBzdGFydFkgKyBjb25maWcuZm9udFNpemUgLyAyKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlcikge1xyXG4gIHZhciBsaW5lUmFkaXVzID0gY29uZmlnLnBpZUNoYXJ0TGluZVBhZGRpbmc7XHJcbiAgdmFyIHRleHRPYmplY3RDb2xsZWN0aW9uID0gW107XHJcbiAgdmFyIGxhc3RUZXh0T2JqZWN0ID0gbnVsbDtcclxuICB2YXIgc2VyaWVzQ29udmVydCA9IHNlcmllcy5tYXAoZnVuY3Rpb24oaXRlbSxpbmRleCkge1xyXG4gICAgdmFyIHRleHQgPSBpdGVtLmZvcm1hdHRlciA/IGl0ZW0uZm9ybWF0dGVyKGl0ZW0saW5kZXgsc2VyaWVzLG9wdHMpIDogdXRpbC50b0ZpeGVkKGl0ZW0uX3Byb3BvcnRpb25fLnRvRml4ZWQoNCkgKiAxMDApICsgJyUnO1xyXG4gICAgdGV4dCA9IGl0ZW0ubGFiZWxUZXh0ID8gaXRlbS5sYWJlbFRleHQgOiB0ZXh0O1xyXG4gICAgdmFyIGFyYyA9IDIgKiBNYXRoLlBJIC0gKGl0ZW0uX3N0YXJ0XyArIDIgKiBNYXRoLlBJICogaXRlbS5fcHJvcG9ydGlvbl8gLyAyKTtcclxuICAgIGlmIChpdGVtLl9yb3NlX3Byb3BvcnRpb25fKSB7XHJcbiAgICAgIGFyYyA9IDIgKiBNYXRoLlBJIC0gKGl0ZW0uX3N0YXJ0XyArIDIgKiBNYXRoLlBJICogaXRlbS5fcm9zZV9wcm9wb3J0aW9uXyAvIDIpO1xyXG4gICAgfVxyXG4gICAgdmFyIGNvbG9yID0gaXRlbS5jb2xvcjtcclxuICAgIHZhciByYWRpdXMgPSBpdGVtLl9yYWRpdXNfO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYXJjOiBhcmMsXHJcbiAgICAgIHRleHQ6IHRleHQsXHJcbiAgICAgIGNvbG9yOiBjb2xvcixcclxuICAgICAgcmFkaXVzOiByYWRpdXMsXHJcbiAgICAgIHRleHRDb2xvcjogaXRlbS50ZXh0Q29sb3IsXHJcbiAgICAgIHRleHRTaXplOiBpdGVtLnRleHRTaXplLFxyXG4gICAgICBsYWJlbFNob3c6IGl0ZW0ubGFiZWxTaG93XHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzQ29udmVydC5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNDb252ZXJ0W2ldO1xyXG4gICAgLy8gbGluZSBlbmRcclxuICAgIGxldCBvcmdpblgxID0gTWF0aC5jb3MoaXRlbS5hcmMpICogKGl0ZW0ucmFkaXVzICsgbGluZVJhZGl1cyk7XHJcbiAgICBsZXQgb3JnaW5ZMSA9IE1hdGguc2luKGl0ZW0uYXJjKSAqIChpdGVtLnJhZGl1cyArIGxpbmVSYWRpdXMpO1xyXG4gICAgLy8gbGluZSBzdGFydFxyXG4gICAgbGV0IG9yZ2luWDIgPSBNYXRoLmNvcyhpdGVtLmFyYykgKiBpdGVtLnJhZGl1cztcclxuICAgIGxldCBvcmdpblkyID0gTWF0aC5zaW4oaXRlbS5hcmMpICogaXRlbS5yYWRpdXM7XHJcbiAgICAvLyB0ZXh0IHN0YXJ0XHJcbiAgICBsZXQgb3JnaW5YMyA9IG9yZ2luWDEgPj0gMCA/IG9yZ2luWDEgKyBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZyA6IG9yZ2luWDEgLSBjb25maWcucGllQ2hhcnRUZXh0UGFkZGluZztcclxuICAgIGxldCBvcmdpblkzID0gb3JnaW5ZMTtcclxuICAgIGxldCB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChpdGVtLnRleHQsIGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgbGV0IHN0YXJ0WSA9IG9yZ2luWTM7XHJcbiAgICBpZiAobGFzdFRleHRPYmplY3QgJiYgdXRpbC5pc1NhbWVYQ29vcmRpbmF0ZUFyZWEobGFzdFRleHRPYmplY3Quc3RhcnQsIHtcclxuICAgICAgICB4OiBvcmdpblgzXHJcbiAgICAgIH0pKSB7XHJcbiAgICAgIGlmIChvcmdpblgzID4gMCkge1xyXG4gICAgICAgIHN0YXJ0WSA9IE1hdGgubWluKG9yZ2luWTMsIGxhc3RUZXh0T2JqZWN0LnN0YXJ0LnkpO1xyXG4gICAgICB9IGVsc2UgaWYgKG9yZ2luWDEgPCAwKSB7XHJcbiAgICAgICAgc3RhcnRZID0gTWF0aC5tYXgob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKG9yZ2luWTMgPiAwKSB7XHJcbiAgICAgICAgICBzdGFydFkgPSBNYXRoLm1heChvcmdpblkzLCBsYXN0VGV4dE9iamVjdC5zdGFydC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc3RhcnRZID0gTWF0aC5taW4ob3JnaW5ZMywgbGFzdFRleHRPYmplY3Quc3RhcnQueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAob3JnaW5YMyA8IDApIHtcclxuICAgICAgb3JnaW5YMyAtPSB0ZXh0V2lkdGg7XHJcbiAgICB9XHJcbiAgICBsZXQgdGV4dE9iamVjdCA9IHtcclxuICAgICAgbGluZVN0YXJ0OiB7XHJcbiAgICAgICAgeDogb3JnaW5YMixcclxuICAgICAgICB5OiBvcmdpblkyXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpbmVFbmQ6IHtcclxuICAgICAgICB4OiBvcmdpblgxLFxyXG4gICAgICAgIHk6IG9yZ2luWTFcclxuICAgICAgfSxcclxuICAgICAgc3RhcnQ6IHtcclxuICAgICAgICB4OiBvcmdpblgzLFxyXG4gICAgICAgIHk6IHN0YXJ0WVxyXG4gICAgICB9LFxyXG4gICAgICB3aWR0aDogdGV4dFdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGNvbmZpZy5mb250U2l6ZSxcclxuICAgICAgdGV4dDogaXRlbS50ZXh0LFxyXG4gICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgdGV4dENvbG9yOiBpdGVtLnRleHRDb2xvcixcclxuICAgICAgdGV4dFNpemU6IGl0ZW0udGV4dFNpemVcclxuICAgIH07XHJcbiAgICBsYXN0VGV4dE9iamVjdCA9IGF2b2lkQ29sbGlzaW9uKHRleHRPYmplY3QsIGxhc3RUZXh0T2JqZWN0KTtcclxuICAgIHRleHRPYmplY3RDb2xsZWN0aW9uLnB1c2gobGFzdFRleHRPYmplY3QpO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHRPYmplY3RDb2xsZWN0aW9uLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZihzZXJpZXNDb252ZXJ0W2ldLmxhYmVsU2hvdyA9PT0gZmFsc2Upe1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuICAgIGxldCBpdGVtID0gdGV4dE9iamVjdENvbGxlY3Rpb25baV07XHJcbiAgICBsZXQgbGluZVN0YXJ0UG9pc3Rpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihpdGVtLmxpbmVTdGFydC54LCBpdGVtLmxpbmVTdGFydC55LCBjZW50ZXIpO1xyXG4gICAgbGV0IGxpbmVFbmRQb2lzdGlvbiA9IGNvbnZlcnRDb29yZGluYXRlT3JpZ2luKGl0ZW0ubGluZUVuZC54LCBpdGVtLmxpbmVFbmQueSwgY2VudGVyKTtcclxuICAgIGxldCB0ZXh0UG9zaXRpb24gPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihpdGVtLnN0YXJ0LngsIGl0ZW0uc3RhcnQueSwgY2VudGVyKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGl0ZW0udGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKGxpbmVTdGFydFBvaXN0aW9uLngsIGxpbmVTdGFydFBvaXN0aW9uLnkpO1xyXG4gICAgbGV0IGN1cnZlU3RhcnRYID0gaXRlbS5zdGFydC54IDwgMCA/IHRleHRQb3NpdGlvbi54ICsgaXRlbS53aWR0aCA6IHRleHRQb3NpdGlvbi54O1xyXG4gICAgbGV0IHRleHRTdGFydFggPSBpdGVtLnN0YXJ0LnggPCAwID8gdGV4dFBvc2l0aW9uLnggLSA1IDogdGV4dFBvc2l0aW9uLnggKyA1O1xyXG4gICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKGxpbmVFbmRQb2lzdGlvbi54LCBsaW5lRW5kUG9pc3Rpb24ueSwgY3VydmVTdGFydFgsIHRleHRQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQubW92ZVRvKGxpbmVTdGFydFBvaXN0aW9uLngsIGxpbmVTdGFydFBvaXN0aW9uLnkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8odGV4dFBvc2l0aW9uLnggKyBpdGVtLndpZHRoLCB0ZXh0UG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjdXJ2ZVN0YXJ0WCwgdGV4dFBvc2l0aW9uLnksIDIgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgdGV4dFN0YXJ0WCwgdGV4dFBvc2l0aW9uLnkgKyAzKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdUb29sVGlwU3BsaXRMaW5lKG9mZnNldFgsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gb3B0cy5leHRyYS50b29sdGlwIHx8IHt9O1xyXG4gIHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPSB0b29sVGlwT3B0aW9uLmdyaWRUeXBlID09IHVuZGVmaW5lZCA/ICdzb2xpZCcgOiB0b29sVGlwT3B0aW9uLmdyaWRUeXBlO1xyXG4gIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aCA9IHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aCA9PSB1bmRlZmluZWQgPyA0IDogdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoO1xyXG4gIHZhciBzdGFydFkgPSBvcHRzLmFyZWFbMF07XHJcbiAgdmFyIGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBpZiAodG9vbFRpcE9wdGlvbi5ncmlkVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW3Rvb2xUaXBPcHRpb24uZGFzaExlbmd0aCwgdG9vbFRpcE9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5ncmlkQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5tb3ZlVG8ob2Zmc2V0WCwgc3RhcnRZKTtcclxuICBjb250ZXh0LmxpbmVUbyhvZmZzZXRYLCBlbmRZKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLnhBeGlzTGFiZWwpIHtcclxuICAgIGxldCBsYWJlbFRleHQgPSBvcHRzLmNhdGVnb3JpZXNbb3B0cy50b29sdGlwLmluZGV4XTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGxldCB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChsYWJlbFRleHQsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICBsZXQgdGV4dFggPSBvZmZzZXRYIC0gMC41ICogdGV4dFdpZHRoO1xyXG4gICAgbGV0IHRleHRZID0gZW5kWSArIDIgKiBvcHRzLnBpeDtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQsIHRvb2xUaXBPcHRpb24ubGFiZWxCZ09wYWNpdHkgfHwgY29uZmlnLnRvb2xUaXBPcGFjaXR5KSk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxCZ0NvbG9yIHx8IGNvbmZpZy50b29sVGlwQmFja2dyb3VuZCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5yZWN0KHRleHRYIC0gdG9vbFRpcE9wdGlvbi5ib3hQYWRkaW5nICogb3B0cy5waXgsIHRleHRZLCB0ZXh0V2lkdGggKyAyICogdG9vbFRpcE9wdGlvbi5ib3hQYWRkaW5nICogb3B0cy5waXgsIGNvbmZpZy5mb250U2l6ZSArIDIgKiB0b29sVGlwT3B0aW9uLmJveFBhZGRpbmcgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHRvb2xUaXBPcHRpb24ubGFiZWxGb250Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcobGFiZWxUZXh0KSwgdGV4dFgsIHRleHRZICsgdG9vbFRpcE9wdGlvbi5ib3hQYWRkaW5nICogb3B0cy5waXggKyBjb25maWcuZm9udFNpemUpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IG1hcmtMaW5lT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNCxcclxuICAgIGRhdGE6IFtdXHJcbiAgfSwgb3B0cy5leHRyYS5tYXJrTGluZSk7XHJcbiAgbGV0IHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICBsZXQgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgbGV0IHBvaW50cyA9IGNhbE1hcmtMaW5lRGF0YShtYXJrTGluZU9wdGlvbi5kYXRhLCBvcHRzKTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBhc3NpZ24oe30sIHtcclxuICAgICAgbGluZUNvbG9yOiAnI0RFNEE0MicsXHJcbiAgICAgIHNob3dMYWJlbDogZmFsc2UsXHJcbiAgICAgIGxhYmVsRm9udFNpemU6IDEzLFxyXG4gICAgICBsYWJlbFBhZGRpbmc6IDYsXHJcbiAgICAgIGxhYmVsRm9udENvbG9yOiAnIzY2NjY2NicsXHJcbiAgICAgIGxhYmVsQmdDb2xvcjogJyNERkU4RkYnLFxyXG4gICAgICBsYWJlbEJnT3BhY2l0eTogMC44LFxyXG4gICAgICBsYWJlbEFsaWduOiAnbGVmdCcsXHJcbiAgICAgIGxhYmVsT2Zmc2V0WDogMCxcclxuICAgICAgbGFiZWxPZmZzZXRZOiAwLFxyXG4gICAgfSwgcG9pbnRzW2ldKTtcclxuICAgIGlmIChtYXJrTGluZU9wdGlvbi50eXBlID09ICdkYXNoJykge1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFttYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoLCBtYXJrTGluZU9wdGlvbi5kYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGl0ZW0ubGluZUNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbS55KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChpdGVtLnNob3dMYWJlbCkge1xyXG4gICAgICBsZXQgZm9udFNpemUgPSBpdGVtLmxhYmVsRm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgbGV0IGxhYmVsVGV4dCA9IGl0ZW0ubGFiZWxUZXh0ID8gaXRlbS5sYWJlbFRleHQgOiBpdGVtLnZhbHVlO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgbGV0IHRleHRXaWR0aCA9IG1lYXN1cmVUZXh0KGxhYmVsVGV4dCwgZm9udFNpemUsIGNvbnRleHQpO1xyXG4gICAgICBsZXQgYmdXaWR0aCA9IHRleHRXaWR0aCArIGl0ZW0ubGFiZWxQYWRkaW5nICogb3B0cy5waXggKiAyO1xyXG4gICAgICBsZXQgYmdTdGFydFggPSBpdGVtLmxhYmVsQWxpZ24gPT0gJ2xlZnQnID8gb3B0cy5hcmVhWzNdIC0gYmdXaWR0aCA6IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICAgIGJnU3RhcnRYICs9IGl0ZW0ubGFiZWxPZmZzZXRYO1xyXG4gICAgICBsZXQgYmdTdGFydFkgPSBpdGVtLnkgLSAwLjUgKiBmb250U2l6ZSAtIGl0ZW0ubGFiZWxQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgICAgIGJnU3RhcnRZICs9IGl0ZW0ubGFiZWxPZmZzZXRZO1xyXG4gICAgICBsZXQgdGV4dFggPSBiZ1N0YXJ0WCArIGl0ZW0ubGFiZWxQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgICAgIGxldCB0ZXh0WSA9IGl0ZW0ueTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoaXRlbS5sYWJlbEJnQ29sb3IsIGl0ZW0ubGFiZWxCZ09wYWNpdHkpKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmxhYmVsQmdDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQucmVjdChiZ1N0YXJ0WCwgYmdTdGFydFksIGJnV2lkdGgsIGZvbnRTaXplICsgMiAqIGl0ZW0ubGFiZWxQYWRkaW5nICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0ubGFiZWxGb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhsYWJlbFRleHQpLCB0ZXh0WCwgYmdTdGFydFkgKyBmb250U2l6ZSArIGl0ZW0ubGFiZWxQYWRkaW5nICogb3B0cy5waXgvMik7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKSB7XHJcbiAgdmFyIHRvb2xUaXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGdyaWRUeXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNFxyXG4gIH0sIG9wdHMuZXh0cmEudG9vbHRpcCk7XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uZ3JpZFR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFt0b29sVGlwT3B0aW9uLmRhc2hMZW5ndGgsIHRvb2xUaXBPcHRpb24uZGFzaExlbmd0aF0pO1xyXG4gIH1cclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHRvb2xUaXBPcHRpb24uZ3JpZENvbG9yIHx8ICcjY2NjY2NjJyk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy50b29sdGlwLm9mZnNldC55KTtcclxuICBjb250ZXh0LmxpbmVUbyhlbmRYLCBvcHRzLnRvb2x0aXAub2Zmc2V0LnkpO1xyXG4gIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24ueUF4aXNMYWJlbCkge1xyXG4gICAgbGV0IGJveFBhZGRpbmcgPSB0b29sVGlwT3B0aW9uLmJveFBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgIGxldCBsYWJlbFRleHQgPSBjYWxUb29sdGlwWUF4aXNEYXRhKG9wdHMudG9vbHRpcC5vZmZzZXQueSwgb3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgZWFjaFNwYWNpbmcpO1xyXG4gICAgbGV0IHdpZHRoQXJyID0gb3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnlBeGlzV2lkdGg7XHJcbiAgICBsZXQgdFN0YXJ0TGVmdCA9IG9wdHMuYXJlYVszXTtcclxuICAgIGxldCB0U3RhcnRSaWdodCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhYmVsVGV4dC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKHRvb2xUaXBPcHRpb24uZm9udFNpemUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGxldCB0ZXh0V2lkdGggPSBtZWFzdXJlVGV4dChsYWJlbFRleHRbaV0sIHRvb2xUaXBPcHRpb24uZm9udFNpemUgKiBvcHRzLnBpeCwgY29udGV4dCk7XHJcbiAgICAgIGxldCBiZ1N0YXJ0WCwgYmdFbmRYLCBiZ1dpZHRoO1xyXG4gICAgICBpZiAod2lkdGhBcnJbaV0ucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgYmdTdGFydFggPSB0U3RhcnRMZWZ0IC0gKHRleHRXaWR0aCArIGJveFBhZGRpbmcgKiAyKSAtIDIgKiBvcHRzLnBpeDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCwgYmdTdGFydFggKyB0ZXh0V2lkdGggKyBib3hQYWRkaW5nICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYmdTdGFydFggPSB0U3RhcnRSaWdodCArIDIgKiBvcHRzLnBpeDtcclxuICAgICAgICBiZ0VuZFggPSBNYXRoLm1heChiZ1N0YXJ0WCArIHdpZHRoQXJyW2ldLndpZHRoLCBiZ1N0YXJ0WCArIHRleHRXaWR0aCArIGJveFBhZGRpbmcgKiAyKTtcclxuICAgICAgfVxyXG4gICAgICBiZ1dpZHRoID0gYmdFbmRYIC0gYmdTdGFydFg7XHJcbiAgICAgIGxldCB0ZXh0WCA9IGJnU3RhcnRYICsgKGJnV2lkdGggLSB0ZXh0V2lkdGgpIC8gMjtcclxuICAgICAgbGV0IHRleHRZID0gb3B0cy50b29sdGlwLm9mZnNldC55O1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmxhYmVsQmdDb2xvciB8fCBjb25maWcudG9vbFRpcEJhY2tncm91bmQsIHRvb2xUaXBPcHRpb24ubGFiZWxCZ09wYWNpdHkgfHwgY29uZmlnLnRvb2xUaXBPcGFjaXR5KSk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUodG9vbFRpcE9wdGlvbi5sYWJlbEJnQ29sb3IgfHwgY29uZmlnLnRvb2xUaXBCYWNrZ3JvdW5kKTtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5yZWN0KGJnU3RhcnRYLCB0ZXh0WSAtIDAuNSAqIGNvbmZpZy5mb250U2l6ZSAtIGJveFBhZGRpbmcsIGJnV2lkdGgsIGNvbmZpZy5mb250U2l6ZSArIDIgKiBib3hQYWRkaW5nKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUodG9vbFRpcE9wdGlvbi5sYWJlbEZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQobGFiZWxUZXh0W2ldLCB0ZXh0WCwgdGV4dFkgKyAwLjUgKiBjb25maWcuZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBpZiAod2lkdGhBcnJbaV0ucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgdFN0YXJ0TGVmdCAtPSAod2lkdGhBcnJbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdFN0YXJ0UmlnaHQgKz0gd2lkdGhBcnJbaV0ud2lkdGggKyBvcHRzLnlBeGlzLnBhZGRpbmcgKiBvcHRzLnBpeDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1Rvb2xUaXBTcGxpdEFyZWEob2Zmc2V0WCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBhY3RpdmVCZ0NvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBhY3RpdmVCZ09wYWNpdHk6IDAuMDgsXHJcbiAgICBhY3RpdmVXaWR0aDogZWFjaFNwYWNpbmdcclxuICB9LCBvcHRzLmV4dHJhLmNvbHVtbik7XHJcbiAgdG9vbFRpcE9wdGlvbi5hY3RpdmVXaWR0aCA9IHRvb2xUaXBPcHRpb24uYWN0aXZlV2lkdGggPiBlYWNoU3BhY2luZyA/IGVhY2hTcGFjaW5nIDogdG9vbFRpcE9wdGlvbi5hY3RpdmVXaWR0aDtcclxuICB2YXIgc3RhcnRZID0gb3B0cy5hcmVhWzBdO1xyXG4gIHZhciBlbmRZID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl07XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmFjdGl2ZUJnQ29sb3IsIHRvb2xUaXBPcHRpb24uYWN0aXZlQmdPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5yZWN0KG9mZnNldFggLSB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoIC8gMiwgc3RhcnRZLCB0b29sVGlwT3B0aW9uLmFjdGl2ZVdpZHRoLCBlbmRZIC0gc3RhcnRZKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIGNvbnRleHQuZmlsbCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKFwiI0ZGRkZGRlwiKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhclRvb2xUaXBTcGxpdEFyZWEob2Zmc2V0WCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBhY3RpdmVCZ0NvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICBhY3RpdmVCZ09wYWNpdHk6IDAuMDhcclxuICB9LCBvcHRzLmV4dHJhLmJhcik7XHJcbiAgdmFyIHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICB2YXIgZW5kWCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYih0b29sVGlwT3B0aW9uLmFjdGl2ZUJnQ29sb3IsIHRvb2xUaXBPcHRpb24uYWN0aXZlQmdPcGFjaXR5KSk7XHJcbiAgY29udGV4dC5yZWN0KCBzdGFydFggLG9mZnNldFggLSBlYWNoU3BhY2luZyAvIDIgLCAgZW5kWCAtIHN0YXJ0WCxlYWNoU3BhY2luZyk7XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShcIiNGRkZGRkZcIik7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcCh0ZXh0TGlzdCwgb2Zmc2V0LCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93Qm94OiB0cnVlLFxyXG4gICAgc2hvd0Fycm93OiB0cnVlLFxyXG4gICAgc2hvd0NhdGVnb3J5OiBmYWxzZSxcclxuICAgIGJnQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGJnT3BhY2l0eTogMC43LFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjMDAwMDAwJyxcclxuICAgIGJvcmRlcldpZHRoOiAwLFxyXG4gICAgYm9yZGVyUmFkaXVzOiAwLFxyXG4gICAgYm9yZGVyT3BhY2l0eTogMC43LFxyXG4gICAgYm94UGFkZGluZzogMyxcclxuICAgIGZvbnRDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgZm9udFNpemU6IDEzLFxyXG4gICAgbGluZUhlaWdodDogMjAsXHJcbiAgICBsZWdlbmRTaG93OiB0cnVlLFxyXG4gICAgbGVnZW5kU2hhcGU6ICdhdXRvJyxcclxuICAgIHNwbGl0TGluZTogdHJ1ZSxcclxuICB9LCBvcHRzLmV4dHJhLnRvb2x0aXApO1xyXG4gIGlmKHRvb2xUaXBPcHRpb24uc2hvd0NhdGVnb3J5PT10cnVlICYmIG9wdHMuY2F0ZWdvcmllcyl7XHJcbiAgICB0ZXh0TGlzdC51bnNoaWZ0KHt0ZXh0Om9wdHMuY2F0ZWdvcmllc1tvcHRzLnRvb2x0aXAuaW5kZXhdLGNvbG9yOm51bGx9KVxyXG4gIH1cclxuICB2YXIgZm9udFNpemUgPSB0b29sVGlwT3B0aW9uLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgdmFyIGxpbmVIZWlnaHQgPSB0b29sVGlwT3B0aW9uLmxpbmVIZWlnaHQgKiBvcHRzLnBpeDtcclxuICB2YXIgYm94UGFkZGluZyA9IHRvb2xUaXBPcHRpb24uYm94UGFkZGluZyAqIG9wdHMucGl4O1xyXG4gIHZhciBsZWdlbmRXaWR0aCA9IGZvbnRTaXplO1xyXG4gIHZhciBsZWdlbmRNYXJnaW5SaWdodCA9IDUgKiBvcHRzLnBpeDtcclxuICBpZih0b29sVGlwT3B0aW9uLmxlZ2VuZFNob3cgPT0gZmFsc2Upe1xyXG4gICAgbGVnZW5kV2lkdGggPSAwO1xyXG4gICAgbGVnZW5kTWFyZ2luUmlnaHQgPSAwO1xyXG4gIH1cclxuICB2YXIgYXJyb3dXaWR0aCA9IHRvb2xUaXBPcHRpb24uc2hvd0Fycm93ID8gOCAqIG9wdHMucGl4IDogMDtcclxuICB2YXIgaXNPdmVyUmlnaHRCb3JkZXIgPSBmYWxzZTtcclxuICBpZiAob3B0cy50eXBlID09ICdsaW5lJyB8fCBvcHRzLnR5cGUgPT0gJ21vdW50JyB8fCBvcHRzLnR5cGUgPT0gJ2FyZWEnIHx8IG9wdHMudHlwZSA9PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT0gJ21peCcpIHtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNwbGl0TGluZSA9PSB0cnVlKSB7XHJcbiAgICAgIGRyYXdUb29sVGlwU3BsaXRMaW5lKG9wdHMudG9vbHRpcC5vZmZzZXQueCwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcbiAgb2Zmc2V0ID0gYXNzaWduKHtcclxuICAgIHg6IDAsXHJcbiAgICB5OiAwXHJcbiAgfSwgb2Zmc2V0KTtcclxuICBvZmZzZXQueSAtPSA4ICogb3B0cy5waXg7XHJcbiAgdmFyIHRleHRXaWR0aCA9IHRleHRMaXN0Lm1hcChmdW5jdGlvbihpdGVtKSB7XHJcbiAgICByZXR1cm4gbWVhc3VyZVRleHQoaXRlbS50ZXh0LCBmb250U2l6ZSwgY29udGV4dCk7XHJcbiAgfSk7XHJcbiAgdmFyIHRvb2xUaXBXaWR0aCA9IGxlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQgKyA0ICogYm94UGFkZGluZyArIE1hdGgubWF4LmFwcGx5KG51bGwsIHRleHRXaWR0aCk7XHJcbiAgdmFyIHRvb2xUaXBIZWlnaHQgPSAyICogYm94UGFkZGluZyArIHRleHRMaXN0Lmxlbmd0aCAqIGxpbmVIZWlnaHQ7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0JveCA9PSBmYWxzZSkge1xyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG4gIC8vIGlmIGJleW9uZCB0aGUgcmlnaHQgYm9yZGVyXHJcbiAgaWYgKG9mZnNldC54IC0gTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArIHRvb2xUaXBXaWR0aCA+IG9wdHMud2lkdGgpIHtcclxuICAgIGlzT3ZlclJpZ2h0Qm9yZGVyID0gdHJ1ZTtcclxuICB9XHJcbiAgaWYgKHRvb2xUaXBIZWlnaHQgKyBvZmZzZXQueSA+IG9wdHMuaGVpZ2h0KSB7XHJcbiAgICBvZmZzZXQueSA9IG9wdHMuaGVpZ2h0IC0gdG9vbFRpcEhlaWdodDtcclxuICB9XHJcbiAgLy8gZHJhdyBiYWNrZ3JvdW5kIHJlY3RcclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHRvb2xUaXBPcHRpb24uYmdDb2xvciwgdG9vbFRpcE9wdGlvbi5iZ09wYWNpdHkpKTtcclxuICBjb250ZXh0LnNldExpbmVXaWR0aCh0b29sVGlwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2IodG9vbFRpcE9wdGlvbi5ib3JkZXJDb2xvciwgdG9vbFRpcE9wdGlvbi5ib3JkZXJPcGFjaXR5KSk7XHJcbiAgdmFyIHJhZGl1cyA9IHRvb2xUaXBPcHRpb24uYm9yZGVyUmFkaXVzO1xyXG4gIGlmIChpc092ZXJSaWdodEJvcmRlcikge1xyXG4gICAgLy8g5aKe5Yqg5bem5L6n5LuN54S26LaF5Ye655qE5Yik5patXHJcbiAgICBpZih0b29sVGlwV2lkdGggKyBhcnJvd1dpZHRoID4gb3B0cy53aWR0aCl7XHJcbiAgICAgIG9mZnNldC54ID0gb3B0cy53aWR0aCArIE1hdGguYWJzKG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwKSArIGFycm93V2lkdGggKyAodG9vbFRpcFdpZHRoIC0gb3B0cy53aWR0aClcclxuICAgIH1cclxuICAgIGlmKHRvb2xUaXBXaWR0aCA+IG9mZnNldC54KXtcclxuICAgICAgb2Zmc2V0LnggPSBvcHRzLndpZHRoICsgTWF0aC5hYnMob3B0cy5fc2Nyb2xsRGlzdGFuY2VfIHx8IDApICsgYXJyb3dXaWR0aCArICh0b29sVGlwV2lkdGggLSBvcHRzLndpZHRoKVxyXG4gICAgfVxyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCAtIGFycm93V2lkdGggLSByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCAwLCBNYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpICsgcmFkaXVzLCBvZmZzZXQueSArIHRvb2xUaXBIZWlnaHQgLSByYWRpdXMsIHJhZGl1cyxcclxuICAgICAgTWF0aC5QSSAvIDIsIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54IC0gYXJyb3dXaWR0aCAtIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggLSBhcnJvd1dpZHRoIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsIGZhbHNlKTtcclxuICAgIGlmICh0b29sVGlwT3B0aW9uLnNob3dBcnJvdykge1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhvZmZzZXQueCAtIGFycm93V2lkdGgsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54LCBvZmZzZXQueSArIDEwICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAodG9vbFRpcE9wdGlvbi5zaG93QXJyb3cpIHtcclxuICAgICAgY29udGV4dC5tb3ZlVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4IC0gNSAqIG9wdHMucGl4KTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIHJhZGl1cywgb2Zmc2V0LnkgKyByYWRpdXMsIHJhZGl1cywgLU1hdGguUEksIC1NYXRoLlBJIC8gMiwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5hcmMob2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgTWF0aC5yb3VuZCh0b29sVGlwV2lkdGgpIC0gcmFkaXVzLCBvZmZzZXQueSArIHJhZGl1cywgcmFkaXVzLCAtTWF0aC5QSSAvIDIsIDAsXHJcbiAgICAgIGZhbHNlKTtcclxuICAgIGNvbnRleHQuYXJjKG9mZnNldC54ICsgYXJyb3dXaWR0aCArIE1hdGgucm91bmQodG9vbFRpcFdpZHRoKSAtIHJhZGl1cywgb2Zmc2V0LnkgKyB0b29sVGlwSGVpZ2h0IC0gcmFkaXVzLCByYWRpdXMsIDAsXHJcbiAgICAgIE1hdGguUEkgLyAyLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmFyYyhvZmZzZXQueCArIGFycm93V2lkdGggKyByYWRpdXMsIG9mZnNldC55ICsgdG9vbFRpcEhlaWdodCAtIHJhZGl1cywgcmFkaXVzLCBNYXRoLlBJIC8gMiwgTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgaWYgKHRvb2xUaXBPcHRpb24uc2hvd0Fycm93KSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKG9mZnNldC54ICsgYXJyb3dXaWR0aCwgb2Zmc2V0LnkgKyAxMCAqIG9wdHMucGl4ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5saW5lVG8ob2Zmc2V0LngsIG9mZnNldC55ICsgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgY29udGV4dC5maWxsKCk7XHJcbiAgaWYgKHRvb2xUaXBPcHRpb24uYm9yZGVyV2lkdGggPiAwKSB7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH1cclxuICAvLyBkcmF3IGxlZ2VuZFxyXG4gIGlmKHRvb2xUaXBPcHRpb24ubGVnZW5kU2hvdyl7XHJcbiAgICB0ZXh0TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpdGVtLmNvbG9yICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgICB2YXIgc3RhcnRYID0gb2Zmc2V0LnggKyBhcnJvd1dpZHRoICsgMiAqIGJveFBhZGRpbmc7XHJcbiAgICAgICAgdmFyIHN0YXJ0WSA9IG9mZnNldC55ICsgKGxpbmVIZWlnaHQgLSBmb250U2l6ZSkgLyAyICsgbGluZUhlaWdodCAqIGluZGV4ICsgYm94UGFkZGluZyArIDE7XHJcbiAgICAgICAgaWYgKGlzT3ZlclJpZ2h0Qm9yZGVyKSB7XHJcbiAgICAgICAgICBzdGFydFggPSBvZmZzZXQueCAtIHRvb2xUaXBXaWR0aCAtIGFycm93V2lkdGggKyAyICogYm94UGFkZGluZztcclxuICAgICAgICB9XHJcbiAgICAgICAgc3dpdGNoIChpdGVtLmxlZ2VuZFNoYXBlKSB7XHJcbiAgICAgICAgICBjYXNlICdsaW5lJzpcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDIgKiBvcHRzLnBpeCwgbGVnZW5kV2lkdGgsIDQgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAndHJpYW5nbGUnOlxyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGVnZW5kV2lkdGggLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGVnZW5kV2lkdGggKyA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyAxMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxlZ2VuZFdpZHRoICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxlZ2VuZFdpZHRoIC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdkaWFtb25kJzpcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxlZ2VuZFdpZHRoIC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMi41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxlZ2VuZFdpZHRoKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxlZ2VuZFdpZHRoICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgMTIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnY2lyY2xlJzpcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxlZ2VuZFdpZHRoKTtcclxuICAgICAgICAgICAgY29udGV4dC5hcmMoc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxlZ2VuZFdpZHRoLCA1ICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdyZWN0JzpcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnc3F1YXJlJzpcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgMiAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYICsgMiAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBzdGFydFkgKyAwLjUgKiBsZWdlbmRXaWR0aCAtIDUgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICAvLyBkcmF3IHRleHQgbGlzdFxyXG4gIHRleHRMaXN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIHZhciBzdGFydFggPSBvZmZzZXQueCArIGFycm93V2lkdGggKyAyICogYm94UGFkZGluZyArIGxlZ2VuZFdpZHRoICsgbGVnZW5kTWFyZ2luUmlnaHQ7XHJcbiAgICBpZiAoaXNPdmVyUmlnaHRCb3JkZXIpIHtcclxuICAgICAgc3RhcnRYID0gb2Zmc2V0LnggLSB0b29sVGlwV2lkdGggLSBhcnJvd1dpZHRoICsgMiAqIGJveFBhZGRpbmcgKyBsZWdlbmRXaWR0aCArIGxlZ2VuZE1hcmdpblJpZ2h0O1xyXG4gICAgfVxyXG4gICAgdmFyIHN0YXJ0WSA9IG9mZnNldC55ICsgbGluZUhlaWdodCAqIGluZGV4ICsgKGxpbmVIZWlnaHQgLSBmb250U2l6ZSkvMiAtIDEgKyBib3hQYWRkaW5nICsgZm9udFNpemU7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICBjb250ZXh0LnNldFRleHRCYXNlbGluZSgnbm9ybWFsJyk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZSh0b29sVGlwT3B0aW9uLmZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udGV4dCwgc3RhcnRYLCBzdGFydFkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdDb2x1bW5EYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgICBsYWJlbFBvc2l0aW9uOiAnb3V0c2lkZSdcclxuICB9LCBvcHRzLmV4dHJhLmNvbHVtbik7XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gIH1cclxuICBpZiAob3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC50ZXh0TGlzdCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QubGVuZ3RoICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdUb29sVGlwU3BsaXRBcmVhKG9wdHMudG9vbHRpcC5vZmZzZXQueCwgb3B0cywgY29uZmlnLCBjb250ZXh0LCBlYWNoU3BhY2luZyk7XHJcbiAgfVxyXG4gIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihjb2x1bW5PcHRpb24ubGluZWFyVHlwZSwgY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIFxyXG4gICAgLy8g6K6h566XMOi9tOWdkOagh1xyXG4gICAgbGV0IHNwYWNpbmdWYWxpZCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgbGV0IHplcm9IZWlnaHQgPSBzcGFjaW5nVmFsaWQgKiAoMCAtIG1pblJhbmdlKSAvIChtYXhSYW5nZSAtIG1pblJhbmdlKTtcclxuICAgIGxldCB6ZXJvUG9pbnRzID0gb3B0cy5oZWlnaHQgLSBNYXRoLnJvdW5kKHplcm9IZWlnaHQpIC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgZWFjaFNlcmllcy56ZXJvUG9pbnRzID0gemVyb1BvaW50cztcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICBjYXNlICdncm91cCc6XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGdldENvbHVtbkRhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgemVyb1BvaW50cywgcHJvY2Vzcyk7XHJcbiAgICAgICAgdmFyIHRvb2x0aXBQb2ludHMgPSBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgY2FsUG9pbnRzLnB1c2godG9vbHRpcFBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICAvL2ZpeCBpc3N1ZXMvSTI3QjFOIHl5b2luZ2UgJiBKb2VzaHVcclxuICAgICAgICAgIGlmIChpdGVtICE9PSBudWxsICYmIGkgPiBsZWZ0TnVtICYmIGkgPCByaWdodE51bSkge1xyXG4gICAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgICB2YXIgc3Ryb2tlQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3JcclxuICAgICAgICAgICAgaWYgKGNvbHVtbk9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZmlsbENvbG9yLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sIGNvbHVtbk9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKGNvbHVtbk9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSxjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgoY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzLmxlbmd0aCA9PT0gNCkgfHwgY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55ID4gemVyb1BvaW50cyA/IHplcm9Qb2ludHMgOiBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IE1hdGguYWJzKHplcm9Qb2ludHMgLSBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gW3dpZHRoIC8gMiwgd2lkdGggLyAyLCAwLCAwXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYoaXRlbS55ID4gemVyb1BvaW50cyl7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gWzAsIDAsd2lkdGggLyAyLCB3aWR0aCAvIDJdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXM7XHJcbiAgICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjE7XHJcbiAgICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgICByMCA9IHIwIDwgMCA/IDAgOiByMDtcclxuICAgICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgICByMyA9IHIzIDwgMCA/IDAgOiByMztcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjEsIHRvcCArIHIxLCByMSwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMiwgdG9wICsgaGVpZ2h0IC0gcjIsIHIyLCAwLCBNYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIzLCB0b3AgKyBoZWlnaHQgLSByMywgcjMsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHplcm9Qb2ludHMpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKVxyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIC8vY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgIC8vIOe7mOWItuWghuWPoOaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRTdGFja0RhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgc2VyaWVzSW5kZXgsIHNlcmllcywgcHJvY2Vzcyk7XHJcbiAgICAgICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVTdGFja0RhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cywgc2VyaWVzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcjtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGl0ZW0ud2lkdGggLyAyICsgMTtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICB2YXIgaGVpZ2h0MCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55MCAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgaWYgKHNlcmllc0luZGV4ID4gMCkge1xyXG4gICAgICAgICAgICAgIGhlaWdodCAtPSBoZWlnaHQwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIGl0ZW0ueSwgaXRlbS53aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWV0ZXInOlxyXG4gICAgICAgIC8vIOe7mOWItua4qeW6puiuoeaVsOaNruWbvlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4Q29sdW1lTWV0ZXJEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlcik7XHJcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tpXTtcclxuICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgICAgLy/nlLvog4zmma/popzoibJcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICAgIGlmIChzZXJpZXNJbmRleCA9PSAwICYmIGNvbHVtbk9wdGlvbi5tZXRlckJvcmRlciA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmKHNlcmllc0luZGV4ID09IDApe1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY29sdW1uT3B0aW9uLm1ldGVyRmlsbENvbG9yKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICAgICAgaWYgKChjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMubGVuZ3RoID09PSA0KSB8fCBjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55O1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gemVyb1BvaW50cyAtIGl0ZW0ueTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgPSBbd2lkdGggLyAyLCB3aWR0aCAvIDIsIDAsIDBdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1pblJhZGl1cyA9IE1hdGgubWluKHdpZHRoLzIsaGVpZ2h0LzIpO1xyXG4gICAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICAgICAgcjIgPSByMiA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIyO1xyXG4gICAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgICAgICByMSA9IHIxIDwgMCA/IDAgOiByMTtcclxuICAgICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjAsIHRvcCArIHIwLCByMCwgLU1hdGguUEksIC1NYXRoLlBJIC8gMik7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHIzLCB0b3AgKyBoZWlnaHQgLSByMywgcjMsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYICsgaXRlbS53aWR0aCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIHplcm9Qb2ludHMpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoc2VyaWVzSW5kZXggPT0gMCAmJiBjb2x1bW5PcHRpb24ubWV0ZXJCb3JkZXIgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICBzd2l0Y2ggKGNvbHVtbk9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldENvbHVtbkRhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMpO1xyXG4gICAgICAgICAgZHJhd0NvbHVtZVBvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFjayc6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0U3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NvbHVtZVBvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtZXRlcic6XHJcbiAgICAgICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDb2x1bWVQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TW91bnREYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IG1vdW50T3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnbW91bnQnLFxyXG4gICAgd2lkdGhSYXRpbzogMSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYmFyQm9yZGVyQ2lyY2xlOiBmYWxzZSxcclxuICAgIGJhckJvcmRlclJhZGl1czogW10sXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBsaW5lYXJPcGFjaXR5OiAxLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gICAgY29sb3JTdG9wOiAwLFxyXG4gIH0sIG9wdHMuZXh0cmEubW91bnQpO1xyXG4gIG1vdW50T3B0aW9uLndpZHRoUmF0aW8gPSBtb3VudE9wdGlvbi53aWR0aFJhdGlvIDw9IDAgPyAwIDogbW91bnRPcHRpb24ud2lkdGhSYXRpbztcclxuICBtb3VudE9wdGlvbi53aWR0aFJhdGlvID0gbW91bnRPcHRpb24ud2lkdGhSYXRpbyA+PSAyID8gMiA6IG1vdW50T3B0aW9uLndpZHRoUmF0aW87XHJcbiAgbGV0IGNhbFBvaW50cyA9IFtdO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gIH1cclxuICBtb3VudE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihtb3VudE9wdGlvbi5saW5lYXJUeXBlLCBtb3VudE9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbMF0pO1xyXG4gICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgXHJcbiAgICAvLyDorqHnrpcw6L205Z2Q5qCHXHJcbiAgICBsZXQgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgICBsZXQgemVyb0hlaWdodCA9IHNwYWNpbmdWYWxpZCAqICgwIC0gbWluUmFuZ2UpIC8gKG1heFJhbmdlIC0gbWluUmFuZ2UpO1xyXG4gICAgbGV0IHplcm9Qb2ludHMgPSBvcHRzLmhlaWdodCAtIE1hdGgucm91bmQoemVyb0hlaWdodCkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICBcclxuICAgIHZhciBwb2ludHMgPSBnZXRNb3VudERhdGFQb2ludHMoc2VyaWVzLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgbW91bnRPcHRpb24sIHplcm9Qb2ludHMsIHByb2Nlc3MpO1xyXG4gICAgc3dpdGNoIChtb3VudE9wdGlvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5ZyG6KeS6L655qGGXHJcbiAgICAgICAgICAgIGlmICgobW91bnRPcHRpb24uYmFyQm9yZGVyUmFkaXVzICYmIG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IG1vdW50T3B0aW9uLmJhckJvcmRlckNpcmNsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBzdGFydFg7XHJcbiAgICAgICAgICAgICAgY29uc3QgdG9wID0gaXRlbS55ID4gemVyb1BvaW50cyA/IHplcm9Qb2ludHMgOiBpdGVtLnk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IE1hdGguYWJzKHplcm9Qb2ludHMgLSBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5iYXJCb3JkZXJDaXJjbGUpIHtcclxuICAgICAgICAgICAgICAgIG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmKGl0ZW0ueSA+IHplcm9Qb2ludHMpe1xyXG4gICAgICAgICAgICAgICAgbW91bnRPcHRpb24uYmFyQm9yZGVyUmFkaXVzID0gWzAsIDAsd2lkdGggLyAyLCB3aWR0aCAvIDJdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBsZXQgW3IwLCByMSwgcjIsIHIzXSA9IG1vdW50T3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgd2lkdGggLSByMSwgdG9wICsgcjEsIHIxLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyB3aWR0aCAtIHIyLCB0b3AgKyBoZWlnaHQgLSByMiwgcjIsIDAsIE1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIGl0ZW0ud2lkdGgsIHplcm9Qb2ludHMpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgemVyb1BvaW50cyk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBpZihtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCA+IDApe1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0cmlhbmdsZSc6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShzdHJva2VDb2xvcik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgobW91bnRPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb3VudCc6XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLnggLSBlYWNoU3BhY2luZyptb3VudE9wdGlvbi53aWR0aFJhdGlvLzI7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSBvcHRzLmhlaWdodCAtIGl0ZW0ueSAtIG9wdHMuYXJlYVsyXTtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgc2VyaWVzW2ldLmNvbG9yXHJcbiAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlICE9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgICAvL+mAj+aYjua4kOWPmFxyXG4gICAgICAgICAgICAgIGlmIChtb3VudE9wdGlvbi5saW5lYXJUeXBlID09ICdvcGFjaXR5Jykge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihmaWxsQ29sb3IsIG1vdW50T3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChtb3VudE9wdGlvbi5jb2xvclN0b3AsIGhleFRvUmdiKG1vdW50T3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc1tpXS5saW5lYXJJbmRleF0sbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCB6ZXJvUG9pbnRzKTtcclxuICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGl0ZW0ueCAtIGl0ZW0ud2lkdGgvNCwgemVyb1BvaW50cywgaXRlbS54IC0gaXRlbS53aWR0aC80LCBpdGVtLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGl0ZW0ueCArIGl0ZW0ud2lkdGgvNCwgaXRlbS55LCBpdGVtLnggKyBpdGVtLndpZHRoLzQsIHplcm9Qb2ludHMsIHN0YXJ0WCArIGl0ZW0ud2lkdGgsIHplcm9Qb2ludHMpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgICAgaWYobW91bnRPcHRpb24uYm9yZGVyV2lkdGggPiAwKXtcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3NoYXJwJzpcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0WCA9IGl0ZW0ueCAtIGVhY2hTcGFjaW5nKm1vdW50T3B0aW9uLndpZHRoUmF0aW8vMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IG9wdHMuaGVpZ2h0IC0gaXRlbS55IC0gb3B0cy5hcmVhWzJdO1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBzZXJpZXNbaV0uY29sb3JcclxuICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBzdGFydFgsIHplcm9Qb2ludHMpO1xyXG4gICAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgICAgaWYgKG1vdW50T3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgbW91bnRPcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihmaWxsQ29sb3IsIDEpKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihtb3VudE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNbaV0ubGluZWFySW5kZXhdLCBtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKG1vdW50T3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IobW91bnRPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW2ldLmxpbmVhckluZGV4XSxtb3VudE9wdGlvbi5saW5lYXJPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHplcm9Qb2ludHMpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnF1YWRyYXRpY0N1cnZlVG8oaXRlbS54IC0gMCwgemVyb1BvaW50cyAtIGhlaWdodC80LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQucXVhZHJhdGljQ3VydmVUbyhpdGVtLnggKyAwLCB6ZXJvUG9pbnRzIC0gaGVpZ2h0LzQsIHN0YXJ0WCArIGl0ZW0ud2lkdGgsIHplcm9Qb2ludHMpXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBpZihtb3VudE9wdGlvbi5ib3JkZXJXaWR0aCA+IDApe1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKG1vdW50T3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1swXSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgcG9pbnRzID0gZ2V0TW91bnREYXRhUG9pbnRzKHNlcmllcywgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIG1vdW50T3B0aW9uLCB6ZXJvUG9pbnRzLCBwcm9jZXNzKTtcclxuICAgIGRyYXdNb3VudFBvaW50VGV4dChwb2ludHMsIHNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzLCB6ZXJvUG9pbnRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogcG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgeUF4aXNQb2ludHMgPSBbXTtcclxuICBsZXQgZWFjaFNwYWNpbmcgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pL29wdHMuY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLmNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIHlBeGlzUG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgZWFjaFNwYWNpbmcgLyAyICsgZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2dyb3VwJyxcclxuICAgIHdpZHRoOiBlYWNoU3BhY2luZyAvIDIsXHJcbiAgICBtZXRlckJvcmRlcjogNCxcclxuICAgIG1ldGVyRmlsbENvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBiYXJCb3JkZXJDaXJjbGU6IGZhbHNlLFxyXG4gICAgYmFyQm9yZGVyUmFkaXVzOiBbXSxcclxuICAgIHNlcmllc0dhcDogMixcclxuICAgIGxpbmVhclR5cGU6ICdub25lJyxcclxuICAgIGxpbmVhck9wYWNpdHk6IDEsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgICBjb2xvclN0b3A6IDAsXHJcbiAgfSwgb3B0cy5leHRyYS5iYXIpO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgbGVmdE51bSA9IC0yO1xyXG4gIGxldCByaWdodE51bSA9IHlBeGlzUG9pbnRzLmxlbmd0aCArIDI7XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3QmFyVG9vbFRpcFNwbGl0QXJlYShvcHRzLnRvb2x0aXAub2Zmc2V0LnksIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcpO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICBtYXhSYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHN3aXRjaCAoY29sdW1uT3B0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgIHZhciB0b29sdGlwUG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHRvb2x0aXBQb2ludHMpO1xyXG4gICAgICAgIHBvaW50cyA9IGZpeEJhckRhdGEocG9pbnRzLCBlYWNoU3BhY2luZywgc2VyaWVzLmxlbmd0aCwgc2VyaWVzSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgLy9maXggaXNzdWVzL0kyN0IxTiB5eW9pbmdlICYgSm9lc2h1XHJcbiAgICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpID4gbGVmdE51bSAmJiBpIDwgcmlnaHROdW0pIHtcclxuICAgICAgICAgICAgLy92YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBvcHRzLmFyZWFbM107XHJcbiAgICAgICAgICAgIHZhciBzdGFydFkgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IGl0ZW0uaGVpZ2h0O1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHN0YXJ0WCwgaXRlbS55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgLy/pgI/mmI7muJDlj5hcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgPT0gJ29wYWNpdHknKSB7XHJcbiAgICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcChjb2x1bW5PcHRpb24uY29sb3JTdG9wLCBoZXhUb1JnYihjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3JbZWFjaFNlcmllcy5saW5lYXJJbmRleF0sY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWchuinkui+ueahhlxyXG4gICAgICAgICAgICBpZiAoKGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJSYWRpdXMgJiYgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cy5sZW5ndGggPT09IDQpIHx8IGNvbHVtbk9wdGlvbi5iYXJCb3JkZXJDaXJjbGUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnkgLSBpdGVtLndpZHRoIC8gMjtcclxuICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBpdGVtLmhlaWdodDtcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxldCBbcjAsIHIxLCByMiwgcjNdID0gY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cztcclxuICAgICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgICAgcjAgPSByMCA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMTtcclxuICAgICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgICAgcjMgPSByMyA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIzO1xyXG4gICAgICAgICAgICAgIHIwID0gcjAgPCAwID8gMCA6IHIwO1xyXG4gICAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICAgIHIyID0gcjIgPCAwID8gMCA6IHIyO1xyXG4gICAgICAgICAgICAgIHIzID0gcjMgPCAwID8gMCA6IHIzO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMywgdG9wICsgcjMsIHIzLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmFyYyhpdGVtLnggLSByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSAvIDIsIDApO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGl0ZW0ueCAtIHIxLCB0b3AgKyB3aWR0aCAtIHIxLCByMSwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMiwgdG9wICsgd2lkdGggLSByMiwgcjIsIE1hdGguUEkgLyAyLCBNYXRoLlBJKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBzdGFydFkpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgc3RhcnRZICsgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc3RhcnRYLCBzdGFydFkgKyBpdGVtLndpZHRoKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIHN0YXJ0WSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSlcclxuICAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICAvL2NvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3N0YWNrJzpcclxuICAgICAgICAvLyDnu5jliLbloIblj6DmlbDmja7lm75cclxuICAgICAgICB2YXIgcG9pbnRzID0gZ2V0QmFyU3RhY2tEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHNlcmllc0luZGV4LCBzZXJpZXMsIHByb2Nlc3MpO1xyXG4gICAgICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICAgICAgcG9pbnRzID0gZml4QmFyU3RhY2tEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIHNlcmllcy5sZW5ndGgsIHNlcmllc0luZGV4LCBjb25maWcsIG9wdHMsIHNlcmllcyk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIHZhciBmaWxsQ29sb3IgPSBpdGVtLmNvbG9yIHx8IGVhY2hTZXJpZXMuY29sb3I7XHJcbiAgICAgICAgICAgIHZhciBzdGFydFggPSBpdGVtLngwO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0ueSAtIGl0ZW0ud2lkdGgvMik7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc3RhcnRYLCBpdGVtLnkgLSBpdGVtLndpZHRoLzIsIGl0ZW0uaGVpZ2h0ICwgaXRlbS53aWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnJhbmdlcyk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgc3dpdGNoIChjb2x1bW5PcHRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICAgIHZhciBwb2ludHMgPSBnZXRCYXJEYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeUF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgcG9pbnRzID0gZml4QmFyRGF0YShwb2ludHMsIGVhY2hTcGFjaW5nLCBzZXJpZXMubGVuZ3RoLCBzZXJpZXNJbmRleCwgY29uZmlnLCBvcHRzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhY2snOlxyXG4gICAgICAgICAgdmFyIHBvaW50cyA9IGdldEJhclN0YWNrRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHlBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBzZXJpZXNJbmRleCwgc2VyaWVzLCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdCYXJQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgeUF4aXNQb2ludHM6IHlBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Q2FuZGxlRGF0YVBvaW50cyhzZXJpZXMsIHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA1ICYmIGFyZ3VtZW50c1s1XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzVdIDogMTtcclxuICB2YXIgY2FuZGxlT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBjb2xvcjoge30sXHJcbiAgICBhdmVyYWdlOiB7fVxyXG4gIH0sIG9wdHMuZXh0cmEuY2FuZGxlKTtcclxuICBjYW5kbGVPcHRpb24uY29sb3IgPSBhc3NpZ24oe30sIHtcclxuICAgIHVwTGluZTogJyNmMDQ4NjQnLFxyXG4gICAgdXBGaWxsOiAnI2YwNDg2NCcsXHJcbiAgICBkb3duTGluZTogJyMyZmMyNWInLFxyXG4gICAgZG93bkZpbGw6ICcjMmZjMjViJ1xyXG4gIH0sIGNhbmRsZU9wdGlvbi5jb2xvcik7XHJcbiAgY2FuZGxlT3B0aW9uLmF2ZXJhZ2UgPSBhc3NpZ24oe30sIHtcclxuICAgIHNob3c6IGZhbHNlLFxyXG4gICAgbmFtZTogW10sXHJcbiAgICBkYXk6IFtdLFxyXG4gICAgY29sb3I6IGNvbmZpZy5jb2xvclxyXG4gIH0sIGNhbmRsZU9wdGlvbi5hdmVyYWdlKTtcclxuICBvcHRzLmV4dHJhLmNhbmRsZSA9IGNhbmRsZU9wdGlvbjtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnROdW0gPSAtMjtcclxuICBsZXQgcmlnaHROdW0gPSB4QXhpc1BvaW50cy5sZW5ndGggKyAyO1xyXG4gIGxldCBsZWZ0U3BhY2UgPSAwO1xyXG4gIGxldCByaWdodFNwYWNlID0gb3B0cy53aWR0aCArIGVhY2hTcGFjaW5nO1xyXG4gIGlmIChvcHRzLl9zY3JvbGxEaXN0YW5jZV8gJiYgb3B0cy5fc2Nyb2xsRGlzdGFuY2VfICE9PSAwICYmIG9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLl9zY3JvbGxEaXN0YW5jZV8sIDApO1xyXG4gICAgbGVmdE51bSA9IE1hdGguZmxvb3IoLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAvIGVhY2hTcGFjaW5nKSAtIDI7XHJcbiAgICByaWdodE51bSA9IGxlZnROdW0gKyBvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQ7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIC8v55S75Z2H57q/XHJcbiAgaWYgKGNhbmRsZU9wdGlvbi5hdmVyYWdlLnNob3cgfHwgc2VyaWVzTUEpIHsgLy9NZXJnZSBwdWxsIHJlcXVlc3QgITEyIGZyb20g6YKx6LS157+UXHJcbiAgICBzZXJpZXNNQS5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpO1xyXG4gICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMocG9pbnRzWzBdLngsIHBvaW50c1swXS55LCAxLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LFxyXG4gICAgICAgICAgICAgICAgaXRlbS55KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/nlLtL57q/XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgdmFyIHBvaW50cyA9IGdldENhbmRsZURhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICBjYWxQb2ludHMucHVzaChwb2ludHMpO1xyXG4gICAgdmFyIHNwbGl0UG9pbnRMaXN0ID0gc3BsaXRQb2ludHMocG9pbnRzLGVhY2hTZXJpZXMpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBvaW50TGlzdFswXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBzcGxpdFBvaW50TGlzdFswXVtpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIC8v5aaC5p6c5LiK5raoXHJcbiAgICAgICAgaWYgKGRhdGFbaV1bMV0gLSBkYXRhW2ldWzBdID4gMCkge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IudXBMaW5lKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGNhbmRsZU9wdGlvbi5jb2xvci51cEZpbGwpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCAtIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlt6bkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMl0ueCwgaXRlbVsyXS55KTsgLy/lupXngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCwgaXRlbVswXS55KTsgLy/lvIDnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMF0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVswXS55KTsgLy/lvIDnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCArIGVhY2hTcGFjaW5nIC8gNCwgaXRlbVsxXS55KTsgLy/mlLbnm5jlj7PkvqfngrlcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW1bMV0ueCwgaXRlbVsxXS55KTsgLy/mlLbnm5jkuK3pl7TngrlcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW1bM10ueCwgaXRlbVszXS55KTsgLy/pobbngrlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShjYW5kbGVPcHRpb24uY29sb3IuZG93bkxpbmUpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoY2FuZGxlT3B0aW9uLmNvbG9yLmRvd25GaWxsKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggLSBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5bem5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzJdLngsIGl0ZW1bMl0ueSk7IC8v5bqV54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLngsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzFdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMV0ueSk7IC8v5pS255uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLnggKyBlYWNoU3BhY2luZyAvIDQsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Y+z5L6n54K5XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtWzBdLngsIGl0ZW1bMF0ueSk7IC8v5byA55uY5Lit6Ze054K5XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtWzNdLngsIGl0ZW1bM10ueSk7IC8v6aG254K5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdBcmVhRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBhcmVhT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOiAnc3RyYWlnaHQnLFxyXG4gICAgb3BhY2l0eTogMC4yLFxyXG4gICAgYWRkTGluZTogZmFsc2UsXHJcbiAgICB3aWR0aDogMixcclxuICAgIGdyYWRpZW50OiBmYWxzZSxcclxuICAgIGFjdGl2ZVR5cGU6ICdub25lJ1xyXG4gIH0sIG9wdHMuZXh0cmEuYXJlYSk7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGVuZFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICBsZXQgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICBsZXQgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIGxldCBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIGxldCBzcGxpdFBvaW50TGlzdCA9IHNwbGl0UG9pbnRzKHBvaW50cyxlYWNoU2VyaWVzKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHBvaW50cyA9IHNwbGl0UG9pbnRMaXN0W2ldO1xyXG4gICAgICAvLyDnu5jliLbljLrln5/mlbBcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgaWYgKGFyZWFPcHRpb24uZ3JhZGllbnQpIHtcclxuICAgICAgICBsZXQgZ3JhZGllbnQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIG9wdHMuYXJlYVswXSwgMCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIGFyZWFPcHRpb24ub3BhY2l0eSkpO1xyXG4gICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGdyYWRpZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmVhT3B0aW9uLndpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBsZXQgZmlyc3RQb2ludCA9IHBvaW50c1swXTtcclxuICAgICAgICBsZXQgbGFzdFBvaW50ID0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgIGlmIChhcmVhT3B0aW9uLnR5cGUgPT09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LCBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBcclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhsYXN0UG9pbnQueCwgZW5kWSk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbMF07XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICAgIC8vIGNvbnRleHQubGluZVRvKGl0ZW0ueCArIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICAvLyBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgIC8vIGNvbnRleHQubGluZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgZW5kWSk7XHJcbiAgICAgICAgLy8gY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBpdGVtLnkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAvL+eUu+i/nue6v1xyXG4gICAgICBpZiAoYXJlYU9wdGlvbi5hZGRMaW5lKSB7XHJcbiAgICAgICAgaWYgKGVhY2hTZXJpZXMubGluZVR5cGUgPT0gJ2Rhc2gnKSB7XHJcbiAgICAgICAgICBsZXQgZGFzaExlbmd0aCA9IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA/IGVhY2hTZXJpZXMuZGFzaExlbmd0aCA6IDg7XHJcbiAgICAgICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbZGFzaExlbmd0aCwgZGFzaExlbmd0aF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoYXJlYU9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIC8vIGNvbnRleHQuYXJjKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSwgMSwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgICAgbGV0IHN0YXJ0UG9pbnQgPSAwO1xyXG4gICAgICAgICAgaWYgKGFyZWFPcHRpb24udHlwZSA9PT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbal07XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSAxO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYXJlYU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBwb2ludHNbaiAtIDFdLnkpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lRGFzaChbXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8v55S754K5XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gICAgZHJhd0FjdGl2ZVBvaW50KHBvaW50cywgZWFjaFNlcmllcy5jb2xvciwgZWFjaFNlcmllcy5wb2ludFNoYXBlLCBjb250ZXh0LCBvcHRzLCBhcmVhT3B0aW9uLHNlcmllc0luZGV4KTtcclxuICB9KTtcclxuXHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgcmV0dXJuIHtcclxuICAgIHhBeGlzUG9pbnRzOiB4QXhpc1BvaW50cyxcclxuICAgIGNhbFBvaW50czogY2FsUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmc6IGVhY2hTcGFjaW5nXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1NjYXR0ZXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgdmFyIHNjYXR0ZXJPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIHR5cGU6ICdjaXJjbGUnXHJcbiAgfSwgb3B0cy5leHRyYS5zY2F0dGVyKTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICB2YXIgc2hhcGUgPSBlYWNoU2VyaWVzLnBvaW50U2hhcGU7XHJcbiAgICBpZiAoc2hhcGUgPT09ICdkaWFtb25kJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICdjaXJjbGUnKSB7XHJcbiAgICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCArIDIuNSAqIG9wdHMucGl4LCBpdGVtLnkpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIDMgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3NxdWFyZScpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54IC0gMy41LCBpdGVtLnkgLSAzLjUpO1xyXG4gICAgICAgICAgY29udGV4dC5yZWN0KGl0ZW0ueCAtIDMuNSwgaXRlbS55IC0gMy41LCA3LCA3KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzaGFwZSA9PT0gJ3RyaWFuZ2xlJykge1xyXG4gICAgICBwb2ludHMuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggLSA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyA0LjUsIGl0ZW0ueSArIDQuNSk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSAtIDQuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoc2hhcGUgPT09ICd0cmlhbmdsZScpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9KTtcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGxldCByYW5nZXMsIG1pblJhbmdlLCBtYXhSYW5nZTtcclxuICAgICAgcmFuZ2VzID0gW10uY29uY2F0KG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNbZWFjaFNlcmllcy5pbmRleF0pO1xyXG4gICAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgICAgbWF4UmFuZ2UgPSByYW5nZXMuc2hpZnQoKTtcclxuICAgICAgdmFyIGRhdGEgPSBlYWNoU2VyaWVzLmRhdGE7XHJcbiAgICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3QnViYmxlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBidWJibGVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICBib3JkZXI6MlxyXG4gIH0sIG9wdHMuZXh0cmEuYnViYmxlKTtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaFNlcmllcy5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChidWJibGVPcHRpb24uYm9yZGVyICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYnViYmxlT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgIHBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCArIGl0ZW0uciwgaXRlbS55KTtcclxuICAgICAgY29udGV4dC5hcmMoaXRlbS54LCBpdGVtLnksIGl0ZW0uciAqIG9wdHMucGl4LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgXHJcbiAgICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgICAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHZhciBmb250U2l6ZSA9IGVhY2hTZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZWFjaFNlcmllcy50ZXh0Q29sb3IgfHwgXCIjRkZGRkZGXCIpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdjZW50ZXInKTtcclxuICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtLnQpLCBpdGVtLngsIGl0ZW0ueSArIGZvbnRTaXplLzIpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9KTtcclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICByZXR1cm4ge1xyXG4gICAgeEF4aXNQb2ludHM6IHhBeGlzUG9pbnRzLFxyXG4gICAgY2FsUG9pbnRzOiBjYWxQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZzogZWFjaFNwYWNpbmdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TGluZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgbGluZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ3N0cmFpZ2h0JyxcclxuICAgIHdpZHRoOiAyLFxyXG4gICAgYWN0aXZlVHlwZTogJ25vbmUnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgb25TaGFkb3c6IGZhbHNlLFxyXG4gICAgYW5pbWF0aW9uOiAndmVydGljYWwnLFxyXG4gIH0sIG9wdHMuZXh0cmEubGluZSk7XHJcbiAgbGluZU9wdGlvbi53aWR0aCAqPSBvcHRzLnBpeDtcclxuICBsZXQgeEF4aXNEYXRhID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLFxyXG4gICAgeEF4aXNQb2ludHMgPSB4QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgY2FsUG9pbnRzID0gW107XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgbGV0IGxlZnRTcGFjZSA9IDA7XHJcbiAgbGV0IHJpZ2h0U3BhY2UgPSBvcHRzLndpZHRoICsgZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDAgJiYgb3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgICBsZWZ0U3BhY2UgPSAtb3B0cy5fc2Nyb2xsRGlzdGFuY2VfIC0gZWFjaFNwYWNpbmcgKiAyICsgb3B0cy5hcmVhWzNdO1xyXG4gICAgcmlnaHRTcGFjZSA9IGxlZnRTcGFjZSArIChvcHRzLnhBeGlzLml0ZW1Db3VudCArIDQpICogZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAvLyDov5nmrrXlvojnpZ7lpYfnmoTku6PnoIHnlKjkuo7op6PlhrNpb3MxNueahHNldFN0cm9rZVN0eWxl5aSx5pWI55qEYnVnXHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIGNvbnRleHQubW92ZVRvKC0xMDAwMCwgLTEwMDAwKTtcclxuICAgIGNvbnRleHQubGluZVRvKC0xMDAwMSwgLTEwMDAxKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXRMaW5lRGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBsaW5lT3B0aW9uLCBwcm9jZXNzKTtcclxuICAgIGNhbFBvaW50cy5wdXNoKHBvaW50cyk7XHJcbiAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICBpZiAoZWFjaFNlcmllcy5saW5lVHlwZSA9PSAnZGFzaCcpIHtcclxuICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICBkYXNoTGVuZ3RoICo9IG9wdHMucGl4O1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtkYXNoTGVuZ3RoLCBkYXNoTGVuZ3RoXSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgdmFyIHN0cm9rZUNvbG9yID0gZWFjaFNlcmllcy5jb2xvcjtcclxuICAgIGlmIChsaW5lT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJyAmJiBlYWNoU2VyaWVzLmxpbmVhckNvbG9yICYmIGVhY2hTZXJpZXMubGluZWFyQ29sb3IubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuc3RhcnRYLCBvcHRzLmhlaWdodC8yLCBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZW5kWCwgb3B0cy5oZWlnaHQvMik7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWFjaFNlcmllcy5saW5lYXJDb2xvci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGdyZC5hZGRDb2xvclN0b3AoZWFjaFNlcmllcy5saW5lYXJDb2xvcltpXVswXSwgaGV4VG9SZ2IoZWFjaFNlcmllcy5saW5lYXJDb2xvcltpXVsxXSwgMSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHN0cm9rZUNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHN0cm9rZUNvbG9yKTtcclxuICAgIGlmIChsaW5lT3B0aW9uLm9uU2hhZG93ID09IHRydWUgJiYgZWFjaFNlcmllcy5zZXRTaGFkb3cgJiYgZWFjaFNlcmllcy5zZXRTaGFkb3cubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb250ZXh0LnNldFNoYWRvdyhlYWNoU2VyaWVzLnNldFNoYWRvd1swXSwgZWFjaFNlcmllcy5zZXRTaGFkb3dbMV0sIGVhY2hTZXJpZXMuc2V0U2hhZG93WzJdLCBlYWNoU2VyaWVzLnNldFNoYWRvd1szXSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29udGV4dC5zZXRTaGFkb3coMCwgMCwgMCwgJ3JnYmEoMCwwLDAsMCknKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGgpO1xyXG4gICAgc3BsaXRQb2ludExpc3QuZm9yRWFjaChmdW5jdGlvbihwb2ludHMsIGluZGV4KSB7XHJcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAvLyBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnY3VydmUnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmJlemllckN1cnZlVG8oY3RybFBvaW50LmN0ckEueCwgY3RybFBvaW50LmN0ckEueSwgY3RybFBvaW50LmN0ckIueCwgY3RybFBvaW50LmN0ckIueSwgaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgPT0gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGluZU9wdGlvbi50eXBlID09PSAnc3RlcCcpIHtcclxuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcG9pbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaiA+IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlICYmIGl0ZW0ueCA8IHJpZ2h0U3BhY2UpIHtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIHBvaW50c1tqIC0gMV0ueSk7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5saW5lVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVEYXNoKFtdKTtcclxuICAgIGlmIChvcHRzLmRhdGFQb2ludFNoYXBlICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3UG9pbnRTaGFwZShwb2ludHMsIGVhY2hTZXJpZXMuY29sb3IsIGVhY2hTZXJpZXMucG9pbnRTaGFwZSwgY29udGV4dCwgb3B0cyk7XHJcbiAgICB9XHJcbiAgICBkcmF3QWN0aXZlUG9pbnQocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMsIGxpbmVPcHRpb24pO1xyXG4gIH0pO1xyXG4gIGlmIChvcHRzLmRhdGFMYWJlbCAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgICAgbGV0IHJhbmdlcywgbWluUmFuZ2UsIG1heFJhbmdlO1xyXG4gICAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICAgIG1pblJhbmdlID0gcmFuZ2VzLnBvcCgpO1xyXG4gICAgICBtYXhSYW5nZSA9IHJhbmdlcy5zaGlmdCgpO1xyXG4gICAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgICAgdmFyIHBvaW50cyA9IGdldERhdGFQb2ludHMoZGF0YSwgbWluUmFuZ2UsIG1heFJhbmdlLCB4QXhpc1BvaW50cywgZWFjaFNwYWNpbmcsIG9wdHMsIGNvbmZpZywgcHJvY2Vzcyk7XHJcbiAgICAgIGRyYXdQb2ludFRleHQocG9pbnRzLCBlYWNoU2VyaWVzLCBjb25maWcsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZ1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdNaXhEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgbGV0IHByb2Nlc3MgPSBhcmd1bWVudHMubGVuZ3RoID4gNCAmJiBhcmd1bWVudHNbNF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1s0XSA6IDE7XHJcbiAgbGV0IHhBeGlzRGF0YSA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSxcclxuICAgIHhBeGlzUG9pbnRzID0geEF4aXNEYXRhLnhBeGlzUG9pbnRzLFxyXG4gICAgZWFjaFNwYWNpbmcgPSB4QXhpc0RhdGEuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNvbHVtbk9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgd2lkdGg6IGVhY2hTcGFjaW5nIC8gMixcclxuICAgIGJhckJvcmRlckNpcmNsZTogZmFsc2UsXHJcbiAgICBiYXJCb3JkZXJSYWRpdXM6IFtdLFxyXG4gICAgc2VyaWVzR2FwOiAyLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgbGluZWFyT3BhY2l0eTogMSxcclxuICAgIGN1c3RvbUNvbG9yOiBbXSxcclxuICAgIGNvbG9yU3RvcDogMCxcclxuICB9LCBvcHRzLmV4dHJhLm1peC5jb2x1bW4pO1xyXG4gIGxldCBhcmVhT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBvcGFjaXR5OiAwLjIsXHJcbiAgICBncmFkaWVudDogZmFsc2VcclxuICB9LCBvcHRzLmV4dHJhLm1peC5hcmVhKTtcclxuICBsZXQgbGluZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgd2lkdGg6IDJcclxuICB9LCBvcHRzLmV4dHJhLm1peC5saW5lKTtcclxuICBsZXQgZW5kWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIGxldCBjYWxQb2ludHMgPSBbXTtcclxuICB2YXIgY29sdW1uSW5kZXggPSAwO1xyXG4gIHZhciBjb2x1bW5MZW5ndGggPSAwO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdjb2x1bW4nKSB7XHJcbiAgICAgIGNvbHVtbkxlbmd0aCArPSAxO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGxldCBsZWZ0TnVtID0gLTI7XHJcbiAgbGV0IHJpZ2h0TnVtID0geEF4aXNQb2ludHMubGVuZ3RoICsgMjtcclxuICBsZXQgbGVmdFNwYWNlID0gMDtcclxuICBsZXQgcmlnaHRTcGFjZSA9IG9wdHMud2lkdGggKyBlYWNoU3BhY2luZztcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICAgIGxlZnROdW0gPSBNYXRoLmZsb29yKC1vcHRzLl9zY3JvbGxEaXN0YW5jZV8gLyBlYWNoU3BhY2luZykgLSAyO1xyXG4gICAgcmlnaHROdW0gPSBsZWZ0TnVtICsgb3B0cy54QXhpcy5pdGVtQ291bnQgKyA0O1xyXG4gICAgbGVmdFNwYWNlID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAtIGVhY2hTcGFjaW5nICogMiArIG9wdHMuYXJlYVszXTtcclxuICAgIHJpZ2h0U3BhY2UgPSBsZWZ0U3BhY2UgKyAob3B0cy54QXhpcy5pdGVtQ291bnQgKyA0KSAqIGVhY2hTcGFjaW5nO1xyXG4gIH1cclxuICBjb2x1bW5PcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUsIGNvbHVtbk9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIHNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICByYW5nZXMgPSBbXS5jb25jYXQob3B0cy5jaGFydERhdGEueUF4aXNEYXRhLnJhbmdlc1tlYWNoU2VyaWVzLmluZGV4XSk7XHJcbiAgICBtaW5SYW5nZSA9IHJhbmdlcy5wb3AoKTtcclxuICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICB2YXIgZGF0YSA9IGVhY2hTZXJpZXMuZGF0YTtcclxuICAgIHZhciBwb2ludHMgPSBnZXREYXRhUG9pbnRzKGRhdGEsIG1pblJhbmdlLCBtYXhSYW5nZSwgeEF4aXNQb2ludHMsIGVhY2hTcGFjaW5nLCBvcHRzLCBjb25maWcsIHByb2Nlc3MpO1xyXG4gICAgY2FsUG9pbnRzLnB1c2gocG9pbnRzKTtcclxuICAgIC8vIOe7mOWItuafseeKtuaVsOaNruWbvlxyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAnY29sdW1uJykge1xyXG4gICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbmd0aCwgY29sdW1uSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbaV07XHJcbiAgICAgICAgaWYgKGl0ZW0gIT09IG51bGwgJiYgaSA+IGxlZnROdW0gJiYgaSA8IHJpZ2h0TnVtKSB7XHJcbiAgICAgICAgICB2YXIgc3RhcnRYID0gaXRlbS54IC0gaXRlbS53aWR0aCAvIDI7XHJcbiAgICAgICAgICB2YXIgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBpdGVtLnkgLSBvcHRzLmFyZWFbMl07XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgdmFyIGZpbGxDb2xvciA9IGl0ZW0uY29sb3IgfHwgZWFjaFNlcmllcy5jb2xvclxyXG4gICAgICAgICAgdmFyIHN0cm9rZUNvbG9yID0gaXRlbS5jb2xvciB8fCBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICAgICAgICBpZiAoY29sdW1uT3B0aW9uLmxpbmVhclR5cGUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzdGFydFgsIGl0ZW0ueSwgc3RhcnRYLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIC8v6YCP5piO5riQ5Y+YXHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24ubGluZWFyVHlwZSA9PSAnb3BhY2l0eScpIHtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKGZpbGxDb2xvciwgY29sdW1uT3B0aW9uLmxpbmVhck9wYWNpdHkpKTtcclxuICAgICAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGZpbGxDb2xvciwgMSkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoY29sdW1uT3B0aW9uLmNvbG9yU3RvcCwgaGV4VG9SZ2IoY29sdW1uT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCBjb2x1bW5PcHRpb24ubGluZWFyT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2IoZmlsbENvbG9yLCAxKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDlnIbop5LovrnmoYZcclxuICAgICAgICAgIGlmICgoY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyAmJiBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzLmxlbmd0aCA9PT0gNCkgfHwgY29sdW1uT3B0aW9uLmJhckJvcmRlckNpcmNsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gc3RhcnRYO1xyXG4gICAgICAgICAgICBjb25zdCB0b3AgPSBpdGVtLnk7XHJcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aDtcclxuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gLSBpdGVtLnk7XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW5PcHRpb24uYmFyQm9yZGVyQ2lyY2xlKSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uT3B0aW9uLmJhckJvcmRlclJhZGl1cyA9IFt3aWR0aCAvIDIsIHdpZHRoIC8gMiwgMCwgMF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IFtyMCwgcjEsIHIyLCByM10gPSBjb2x1bW5PcHRpb24uYmFyQm9yZGVyUmFkaXVzO1xyXG4gICAgICAgICAgICBsZXQgbWluUmFkaXVzID0gTWF0aC5taW4od2lkdGgvMixoZWlnaHQvMik7XHJcbiAgICAgICAgICAgIHIwID0gcjAgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMDtcclxuICAgICAgICAgICAgcjEgPSByMSA+IG1pblJhZGl1cyA/IG1pblJhZGl1cyA6IHIxO1xyXG4gICAgICAgICAgICByMiA9IHIyID4gbWluUmFkaXVzID8gbWluUmFkaXVzIDogcjI7XHJcbiAgICAgICAgICAgIHIzID0gcjMgPiBtaW5SYWRpdXMgPyBtaW5SYWRpdXMgOiByMztcclxuICAgICAgICAgICAgcjAgPSByMCA8IDAgPyAwIDogcjA7XHJcbiAgICAgICAgICAgIHIxID0gcjEgPCAwID8gMCA6IHIxO1xyXG4gICAgICAgICAgICByMiA9IHIyIDwgMCA/IDAgOiByMjtcclxuICAgICAgICAgICAgcjMgPSByMyA8IDAgPyAwIDogcjM7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYXJjKGxlZnQgKyByMCwgdG9wICsgcjAsIHIwLCAtTWF0aC5QSSwgLU1hdGguUEkgLyAyKTtcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjEsIHRvcCArIHIxLCByMSwgLU1hdGguUEkgLyAyLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5hcmMobGVmdCArIHdpZHRoIC0gcjIsIHRvcCArIGhlaWdodCAtIHIyLCByMiwgMCwgTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmFyYyhsZWZ0ICsgcjMsIHRvcCArIGhlaWdodCAtIHIzLCByMywgTWF0aC5QSSAvIDIsIE1hdGguUEkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBpdGVtLnkpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBpdGVtLndpZHRoLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFgsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEpXHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc3Ryb2tlQ29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29sdW1uSW5kZXggKz0gMTtcclxuICAgIH1cclxuICAgIC8v57uY5Yi25Yy65Z+f5Zu+5pWw5o2uXHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdhcmVhJykge1xyXG4gICAgICBsZXQgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BsaXRQb2ludExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnRzID0gc3BsaXRQb2ludExpc3RbaV07XHJcbiAgICAgICAgLy8g57uY5Yi25Yy65Z+f5pWw5o2uXHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgYXJlYU9wdGlvbi5vcGFjaXR5KSk7XHJcbiAgICAgICAgaWYgKGFyZWFPcHRpb24uZ3JhZGllbnQpIHtcclxuICAgICAgICAgIGxldCBncmFkaWVudCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgb3B0cy5hcmVhWzBdLCAwLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgnMS4wJywgaGV4VG9SZ2IoXCIjRkZGRkZGXCIsIDAuMSkpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZ3JhZGllbnQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCBhcmVhT3B0aW9uLm9wYWNpdHkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMiAqIG9wdHMucGl4KTtcclxuICAgICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHZhciBmaXJzdFBvaW50ID0gcG9pbnRzWzBdO1xyXG4gICAgICAgICAgbGV0IGxhc3RQb2ludCA9IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhmaXJzdFBvaW50LngsIGZpcnN0UG9pbnQueSk7XHJcbiAgICAgICAgICBsZXQgc3RhcnRQb2ludCA9IDA7XHJcbiAgICAgICAgICBpZiAoZWFjaFNlcmllcy5zdHlsZSA9PT0gJ2N1cnZlJykge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3RybFBvaW50ID0gY3JlYXRlQ3VydmVDb250cm9sUG9pbnRzKHBvaW50cywgaiAtIDEpO1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKGN0cmxQb2ludC5jdHJBLngsIGN0cmxQb2ludC5jdHJBLnksIGN0cmxQb2ludC5jdHJCLngsIGN0cmxQb2ludC5jdHJCLnksIGl0ZW0ueCwgaXRlbS55KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8obGFzdFBvaW50LngsIGVuZFkpO1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8oZmlyc3RQb2ludC54LCBlbmRZKTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKGZpcnN0UG9pbnQueCwgZmlyc3RQb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBwb2ludHNbMF07XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLnggLSBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAvLyBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAvLyBjb250ZXh0LmxpbmVUbyhpdGVtLnggKyBlYWNoU3BhY2luZyAvIDIsIGVuZFkpO1xyXG4gICAgICAgICAgLy8gY29udGV4dC5saW5lVG8oaXRlbS54IC0gZWFjaFNwYWNpbmcgLyAyLCBlbmRZKTtcclxuICAgICAgICAgIC8vIGNvbnRleHQubW92ZVRvKGl0ZW0ueCAtIGVhY2hTcGFjaW5nIC8gMiwgaXRlbS55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8g57uY5Yi25oqY57q/5pWw5o2u5Zu+XHJcbiAgICBpZiAoZWFjaFNlcmllcy50eXBlID09ICdsaW5lJykge1xyXG4gICAgICB2YXIgc3BsaXRQb2ludExpc3QgPSBzcGxpdFBvaW50cyhwb2ludHMsZWFjaFNlcmllcyk7XHJcbiAgICAgIHNwbGl0UG9pbnRMaXN0LmZvckVhY2goZnVuY3Rpb24ocG9pbnRzLCBpbmRleCkge1xyXG4gICAgICAgIGlmIChlYWNoU2VyaWVzLmxpbmVUeXBlID09ICdkYXNoJykge1xyXG4gICAgICAgICAgbGV0IGRhc2hMZW5ndGggPSBlYWNoU2VyaWVzLmRhc2hMZW5ndGggPyBlYWNoU2VyaWVzLmRhc2hMZW5ndGggOiA4O1xyXG4gICAgICAgICAgZGFzaExlbmd0aCAqPSBvcHRzLnBpeDtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW2Rhc2hMZW5ndGgsIGRhc2hMZW5ndGhdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGVhY2hTZXJpZXMuY29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGxpbmVPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgaWYgKHBvaW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgICAvLyBjb250ZXh0LmFyYyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnksIDEsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuICAgICAgICAgIGxldCBzdGFydFBvaW50ID0gMDtcclxuICAgICAgICAgIGlmIChlYWNoU2VyaWVzLnN0eWxlID09ICdjdXJ2ZScpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBwb2ludHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbSA9IHBvaW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCA9PSAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbS54LCBpdGVtLnkpO1xyXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludCA9IDE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChqID4gMCAmJiBpdGVtLnggPiBsZWZ0U3BhY2UgJiYgaXRlbS54IDwgcmlnaHRTcGFjZSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0cmxQb2ludCA9IGNyZWF0ZUN1cnZlQ29udHJvbFBvaW50cyhwb2ludHMsIGogLSAxKTtcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhjdHJsUG9pbnQuY3RyQS54LCBjdHJsUG9pbnQuY3RyQS55LCBjdHJsUG9pbnQuY3RyQi54LCBjdHJsUG9pbnQuY3RyQi55LFxyXG4gICAgICAgICAgICAgICAgICBpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHBvaW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCBpdGVtID0gcG9pbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ID09IDAgJiYgaXRlbS54ID4gbGVmdFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgICBzdGFydFBvaW50ID0gMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGogPiAwICYmIGl0ZW0ueCA+IGxlZnRTcGFjZSAmJiBpdGVtLnggPCByaWdodFNwYWNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLngsIGl0ZW0ueSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIOe7mOWItueCueaVsOaNruWbvlxyXG4gICAgaWYgKGVhY2hTZXJpZXMudHlwZSA9PSAncG9pbnQnKSB7XHJcbiAgICAgIGVhY2hTZXJpZXMuYWRkUG9pbnQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGVhY2hTZXJpZXMuYWRkUG9pbnQgPT0gdHJ1ZSAmJiBlYWNoU2VyaWVzLnR5cGUgIT09ICdjb2x1bW4nKSB7XHJcbiAgICAgIGRyYXdQb2ludFNoYXBlKHBvaW50cywgZWFjaFNlcmllcy5jb2xvciwgZWFjaFNlcmllcy5wb2ludFNoYXBlLCBjb250ZXh0LCBvcHRzKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHZhciBjb2x1bW5JbmRleCA9IDA7XHJcbiAgICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgICBsZXQgcmFuZ2VzLCBtaW5SYW5nZSwgbWF4UmFuZ2U7XHJcbiAgICAgIHJhbmdlcyA9IFtdLmNvbmNhdChvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEucmFuZ2VzW2VhY2hTZXJpZXMuaW5kZXhdKTtcclxuICAgICAgbWluUmFuZ2UgPSByYW5nZXMucG9wKCk7XHJcbiAgICAgIG1heFJhbmdlID0gcmFuZ2VzLnNoaWZ0KCk7XHJcbiAgICAgIHZhciBkYXRhID0gZWFjaFNlcmllcy5kYXRhO1xyXG4gICAgICB2YXIgcG9pbnRzID0gZ2V0RGF0YVBvaW50cyhkYXRhLCBtaW5SYW5nZSwgbWF4UmFuZ2UsIHhBeGlzUG9pbnRzLCBlYWNoU3BhY2luZywgb3B0cywgY29uZmlnLCBwcm9jZXNzKTtcclxuICAgICAgaWYgKGVhY2hTZXJpZXMudHlwZSAhPT0gJ2NvbHVtbicpIHtcclxuICAgICAgICBkcmF3UG9pbnRUZXh0KHBvaW50cywgZWFjaFNlcmllcywgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwb2ludHMgPSBmaXhDb2x1bWVEYXRhKHBvaW50cywgZWFjaFNwYWNpbmcsIGNvbHVtbkxlbmd0aCwgY29sdW1uSW5kZXgsIGNvbmZpZywgb3B0cyk7XHJcbiAgICAgICAgZHJhd1BvaW50VGV4dChwb2ludHMsIGVhY2hTZXJpZXMsIGNvbmZpZywgY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgY29sdW1uSW5kZXggKz0gMTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIHJldHVybiB7XHJcbiAgICB4QXhpc1BvaW50czogeEF4aXNQb2ludHMsXHJcbiAgICBjYWxQb2ludHM6IGNhbFBvaW50cyxcclxuICAgIGVhY2hTcGFjaW5nOiBlYWNoU3BhY2luZyxcclxuICB9XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cykge1xyXG4gIHZhciB0b29sVGlwT3B0aW9uID0gb3B0cy5leHRyYS50b29sdGlwIHx8IHt9O1xyXG4gIGlmICh0b29sVGlwT3B0aW9uLmhvcml6ZW50YWxMaW5lICYmIG9wdHMudG9vbHRpcCAmJiBwcm9jZXNzID09PSAxICYmIChvcHRzLnR5cGUgPT0gJ2xpbmUnIHx8IG9wdHMudHlwZSA9PSAnYXJlYScgfHwgb3B0cy50eXBlID09ICdjb2x1bW4nIHx8IG9wdHMudHlwZSA9PSAnbW91bnQnIHx8IG9wdHMudHlwZSA9PSAnY2FuZGxlJyB8fCBvcHRzLnR5cGUgPT0gJ21peCcpKSB7XHJcbiAgICBkcmF3VG9vbFRpcEhvcml6ZW50YWxMaW5lKG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKVxyXG4gIH1cclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBpZiAob3B0cy5fc2Nyb2xsRGlzdGFuY2VfICYmIG9wdHMuX3Njcm9sbERpc3RhbmNlXyAhPT0gMCAmJiBvcHRzLmVuYWJsZVNjcm9sbCA9PT0gdHJ1ZSkge1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUob3B0cy5fc2Nyb2xsRGlzdGFuY2VfLCAwKTtcclxuICB9XHJcbiAgaWYgKG9wdHMudG9vbHRpcCAmJiBvcHRzLnRvb2x0aXAudGV4dExpc3QgJiYgb3B0cy50b29sdGlwLnRleHRMaXN0Lmxlbmd0aCAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3VG9vbFRpcChvcHRzLnRvb2x0aXAudGV4dExpc3QsIG9wdHMudG9vbHRpcC5vZmZzZXQsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgZWFjaFNwYWNpbmcsIHhBeGlzUG9pbnRzKTtcclxuICB9XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcblxyXG4gIGxldCB4QXhpc0RhdGEgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEsXHJcbiAgICB4QXhpc1BvaW50cyA9IHhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgIHN0YXJ0WCA9IHhBeGlzRGF0YS5zdGFydFgsXHJcbiAgICBlbmRYID0geEF4aXNEYXRhLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IHhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICB2YXIgYm91bmRhcnlHYXAgPSAnY2VudGVyJztcclxuICBpZiAob3B0cy50eXBlID09ICdiYXInIHx8IG9wdHMudHlwZSA9PSAnbGluZScgfHwgb3B0cy50eXBlID09ICdhcmVhJ3x8IG9wdHMudHlwZSA9PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09ICdidWJibGUnKSB7XHJcbiAgICBib3VuZGFyeUdhcCA9IG9wdHMueEF4aXMuYm91bmRhcnlHYXA7XHJcbiAgfVxyXG4gIHZhciBzdGFydFkgPSBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuYXJlYVswXTtcclxuXHJcbiAgLy/nu5jliLbmu5rliqjmnaFcclxuICBpZiAob3B0cy5lbmFibGVTY3JvbGwgJiYgb3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICB2YXIgc2Nyb2xsWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdICsgY29uZmlnLnhBeGlzSGVpZ2h0O1xyXG4gICAgdmFyIHNjcm9sbFNjcmVlbldpZHRoID0gZW5kWCAtIHN0YXJ0WDtcclxuICAgIHZhciBzY3JvbGxUb3RhbFdpZHRoID0gZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgICBpZihvcHRzLnR5cGUgPT0gJ21vdW50JyAmJiBvcHRzLmV4dHJhICYmIG9wdHMuZXh0cmEubW91bnQgJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA+IDEpe1xyXG4gICAgICBpZihvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8+Mikgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvID0gMlxyXG4gICAgICBzY3JvbGxUb3RhbFdpZHRoICs9IChvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gLSAxKSplYWNoU3BhY2luZztcclxuICAgIH1cclxuICAgIHZhciBzY3JvbGxXaWR0aCA9IHNjcm9sbFNjcmVlbldpZHRoICogc2Nyb2xsU2NyZWVuV2lkdGggLyBzY3JvbGxUb3RhbFdpZHRoO1xyXG4gICAgdmFyIHNjcm9sbExlZnQgPSAwO1xyXG4gICAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXykge1xyXG4gICAgICBzY3JvbGxMZWZ0ID0gLW9wdHMuX3Njcm9sbERpc3RhbmNlXyAqIChzY3JvbGxTY3JlZW5XaWR0aCkgLyBzY3JvbGxUb3RhbFdpZHRoO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDYgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuc2Nyb2xsQmFja2dyb3VuZENvbG9yIHx8IFwiI0VGRUJFRlwiKTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCBzY3JvbGxZKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgncm91bmQnKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDYgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuc2Nyb2xsQ29sb3IgfHwgXCIjQTZBNkE2XCIpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgc2Nyb2xsTGVmdCwgc2Nyb2xsWSk7XHJcbiAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyBzY3JvbGxMZWZ0ICsgc2Nyb2xsV2lkdGgsIHNjcm9sbFkpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ2J1dHQnKTtcclxuICB9XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDApIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgfVxyXG4gIC8v57uY5Yi2WOi9tOWIu+W6pue6v1xyXG4gIGlmIChvcHRzLnhBeGlzLmNhbGlicmF0aW9uID09PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuZ3JpZENvbG9yIHx8IFwiI2NjY2NjY1wiKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIHhBeGlzUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbSAtIGVhY2hTcGFjaW5nIC8gMiwgc3RhcnRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtIC0gZWFjaFNwYWNpbmcgLyAyLCBzdGFydFkgKyAzICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v57uY5Yi2WOi9tOe9keagvFxyXG4gIGlmIChvcHRzLnhBeGlzLmRpc2FibGVHcmlkICE9PSB0cnVlKSB7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKG9wdHMueEF4aXMuZ3JpZENvbG9yIHx8IFwiI2NjY2NjY1wiKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGlmIChvcHRzLnhBeGlzLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgICBjb250ZXh0LnNldExpbmVEYXNoKFtvcHRzLnhBeGlzLmRhc2hMZW5ndGggKiBvcHRzLnBpeCwgb3B0cy54QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXhdKTtcclxuICAgIH1cclxuICAgIG9wdHMueEF4aXMuZ3JpZEV2YWwgPSBvcHRzLnhBeGlzLmdyaWRFdmFsIHx8IDE7XHJcbiAgICB4QXhpc1BvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCAlIG9wdHMueEF4aXMuZ3JpZEV2YWwgPT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oaXRlbSwgc3RhcnRZKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLCBlbmRZKTtcclxuICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIH1cclxuICAvL+e7mOWItljovbTmlofmoYhcclxuICBpZiAob3B0cy54QXhpcy5kaXNhYmxlZCAhPT0gdHJ1ZSkge1xyXG4gICAgLy8g5a+5WOi9tOWIl+ihqOWBmuaKveeogOWkhOeQhlxyXG4gICAgLy/pu5jorqTlhajpg6jmmL7npLpY6L205qCH562+XHJcbiAgICBsZXQgbWF4WEF4aXNMaXN0TGVuZ3RoID0gY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgICAvL+WmguaenOiuvue9ruS6hljovbTljZXlsY/mlbDph49cclxuICAgIGlmIChvcHRzLnhBeGlzLmxhYmVsQ291bnQpIHtcclxuICAgICAgLy/lpoLmnpzorr7nva5Y6L205a+G5bqmXHJcbiAgICAgIGlmIChvcHRzLnhBeGlzLml0ZW1Db3VudCkge1xyXG4gICAgICAgIG1heFhBeGlzTGlzdExlbmd0aCA9IE1hdGguY2VpbChjYXRlZ29yaWVzLmxlbmd0aCAvIG9wdHMueEF4aXMuaXRlbUNvdW50ICogb3B0cy54QXhpcy5sYWJlbENvdW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtYXhYQXhpc0xpc3RMZW5ndGggPSBvcHRzLnhBeGlzLmxhYmVsQ291bnQ7XHJcbiAgICAgIH1cclxuICAgICAgbWF4WEF4aXNMaXN0TGVuZ3RoIC09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJhdGlvID0gTWF0aC5jZWlsKGNhdGVnb3JpZXMubGVuZ3RoIC8gbWF4WEF4aXNMaXN0TGVuZ3RoKTtcclxuXHJcbiAgICBsZXQgbmV3Q2F0ZWdvcmllcyA9IFtdO1xyXG4gICAgbGV0IGNnTGVuZ3RoID0gY2F0ZWdvcmllcy5sZW5ndGg7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNnTGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGkgJSByYXRpbyAhPT0gMCkge1xyXG4gICAgICAgIG5ld0NhdGVnb3JpZXMucHVzaChcIlwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdDYXRlZ29yaWVzLnB1c2goY2F0ZWdvcmllc1tpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG5ld0NhdGVnb3JpZXNbY2dMZW5ndGggLSAxXSA9IGNhdGVnb3JpZXNbY2dMZW5ndGggLSAxXTtcclxuICAgIHZhciB4QXhpc0ZvbnRTaXplID0gb3B0cy54QXhpcy5mb250U2l6ZSAqIG9wdHMucGl4IHx8IGNvbmZpZy5mb250U2l6ZTtcclxuICAgIGlmIChjb25maWcuX3hBeGlzVGV4dEFuZ2xlXyA9PT0gMCkge1xyXG4gICAgICBuZXdDYXRlZ29yaWVzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgeGl0ZW0gPSBvcHRzLnhBeGlzLmZvcm1hdHRlciA/IG9wdHMueEF4aXMuZm9ybWF0dGVyKGl0ZW0saW5kZXgsb3B0cykgOiBpdGVtO1xyXG4gICAgICAgIHZhciBvZmZzZXQgPSAtbWVhc3VyZVRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNGb250U2l6ZSwgY29udGV4dCkgLyAyO1xyXG4gICAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgb2Zmc2V0ICs9IGVhY2hTcGFjaW5nIC8gMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHNjcm9sbEhlaWdodCA9IDA7XHJcbiAgICAgICAgaWYgKG9wdHMueEF4aXMuc2Nyb2xsU2hvdykge1xyXG4gICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gNiAqIG9wdHMucGl4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDlpoLmnpzlnKjkuLvop4blm77ljLrln5/lhoVcclxuICAgICAgICB2YXIgX3Njcm9sbERpc3RhbmNlXyA9IG9wdHMuX3Njcm9sbERpc3RhbmNlXyB8fCAwO1xyXG4gICAgICAgIHZhciB0cnVlUG9pbnRzID0gYm91bmRhcnlHYXAgPT0gJ2NlbnRlcicgPyB4QXhpc1BvaW50c1tpbmRleF0gKyBlYWNoU3BhY2luZyAvIDIgOiB4QXhpc1BvaW50c1tpbmRleF07XHJcbiAgICAgICAgaWYoKHRydWVQb2ludHMgLSBNYXRoLmFicyhfc2Nyb2xsRGlzdGFuY2VfKSkgPj0gKG9wdHMuYXJlYVszXSAtIDEpICYmICh0cnVlUG9pbnRzIC0gTWF0aC5hYnMoX3Njcm9sbERpc3RhbmNlXykpIDw9IChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdICsgMSkpe1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoeEF4aXNGb250U2l6ZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLnhBeGlzLmZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyh4aXRlbSksIHhBeGlzUG9pbnRzW2luZGV4XSArIG9mZnNldCwgc3RhcnRZICsgb3B0cy54QXhpcy5tYXJnaW5Ub3AgKiBvcHRzLnBpeCArIChvcHRzLnhBeGlzLmxpbmVIZWlnaHQgLSBvcHRzLnhBeGlzLmZvbnRTaXplKSAqIG9wdHMucGl4IC8gMiArIG9wdHMueEF4aXMuZm9udFNpemUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3Q2F0ZWdvcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIHhpdGVtID0gb3B0cy54QXhpcy5mb3JtYXR0ZXIgPyBvcHRzLnhBeGlzLmZvcm1hdHRlcihpdGVtKSA6IGl0ZW07XHJcbiAgICAgICAgLy8g5aaC5p6c5Zyo5Li76KeG5Zu+5Yy65Z+f5YaFXHJcbiAgICAgICAgdmFyIF9zY3JvbGxEaXN0YW5jZV8gPSBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gfHwgMDtcclxuICAgICAgICB2YXIgdHJ1ZVBvaW50cyA9IGJvdW5kYXJ5R2FwID09ICdjZW50ZXInID8geEF4aXNQb2ludHNbaW5kZXhdICsgZWFjaFNwYWNpbmcgLyAyIDogeEF4aXNQb2ludHNbaW5kZXhdO1xyXG4gICAgICAgIGlmKCh0cnVlUG9pbnRzIC0gTWF0aC5hYnMoX3Njcm9sbERpc3RhbmNlXykpID49IChvcHRzLmFyZWFbM10gLSAxKSAmJiAodHJ1ZVBvaW50cyAtIE1hdGguYWJzKF9zY3JvbGxEaXN0YW5jZV8pKSA8PSAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSArIDEpKXtcclxuICAgICAgICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoeEF4aXNGb250U2l6ZSk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLnhBeGlzLmZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgICB2YXIgdGV4dFdpZHRoID0gbWVhc3VyZVRleHQoU3RyaW5nKHhpdGVtKSwgeEF4aXNGb250U2l6ZSwgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgb2Zmc2V0WCA9IHhBeGlzUG9pbnRzW2luZGV4XTtcclxuICAgICAgICAgIGlmIChib3VuZGFyeUdhcCA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICBvZmZzZXRYID0geEF4aXNQb2ludHNbaW5kZXhdICsgZWFjaFNwYWNpbmcgLyAyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIHNjcm9sbEhlaWdodCA9IDA7XHJcbiAgICAgICAgICBpZiAob3B0cy54QXhpcy5zY3JvbGxTaG93KSB7XHJcbiAgICAgICAgICAgIHNjcm9sbEhlaWdodCA9IDYgKiBvcHRzLnBpeDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHZhciBvZmZzZXRZID0gc3RhcnRZICsgb3B0cy54QXhpcy5tYXJnaW5Ub3AgKiBvcHRzLnBpeCArIHhBeGlzRm9udFNpemUgLSB4QXhpc0ZvbnRTaXplICogTWF0aC5hYnMoTWF0aC5zaW4oY29uZmlnLl94QXhpc1RleHRBbmdsZV8pKTtcclxuICAgICAgICAgIGlmKG9wdHMueEF4aXMucm90YXRlQW5nbGUgPCAwKXtcclxuICAgICAgICAgICAgb2Zmc2V0WCAtPSB4QXhpc0ZvbnRTaXplIC8gMjtcclxuICAgICAgICAgICAgdGV4dFdpZHRoID0gMDtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBvZmZzZXRYICs9IHhBeGlzRm9udFNpemUgLyAyO1xyXG4gICAgICAgICAgICB0ZXh0V2lkdGggPSAtdGV4dFdpZHRoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC50cmFuc2xhdGUob2Zmc2V0WCwgb2Zmc2V0WSk7XHJcbiAgICAgICAgICBjb250ZXh0LnJvdGF0ZSgtMSAqIGNvbmZpZy5feEF4aXNUZXh0QW5nbGVfKTtcclxuICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKHhpdGVtKSwgdGV4dFdpZHRoICwgMCApO1xyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICBcclxuICAvL+eUu1jovbTmoIfpophcclxuICBpZiAob3B0cy54QXhpcy50aXRsZSkge1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUob3B0cy54QXhpcy50aXRsZUZvbnRTaXplICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy54QXhpcy50aXRsZUZvbnRDb2xvcik7XHJcbiAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhvcHRzLnhBeGlzLnRpdGxlKSwgb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSArIG9wdHMueEF4aXMudGl0bGVPZmZzZXRYICogb3B0cy5waXgsb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0gKyBvcHRzLnhBeGlzLm1hcmdpblRvcCAqIG9wdHMucGl4ICsgKG9wdHMueEF4aXMubGluZUhlaWdodCAtIG9wdHMueEF4aXMudGl0bGVGb250U2l6ZSkgKiBvcHRzLnBpeCAvIDIgKyAob3B0cy54QXhpcy50aXRsZUZvbnRTaXplICsgb3B0cy54QXhpcy50aXRsZU9mZnNldFkpICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8v57uY5Yi2WOi9tOi9tOe6v1xyXG4gIGlmIChvcHRzLnhBeGlzLmF4aXNMaW5lKSB7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLnhBeGlzLmF4aXNMaW5lQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgaWYgKG9wdHMueUF4aXMuZGlzYWJsZUdyaWQgPT09IHRydWUpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgbGV0IHNwYWNpbmdWYWxpZCA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdO1xyXG4gIGxldCBlYWNoU3BhY2luZyA9IHNwYWNpbmdWYWxpZCAvIG9wdHMueUF4aXMuc3BsaXROdW1iZXI7XHJcbiAgbGV0IHN0YXJ0WCA9IG9wdHMuYXJlYVszXTtcclxuICBsZXQgeEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHMsXHJcbiAgICB4QXhpc2VhY2hTcGFjaW5nID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBUb3RhbFdpZHRoID0geEF4aXNlYWNoU3BhY2luZyAqICh4QXhpc1BvaW50cy5sZW5ndGggLSAxKTtcclxuICBpZihvcHRzLnR5cGUgPT0gJ21vdW50JyAmJiBvcHRzLmV4dHJhICYmIG9wdHMuZXh0cmEubW91bnQgJiYgb3B0cy5leHRyYS5tb3VudC53aWR0aFJhdGlvICYmIG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbyA+IDEgKXtcclxuICAgIGlmKG9wdHMuZXh0cmEubW91bnQud2lkdGhSYXRpbz4yKSBvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gPSAyXHJcbiAgICBUb3RhbFdpZHRoICs9IChvcHRzLmV4dHJhLm1vdW50LndpZHRoUmF0aW8gLSAxKSAqIHhBeGlzZWFjaFNwYWNpbmc7XHJcbiAgfVxyXG4gIGxldCBlbmRYID0gc3RhcnRYICsgVG90YWxXaWR0aDtcclxuICBsZXQgcG9pbnRzID0gW107XHJcbiAgbGV0IHN0YXJ0WSA9IDFcclxuICBpZiAob3B0cy54QXhpcy5heGlzTGluZSA9PT0gZmFsc2UpIHtcclxuICAgIHN0YXJ0WSA9IDBcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IHN0YXJ0WTsgaSA8IG9wdHMueUF4aXMuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgIHBvaW50cy5wdXNoKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdIC0gZWFjaFNwYWNpbmcgKiBpKTtcclxuICB9XHJcbiAgY29udGV4dC5zYXZlKCk7XHJcbiAgaWYgKG9wdHMuX3Njcm9sbERpc3RhbmNlXyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gIT09IDApIHtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKG9wdHMuX3Njcm9sbERpc3RhbmNlXywgMCk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnlBeGlzLmdyaWRUeXBlID09ICdkYXNoJykge1xyXG4gICAgY29udGV4dC5zZXRMaW5lRGFzaChbb3B0cy55QXhpcy5kYXNoTGVuZ3RoICogb3B0cy5waXgsIG9wdHMueUF4aXMuZGFzaExlbmd0aCAqIG9wdHMucGl4XSk7XHJcbiAgfVxyXG4gIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUob3B0cy55QXhpcy5ncmlkQ29sb3IpO1xyXG4gIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgcG9pbnRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIGl0ZW0pO1xyXG4gICAgY29udGV4dC5saW5lVG8oZW5kWCwgaXRlbSk7XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIH0pO1xyXG4gIGNvbnRleHQuc2V0TGluZURhc2goW10pO1xyXG4gIGNvbnRleHQucmVzdG9yZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3WUF4aXMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBpZiAob3B0cy55QXhpcy5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICB2YXIgc3BhY2luZ1ZhbGlkID0gb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl07XHJcbiAgdmFyIGVhY2hTcGFjaW5nID0gc3BhY2luZ1ZhbGlkIC8gb3B0cy55QXhpcy5zcGxpdE51bWJlcjtcclxuICB2YXIgc3RhcnRYID0gb3B0cy5hcmVhWzNdO1xyXG4gIHZhciBlbmRYID0gb3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXTtcclxuICB2YXIgZW5kWSA9IG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdO1xyXG4gIC8vIHNldCBZQXhpcyBiYWNrZ3JvdW5kXHJcbiAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICBjb250ZXh0LnNldEZpbGxTdHlsZShvcHRzLmJhY2tncm91bmQpO1xyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PSB0cnVlICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAhPT0gJ2xlZnQnKSB7XHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIHN0YXJ0WCwgZW5kWSArIDIgKiBvcHRzLnBpeCk7XHJcbiAgfVxyXG4gIGlmIChvcHRzLmVuYWJsZVNjcm9sbCA9PSB0cnVlICYmIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gJiYgb3B0cy54QXhpcy5zY3JvbGxQb3NpdGlvbiAhPT0gJ3JpZ2h0Jykge1xyXG4gICAgY29udGV4dC5maWxsUmVjdChlbmRYLCAwLCBvcHRzLndpZHRoLCBlbmRZICsgMiAqIG9wdHMucGl4KTtcclxuICB9XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIFxyXG4gIGxldCB0U3RhcnRMZWZ0ID0gb3B0cy5hcmVhWzNdO1xyXG4gIGxldCB0U3RhcnRSaWdodCA9IG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV07XHJcbiAgbGV0IHRTdGFydENlbnRlciA9IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDI7XHJcbiAgaWYgKG9wdHMueUF4aXMuZGF0YSkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLnlBeGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHlEYXRhID0gb3B0cy55QXhpcy5kYXRhW2ldO1xyXG4gICAgICB2YXIgcG9pbnRzID0gW107XHJcbiAgICAgIGlmKHlEYXRhLnR5cGUgPT09ICdjYXRlZ29yaWVzJyl7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0geURhdGEuY2F0ZWdvcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgc3BhY2luZ1ZhbGlkIC8geURhdGEuY2F0ZWdvcmllcy5sZW5ndGggLyAyICsgc3BhY2luZ1ZhbGlkIC8geURhdGEuY2F0ZWdvcmllcy5sZW5ndGggKiBpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG9wdHMueUF4aXMuc3BsaXROdW1iZXI7IGkrKykge1xyXG4gICAgICAgICAgcG9pbnRzLnB1c2gob3B0cy5hcmVhWzBdICsgZWFjaFNwYWNpbmcgKiBpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHlEYXRhLmRpc2FibGVkICE9PSB0cnVlKSB7XHJcbiAgICAgICAgbGV0IHJhbmdlc0Zvcm1hdCA9IG9wdHMuY2hhcnREYXRhLnlBeGlzRGF0YS5yYW5nZXNGb3JtYXRbaV07XHJcbiAgICAgICAgbGV0IHlBeGlzRm9udFNpemUgPSB5RGF0YS5mb250U2l6ZSA/IHlEYXRhLmZvbnRTaXplICogb3B0cy5waXggOiBjb25maWcuZm9udFNpemU7XHJcbiAgICAgICAgbGV0IHlBeGlzV2lkdGggPSBvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEueUF4aXNXaWR0aFtpXTtcclxuICAgICAgICBsZXQgdGV4dEFsaWduID0geURhdGEudGV4dEFsaWduIHx8IFwicmlnaHRcIjtcclxuICAgICAgICAvL+eUu1novbTliLvluqblj4rmlofmoYhcclxuICAgICAgICByYW5nZXNGb3JtYXQuZm9yRWFjaChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgICAgdmFyIHBvcyA9IHBvaW50c1tpbmRleF07XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh5QXhpc0ZvbnRTaXplKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHlEYXRhLmF4aXNMaW5lQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHlEYXRhLmZvbnRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgICAgICBsZXQgdG1wc3RyYXQgPSAwO1xyXG4gICAgICAgICAgbGV0IGdhcHdpZHRoID0gNCAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgICAgIC8v55S75Yi75bqm57q/XHJcbiAgICAgICAgICAgIGlmICh5RGF0YS5jYWxpYnJhdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0TGVmdCwgcG9zKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRMZWZ0IC0gMyAqIG9wdHMucGl4LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGdhcHdpZHRoICs9IDMgKiBvcHRzLnBpeDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL+eUu+aWh+Wtl1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRleHRBbGlnbikge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRMZWZ0IC0geUF4aXNXaWR0aC53aWR0aFxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSBcInJpZ2h0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbigncmlnaHQnKTtcclxuICAgICAgICAgICAgICAgIHRtcHN0cmF0ID0gdFN0YXJ0TGVmdCAtIGdhcHdpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRMZWZ0IC0geUF4aXNXaWR0aC53aWR0aCAvIDJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtKSwgdG1wc3RyYXQsIHBvcyArIHlBeGlzRm9udFNpemUgLyAyIC0gMyAqIG9wdHMucGl4KTtcclxuXHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAvL+eUu+WIu+W6pue6v1xyXG4gICAgICAgICAgICBpZiAoeURhdGEuY2FsaWJyYXRpb24gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydFJpZ2h0LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydFJpZ2h0ICsgMyAqIG9wdHMucGl4LCBwb3MpO1xyXG4gICAgICAgICAgICAgIGdhcHdpZHRoICs9IDMgKiBvcHRzLnBpeDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzd2l0Y2ggKHRleHRBbGlnbikge1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRSaWdodCArIGdhcHdpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdyaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRSaWdodCArIHlBeGlzV2lkdGgud2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignY2VudGVyJyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydFJpZ2h0ICsgeUF4aXNXaWR0aC53aWR0aCAvIDJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KFN0cmluZyhpdGVtKSwgdG1wc3RyYXQsIHBvcyArIHlBeGlzRm9udFNpemUgLyAyIC0gMyAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnY2VudGVyJykge1xyXG4gICAgICAgICAgICAvL+eUu+WIu+W6pue6v1xyXG4gICAgICAgICAgICBpZiAoeURhdGEuY2FsaWJyYXRpb24gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKHRTdGFydENlbnRlciwgcG9zKTtcclxuICAgICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRDZW50ZXIgLSAzICogb3B0cy5waXgsIHBvcyk7XHJcbiAgICAgICAgICAgICAgZ2Fwd2lkdGggKz0gMyAqIG9wdHMucGl4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8v55S75paH5a2XXHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSBcImxlZnRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydENlbnRlciAtIHlBeGlzV2lkdGgud2lkdGhcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgXCJyaWdodFwiOlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgICAgICB0bXBzdHJhdCA9IHRTdGFydENlbnRlciAtIGdhcHdpZHRoXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICAgICAgdG1wc3RyYXQgPSB0U3RhcnRDZW50ZXIgLSB5QXhpc1dpZHRoLndpZHRoIC8gMlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoU3RyaW5nKGl0ZW0pLCB0bXBzdHJhdCwgcG9zICsgeUF4aXNGb250U2l6ZSAvIDIgLSAzICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v55S7Wei9tOi9tOe6v1xyXG4gICAgICAgIGlmICh5RGF0YS5heGlzTGluZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHlEYXRhLmF4aXNMaW5lQ29sb3IgfHwgJyNjY2NjY2MnKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBpZiAoeUF4aXNXaWR0aC5wb3NpdGlvbiA9PSAnbGVmdCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0TGVmdCwgb3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMl0pO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyh0U3RhcnRMZWZ0LCBvcHRzLmFyZWFbMF0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0UmlnaHQsIG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzJdKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8odFN0YXJ0UmlnaHQsIG9wdHMuYXJlYVswXSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8odFN0YXJ0Q2VudGVyLCBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHRTdGFydENlbnRlciwgb3B0cy5hcmVhWzBdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8v55S7Wei9tOagh+mimFxyXG4gICAgICAgIGlmIChvcHRzLnlBeGlzLnNob3dUaXRsZSkge1xyXG4gICAgICAgICAgbGV0IHRpdGxlRm9udFNpemUgPSB5RGF0YS50aXRsZUZvbnRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICAgICAgbGV0IHRpdGxlID0geURhdGEudGl0bGU7XHJcbiAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgY29udGV4dC5zZXRGb250U2l6ZSh0aXRsZUZvbnRTaXplKTtcclxuICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHlEYXRhLnRpdGxlRm9udENvbG9yIHx8IG9wdHMuZm9udENvbG9yKTtcclxuICAgICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRpdGxlLCB0U3RhcnRMZWZ0IC0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlRm9udFNpemUsIGNvbnRleHQpIC8gMiArICh5RGF0YS50aXRsZU9mZnNldFggfHwgMCksIG9wdHMuYXJlYVswXSAtICgxMCAtICh5RGF0YS50aXRsZU9mZnNldFkgfHwgMCkpICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgdFN0YXJ0UmlnaHQgLSBtZWFzdXJlVGV4dCh0aXRsZSwgdGl0bGVGb250U2l6ZSwgY29udGV4dCkgLyAyICsgKHlEYXRhLnRpdGxlT2Zmc2V0WCB8fCAwKSwgb3B0cy5hcmVhWzBdIC0gKDEwIC0gKHlEYXRhLnRpdGxlT2Zmc2V0WSB8fCAwKSkgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHlBeGlzV2lkdGgucG9zaXRpb24gPT0gJ2NlbnRlcicpIHtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0aXRsZSwgdFN0YXJ0Q2VudGVyIC0gbWVhc3VyZVRleHQodGl0bGUsIHRpdGxlRm9udFNpemUsIGNvbnRleHQpIC8gMiArICh5RGF0YS50aXRsZU9mZnNldFggfHwgMCksIG9wdHMuYXJlYVswXSAtICgxMCAtICh5RGF0YS50aXRsZU9mZnNldFkgfHwgMCkpICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh5QXhpc1dpZHRoLnBvc2l0aW9uID09ICdsZWZ0Jykge1xyXG4gICAgICAgICAgdFN0YXJ0TGVmdCAtPSAoeUF4aXNXaWR0aC53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdFN0YXJ0UmlnaHQgKz0geUF4aXNXaWR0aC53aWR0aCArIG9wdHMueUF4aXMucGFkZGluZyAqIG9wdHMucGl4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdMZWdlbmQoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIGNoYXJ0RGF0YSkge1xyXG4gIGlmIChvcHRzLmxlZ2VuZC5zaG93ID09PSBmYWxzZSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBsZXQgbGVnZW5kRGF0YSA9IGNoYXJ0RGF0YS5sZWdlbmREYXRhO1xyXG4gIGxldCBsZWdlbmRMaXN0ID0gbGVnZW5kRGF0YS5wb2ludHM7XHJcbiAgbGV0IGxlZ2VuZEFyZWEgPSBsZWdlbmREYXRhLmFyZWE7XHJcbiAgbGV0IHBhZGRpbmcgPSBvcHRzLmxlZ2VuZC5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgbGV0IGZvbnRTaXplID0gb3B0cy5sZWdlbmQuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBsZXQgc2hhcGVXaWR0aCA9IDE1ICogb3B0cy5waXg7XHJcbiAgbGV0IHNoYXBlUmlnaHQgPSA1ICogb3B0cy5waXg7XHJcbiAgbGV0IGl0ZW1HYXAgPSBvcHRzLmxlZ2VuZC5pdGVtR2FwICogb3B0cy5waXg7XHJcbiAgbGV0IGxpbmVIZWlnaHQgPSBNYXRoLm1heChvcHRzLmxlZ2VuZC5saW5lSGVpZ2h0ICogb3B0cy5waXgsIGZvbnRTaXplKTtcclxuICAvL+eUu+iDjOaZr+WPiui+ueahhlxyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgob3B0cy5sZWdlbmQuYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgY29udGV4dC5zZXRTdHJva2VTdHlsZShvcHRzLmxlZ2VuZC5ib3JkZXJDb2xvcik7XHJcbiAgY29udGV4dC5zZXRGaWxsU3R5bGUob3B0cy5sZWdlbmQuYmFja2dyb3VuZENvbG9yKTtcclxuICBjb250ZXh0Lm1vdmVUbyhsZWdlbmRBcmVhLnN0YXJ0LngsIGxlZ2VuZEFyZWEuc3RhcnQueSk7XHJcbiAgY29udGV4dC5yZWN0KGxlZ2VuZEFyZWEuc3RhcnQueCwgbGVnZW5kQXJlYS5zdGFydC55LCBsZWdlbmRBcmVhLndpZHRoLCBsZWdlbmRBcmVhLmhlaWdodCk7XHJcbiAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gIGxlZ2VuZExpc3QuZm9yRWFjaChmdW5jdGlvbihpdGVtTGlzdCwgbGlzdEluZGV4KSB7XHJcbiAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgbGV0IGhlaWdodCA9IDA7XHJcbiAgICB3aWR0aCA9IGxlZ2VuZERhdGEud2lkdGhBcnJbbGlzdEluZGV4XTtcclxuICAgIGhlaWdodCA9IGxlZ2VuZERhdGEuaGVpZ2h0QXJyW2xpc3RJbmRleF07XHJcbiAgICBsZXQgc3RhcnRYID0gMDtcclxuICAgIGxldCBzdGFydFkgPSAwO1xyXG4gICAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICAgIHN3aXRjaCAob3B0cy5sZWdlbmQuZmxvYXQpIHtcclxuICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgIHN0YXJ0WCA9IGxlZ2VuZEFyZWEuc3RhcnQueCArIHBhZGRpbmc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgbGVnZW5kQXJlYS53aWR0aCAtIHdpZHRoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgc3RhcnRYID0gbGVnZW5kQXJlYS5zdGFydC54ICsgKGxlZ2VuZEFyZWEud2lkdGggLSB3aWR0aCkgLyAyO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0WSA9IGxlZ2VuZEFyZWEuc3RhcnQueSArIHBhZGRpbmcgKyBsaXN0SW5kZXggKiBsaW5lSGVpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGxpc3RJbmRleCA9PSAwKSB7XHJcbiAgICAgICAgd2lkdGggPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHdpZHRoID0gbGVnZW5kRGF0YS53aWR0aEFycltsaXN0SW5kZXggLSAxXTtcclxuICAgICAgfVxyXG4gICAgICBzdGFydFggPSBsZWdlbmRBcmVhLnN0YXJ0LnggKyBwYWRkaW5nICsgd2lkdGg7XHJcbiAgICAgIHN0YXJ0WSA9IGxlZ2VuZEFyZWEuc3RhcnQueSArIHBhZGRpbmcgKyAobGVnZW5kQXJlYS5oZWlnaHQgLSBoZWlnaHQpIC8gMjtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUoY29uZmlnLmZvbnRTaXplKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGl0ZW0gPSBpdGVtTGlzdFtpXTtcclxuICAgICAgaXRlbS5hcmVhID0gWzAsIDAsIDAsIDBdO1xyXG4gICAgICBpdGVtLmFyZWFbMF0gPSBzdGFydFg7XHJcbiAgICAgIGl0ZW0uYXJlYVsxXSA9IHN0YXJ0WTtcclxuICAgICAgaXRlbS5hcmVhWzNdID0gc3RhcnRZICsgbGluZUhlaWdodDtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLnNob3cgPyBpdGVtLmNvbG9yIDogb3B0cy5sZWdlbmQuaGlkZGVuQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnNob3cgPyBpdGVtLmNvbG9yIDogb3B0cy5sZWdlbmQuaGlkZGVuQ29sb3IpO1xyXG4gICAgICBzd2l0Y2ggKGl0ZW0ubGVnZW5kU2hhcGUpIHtcclxuICAgICAgICBjYXNlICdsaW5lJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDIgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDIgKiBvcHRzLnBpeCwgMTUgKiBvcHRzLnBpeCwgNCAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyaWFuZ2xlJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDEyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCArIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdkaWFtb25kJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0IC0gNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDIuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDcuNSAqIG9wdHMucGl4LCBzdGFydFkgKyAwLjUgKiBsaW5lSGVpZ2h0ICsgNSAqIG9wdHMucGl4KTtcclxuICAgICAgICAgIGNvbnRleHQubGluZVRvKHN0YXJ0WCArIDEyLjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCk7XHJcbiAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFggKyA3LjUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdjaXJjbGUnOlxyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8oc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQpO1xyXG4gICAgICAgICAgY29udGV4dC5hcmMoc3RhcnRYICsgNy41ICogb3B0cy5waXgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQsIDUgKiBvcHRzLnBpeCwgMCwgMiAqIE1hdGguUEkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncmVjdCc6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgsIDE1ICogb3B0cy5waXgsIDEwICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3F1YXJlJzpcclxuICAgICAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCArIDUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHN0YXJ0WCArIDUgKiBvcHRzLnBpeCwgc3RhcnRZICsgMC41ICogbGluZUhlaWdodCAtIDUgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCwgMTAgKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdub25lJzpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgpO1xyXG4gICAgICAgICAgY29udGV4dC5maWxsUmVjdChzdGFydFgsIHN0YXJ0WSArIDAuNSAqIGxpbmVIZWlnaHQgLSA1ICogb3B0cy5waXgsIDE1ICogb3B0cy5waXgsIDEwICogb3B0cy5waXgpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBzdGFydFggKz0gc2hhcGVXaWR0aCArIHNoYXBlUmlnaHQ7XHJcbiAgICAgIGxldCBmb250VHJhbnMgPSAwLjUgKiBsaW5lSGVpZ2h0ICsgMC41ICogZm9udFNpemUgLSAyO1xyXG4gICAgICBjb25zdCBsZWdlbmRUZXh0ID0gaXRlbS5sZWdlbmRUZXh0ID8gaXRlbS5sZWdlbmRUZXh0IDogaXRlbS5uYW1lO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5zaG93ID8gb3B0cy5sZWdlbmQuZm9udENvbG9yIDogb3B0cy5sZWdlbmQuaGlkZGVuQ29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KGxlZ2VuZFRleHQsIHN0YXJ0WCwgc3RhcnRZICsgZm9udFRyYW5zKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgaWYgKG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICd0b3AnIHx8IG9wdHMubGVnZW5kLnBvc2l0aW9uID09ICdib3R0b20nKSB7XHJcbiAgICAgICAgc3RhcnRYICs9IG1lYXN1cmVUZXh0KGxlZ2VuZFRleHQsIGZvbnRTaXplLCBjb250ZXh0KSArIGl0ZW1HYXA7XHJcbiAgICAgICAgaXRlbS5hcmVhWzJdID0gc3RhcnRYO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0ZW0uYXJlYVsyXSA9IHN0YXJ0WCArIG1lYXN1cmVUZXh0KGxlZ2VuZFRleHQsIGZvbnRTaXplLCBjb250ZXh0KSArIGl0ZW1HYXA7O1xyXG4gICAgICAgIHN0YXJ0WCAtPSBzaGFwZVdpZHRoICsgc2hhcGVSaWdodDtcclxuICAgICAgICBzdGFydFkgKz0gbGluZUhlaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciBwaWVPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGFjdGl2ZU9wYWNpdHk6IDAuNSxcclxuICAgIGFjdGl2ZVJhZGl1czogMTAsXHJcbiAgICBvZmZzZXRBbmdsZTogMCxcclxuICAgIGxhYmVsV2lkdGg6IDE1LFxyXG4gICAgcmluZ1dpZHRoOiAzMCxcclxuICAgIGN1c3RvbVJhZGl1czogMCxcclxuICAgIGJvcmRlcjogZmFsc2UsXHJcbiAgICBib3JkZXJXaWR0aDogMixcclxuICAgIGJvcmRlckNvbG9yOiAnI0ZGRkZGRicsXHJcbiAgICBjZW50ZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMudHlwZSA9PSBcInBpZVwiID8gb3B0cy5leHRyYS5waWUgOiBvcHRzLmV4dHJhLnJpbmcpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmFyZWFbMF0gKyAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMlxyXG4gIH07XHJcbiAgaWYgKGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID09IDApIHtcclxuICAgIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID0gcGllT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIH1cclxuXHJcbiAgdmFyIHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nIC0gY29uZmlnLl9waWVUZXh0TWF4TGVuZ3RoXywgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBjb25maWcucGllQ2hhcnRMaW5lUGFkZGluZyAtIGNvbmZpZy5waWVDaGFydFRleHRQYWRkaW5nKTtcclxuICByYWRpdXMgPSByYWRpdXMgPCAxMCA/IDEwIDogcmFkaXVzO1xyXG4gIGlmIChwaWVPcHRpb24uY3VzdG9tUmFkaXVzID4gMCkge1xyXG4gICAgcmFkaXVzID0gcGllT3B0aW9uLmN1c3RvbVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIH1cclxuICBzZXJpZXMgPSBnZXRQaWVEYXRhUG9pbnRzKHNlcmllcywgcmFkaXVzLCBwcm9jZXNzKTtcclxuICB2YXIgYWN0aXZlUmFkaXVzID0gcGllT3B0aW9uLmFjdGl2ZVJhZGl1cyAqIG9wdHMucGl4O1xyXG4gIHBpZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihwaWVPcHRpb24ubGluZWFyVHlwZSwgcGllT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgc2VyaWVzID0gc2VyaWVzLm1hcChmdW5jdGlvbihlYWNoU2VyaWVzKSB7XHJcbiAgICBlYWNoU2VyaWVzLl9zdGFydF8gKz0gKHBpZU9wdGlvbi5vZmZzZXRBbmdsZSkgKiBNYXRoLlBJIC8gMTgwO1xyXG4gICAgcmV0dXJuIGVhY2hTZXJpZXM7XHJcbiAgfSk7XHJcbiAgc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBzZXJpZXNJbmRleCkge1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgcGllT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXyArIGFjdGl2ZVJhZGl1cywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgocGllT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocGllT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgIHZhciBmaWxsY29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yO1xyXG4gICAgaWYgKHBpZU9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgIHZhciBncmQ7XHJcbiAgICAgIGlmKGNvbnRleHQuY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCl7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGdyZCA9IGNvbnRleHQuY3JlYXRlUmFkaWFsR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgMCxjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfKVxyXG4gICAgICB9XHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IocGllT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYgKHBpZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmIChvcHRzLnR5cGUgPT09ICdyaW5nJykge1xyXG4gICAgdmFyIGlubmVyUGllV2lkdGggPSByYWRpdXMgKiAwLjY7XHJcbiAgICBpZiAodHlwZW9mIHBpZU9wdGlvbi5yaW5nV2lkdGggPT09ICdudW1iZXInICYmIHBpZU9wdGlvbi5yaW5nV2lkdGggPiAwKSB7XHJcbiAgICAgIGlubmVyUGllV2lkdGggPSBNYXRoLm1heCgwLCByYWRpdXMgLSBwaWVPcHRpb24ucmluZ1dpZHRoICogb3B0cy5waXgpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHBpZU9wdGlvbi5jZW50ZXJDb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGlubmVyUGllV2lkdGgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICB9XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3UGllVGV4dChzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgfVxyXG4gIGlmIChwcm9jZXNzID09PSAxICYmIG9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3Um9zZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgcm9zZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2FyZWEnLFxyXG4gICAgYWN0aXZlT3BhY2l0eTogMC41LFxyXG4gICAgYWN0aXZlUmFkaXVzOiAxMCxcclxuICAgIG9mZnNldEFuZ2xlOiAwLFxyXG4gICAgbGFiZWxXaWR0aDogMTUsXHJcbiAgICBib3JkZXI6IGZhbHNlLFxyXG4gICAgYm9yZGVyV2lkdGg6IDIsXHJcbiAgICBib3JkZXJDb2xvcjogJyNGRkZGRkYnLFxyXG4gICAgbGluZWFyVHlwZTogJ25vbmUnLFxyXG4gICAgY3VzdG9tQ29sb3I6IFtdLFxyXG4gIH0sIG9wdHMuZXh0cmEucm9zZSk7XHJcbiAgaWYgKGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID09IDApIHtcclxuICAgIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nID0gcm9zZU9wdGlvbi5hY3RpdmVSYWRpdXMgKiBvcHRzLnBpeDtcclxuICB9XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy5hcmVhWzNdICsgKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMixcclxuICAgIHk6IG9wdHMuYXJlYVswXSArIChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyAyXHJcbiAgfTtcclxuICB2YXIgcmFkaXVzID0gTWF0aC5taW4oKG9wdHMud2lkdGggLSBvcHRzLmFyZWFbMV0gLSBvcHRzLmFyZWFbM10pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcgLSBjb25maWcuX3BpZVRleHRNYXhMZW5ndGhfLCAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMiAtIGNvbmZpZy5waWVDaGFydExpbmVQYWRkaW5nIC0gY29uZmlnLnBpZUNoYXJ0VGV4dFBhZGRpbmcpO1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgdmFyIG1pblJhZGl1cyA9IHJvc2VPcHRpb24ubWluUmFkaXVzIHx8IHJhZGl1cyAqIDAuNTtcclxuICBpZihyYWRpdXMgPCBtaW5SYWRpdXMpe1xyXG4gICAgcmFkaXVzID0gbWluUmFkaXVzICsgMTA7XHJcbiAgfVxyXG4gIHNlcmllcyA9IGdldFJvc2VEYXRhUG9pbnRzKHNlcmllcywgcm9zZU9wdGlvbi50eXBlLCBtaW5SYWRpdXMsIHJhZGl1cywgcHJvY2Vzcyk7XHJcbiAgdmFyIGFjdGl2ZVJhZGl1cyA9IHJvc2VPcHRpb24uYWN0aXZlUmFkaXVzICogb3B0cy5waXg7XHJcbiAgcm9zZU9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihyb3NlT3B0aW9uLmxpbmVhclR5cGUsIHJvc2VPcHRpb24uY3VzdG9tQ29sb3IsIHNlcmllcywgY29uZmlnKTtcclxuICBzZXJpZXMgPSBzZXJpZXMubWFwKGZ1bmN0aW9uKGVhY2hTZXJpZXMpIHtcclxuICAgIGVhY2hTZXJpZXMuX3N0YXJ0XyArPSAocm9zZU9wdGlvbi5vZmZzZXRBbmdsZSB8fCAwKSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICByZXR1cm4gZWFjaFNlcmllcztcclxuICB9KTtcclxuICBzZXJpZXMuZm9yRWFjaChmdW5jdGlvbihlYWNoU2VyaWVzLCBzZXJpZXNJbmRleCkge1xyXG4gICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IHNlcmllc0luZGV4KSB7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCByb3NlT3B0aW9uLmFjdGl2ZU9wYWNpdHkgfHwgMC41KSk7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgYWN0aXZlUmFkaXVzICsgZWFjaFNlcmllcy5fcmFkaXVzXywgZWFjaFNlcmllcy5fc3RhcnRfLCBlYWNoU2VyaWVzLl9zdGFydF8gKyAyICogZWFjaFNlcmllcy5fcm9zZV9wcm9wb3J0aW9uXyAqIE1hdGguUEkpO1xyXG4gICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChyb3NlT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5saW5lSm9pbiA9IFwicm91bmRcIjtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUocm9zZU9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICB2YXIgZmlsbGNvbG9yID0gZWFjaFNlcmllcy5jb2xvcjtcclxuICAgIGlmIChyb3NlT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgZWFjaFNlcmllcy5fcmFkaXVzXylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZ3JkID0gY29udGV4dC5jcmVhdGVSYWRpYWxHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCAwLGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIGVhY2hTZXJpZXMuX3JhZGl1c18pXHJcbiAgICAgIH1cclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihyb3NlT3B0aW9uLmN1c3RvbUNvbG9yW2VhY2hTZXJpZXMubGluZWFySW5kZXhdLCAxKSlcclxuICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihlYWNoU2VyaWVzLmNvbG9yLCAxKSlcclxuICAgICAgZmlsbGNvbG9yID0gZ3JkXHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsY29sb3IpO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBlYWNoU2VyaWVzLl9yYWRpdXNfLCBlYWNoU2VyaWVzLl9zdGFydF8sIGVhY2hTZXJpZXMuX3N0YXJ0XyArIDIgKiBlYWNoU2VyaWVzLl9yb3NlX3Byb3BvcnRpb25fICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgY29udGV4dC5maWxsKCk7XHJcbiAgICBpZiAocm9zZU9wdGlvbi5ib3JkZXIgPT0gdHJ1ZSkge1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdQaWVUZXh0KHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCByYWRpdXMsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0FyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICB2YXIgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICB2YXIgYXJjYmFyT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICBzdGFydEFuZ2xlOiAwLjc1LFxyXG4gICAgZW5kQW5nbGU6IDAuMjUsXHJcbiAgICB0eXBlOiAnZGVmYXVsdCcsXHJcbiAgICBkaXJlY3Rpb246ICdjdycsXHJcbiAgICBsaW5lQ2FwOiAncm91bmQnLFxyXG4gICAgd2lkdGg6IDEyICxcclxuICAgIGdhcDogMiAsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5hcmNiYXIpO1xyXG4gIHNlcmllcyA9IGdldEFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBhcmNiYXJPcHRpb24sIHByb2Nlc3MpO1xyXG4gIHZhciBjZW50ZXJQb3NpdGlvbjtcclxuICBpZiAoYXJjYmFyT3B0aW9uLmNlbnRlclggfHwgYXJjYmFyT3B0aW9uLmNlbnRlclkpIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBhcmNiYXJPcHRpb24uY2VudGVyWCA/IGFyY2Jhck9wdGlvbi5jZW50ZXJYIDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICAgIHk6IGFyY2Jhck9wdGlvbi5jZW50ZXJZID8gYXJjYmFyT3B0aW9uLmNlbnRlclkgOiBvcHRzLmhlaWdodCAvIDJcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgICB4OiBvcHRzLndpZHRoIC8gMixcclxuICAgICAgeTogb3B0cy5oZWlnaHQgLyAyXHJcbiAgICB9O1xyXG4gIH1cclxuICB2YXIgcmFkaXVzO1xyXG4gIGlmIChhcmNiYXJPcHRpb24ucmFkaXVzKSB7XHJcbiAgICByYWRpdXMgPSBhcmNiYXJPcHRpb24ucmFkaXVzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIHJhZGl1cyAtPSA1ICogb3B0cy5waXg7XHJcbiAgICByYWRpdXMgLT0gYXJjYmFyT3B0aW9uLndpZHRoIC8gMjtcclxuICB9XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICBhcmNiYXJPcHRpb24uY3VzdG9tQ29sb3IgPSBmaWxsQ3VzdG9tQ29sb3IoYXJjYmFyT3B0aW9uLmxpbmVhclR5cGUsIGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvciwgc2VyaWVzLCBjb25maWcpO1xyXG4gIFxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgIC8v6IOM5pmv6aKc6ImyXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGFyY2Jhck9wdGlvbi5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNFOUU5RTknKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgaWYgKGFyY2Jhck9wdGlvbi50eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMgLSAoYXJjYmFyT3B0aW9uLndpZHRoICogb3B0cy5waXggKyBhcmNiYXJPcHRpb24uZ2FwICogb3B0cy5waXgpICogaSwgYXJjYmFyT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZW5kQW5nbGUgKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRleHQuYXJjKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIHJhZGl1cyAtIChhcmNiYXJPcHRpb24ud2lkdGggKiBvcHRzLnBpeCArIGFyY2Jhck9wdGlvbi5nYXAgKiBvcHRzLnBpeCkgKiBpLCAwLCAyICogTWF0aC5QSSwgYXJjYmFyT3B0aW9uLmRpcmVjdGlvbiA9PSAnY2N3Jyk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgLy/ov5vluqbmnaFcclxuICAgIHZhciBmaWxsQ29sb3IgPSBlYWNoU2VyaWVzLmNvbG9yXHJcbiAgICBpZihhcmNiYXJPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJyl7XHJcbiAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KGNlbnRlclBvc2l0aW9uLnggLSByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnksIGNlbnRlclBvc2l0aW9uLnggKyByYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGFyY2Jhck9wdGlvbi5jdXN0b21Db2xvcltlYWNoU2VyaWVzLmxpbmVhckluZGV4XSwgMSkpXHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IoZWFjaFNlcmllcy5jb2xvciwgMSkpXHJcbiAgICAgIGZpbGxDb2xvciA9IGdyZDtcclxuICAgIH1cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4KTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZmlsbENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcChhcmNiYXJPcHRpb24ubGluZUNhcCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzIC0gKGFyY2Jhck9wdGlvbi53aWR0aCAqIG9wdHMucGl4ICsgYXJjYmFyT3B0aW9uLmdhcCAqIG9wdHMucGl4KSAqIGksIGFyY2Jhck9wdGlvbi5zdGFydEFuZ2xlICogTWF0aC5QSSwgZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gKiBNYXRoLlBJLCBhcmNiYXJPcHRpb24uZGlyZWN0aW9uID09ICdjY3cnKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgfVxyXG4gIGRyYXdSaW5nVGl0bGUob3B0cywgY29uZmlnLCBjb250ZXh0LCBjZW50ZXJQb3NpdGlvbik7XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIHNlcmllczogc2VyaWVzXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDUgJiYgYXJndW1lbnRzWzVdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNV0gOiAxO1xyXG4gIHZhciBnYXVnZU9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgc3RhcnRBbmdsZTogMC43NSxcclxuICAgIGVuZEFuZ2xlOiAwLjI1LFxyXG4gICAgd2lkdGg6IDE1LFxyXG4gICAgbGFiZWxPZmZzZXQ6MTMsXHJcbiAgICBzcGxpdExpbmU6IHtcclxuICAgICAgZml4UmFkaXVzOiAwLFxyXG4gICAgICBzcGxpdE51bWJlcjogMTAsXHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICcjRkZGRkZGJyxcclxuICAgICAgY2hpbGROdW1iZXI6IDUsXHJcbiAgICAgIGNoaWxkV2lkdGg6IDVcclxuICAgIH0sXHJcbiAgICBwb2ludGVyOiB7XHJcbiAgICAgIHdpZHRoOiAxNSxcclxuICAgICAgY29sb3I6ICdhdXRvJ1xyXG4gICAgfVxyXG4gIH0sIG9wdHMuZXh0cmEuZ2F1Z2UpO1xyXG4gIGlmIChnYXVnZU9wdGlvbi5vbGRBbmdsZSA9PSB1bmRlZmluZWQpIHtcclxuICAgIGdhdWdlT3B0aW9uLm9sZEFuZ2xlID0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICB9XHJcbiAgaWYgKGdhdWdlT3B0aW9uLm9sZERhdGEgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBnYXVnZU9wdGlvbi5vbGREYXRhID0gMDtcclxuICB9XHJcbiAgY2F0ZWdvcmllcyA9IGdldEdhdWdlQXhpc1BvaW50cyhjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSk7XHJcbiAgdmFyIGNlbnRlclBvc2l0aW9uID0ge1xyXG4gICAgeDogb3B0cy53aWR0aCAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAvIDJcclxuICB9O1xyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbihjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICByYWRpdXMgLT0gNSAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyAtPSBnYXVnZU9wdGlvbi53aWR0aCAvIDI7XHJcbiAgcmFkaXVzID0gcmFkaXVzIDwgMTAgPyAxMCA6IHJhZGl1cztcclxuICB2YXIgaW5uZXJSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aDtcclxuICB2YXIgdG90YWxBbmdsZSA9IDA7XHJcbiAgLy/liKTmlq3ku6rooajnm5jnmoTmoLflvI/vvJpkZWZhdWx055m+5bqm5qC35byP77yMcHJvZ3Jlc3PmlrDmoLflvI9cclxuICBpZiAoZ2F1Z2VPcHRpb24udHlwZSA9PSAncHJvZ3Jlc3MnKSB7XHJcbiAgICAvLyMjIOesrOS4gOatpeeUu+S4reW/g+WchuW9ouiDjOaZr+WSjOi/m+W6puadoeiDjOaZr1xyXG4gICAgLy/kuK3lv4PlnIblvaLog4zmma9cclxuICAgIHZhciBwaWVSYWRpdXMgPSByYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDM7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgbGV0IGdyYWRpZW50ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55IC0gcGllUmFkaXVzLCBjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55ICsgcGllUmFkaXVzKTtcclxuICAgIC8v6YWN572u5riQ5Y+Y5aGr5YWF77yI6LW354K577ya5Lit5b+D54K55ZCR5LiK5YeP5Y2K5b6E77yb57uT5p2f54K55Lit5b+D54K55ZCR5LiL5Yqg5Y2K5b6E77yJXHJcbiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoJzAnLCBoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYihcIiNGRkZGRkZcIiwgMC4xKSk7XHJcbiAgICBjb250ZXh0LnNldEZpbGxTdHlsZShncmFkaWVudCk7XHJcbiAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCBwaWVSYWRpdXMsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgIC8v55S76L+b5bqm5p2h6IOM5pmvXHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGhleFRvUmdiKHNlcmllc1swXS5jb2xvciwgMC4zKSk7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBnYXVnZU9wdGlvbi5lbmRBbmdsZSAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAvLyMjIOesrOS6jOatpeeUu+WIu+W6pue6v1xyXG4gICAgaWYgKGdhdWdlT3B0aW9uLmVuZEFuZ2xlIDwgZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSkge1xyXG4gICAgICB0b3RhbEFuZ2xlID0gMiArIGdhdWdlT3B0aW9uLmVuZEFuZ2xlIC0gZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRvdGFsQW5nbGUgPSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlIC0gZ2F1Z2VPcHRpb24uZW5kQW5nbGU7XHJcbiAgICB9XHJcbiAgICBsZXQgc3BsaXRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXI7XHJcbiAgICBsZXQgY2hpbGRBbmdsZSA9IHRvdGFsQW5nbGUgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgLyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXI7XHJcbiAgICBsZXQgc3RhcnRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMC41IC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cztcclxuICAgIGxldCBlbmRYID0gLXJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmZpeFJhZGl1cyArIGdhdWdlT3B0aW9uLnNwbGl0TGluZS53aWR0aDtcclxuICAgIGNvbnRleHQuc2F2ZSgpO1xyXG4gICAgY29udGV4dC50cmFuc2xhdGUoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBjb250ZXh0LnJvdGF0ZSgoZ2F1Z2VPcHRpb24uc3RhcnRBbmdsZSAtIDEpICogTWF0aC5QSSk7XHJcbiAgICBsZXQgbGVuID0gZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLnNwbGl0TnVtYmVyICogZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLmNoaWxkTnVtYmVyICsgMTtcclxuICAgIGxldCBwcm9jID0gc2VyaWVzWzBdLmRhdGEgKiBwcm9jZXNzO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAvL+WIu+W6pue6v+maj+i/m+W6puWPmOiJslxyXG4gICAgICBpZiAocHJvYyA+IChpIC8gbGVuKSkge1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShoZXhUb1JnYihzZXJpZXNbMF0uY29sb3IsIDAuMykpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDMgKiBvcHRzLnBpeCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8vIyMg56ys5LiJ5q2l55S76L+b5bqm5p2hXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZUFyY2JhckRhdGFQb2ludHMoc2VyaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0LnNldExpbmVDYXAoJ3JvdW5kJyk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgaW5uZXJSYWRpdXMsIGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgKiBNYXRoLlBJLCBzZXJpZXNbMF0uX3Byb3BvcnRpb25fICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIC8vIyMg56ys5Zub5q2l55S75oyH6ZKIXHJcbiAgICBsZXQgcG9pbnRlclJhZGl1cyA9IHJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoICogMi41O1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBjb250ZXh0LnRyYW5zbGF0ZShjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55KTtcclxuICAgIGNvbnRleHQucm90YXRlKChzZXJpZXNbMF0uX3Byb3BvcnRpb25fIC0gMSkgKiBNYXRoLlBJKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aChnYXVnZU9wdGlvbi53aWR0aCAvIDMpO1xyXG4gICAgbGV0IGdyYWRpZW50MyA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgLXBvaW50ZXJSYWRpdXMgKiAwLjYsIDAsIHBvaW50ZXJSYWRpdXMgKiAwLjYpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMCcsIGhleFRvUmdiKCcjRkZGRkZGJywgMCkpO1xyXG4gICAgZ3JhZGllbnQzLmFkZENvbG9yU3RvcCgnMC41JywgaGV4VG9SZ2Ioc2VyaWVzWzBdLmNvbG9yLCAxKSk7XHJcbiAgICBncmFkaWVudDMuYWRkQ29sb3JTdG9wKCcxLjAnLCBoZXhUb1JnYignI0ZGRkZGRicsIDApKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZ3JhZGllbnQzKTtcclxuICAgIGNvbnRleHQuYXJjKDAsIDAsIHBvaW50ZXJSYWRpdXMsIDAuODUgKiBNYXRoLlBJLCAxLjE1ICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxKTtcclxuICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoc2VyaWVzWzBdLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKHNlcmllc1swXS5jb2xvcik7XHJcbiAgICBjb250ZXh0Lm1vdmVUbygtcG9pbnRlclJhZGl1cyAtIGdhdWdlT3B0aW9uLndpZHRoIC8gMyAvIDIsIC00KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiAtIDQsIDApO1xyXG4gICAgY29udGV4dC5saW5lVG8oLXBvaW50ZXJSYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAvIDMgLyAyLCA0KTtcclxuICAgIGNvbnRleHQubGluZVRvKC1wb2ludGVyUmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggLyAzIC8gMiwgLTQpO1xyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICAvL2RlZmF1bHTnmb7luqbmoLflvI9cclxuICB9IGVsc2Uge1xyXG4gICAgLy/nlLvog4zmma9cclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGdhdWdlT3B0aW9uLndpZHRoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZUNhcCgnYnV0dCcpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBlYWNoQ2F0ZWdvcmllcyA9IGNhdGVnb3JpZXNbaV07XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZWFjaENhdGVnb3JpZXMuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LmFyYyhjZW50ZXJQb3NpdGlvbi54LCBjZW50ZXJQb3NpdGlvbi55LCByYWRpdXMsIGVhY2hDYXRlZ29yaWVzLl9zdGFydEFuZ2xlXyAqIE1hdGguUEksIGVhY2hDYXRlZ29yaWVzLl9lbmRBbmdsZV8gKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIC8v55S75Yi75bqm57q/XHJcbiAgICBpZiAoZ2F1Z2VPcHRpb24uZW5kQW5nbGUgPCBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlKSB7XHJcbiAgICAgIHRvdGFsQW5nbGUgPSAyICsgZ2F1Z2VPcHRpb24uZW5kQW5nbGUgLSBnYXVnZU9wdGlvbi5zdGFydEFuZ2xlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdG90YWxBbmdsZSA9IGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSBnYXVnZU9wdGlvbi5lbmRBbmdsZTtcclxuICAgIH1cclxuICAgIGxldCBzcGxpdEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlcjtcclxuICAgIGxldCBjaGlsZEFuZ2xlID0gdG90YWxBbmdsZSAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5zcGxpdE51bWJlciAvIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5jaGlsZE51bWJlcjtcclxuICAgIGxldCBzdGFydFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzO1xyXG4gICAgbGV0IGVuZFggPSAtcmFkaXVzIC0gZ2F1Z2VPcHRpb24ud2lkdGggKiAwLjUgLSBnYXVnZU9wdGlvbi5zcGxpdExpbmUuZml4UmFkaXVzICsgZ2F1Z2VPcHRpb24uc3BsaXRMaW5lLndpZHRoO1xyXG4gICAgbGV0IGNoaWxkZW5kWCA9IC1yYWRpdXMgLSBnYXVnZU9wdGlvbi53aWR0aCAqIDAuNSAtIGdhdWdlT3B0aW9uLnNwbGl0TGluZS5maXhSYWRpdXMgKyBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGRXaWR0aDtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgyICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhlbmRYLCAwKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5yb3RhdGUoc3BsaXRBbmdsZSAqIE1hdGguUEkpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgICBjb250ZXh0LnNhdmUoKTtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgY29udGV4dC5yb3RhdGUoKGdhdWdlT3B0aW9uLnN0YXJ0QW5nbGUgLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnYXVnZU9wdGlvbi5zcGxpdExpbmUuc3BsaXROdW1iZXIgKiBnYXVnZU9wdGlvbi5zcGxpdExpbmUuY2hpbGROdW1iZXIgKyAxOyBpKyspIHtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShnYXVnZU9wdGlvbi5zcGxpdExpbmUuY29sb3IpO1xyXG4gICAgICBjb250ZXh0LnNldExpbmVXaWR0aCgxICogb3B0cy5waXgpO1xyXG4gICAgICBjb250ZXh0Lm1vdmVUbyhzdGFydFgsIDApO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhjaGlsZGVuZFgsIDApO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZShjaGlsZEFuZ2xlICogTWF0aC5QSSk7XHJcbiAgICB9XHJcbiAgICBjb250ZXh0LnJlc3RvcmUoKTtcclxuICAgIC8v55S75oyH6ZKIXHJcbiAgICBzZXJpZXMgPSBnZXRHYXVnZURhdGFQb2ludHMoc2VyaWVzLCBjYXRlZ29yaWVzLCBnYXVnZU9wdGlvbiwgcHJvY2Vzcyk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZWFjaFNlcmllcyA9IHNlcmllc1tpXTtcclxuICAgICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSgoZWFjaFNlcmllcy5fcHJvcG9ydGlvbl8gLSAxKSAqIE1hdGguUEkpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIC1nYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gMik7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKC1pbm5lclJhZGl1cywgMCk7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKDAsIGdhdWdlT3B0aW9uLnBvaW50ZXIud2lkdGggLyAyKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZ2F1Z2VPcHRpb24ucG9pbnRlci53aWR0aCwgMCk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZSgnI0ZGRkZGRicpO1xyXG4gICAgICBjb250ZXh0LmFyYygwLCAwLCBnYXVnZU9wdGlvbi5wb2ludGVyLndpZHRoIC8gNiwgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSkge1xyXG4gICAgICBkcmF3R2F1Z2VMYWJlbChnYXVnZU9wdGlvbiwgcmFkaXVzLCBjZW50ZXJQb3NpdGlvbiwgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/nlLvku6rooajnm5jmoIfpopjvvIzlia/moIfpophcclxuICBkcmF3UmluZ1RpdGxlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIGlmIChwcm9jZXNzID09PSAxICYmIG9wdHMudHlwZSA9PT0gJ2dhdWdlJykge1xyXG4gICAgb3B0cy5leHRyYS5nYXVnZS5vbGRBbmdsZSA9IHNlcmllc1swXS5fcHJvcG9ydGlvbl87XHJcbiAgICBvcHRzLmV4dHJhLmdhdWdlLm9sZERhdGEgPSBzZXJpZXNbMF0uZGF0YTtcclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGNlbnRlcjogY2VudGVyUG9zaXRpb24sXHJcbiAgICByYWRpdXM6IHJhZGl1cyxcclxuICAgIGlubmVyUmFkaXVzOiBpbm5lclJhZGl1cyxcclxuICAgIGNhdGVnb3JpZXM6IGNhdGVnb3JpZXMsXHJcbiAgICB0b3RhbEFuZ2xlOiB0b3RhbEFuZ2xlXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1JhZGFyRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBwcm9jZXNzID0gYXJndW1lbnRzLmxlbmd0aCA+IDQgJiYgYXJndW1lbnRzWzRdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbNF0gOiAxO1xyXG4gIHZhciByYWRhck9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgZ3JpZENvbG9yOiAnI2NjY2NjYycsXHJcbiAgICBncmlkVHlwZTogJ3JhZGFyJyxcclxuICAgIGdyaWRFdmFsOjEsXHJcbiAgICBheGlzTGFiZWw6ZmFsc2UsXHJcbiAgICBheGlzTGFiZWxUb2ZpeDowLFxyXG4gICAgbGFiZWxTaG93OnRydWUsXHJcbiAgICBsYWJlbENvbG9yOicjNjY2NjY2JyxcclxuICAgIGxhYmVsUG9pbnRTaG93OmZhbHNlLFxyXG4gICAgbGFiZWxQb2ludFJhZGl1czozLFxyXG4gICAgbGFiZWxQb2ludENvbG9yOicjY2NjY2NjJyxcclxuICAgIG9wYWNpdHk6IDAuMixcclxuICAgIGdyaWRDb3VudDogMyxcclxuICAgIGJvcmRlcjpmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOjIsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5yYWRhcik7XHJcbiAgdmFyIGNvb3JkaW5hdGVBbmdsZSA9IGdldFJhZGFyQ29vcmRpbmF0ZVNlcmllcyhvcHRzLmNhdGVnb3JpZXMubGVuZ3RoKTtcclxuICB2YXIgY2VudGVyUG9zaXRpb24gPSB7XHJcbiAgICB4OiBvcHRzLmFyZWFbM10gKyAob3B0cy53aWR0aCAtIG9wdHMuYXJlYVsxXSAtIG9wdHMuYXJlYVszXSkgLyAyLFxyXG4gICAgeTogb3B0cy5hcmVhWzBdICsgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDJcclxuICB9O1xyXG4gIHZhciB4ciA9IChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDJcclxuICB2YXIgeXIgPSAob3B0cy5oZWlnaHQgLSBvcHRzLmFyZWFbMF0gLSBvcHRzLmFyZWFbMl0pIC8gMlxyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbih4ciAtIChnZXRNYXhUZXh0TGlzdExlbmd0aChvcHRzLmNhdGVnb3JpZXMsIGNvbmZpZy5mb250U2l6ZSwgY29udGV4dCkgKyBjb25maWcucmFkYXJMYWJlbFRleHRNYXJnaW4pLCB5ciAtIGNvbmZpZy5yYWRhckxhYmVsVGV4dE1hcmdpbik7XHJcbiAgcmFkaXVzIC09IGNvbmZpZy5yYWRhckxhYmVsVGV4dE1hcmdpbiAqIG9wdHMucGl4O1xyXG4gIHJhZGl1cyA9IHJhZGl1cyA8IDEwID8gMTAgOiByYWRpdXM7XHJcbiAgcmFkaXVzID0gcmFkYXJPcHRpb24ucmFkaXVzID8gcmFkYXJPcHRpb24ucmFkaXVzIDogcmFkaXVzO1xyXG4gIC8vIOeUu+WIhuWJsue6v1xyXG4gIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgY29vcmRpbmF0ZUFuZ2xlLmZvckVhY2goZnVuY3Rpb24oYW5nbGUsaW5kZXgpIHtcclxuICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSksIHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKSwgY2VudGVyUG9zaXRpb24pO1xyXG4gICAgY29udGV4dC5tb3ZlVG8oY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSk7XHJcbiAgICBpZiAoaW5kZXggJSByYWRhck9wdGlvbi5ncmlkRXZhbCA9PSAwKSB7XHJcbiAgICAgIGNvbnRleHQubGluZVRvKHBvcy54LCBwb3MueSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgY29udGV4dC5zdHJva2UoKTtcclxuICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gIFxyXG4gIC8vIOeUu+iDjOaZr+e9keagvFxyXG4gIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKGkpIHtcclxuICAgIHZhciBzdGFydFBvcyA9IHt9O1xyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKDEgKiBvcHRzLnBpeCk7XHJcbiAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKHJhZGFyT3B0aW9uLmdyaWRDb2xvcik7XHJcbiAgICBpZiAocmFkYXJPcHRpb24uZ3JpZFR5cGUgPT0gJ3JhZGFyJykge1xyXG4gICAgICBjb29yZGluYXRlQW5nbGUuZm9yRWFjaChmdW5jdGlvbihhbmdsZSwgaW5kZXgpIHtcclxuICAgICAgICB2YXIgcG9zID0gY29udmVydENvb3JkaW5hdGVPcmlnaW4ocmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguY29zKGFuZ2xlKSwgcmFkaXVzIC9cclxuICAgICAgICAgIHJhZGFyT3B0aW9uLmdyaWRDb3VudCAqIGkgKiBNYXRoLnNpbihhbmdsZSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICAgIHN0YXJ0UG9zID0gcG9zO1xyXG4gICAgICAgICAgY29udGV4dC5tb3ZlVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9zLngsIHBvcy55KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmxpbmVUbyhzdGFydFBvcy54LCBzdGFydFBvcy55KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhciBwb3MgPSBjb252ZXJ0Q29vcmRpbmF0ZU9yaWdpbihyYWRpdXMgLyByYWRhck9wdGlvbi5ncmlkQ291bnQgKiBpICogTWF0aC5jb3MoMS41KSwgcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50ICogaSAqIE1hdGguc2luKDEuNSksIGNlbnRlclBvc2l0aW9uKTtcclxuICAgICAgY29udGV4dC5hcmMoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgY2VudGVyUG9zaXRpb24ueSAtIHBvcy55LCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgfTtcclxuICBmb3IgKHZhciBpID0gMTsgaSA8PSByYWRhck9wdGlvbi5ncmlkQ291bnQ7IGkrKykge1xyXG4gICAgX2xvb3AoaSk7XHJcbiAgfVxyXG4gIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yID0gZmlsbEN1c3RvbUNvbG9yKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUsIHJhZGFyT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgdmFyIHJhZGFyRGF0YVBvaW50cyA9IGdldFJhZGFyRGF0YVBvaW50cyhjb29yZGluYXRlQW5nbGUsIGNlbnRlclBvc2l0aW9uLCByYWRpdXMsIHNlcmllcywgb3B0cywgcHJvY2Vzcyk7XHJcbiAgcmFkYXJEYXRhUG9pbnRzLmZvckVhY2goZnVuY3Rpb24oZWFjaFNlcmllcywgc2VyaWVzSW5kZXgpIHtcclxuICAgIC8vIOe7mOWItuWMuuWfn+aVsOaNrlxyXG4gICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKHJhZGFyT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShlYWNoU2VyaWVzLmNvbG9yKTtcclxuICAgIFxyXG4gICAgdmFyIGZpbGxjb2xvciA9IGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpO1xyXG4gICAgaWYgKHJhZGFyT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgdmFyIGdyZDtcclxuICAgICAgaWYoY29udGV4dC5jcmVhdGVDaXJjdWxhckdyYWRpZW50KXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZUNpcmN1bGFyR3JhZGllbnQoY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBncmQgPSBjb250ZXh0LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnksIDAsY2VudGVyUG9zaXRpb24ueCwgY2VudGVyUG9zaXRpb24ueSwgcmFkaXVzKVxyXG4gICAgICB9XHJcbiAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2IocmFkYXJPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzW3Nlcmllc0luZGV4XS5saW5lYXJJbmRleF0sIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKGVhY2hTZXJpZXMuY29sb3IsIHJhZGFyT3B0aW9uLm9wYWNpdHkpKVxyXG4gICAgICBmaWxsY29sb3IgPSBncmRcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbGNvbG9yKTtcclxuICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhpdGVtLnBvc2l0aW9uLngsIGl0ZW0ucG9zaXRpb24ueSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgaWYocmFkYXJPcHRpb24uYm9yZGVyID09PSB0cnVlKXtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIH1cclxuICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICBpZiAob3B0cy5kYXRhUG9pbnRTaGFwZSAhPT0gZmFsc2UpIHtcclxuICAgICAgdmFyIHBvaW50cyA9IGVhY2hTZXJpZXMuZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnBvc2l0aW9uO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJhd1BvaW50U2hhcGUocG9pbnRzLCBlYWNoU2VyaWVzLmNvbG9yLCBlYWNoU2VyaWVzLnBvaW50U2hhcGUsIGNvbnRleHQsIG9wdHMpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIC8vIOeUu+WIu+W6puWAvFxyXG4gIGlmKHJhZGFyT3B0aW9uLmF4aXNMYWJlbCA9PT0gdHJ1ZSl7XHJcbiAgICBjb25zdCBtYXhEYXRhID0gTWF0aC5tYXgocmFkYXJPcHRpb24ubWF4LCBNYXRoLm1heC5hcHBseShudWxsLCBkYXRhQ29tYmluZShzZXJpZXMpKSk7XHJcbiAgICBjb25zdCBzdGVwTGVuZ3RoID0gcmFkaXVzIC8gcmFkYXJPcHRpb24uZ3JpZENvdW50O1xyXG4gICAgY29uc3QgZm9udFNpemUgPSBvcHRzLmZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuZm9udENvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0VGV4dEFsaWduKCdsZWZ0Jyk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhZGFyT3B0aW9uLmdyaWRDb3VudCArIDE7IGkrKykge1xyXG4gICAgICBsZXQgbGFiZWwgPSBpICogbWF4RGF0YSAvIHJhZGFyT3B0aW9uLmdyaWRDb3VudDtcclxuICAgICAgbGFiZWwgPSBsYWJlbC50b0ZpeGVkKHJhZGFyT3B0aW9uLmF4aXNMYWJlbFRvZml4KTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChTdHJpbmcobGFiZWwpLCBjZW50ZXJQb3NpdGlvbi54ICsgMyAqIG9wdHMucGl4LCBjZW50ZXJQb3NpdGlvbi55IC0gaSAqIHN0ZXBMZW5ndGggKyBmb250U2l6ZSAvIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvLyBkcmF3IGxhYmVsIHRleHRcclxuICBkcmF3UmFkYXJMYWJlbChjb29yZGluYXRlQW5nbGUsIHJhZGl1cywgY2VudGVyUG9zaXRpb24sIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgXHJcbiAgLy8gZHJhdyBkYXRhTGFiZWxcclxuICBpZiAob3B0cy5kYXRhTGFiZWwgIT09IGZhbHNlICYmIHByb2Nlc3MgPT09IDEpIHtcclxuICAgIHJhZGFyRGF0YVBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVhY2hTZXJpZXMsIHNlcmllc0luZGV4KSB7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHZhciBmb250U2l6ZSA9IGVhY2hTZXJpZXMudGV4dFNpemUgKiBvcHRzLnBpeCB8fCBjb25maWcuZm9udFNpemU7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShlYWNoU2VyaWVzLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGVhY2hTZXJpZXMuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgICAgLy/lpoLmnpzmmK/kuK3lv4PngrnlnoLnm7TnmoTkuIrkuIvngrnkvY1cclxuICAgICAgICBpZihNYXRoLmFicyhpdGVtLnBvc2l0aW9uLnggLSBjZW50ZXJQb3NpdGlvbi54KTwyKXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5LiK6Z2iXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnkgPCBjZW50ZXJQb3NpdGlvbi55KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55IC0gNCk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2NlbnRlcicpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KGl0ZW0udmFsdWUsIGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgKyAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIC8v5aaC5p6c5Zyo5bem5L6nXHJcbiAgICAgICAgICBpZihpdGVtLnBvc2l0aW9uLnggPCBjZW50ZXJQb3NpdGlvbi54KXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQoaXRlbS52YWx1ZSwgaXRlbS5wb3NpdGlvbi54IC0gNCwgaXRlbS5wb3NpdGlvbi55ICsgZm9udFNpemUgLyAyIC0gMik7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0QWxpZ24oJ2xlZnQnKTtcclxuICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLnZhbHVlLCBpdGVtLnBvc2l0aW9uLnggKyA0LCBpdGVtLnBvc2l0aW9uLnkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgfSk7XHJcbiAgICBjb250ZXh0LnNldFRleHRBbGlnbignbGVmdCcpO1xyXG4gIH1cclxuICBcclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgYW5nbGVMaXN0OiBjb29yZGluYXRlQW5nbGVcclxuICB9O1xyXG59XHJcblxyXG4vLyDnu4/nuqzluqbovazloqjljaHmiZhcclxuZnVuY3Rpb24gbG9ubGF0Mm1lcmNhdG9yKGxvbmdpdHVkZSwgbGF0aXR1ZGUpIHtcclxuICB2YXIgbWVyY2F0b3IgPSBBcnJheSgyKTtcclxuICB2YXIgeCA9IGxvbmdpdHVkZSAqIDIwMDM3NTA4LjM0IC8gMTgwO1xyXG4gIHZhciB5ID0gTWF0aC5sb2coTWF0aC50YW4oKDkwICsgbGF0aXR1ZGUpICogTWF0aC5QSSAvIDM2MCkpIC8gKE1hdGguUEkgLyAxODApO1xyXG4gIHkgPSB5ICogMjAwMzc1MDguMzQgLyAxODA7XHJcbiAgbWVyY2F0b3JbMF0gPSB4O1xyXG4gIG1lcmNhdG9yWzFdID0geTtcclxuICByZXR1cm4gbWVyY2F0b3I7XHJcbn1cclxuXHJcbi8vIOWiqOWNoeaJmOi9rOe7j+e6rOW6plxyXG5mdW5jdGlvbiBtZXJjYXRvcjJsb25sYXQobG9uZ2l0dWRlLCBsYXRpdHVkZSkge1xyXG4gIHZhciBsb25sYXQgPSBBcnJheSgyKVxyXG4gIHZhciB4ID0gbG9uZ2l0dWRlIC8gMjAwMzc1MDguMzQgKiAxODA7XHJcbiAgdmFyIHkgPSBsYXRpdHVkZSAvIDIwMDM3NTA4LjM0ICogMTgwO1xyXG4gIHkgPSAxODAgLyBNYXRoLlBJICogKDIgKiBNYXRoLmF0YW4oTWF0aC5leHAoeSAqIE1hdGguUEkgLyAxODApKSAtIE1hdGguUEkgLyAyKTtcclxuICBsb25sYXRbMF0gPSB4O1xyXG4gIGxvbmxhdFsxXSA9IHk7XHJcbiAgcmV0dXJuIGxvbmxhdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdCb3goZGF0YSkge1xyXG4gIHZhciBib3VuZHMgPSB7fSxjb29yZHM7XHJcbiAgYm91bmRzLnhNaW4gPSAxODA7XHJcbiAgYm91bmRzLnhNYXggPSAwO1xyXG4gIGJvdW5kcy55TWluID0gOTA7XHJcbiAgYm91bmRzLnlNYXggPSAwXHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgbG9uZ2l0dWRlID0gY29vcmRzW2pdWzBdO1xyXG4gICAgICAgIHZhciBsYXRpdHVkZSA9IGNvb3Jkc1tqXVsxXTtcclxuICAgICAgICB2YXIgcG9pbnQgPSB7XHJcbiAgICAgICAgICB4OiBsb25naXR1ZGUsXHJcbiAgICAgICAgICB5OiBsYXRpdHVkZVxyXG4gICAgICAgIH1cclxuICAgICAgICBib3VuZHMueE1pbiA9IGJvdW5kcy54TWluIDwgcG9pbnQueCA/IGJvdW5kcy54TWluIDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueE1heCA9IGJvdW5kcy54TWF4ID4gcG9pbnQueCA/IGJvdW5kcy54TWF4IDogcG9pbnQueDtcclxuICAgICAgICBib3VuZHMueU1pbiA9IGJvdW5kcy55TWluIDwgcG9pbnQueSA/IGJvdW5kcy55TWluIDogcG9pbnQueTtcclxuICAgICAgICBib3VuZHMueU1heCA9IGJvdW5kcy55TWF4ID4gcG9pbnQueSA/IGJvdW5kcy55TWF4IDogcG9pbnQueTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gYm91bmRzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb29yZGluYXRlVG9Qb2ludChsYXRpdHVkZSwgbG9uZ2l0dWRlLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHg6IChsb25naXR1ZGUgLSBib3VuZHMueE1pbikgKiBzY2FsZSArIHhvZmZzZXQsXHJcbiAgICB5OiAoYm91bmRzLnlNYXggLSBsYXRpdHVkZSkgKiBzY2FsZSArIHlvZmZzZXRcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBwb2ludFRvQ29vcmRpbmF0ZShwb2ludFksIHBvaW50WCwgYm91bmRzLCBzY2FsZSwgeG9mZnNldCwgeW9mZnNldCkge1xyXG4gIHJldHVybiB7XHJcbiAgICB4OiAocG9pbnRYIC0geG9mZnNldCkgLyBzY2FsZSArIGJvdW5kcy54TWluLFxyXG4gICAgeTogYm91bmRzLnlNYXggLSAocG9pbnRZIC0geW9mZnNldCkgLyBzY2FsZVxyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpIHtcclxuICBpZiAoc19wb2lbMV0gPT0gZV9wb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzFdID4gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChzX3BvaVsxXSA8IHBvaVsxXSAmJiBlX3BvaVsxXSA8IHBvaVsxXSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAoc19wb2lbMV0gPT0gcG9pWzFdICYmIGVfcG9pWzFdID4gcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmIChlX3BvaVsxXSA9PSBwb2lbMV0gJiYgc19wb2lbMV0gPiBwb2lbMV0pIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgaWYgKHNfcG9pWzBdIDwgcG9pWzBdICYmIGVfcG9pWzFdIDwgcG9pWzFdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGxldCB4c2VnID0gZV9wb2lbMF0gLSAoZV9wb2lbMF0gLSBzX3BvaVswXSkgKiAoZV9wb2lbMV0gLSBwb2lbMV0pIC8gKGVfcG9pWzFdIC0gc19wb2lbMV0pO1xyXG4gIGlmICh4c2VnIDwgcG9pWzBdKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaXNQb2lXaXRoaW5Qb2x5KHBvaSwgcG9seSwgbWVyY2F0b3IpIHtcclxuICBsZXQgc2luc2MgPSAwO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9seS5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGVwb2x5ID0gcG9seVtpXVswXTtcclxuICAgIGlmIChwb2x5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGVwb2x5ID0gcG9seVtpXVswXVxyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBlcG9seS5sZW5ndGggLSAxOyBqKyspIHtcclxuICAgICAgbGV0IHNfcG9pID0gZXBvbHlbal07XHJcbiAgICAgIGxldCBlX3BvaSA9IGVwb2x5W2ogKyAxXTtcclxuICAgICAgaWYgKG1lcmNhdG9yKSB7XHJcbiAgICAgICAgc19wb2kgPSBsb25sYXQybWVyY2F0b3IoZXBvbHlbal1bMF0sIGVwb2x5W2pdWzFdKTtcclxuICAgICAgICBlX3BvaSA9IGxvbmxhdDJtZXJjYXRvcihlcG9seVtqICsgMV1bMF0sIGVwb2x5W2ogKyAxXVsxXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzUmF5SW50ZXJzZWN0c1NlZ21lbnQocG9pLCBzX3BvaSwgZV9wb2kpKSB7XHJcbiAgICAgICAgc2luc2MgKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAoc2luc2MgJSAyID09IDEpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3TWFwRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCkge1xyXG4gIHZhciBtYXBPcHRpb24gPSBhc3NpZ24oe30sIHtcclxuICAgIGJvcmRlcjogdHJ1ZSxcclxuICAgIG1lcmNhdG9yOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAxLFxyXG4gICAgYWN0aXZlOnRydWUsXHJcbiAgICBib3JkZXJDb2xvcjogJyM2NjY2NjYnLFxyXG4gICAgZmlsbE9wYWNpdHk6IDAuNixcclxuICAgIGFjdGl2ZUJvcmRlckNvbG9yOiAnI2YwNDg2NCcsXHJcbiAgICBhY3RpdmVGaWxsQ29sb3I6ICcjZmFjYzE0JyxcclxuICAgIGFjdGl2ZUZpbGxPcGFjaXR5OiAxXHJcbiAgfSwgb3B0cy5leHRyYS5tYXApO1xyXG4gIHZhciBjb29yZHMsIHBvaW50O1xyXG4gIHZhciBkYXRhID0gc2VyaWVzO1xyXG4gIHZhciBib3VuZHMgPSBnZXRCb3VuZGluZ0JveChkYXRhKTtcclxuICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICB2YXIgbWF4ID0gbG9ubGF0Mm1lcmNhdG9yKGJvdW5kcy54TWF4LCBib3VuZHMueU1heClcclxuICAgIHZhciBtaW4gPSBsb25sYXQybWVyY2F0b3IoYm91bmRzLnhNaW4sIGJvdW5kcy55TWluKVxyXG4gICAgYm91bmRzLnhNYXggPSBtYXhbMF1cclxuICAgIGJvdW5kcy55TWF4ID0gbWF4WzFdXHJcbiAgICBib3VuZHMueE1pbiA9IG1pblswXVxyXG4gICAgYm91bmRzLnlNaW4gPSBtaW5bMV1cclxuICB9XHJcbiAgdmFyIHhTY2FsZSA9IG9wdHMud2lkdGggLyBNYXRoLmFicyhib3VuZHMueE1heCAtIGJvdW5kcy54TWluKTtcclxuICB2YXIgeVNjYWxlID0gb3B0cy5oZWlnaHQgLyBNYXRoLmFicyhib3VuZHMueU1heCAtIGJvdW5kcy55TWluKTtcclxuICB2YXIgc2NhbGUgPSB4U2NhbGUgPCB5U2NhbGUgPyB4U2NhbGUgOiB5U2NhbGU7XHJcbiAgdmFyIHhvZmZzZXQgPSBvcHRzLndpZHRoIC8gMiAtIE1hdGguYWJzKGJvdW5kcy54TWF4IC0gYm91bmRzLnhNaW4pIC8gMiAqIHNjYWxlO1xyXG4gIHZhciB5b2Zmc2V0ID0gb3B0cy5oZWlnaHQgLyAyIC0gTWF0aC5hYnMoYm91bmRzLnlNYXggLSBib3VuZHMueU1pbikgLyAyICogc2NhbGU7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRMaW5lV2lkdGgobWFwT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzW2ldLmNvbG9yLCBzZXJpZXNbaV0uZmlsbE9wYWNpdHl8fG1hcE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgaWYgKG1hcE9wdGlvbi5hY3RpdmUgPT0gdHJ1ZSAmJiBvcHRzLnRvb2x0aXApIHtcclxuICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShtYXBPcHRpb24uYWN0aXZlQm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKG1hcE9wdGlvbi5hY3RpdmVGaWxsQ29sb3IsIG1hcE9wdGlvbi5hY3RpdmVGaWxsT3BhY2l0eSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgY29vcmRhID0gZGF0YVtpXS5nZW9tZXRyeS5jb29yZGluYXRlc1xyXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBjb29yZGEubGVuZ3RoOyBrKyspIHtcclxuICAgICAgY29vcmRzID0gY29vcmRhW2tdO1xyXG4gICAgICBpZiAoY29vcmRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgY29vcmRzID0gY29vcmRzWzBdXHJcbiAgICAgIH1cclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb29yZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICB2YXIgZ2Fvc2kgPSBBcnJheSgyKTtcclxuICAgICAgICBpZiAobWFwT3B0aW9uLm1lcmNhdG9yKSB7XHJcbiAgICAgICAgICBnYW9zaSA9IGxvbmxhdDJtZXJjYXRvcihjb29yZHNbal1bMF0sIGNvb3Jkc1tqXVsxXSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZ2Fvc2kgPSBjb29yZHNbal1cclxuICAgICAgICB9XHJcbiAgICAgICAgcG9pbnQgPSBjb29yZGluYXRlVG9Qb2ludChnYW9zaVsxXSwgZ2Fvc2lbMF0sIGJvdW5kcywgc2NhbGUsIHhvZmZzZXQsIHlvZmZzZXQpXHJcbiAgICAgICAgaWYgKGogPT09IDApIHtcclxuICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICBjb250ZXh0Lm1vdmVUbyhwb2ludC54LCBwb2ludC55KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5saW5lVG8ocG9pbnQueCwgcG9pbnQueSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBpZiAobWFwT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBpZiAob3B0cy5kYXRhTGFiZWwgPT0gdHJ1ZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBjZW50ZXJQb2ludCA9IGRhdGFbaV0ucHJvcGVydGllcy5jZW50cm9pZDtcclxuICAgICAgaWYgKGNlbnRlclBvaW50KSB7XHJcbiAgICAgICAgaWYgKG1hcE9wdGlvbi5tZXJjYXRvcikge1xyXG4gICAgICAgICAgY2VudGVyUG9pbnQgPSBsb25sYXQybWVyY2F0b3IoZGF0YVtpXS5wcm9wZXJ0aWVzLmNlbnRyb2lkWzBdLCBkYXRhW2ldLnByb3BlcnRpZXMuY2VudHJvaWRbMV0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBvaW50ID0gY29vcmRpbmF0ZVRvUG9pbnQoY2VudGVyUG9pbnRbMV0sIGNlbnRlclBvaW50WzBdLCBib3VuZHMsIHNjYWxlLCB4b2Zmc2V0LCB5b2Zmc2V0KTtcclxuICAgICAgICBsZXQgZm9udFNpemUgPSBkYXRhW2ldLnRleHRTaXplICogb3B0cy5waXggfHwgY29uZmlnLmZvbnRTaXplO1xyXG4gICAgICAgIGxldCBmb250Q29sb3IgPSBkYXRhW2ldLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcjtcclxuICAgICAgICBpZihtYXBPcHRpb24uYWN0aXZlICYmIG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3IgJiYgb3B0cy50b29sdGlwICYmIG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKXtcclxuICAgICAgICAgIGZvbnRDb2xvciA9IG1hcE9wdGlvbi5hY3RpdmVUZXh0Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZXh0ID0gZGF0YVtpXS5wcm9wZXJ0aWVzLm5hbWU7XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZvbnRDb2xvcilcclxuICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIHBvaW50LnggLSBtZWFzdXJlVGV4dCh0ZXh0LCBmb250U2l6ZSwgY29udGV4dCkgLyAyLCBwb2ludC55ICsgZm9udFNpemUgLyAyKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEubWFwRGF0YSA9IHtcclxuICAgIGJvdW5kczogYm91bmRzLFxyXG4gICAgc2NhbGU6IHNjYWxlLFxyXG4gICAgeG9mZnNldDogeG9mZnNldCxcclxuICAgIHlvZmZzZXQ6IHlvZmZzZXQsXHJcbiAgICBtZXJjYXRvcjogbWFwT3B0aW9uLm1lcmNhdG9yXHJcbiAgfVxyXG4gIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgMSk7XHJcbiAgY29udGV4dC5kcmF3KCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG5vcm1hbEludChtaW4sIG1heCwgaXRlcikge1xyXG4gIGl0ZXIgPSBpdGVyID09IDAgPyAxIDogaXRlcjtcclxuICB2YXIgYXJyID0gW107XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyOyBpKyspIHtcclxuICAgIGFycltpXSA9IE1hdGgucmFuZG9tKCk7XHJcbiAgfTtcclxuICByZXR1cm4gTWF0aC5mbG9vcihhcnIucmVkdWNlKGZ1bmN0aW9uKGksIGopIHtcclxuICAgIHJldHVybiBpICsgalxyXG4gIH0pIC8gaXRlciAqIChtYXggLSBtaW4pKSArIG1pbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGNvbGxpc2lvbk5ldyhhcmVhLCBwb2ludHMsIHdpZHRoLCBoZWlnaHQpIHtcclxuICB2YXIgaXNJbiA9IGZhbHNlO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAocG9pbnRzW2ldLmFyZWEpIHtcclxuICAgICAgaWYgKGFyZWFbM10gPCBwb2ludHNbaV0uYXJlYVsxXSB8fCBhcmVhWzBdID4gcG9pbnRzW2ldLmFyZWFbMl0gfHwgYXJlYVsxXSA+IHBvaW50c1tpXS5hcmVhWzNdIHx8IGFyZWFbMl0gPCBwb2ludHNbaV0uYXJlYVswXSkge1xyXG4gICAgICAgIGlmIChhcmVhWzBdIDwgMCB8fCBhcmVhWzFdIDwgMCB8fCBhcmVhWzJdID4gd2lkdGggfHwgYXJlYVszXSA+IGhlaWdodCkge1xyXG4gICAgICAgICAgaXNJbiA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaXNJbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpc0luID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gaXNJbjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldFdvcmRDbG91ZFBvaW50KG9wdHMsIHR5cGUsIGNvbnRleHQpIHtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5zZXJpZXM7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdub3JtYWwnOlxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gcG9pbnRzW2ldLm5hbWU7XHJcbiAgICAgICAgbGV0IHRIZWlnaHQgPSBwb2ludHNbaV0udGV4dFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICAgICAgbGV0IHgsIHk7XHJcbiAgICAgICAgbGV0IGFyZWE7XHJcbiAgICAgICAgbGV0IGJyZWFrbnVtID0gMDtcclxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgYnJlYWtudW0rKztcclxuICAgICAgICAgIHggPSBub3JtYWxJbnQoLW9wdHMud2lkdGggLyAyLCBvcHRzLndpZHRoIC8gMiwgNSkgLSB0V2lkdGggLyAyO1xyXG4gICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICBhcmVhID0gW3ggLSA1ICsgb3B0cy53aWR0aCAvIDIsIHkgLSA1IC0gdEhlaWdodCArIG9wdHMuaGVpZ2h0IC8gMiwgeCArIHRXaWR0aCArIDUgKyBvcHRzLndpZHRoIC8gMiwgeSArIDUgK1xyXG4gICAgICAgICAgICBvcHRzLmhlaWdodCAvIDJcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgICBsZXQgaXNDb2xsaXNpb24gPSBjb2xsaXNpb25OZXcoYXJlYSwgcG9pbnRzLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAoIWlzQ29sbGlzaW9uKSBicmVhaztcclxuICAgICAgICAgIGlmIChicmVha251bSA9PSAxMDAwKSB7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbLTEwMCwgLTEwMCwgLTEwMCwgLTEwMF07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAndmVydGljYWwnOlxyXG4gICAgICBmdW5jdGlvbiBTcGluKCkge1xyXG4gICAgICAgIC8v6I635Y+W5Z2H5YyA6ZqP5py65YC877yM5piv5ZCm5peL6L2s77yM5peL6L2s55qE5qaC546H5Li677yIMS0wLjXvvIlcclxuICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA+IDAuNykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH07XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgICAgICBsZXQgdEhlaWdodCA9IHBvaW50c1tpXS50ZXh0U2l6ZSAqIG9wdHMucGl4O1xyXG4gICAgICAgIGxldCB0V2lkdGggPSBtZWFzdXJlVGV4dCh0ZXh0LCB0SGVpZ2h0LCBjb250ZXh0KTtcclxuICAgICAgICBsZXQgaXNTcGluID0gU3BpbigpO1xyXG4gICAgICAgIGxldCB4LCB5LCBhcmVhLCBhcmVhdjtcclxuICAgICAgICBsZXQgYnJlYWtudW0gPSAwO1xyXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICBicmVha251bSsrO1xyXG4gICAgICAgICAgbGV0IGlzQ29sbGlzaW9uO1xyXG4gICAgICAgICAgaWYgKGlzU3Bpbikge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeSAtIDUgLSB0V2lkdGggKyBvcHRzLndpZHRoIC8gMiwgKC14IC0gNSArIG9wdHMuaGVpZ2h0IC8gMiksIHkgKyA1ICsgb3B0cy53aWR0aCAvIDIsICgteCArIHRIZWlnaHQgKyA1ICsgb3B0cy5oZWlnaHQgLyAyKV07XHJcbiAgICAgICAgICAgIGFyZWF2ID0gW29wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpIC0gNSwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSAtIDUsIG9wdHMud2lkdGggLSAob3B0cy53aWR0aCAvIDIgLSBvcHRzLmhlaWdodCAvIDIpIC0gKC14ICsgdEhlaWdodCArIDUgKyBvcHRzLmhlaWdodCAvIDIpICsgdEhlaWdodCwgKG9wdHMuaGVpZ2h0IC8gMiAtIG9wdHMud2lkdGggLyAyKSArICh5IC0gNSAtIHRXaWR0aCArIG9wdHMud2lkdGggLyAyKSArIHRXaWR0aCArIDVdO1xyXG4gICAgICAgICAgICBpc0NvbGxpc2lvbiA9IGNvbGxpc2lvbk5ldyhhcmVhdiwgcG9pbnRzLCBvcHRzLmhlaWdodCwgb3B0cy53aWR0aCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB4ID0gbm9ybWFsSW50KC1vcHRzLndpZHRoIC8gMiwgb3B0cy53aWR0aCAvIDIsIDUpIC0gdFdpZHRoIC8gMjtcclxuICAgICAgICAgICAgeSA9IG5vcm1hbEludCgtb3B0cy5oZWlnaHQgLyAyLCBvcHRzLmhlaWdodCAvIDIsIDUpICsgdEhlaWdodCAvIDI7XHJcbiAgICAgICAgICAgIGFyZWEgPSBbeCAtIDUgKyBvcHRzLndpZHRoIC8gMiwgeSAtIDUgLSB0SGVpZ2h0ICsgb3B0cy5oZWlnaHQgLyAyLCB4ICsgdFdpZHRoICsgNSArIG9wdHMud2lkdGggLyAyLCB5ICsgNSArIG9wdHMuaGVpZ2h0IC8gMl07XHJcbiAgICAgICAgICAgIGlzQ29sbGlzaW9uID0gY29sbGlzaW9uTmV3KGFyZWEsIHBvaW50cywgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFpc0NvbGxpc2lvbikgYnJlYWs7XHJcbiAgICAgICAgICBpZiAoYnJlYWtudW0gPT0gMTAwMCkge1xyXG4gICAgICAgICAgICBhcmVhID0gWy0xMDAwLCAtMTAwMCwgLTEwMDAsIC0xMDAwXTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoaXNTcGluKSB7XHJcbiAgICAgICAgICBwb2ludHNbaV0uYXJlYSA9IGFyZWF2O1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWF2ID0gYXJlYTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcG9pbnRzW2ldLmFyZWEgPSBhcmVhO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwb2ludHNbaV0ucm90YXRlID0gaXNTcGluO1xyXG4gICAgICB9O1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbiAgcmV0dXJuIHBvaW50cztcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd1dvcmRDbG91ZERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgd29yZE9wdGlvbiA9IGFzc2lnbih7fSwge1xyXG4gICAgdHlwZTogJ25vcm1hbCcsXHJcbiAgICBhdXRvQ29sb3JzOiB0cnVlXHJcbiAgfSwgb3B0cy5leHRyYS53b3JkKTtcclxuICBpZiAoIW9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEpIHtcclxuICAgIG9wdHMuY2hhcnREYXRhLndvcmRDbG91ZERhdGEgPSBnZXRXb3JkQ2xvdWRQb2ludChvcHRzLCB3b3JkT3B0aW9uLnR5cGUsIGNvbnRleHQpO1xyXG4gIH1cclxuICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gIGNvbnRleHQuc2V0RmlsbFN0eWxlKG9wdHMuYmFja2dyb3VuZCk7XHJcbiAgY29udGV4dC5yZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICBjb250ZXh0LmZpbGwoKTtcclxuICBjb250ZXh0LnNhdmUoKTtcclxuICBsZXQgcG9pbnRzID0gb3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YTtcclxuICBjb250ZXh0LnRyYW5zbGF0ZShvcHRzLndpZHRoIC8gMiwgb3B0cy5oZWlnaHQgLyAyKTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgY29udGV4dC5zYXZlKCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBjb250ZXh0LnJvdGF0ZSg5MCAqIE1hdGguUEkgLyAxODApO1xyXG4gICAgfVxyXG4gICAgbGV0IHRleHQgPSBwb2ludHNbaV0ubmFtZTtcclxuICAgIGxldCB0SGVpZ2h0ID0gcG9pbnRzW2ldLnRleHRTaXplICogb3B0cy5waXg7XHJcbiAgICBsZXQgdFdpZHRoID0gbWVhc3VyZVRleHQodGV4dCwgdEhlaWdodCwgY29udGV4dCk7XHJcbiAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShwb2ludHNbaV0uY29sb3IpO1xyXG4gICAgY29udGV4dC5zZXRGaWxsU3R5bGUocG9pbnRzW2ldLmNvbG9yKTtcclxuICAgIGNvbnRleHQuc2V0Rm9udFNpemUodEhlaWdodCk7XHJcbiAgICBpZiAocG9pbnRzW2ldLnJvdGF0ZSkge1xyXG4gICAgICBpZiAocG9pbnRzW2ldLmFyZWF2WzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhdlswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYXZbMV0gKyA1ICsgdEhlaWdodCAtIG9wdHMuaGVpZ2h0IC8gMikgKiBwcm9jZXNzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dC5maWxsVGV4dCh0ZXh0LCAocG9pbnRzW2ldLmFyZWF2WzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhdlsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHBvaW50c1tpXS5hcmVhWzBdID4gMCkge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LnN0cm9rZVRleHQodGV4dCwgKHBvaW50c1tpXS5hcmVhWzBdICsgNSAtIG9wdHMud2lkdGggLyAyKSAqIHByb2Nlc3MgLSB0V2lkdGggKiAoMSAtIHByb2Nlc3MpIC8gMiwgKHBvaW50c1tpXS5hcmVhWzFdICsgNSArIHRIZWlnaHQgLSBvcHRzLmhlaWdodCAvIDIpICogcHJvY2Vzcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIChwb2ludHNbaV0uYXJlYVswXSArIDUgLSBvcHRzLndpZHRoIC8gMikgKiBwcm9jZXNzIC0gdFdpZHRoICogKDEgLSBwcm9jZXNzKSAvIDIsIChwb2ludHNbaV0uYXJlYVsxXSArIDUgKyB0SGVpZ2h0IC0gb3B0cy5oZWlnaHQgLyAyKSAqIHByb2Nlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgIGNvbnRleHQucmVzdG9yZSgpO1xyXG4gIH1cclxuICBjb250ZXh0LnJlc3RvcmUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZHJhd0Z1bm5lbERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpIHtcclxuICBsZXQgcHJvY2VzcyA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogMTtcclxuICBsZXQgZnVubmVsT3B0aW9uID0gYXNzaWduKHt9LCB7XHJcbiAgICB0eXBlOidmdW5uZWwnLFxyXG4gICAgYWN0aXZlV2lkdGg6IDEwLFxyXG4gICAgYWN0aXZlT3BhY2l0eTogMC4zLFxyXG4gICAgYm9yZGVyOiBmYWxzZSxcclxuICAgIGJvcmRlcldpZHRoOiAyLFxyXG4gICAgYm9yZGVyQ29sb3I6ICcjRkZGRkZGJyxcclxuICAgIGZpbGxPcGFjaXR5OiAxLFxyXG4gICAgbWluU2l6ZTogMCxcclxuICAgIGxhYmVsQWxpZ246ICdyaWdodCcsXHJcbiAgICBsaW5lYXJUeXBlOiAnbm9uZScsXHJcbiAgICBjdXN0b21Db2xvcjogW10sXHJcbiAgfSwgb3B0cy5leHRyYS5mdW5uZWwpO1xyXG4gIGxldCBlYWNoU3BhY2luZyA9IChvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVswXSAtIG9wdHMuYXJlYVsyXSkgLyBzZXJpZXMubGVuZ3RoO1xyXG4gIGxldCBjZW50ZXJQb3NpdGlvbiA9IHtcclxuICAgIHg6IG9wdHMuYXJlYVszXSArIChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIsXHJcbiAgICB5OiBvcHRzLmhlaWdodCAtIG9wdHMuYXJlYVsyXVxyXG4gIH07XHJcbiAgbGV0IGFjdGl2ZVdpZHRoID0gZnVubmVsT3B0aW9uLmFjdGl2ZVdpZHRoICogb3B0cy5waXg7XHJcbiAgbGV0IHJhZGl1cyA9IE1hdGgubWluKChvcHRzLndpZHRoIC0gb3B0cy5hcmVhWzFdIC0gb3B0cy5hcmVhWzNdKSAvIDIgLSBhY3RpdmVXaWR0aCwgKG9wdHMuaGVpZ2h0IC0gb3B0cy5hcmVhWzBdIC0gb3B0cy5hcmVhWzJdKSAvIDIgLSBhY3RpdmVXaWR0aCk7XHJcbiAgbGV0IHNlcmllc05ldyA9IGdldEZ1bm5lbERhdGFQb2ludHMoc2VyaWVzLCByYWRpdXMsIGZ1bm5lbE9wdGlvbiwgZWFjaFNwYWNpbmcsIHByb2Nlc3MpO1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGNvbnRleHQudHJhbnNsYXRlKGNlbnRlclBvc2l0aW9uLngsIGNlbnRlclBvc2l0aW9uLnkpO1xyXG4gIGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvciA9IGZpbGxDdXN0b21Db2xvcihmdW5uZWxPcHRpb24ubGluZWFyVHlwZSwgZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yLCBzZXJpZXMsIGNvbmZpZyk7XHJcbiAgaWYoZnVubmVsT3B0aW9uLnR5cGUgPT0gJ3B5cmFtaWQnKXtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLTEpIHtcclxuICAgICAgICBpZiAob3B0cy50b29sdGlwKSB7XHJcbiAgICAgICAgICBpZiAob3B0cy50b29sdGlwLmluZGV4ID09IGkpIHtcclxuICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uYWN0aXZlT3BhY2l0eSkpO1xyXG4gICAgICAgICAgICBjb250ZXh0Lm1vdmVUbygtYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbyhhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2ldLnJhZGl1cyAtIGFjdGl2ZVdpZHRoLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpICsgMV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpICsgMV0ucmFkaXVzICsgYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChpICsgMSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiBpXTtcclxuICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0TGluZVdpZHRoKGZ1bm5lbE9wdGlvbi5ib3JkZXJXaWR0aCAqIG9wdHMucGl4KTtcclxuICAgICAgICBjb250ZXh0LnNldFN0cm9rZVN0eWxlKGZ1bm5lbE9wdGlvbi5ib3JkZXJDb2xvcik7XHJcbiAgICAgICAgdmFyIGZpbGxDb2xvciA9IGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmxpbmVhclR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIHZhciBncmQgPSBjb250ZXh0LmNyZWF0ZUxpbmVhckdyYWRpZW50KHNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZywgLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDAuNSwgaGV4VG9SZ2IoZnVubmVsT3B0aW9uLmN1c3RvbUNvbG9yW3Nlcmllc05ld1tpXS5saW5lYXJJbmRleF0sIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgxLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZmlsbENvbG9yID0gZ3JkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGZpbGxDb2xvcik7XHJcbiAgICAgICAgY29udGV4dC5tb3ZlVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaV0ucmFkaXVzLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC1lYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9ZWxzZXtcclxuICAgIGNvbnRleHQudHJhbnNsYXRlKDAsIC0gKHNlcmllc05ldy5sZW5ndGggLSAxKSAqIGVhY2hTcGFjaW5nKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzTmV3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllc05ldy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgaWYgKG9wdHMudG9vbHRpcCkge1xyXG4gICAgICAgICAgaWYgKG9wdHMudG9vbHRpcC5pbmRleCA9PSBpKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmFjdGl2ZU9wYWNpdHkpKTtcclxuICAgICAgICAgICAgY29udGV4dC5tb3ZlVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oYWN0aXZlV2lkdGggKyBmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oLWFjdGl2ZVdpZHRoIC0gZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXJpZXNOZXdbaV0uZnVubmVsQXJlYSA9IFtjZW50ZXJQb3NpdGlvbi54IC0gc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSAtIGVhY2hTcGFjaW5nLCBjZW50ZXJQb3NpdGlvbi54ICsgc2VyaWVzTmV3W2ldLnJhZGl1cywgY2VudGVyUG9zaXRpb24ueSBdO1xyXG4gICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoZnVubmVsT3B0aW9uLmJvcmRlcldpZHRoICogb3B0cy5waXgpO1xyXG4gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlU3R5bGUoZnVubmVsT3B0aW9uLmJvcmRlckNvbG9yKTtcclxuICAgICAgICB2YXIgZmlsbENvbG9yID0gaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24ubGluZWFyVHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgdmFyIGdyZCA9IGNvbnRleHQuY3JlYXRlTGluZWFyR3JhZGllbnQoc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nLCAtc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMCwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMC41LCBoZXhUb1JnYihmdW5uZWxPcHRpb24uY3VzdG9tQ29sb3Jbc2VyaWVzTmV3W2ldLmxpbmVhckluZGV4XSwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBncmQuYWRkQ29sb3JTdG9wKDEsIGhleFRvUmdiKHNlcmllc05ld1tpXS5jb2xvciwgZnVubmVsT3B0aW9uLmZpbGxPcGFjaXR5KSk7XHJcbiAgICAgICAgICBmaWxsQ29sb3IgPSBncmRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoZmlsbENvbG9yKTtcclxuICAgICAgICBjb250ZXh0Lm1vdmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygtZnVubmVsT3B0aW9uLm1pblNpemUvMiwgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhmdW5uZWxPcHRpb24ubWluU2l6ZS8yLCAwKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbygwLCAwKTtcclxuICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICAgIGlmIChmdW5uZWxPcHRpb24uYm9yZGVyID09IHRydWUpIHtcclxuICAgICAgICAgIGNvbnRleHQuc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChvcHRzLnRvb2x0aXApIHtcclxuICAgICAgICAgIGlmIChvcHRzLnRvb2x0aXAuaW5kZXggPT0gaSkge1xyXG4gICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5hY3RpdmVPcGFjaXR5KSk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmxpbmVUbygtc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgLSBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaV0ucmFkaXVzIC0gYWN0aXZlV2lkdGgsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKHNlcmllc05ld1tpXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2kgKyAxXS5yYWRpdXMgKyBhY3RpdmVXaWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGNvbnRleHQubGluZVRvKDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2VyaWVzTmV3W2ldLmZ1bm5lbEFyZWEgPSBbY2VudGVyUG9zaXRpb24ueCAtIHNlcmllc05ld1tpXS5yYWRpdXMsIGNlbnRlclBvc2l0aW9uLnkgLSBlYWNoU3BhY2luZyAqIChzZXJpZXNOZXcubGVuZ3RoIC0gaSksIGNlbnRlclBvc2l0aW9uLnggKyBzZXJpZXNOZXdbaV0ucmFkaXVzLCBjZW50ZXJQb3NpdGlvbi55IC0gZWFjaFNwYWNpbmcgKiAoc2VyaWVzTmV3Lmxlbmd0aCAtIGkgLSAxKV07XHJcbiAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LnNldExpbmVXaWR0aChmdW5uZWxPcHRpb24uYm9yZGVyV2lkdGggKiBvcHRzLnBpeCk7XHJcbiAgICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShmdW5uZWxPcHRpb24uYm9yZGVyQ29sb3IpO1xyXG4gICAgICAgIHZhciBmaWxsQ29sb3IgPSBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSk7XHJcbiAgICAgICAgaWYgKGZ1bm5lbE9wdGlvbi5saW5lYXJUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICB2YXIgZ3JkID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudChzZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcsIC1zZXJpZXNOZXdbaV0ucmFkaXVzLCAtZWFjaFNwYWNpbmcpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLCBoZXhUb1JnYihzZXJpZXNOZXdbaV0uY29sb3IsIGZ1bm5lbE9wdGlvbi5maWxsT3BhY2l0eSkpO1xyXG4gICAgICAgICAgZ3JkLmFkZENvbG9yU3RvcCgwLjUsIGhleFRvUmdiKGZ1bm5lbE9wdGlvbi5jdXN0b21Db2xvcltzZXJpZXNOZXdbaV0ubGluZWFySW5kZXhdLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGdyZC5hZGRDb2xvclN0b3AoMSwgaGV4VG9SZ2Ioc2VyaWVzTmV3W2ldLmNvbG9yLCBmdW5uZWxPcHRpb24uZmlsbE9wYWNpdHkpKTtcclxuICAgICAgICAgIGZpbGxDb2xvciA9IGdyZFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShmaWxsQ29sb3IpO1xyXG4gICAgICAgIGNvbnRleHQubW92ZVRvKDAsIDApO1xyXG4gICAgICAgIGNvbnRleHQubGluZVRvKC1zZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oLXNlcmllc05ld1tpXS5yYWRpdXMsIC1lYWNoU3BhY2luZyk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oc2VyaWVzTmV3W2ldLnJhZGl1cywgLWVhY2hTcGFjaW5nKTtcclxuICAgICAgICBjb250ZXh0LmxpbmVUbyhzZXJpZXNOZXdbaSArIDFdLnJhZGl1cywgMCk7XHJcbiAgICAgICAgY29udGV4dC5saW5lVG8oMCwgMCk7XHJcbiAgICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgICBjb250ZXh0LmZpbGwoKTtcclxuICAgICAgICBpZiAoZnVubmVsT3B0aW9uLmJvcmRlciA9PSB0cnVlKSB7XHJcbiAgICAgICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb250ZXh0LnRyYW5zbGF0ZSgwLCBlYWNoU3BhY2luZylcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgaWYgKG9wdHMuZGF0YUxhYmVsICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICBkcmF3RnVubmVsVGV4dChzZXJpZXNOZXcsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBmdW5uZWxPcHRpb24ubGFiZWxBbGlnbiwgYWN0aXZlV2lkdGgsIGNlbnRlclBvc2l0aW9uKTtcclxuICB9XHJcbiAgaWYgKHByb2Nlc3MgPT09IDEpIHtcclxuICAgIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllc05ldywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGZ1bm5lbE9wdGlvbi5sYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pO1xyXG4gIH1cclxuICByZXR1cm4ge1xyXG4gICAgY2VudGVyOiBjZW50ZXJQb3NpdGlvbixcclxuICAgIHJhZGl1czogcmFkaXVzLFxyXG4gICAgc2VyaWVzOiBzZXJpZXNOZXdcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBkcmF3RnVubmVsVGV4dChzZXJpZXMsIG9wdHMsIGNvbnRleHQsIGVhY2hTcGFjaW5nLCBsYWJlbEFsaWduLCBhY3RpdmVXaWR0aCwgY2VudGVyUG9zaXRpb24pIHtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlcmllcy5sZW5ndGg7IGkrKykge1xyXG4gICAgbGV0IGl0ZW0gPSBzZXJpZXNbaV07XHJcbiAgICBpZihpdGVtLmxhYmVsU2hvdyA9PT0gZmFsc2Upe1xyXG4gICAgICBjb250aW51ZTtcclxuICAgIH1cclxuICAgIGxldCBzdGFydFgsIGVuZFgsIHN0YXJ0WSwgZm9udFNpemU7XHJcbiAgICBsZXQgdGV4dCA9IGl0ZW0uZm9ybWF0dGVyID8gaXRlbS5mb3JtYXR0ZXIoaXRlbSxpLHNlcmllcyxvcHRzKSA6IHV0aWwudG9GaXhlZChpdGVtLl9wcm9wb3J0aW9uXyAqIDEwMCkgKyAnJSc7XHJcbiAgICB0ZXh0ID0gaXRlbS5sYWJlbFRleHQgPyBpdGVtLmxhYmVsVGV4dCA6IHRleHQ7XHJcbiAgICBpZiAobGFiZWxBbGlnbiA9PSAncmlnaHQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzJdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMl0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMl0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYICsgYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyICogb3B0cy5waXgsIDAsIDIgKiBNYXRoLlBJKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5maWxsKCk7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuc2V0Rm9udFNpemUoZm9udFNpemUpO1xyXG4gICAgICBjb250ZXh0LnNldEZpbGxTdHlsZShpdGVtLnRleHRDb2xvciB8fCBvcHRzLmZvbnRDb2xvcik7XHJcbiAgICAgIGNvbnRleHQuZmlsbFRleHQodGV4dCwgZW5kWCArIDUsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxhYmVsQWxpZ24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgIGlmIChpID09IHNlcmllcy5sZW5ndGggLTEpIHtcclxuICAgICAgICBzdGFydFggPSAoaXRlbS5mdW5uZWxBcmVhWzBdICsgY2VudGVyUG9zaXRpb24ueCkgLyAyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0YXJ0WCA9IChpdGVtLmZ1bm5lbEFyZWFbMF0gKyBzZXJpZXNbaSArIDFdLmZ1bm5lbEFyZWFbMF0pIC8gMjtcclxuICAgICAgfVxyXG4gICAgICBlbmRYID0gc3RhcnRYIC0gYWN0aXZlV2lkdGggKiAyO1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS50ZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5zZXRMaW5lV2lkdGgoMSAqIG9wdHMucGl4KTtcclxuICAgICAgY29udGV4dC5zZXRTdHJva2VTdHlsZShpdGVtLmNvbG9yKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS5jb2xvcik7XHJcbiAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XHJcbiAgICAgIGNvbnRleHQubW92ZVRvKHN0YXJ0WCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5saW5lVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5tb3ZlVG8oZW5kWCwgc3RhcnRZKTtcclxuICAgICAgY29udGV4dC5hcmMoZW5kWCwgc3RhcnRZLCAyLCAwLCAyICogTWF0aC5QSSk7XHJcbiAgICAgIGNvbnRleHQuY2xvc2VQYXRoKCk7XHJcbiAgICAgIGNvbnRleHQuZmlsbCgpO1xyXG4gICAgICBjb250ZXh0LmJlZ2luUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnNldEZvbnRTaXplKGZvbnRTaXplKTtcclxuICAgICAgY29udGV4dC5zZXRGaWxsU3R5bGUoaXRlbS50ZXh0Q29sb3IgfHwgb3B0cy5mb250Q29sb3IpO1xyXG4gICAgICBjb250ZXh0LmZpbGxUZXh0KHRleHQsIGVuZFggLSA1IC0gbWVhc3VyZVRleHQodGV4dCwgZm9udFNpemUsIGNvbnRleHQpLCBzdGFydFkgKyBmb250U2l6ZSAvIDIgLSAyKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgICAgY29udGV4dC5zdHJva2UoKTtcclxuICAgICAgY29udGV4dC5jbG9zZVBhdGgoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRyYXdGdW5uZWxDZW50ZXJUZXh0KHNlcmllcywgb3B0cywgY29udGV4dCwgZWFjaFNwYWNpbmcsIGxhYmVsQWxpZ24sIGFjdGl2ZVdpZHRoLCBjZW50ZXJQb3NpdGlvbikge1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBsZXQgaXRlbSA9IHNlcmllc1tpXTtcclxuICAgIGxldCBzdGFydFksIGZvbnRTaXplO1xyXG4gICAgaWYgKGl0ZW0uY2VudGVyVGV4dCkge1xyXG4gICAgICBzdGFydFkgPSBpdGVtLmZ1bm5lbEFyZWFbMV0gKyBlYWNoU3BhY2luZyAvIDI7XHJcbiAgICAgIGZvbnRTaXplID0gaXRlbS5jZW50ZXJUZXh0U2l6ZSAqIG9wdHMucGl4IHx8IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcclxuICAgICAgY29udGV4dC5zZXRGb250U2l6ZShmb250U2l6ZSk7XHJcbiAgICAgIGNvbnRleHQuc2V0RmlsbFN0eWxlKGl0ZW0uY2VudGVyVGV4dENvbG9yIHx8IFwiI0ZGRkZGRlwiKTtcclxuICAgICAgY29udGV4dC5maWxsVGV4dChpdGVtLmNlbnRlclRleHQsIGNlbnRlclBvc2l0aW9uLnggLSBtZWFzdXJlVGV4dChpdGVtLmNlbnRlclRleHQsIGZvbnRTaXplLCBjb250ZXh0KSAvIDIsIHN0YXJ0WSArIGZvbnRTaXplIC8gMiAtIDIpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgICBjb250ZXh0LnN0cm9rZSgpO1xyXG4gICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGRyYXdDYW52YXMob3B0cywgY29udGV4dCkge1xyXG4gIGNvbnRleHQuc2F2ZSgpO1xyXG4gIGNvbnRleHQudHJhbnNsYXRlKDAsIDAuNSk7XHJcbiAgY29udGV4dC5yZXN0b3JlKCk7XHJcbiAgY29udGV4dC5kcmF3KCk7XHJcbn1cclxuXHJcbnZhciBUaW1pbmcgPSB7XHJcbiAgZWFzZUluOiBmdW5jdGlvbiBlYXNlSW4ocG9zKSB7XHJcbiAgICByZXR1cm4gTWF0aC5wb3cocG9zLCAzKTtcclxuICB9LFxyXG4gIGVhc2VPdXQ6IGZ1bmN0aW9uIGVhc2VPdXQocG9zKSB7XHJcbiAgICByZXR1cm4gTWF0aC5wb3cocG9zIC0gMSwgMykgKyAxO1xyXG4gIH0sXHJcbiAgZWFzZUluT3V0OiBmdW5jdGlvbiBlYXNlSW5PdXQocG9zKSB7XHJcbiAgICBpZiAoKHBvcyAvPSAwLjUpIDwgMSkge1xyXG4gICAgICByZXR1cm4gMC41ICogTWF0aC5wb3cocG9zLCAzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwLjUgKiAoTWF0aC5wb3cocG9zIC0gMiwgMykgKyAyKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGxpbmVhcjogZnVuY3Rpb24gbGluZWFyKHBvcykge1xyXG4gICAgcmV0dXJuIHBvcztcclxuICB9XHJcbn07XHJcblxyXG5mdW5jdGlvbiBBbmltYXRpb24ob3B0cykge1xyXG4gIHRoaXMuaXNTdG9wID0gZmFsc2U7XHJcbiAgb3B0cy5kdXJhdGlvbiA9IHR5cGVvZiBvcHRzLmR1cmF0aW9uID09PSAndW5kZWZpbmVkJyA/IDEwMDAgOiBvcHRzLmR1cmF0aW9uO1xyXG4gIG9wdHMudGltaW5nID0gb3B0cy50aW1pbmcgfHwgJ2Vhc2VJbk91dCc7XHJcbiAgdmFyIGRlbGF5ID0gMTc7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uRnJhbWUoKSB7XHJcbiAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGVwLCBkZWxheSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICB2YXIgdGltZVN0YW1wID0gK25ldyBEYXRlKCk7XHJcbiAgICAgICAgICBzdGVwKHRpbWVTdGFtcCk7XHJcbiAgICAgICAgfSwgZGVsYXkpO1xyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0ZXApIHtcclxuICAgICAgICBzdGVwKG51bGwpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH07XHJcbiAgdmFyIGFuaW1hdGlvbkZyYW1lID0gY3JlYXRlQW5pbWF0aW9uRnJhbWUoKTtcclxuICB2YXIgc3RhcnRUaW1lU3RhbXAgPSBudWxsO1xyXG4gIHZhciBfc3RlcCA9IGZ1bmN0aW9uIHN0ZXAodGltZXN0YW1wKSB7XHJcbiAgICBpZiAodGltZXN0YW1wID09PSBudWxsIHx8IHRoaXMuaXNTdG9wID09PSB0cnVlKSB7XHJcbiAgICAgIG9wdHMub25Qcm9jZXNzICYmIG9wdHMub25Qcm9jZXNzKDEpO1xyXG4gICAgICBvcHRzLm9uQW5pbWF0aW9uRmluaXNoICYmIG9wdHMub25BbmltYXRpb25GaW5pc2goKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0YXJ0VGltZVN0YW1wID09PSBudWxsKSB7XHJcbiAgICAgIHN0YXJ0VGltZVN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgfVxyXG4gICAgaWYgKHRpbWVzdGFtcCAtIHN0YXJ0VGltZVN0YW1wIDwgb3B0cy5kdXJhdGlvbikge1xyXG4gICAgICB2YXIgcHJvY2VzcyA9ICh0aW1lc3RhbXAgLSBzdGFydFRpbWVTdGFtcCkgLyBvcHRzLmR1cmF0aW9uO1xyXG4gICAgICB2YXIgdGltaW5nRnVuY3Rpb24gPSBUaW1pbmdbb3B0cy50aW1pbmddO1xyXG4gICAgICBwcm9jZXNzID0gdGltaW5nRnVuY3Rpb24ocHJvY2Vzcyk7XHJcbiAgICAgIG9wdHMub25Qcm9jZXNzICYmIG9wdHMub25Qcm9jZXNzKHByb2Nlc3MpO1xyXG4gICAgICBhbmltYXRpb25GcmFtZShfc3RlcCwgZGVsYXkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb3B0cy5vblByb2Nlc3MgJiYgb3B0cy5vblByb2Nlc3MoMSk7XHJcbiAgICAgIG9wdHMub25BbmltYXRpb25GaW5pc2ggJiYgb3B0cy5vbkFuaW1hdGlvbkZpbmlzaCgpO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgX3N0ZXAgPSBfc3RlcC5iaW5kKHRoaXMpO1xyXG4gIGFuaW1hdGlvbkZyYW1lKF9zdGVwLCBkZWxheSk7XHJcbn1cclxuXHJcbkFuaW1hdGlvbi5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uKCkge1xyXG4gIHRoaXMuaXNTdG9wID0gdHJ1ZTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGRyYXdDaGFydHModHlwZSwgb3B0cywgY29uZmlnLCBjb250ZXh0KSB7XHJcbiAgdmFyIF90aGlzID0gdGhpcztcclxuICB2YXIgc2VyaWVzID0gb3B0cy5zZXJpZXM7XHJcbiAgLy/lhbzlrrlFQ2hhcnRz6aW85Zu+57G75pWw5o2u5qC85byPXHJcbiAgaWYgKHR5cGUgPT09ICdwaWUnIHx8IHR5cGUgPT09ICdyaW5nJyB8fCB0eXBlID09PSAnbW91bnQnIHx8IHR5cGUgPT09ICdyb3NlJyB8fCB0eXBlID09PSAnZnVubmVsJykge1xyXG4gICAgc2VyaWVzID0gZml4UGllU2VyaWVzKHNlcmllcywgb3B0cywgY29uZmlnKTtcclxuICB9XHJcbiAgdmFyIGNhdGVnb3JpZXMgPSBvcHRzLmNhdGVnb3JpZXM7XHJcbiAgaWYgKHR5cGUgPT09ICdtb3VudCcpIHtcclxuICAgIGNhdGVnb3JpZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2VyaWVzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgIGlmKHNlcmllc1tqXS5zaG93ICE9PSBmYWxzZSkgY2F0ZWdvcmllcy5wdXNoKHNlcmllc1tqXS5uYW1lKVxyXG4gICAgfVxyXG4gICAgb3B0cy5jYXRlZ29yaWVzID0gY2F0ZWdvcmllcztcclxuICB9XHJcbiAgc2VyaWVzID0gZmlsbFNlcmllcyhzZXJpZXMsIG9wdHMsIGNvbmZpZyk7XHJcbiAgdmFyIGR1cmF0aW9uID0gb3B0cy5hbmltYXRpb24gPyBvcHRzLmR1cmF0aW9uIDogMDtcclxuICBfdGhpcy5hbmltYXRpb25JbnN0YW5jZSAmJiBfdGhpcy5hbmltYXRpb25JbnN0YW5jZS5zdG9wKCk7XHJcbiAgdmFyIHNlcmllc01BID0gbnVsbDtcclxuICBpZiAodHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgbGV0IGF2ZXJhZ2UgPSBhc3NpZ24oe30sIG9wdHMuZXh0cmEuY2FuZGxlLmF2ZXJhZ2UpO1xyXG4gICAgaWYgKGF2ZXJhZ2Uuc2hvdykge1xyXG4gICAgICBzZXJpZXNNQSA9IGNhbENhbmRsZU1BKGF2ZXJhZ2UuZGF5LCBhdmVyYWdlLm5hbWUsIGF2ZXJhZ2UuY29sb3IsIHNlcmllc1swXS5kYXRhKTtcclxuICAgICAgc2VyaWVzTUEgPSBmaWxsU2VyaWVzKHNlcmllc01BLCBvcHRzLCBjb25maWcpO1xyXG4gICAgICBvcHRzLnNlcmllc01BID0gc2VyaWVzTUE7XHJcbiAgICB9IGVsc2UgaWYgKG9wdHMuc2VyaWVzTUEpIHtcclxuICAgICAgc2VyaWVzTUEgPSBvcHRzLnNlcmllc01BID0gZmlsbFNlcmllcyhvcHRzLnNlcmllc01BLCBvcHRzLCBjb25maWcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VyaWVzTUEgPSBzZXJpZXM7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHNlcmllc01BID0gc2VyaWVzO1xyXG4gIH1cclxuICAvKiDov4fmu6TmjolzaG93PWZhbHNl55qEc2VyaWVzICovXHJcbiAgb3B0cy5fc2VyaWVzXyA9IHNlcmllcyA9IGZpbHRlclNlcmllcyhzZXJpZXMpO1xyXG4gIC8v6YeN5paw6K6h566X5Zu+6KGo5Yy65Z+fXHJcbiAgb3B0cy5hcmVhID0gbmV3IEFycmF5KDQpO1xyXG4gIC8v5aSN5L2N57uY5Zu+5Yy65Z+fXHJcbiAgZm9yIChsZXQgaiA9IDA7IGogPCA0OyBqKyspIHtcclxuICAgIG9wdHMuYXJlYVtqXSA9IG9wdHMucGFkZGluZ1tqXSAqIG9wdHMucGl4O1xyXG4gIH1cclxuICAvL+mAmui/h+iuoeeul+S4ieWkp+WMuuWfn++8muWbvuS+i+OAgVjovbTjgIFZ6L2055qE5aSn5bCP77yM56Gu5a6a57uY5Zu+5Yy65Z+fXHJcbiAgdmFyIF9jYWxMZWdlbmREYXRhID0gY2FsTGVnZW5kRGF0YShzZXJpZXNNQSwgb3B0cywgY29uZmlnLCBvcHRzLmNoYXJ0RGF0YSwgY29udGV4dCksXHJcbiAgICBsZWdlbmRIZWlnaHQgPSBfY2FsTGVnZW5kRGF0YS5hcmVhLndob2xlSGVpZ2h0LFxyXG4gICAgbGVnZW5kV2lkdGggPSBfY2FsTGVnZW5kRGF0YS5hcmVhLndob2xlV2lkdGg7XHJcblxyXG4gIHN3aXRjaCAob3B0cy5sZWdlbmQucG9zaXRpb24pIHtcclxuICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgIG9wdHMuYXJlYVswXSArPSBsZWdlbmRIZWlnaHQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgb3B0cy5hcmVhWzJdICs9IGxlZ2VuZEhlaWdodDtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgb3B0cy5hcmVhWzNdICs9IGxlZ2VuZFdpZHRoO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgb3B0cy5hcmVhWzFdICs9IGxlZ2VuZFdpZHRoO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcblxyXG4gIGxldCBfY2FsWUF4aXNEYXRhID0ge30sXHJcbiAgICB5QXhpc1dpZHRoID0gMDtcclxuICBpZiAob3B0cy50eXBlID09PSAnbGluZScgfHwgb3B0cy50eXBlID09PSAnY29sdW1uJ3x8IG9wdHMudHlwZSA9PT0gJ21vdW50JyB8fCBvcHRzLnR5cGUgPT09ICdhcmVhJyB8fCBvcHRzLnR5cGUgPT09ICdtaXgnIHx8IG9wdHMudHlwZSA9PT0gJ2NhbmRsZScgfHwgb3B0cy50eXBlID09PSAnc2NhdHRlcicgIHx8IG9wdHMudHlwZSA9PT0gJ2J1YmJsZScgfHwgb3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICBfY2FsWUF4aXNEYXRhID0gY2FsWUF4aXNEYXRhKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICAgIC8v5aaC5p6c5pi+56S6Wei9tOagh+mimFxyXG4gICAgaWYgKG9wdHMueUF4aXMuc2hvd1RpdGxlKSB7XHJcbiAgICAgIGxldCBtYXhUaXRsZUhlaWdodCA9IDA7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3B0cy55QXhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbWF4VGl0bGVIZWlnaHQgPSBNYXRoLm1heChtYXhUaXRsZUhlaWdodCwgb3B0cy55QXhpcy5kYXRhW2ldLnRpdGxlRm9udFNpemUgPyBvcHRzLnlBeGlzLmRhdGFbaV0udGl0bGVGb250U2l6ZSAqIG9wdHMucGl4IDogY29uZmlnLmZvbnRTaXplKVxyXG4gICAgICB9XHJcbiAgICAgIG9wdHMuYXJlYVswXSArPSBtYXhUaXRsZUhlaWdodDtcclxuICAgIH1cclxuICAgIGxldCByaWdodEluZGV4ID0gMCxcclxuICAgICAgbGVmdEluZGV4ID0gMDtcclxuICAgIC8v6K6h566X5Li757uY5Zu+5Yy65Z+f5bem5Y+z5L2N572uXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHlBeGlzV2lkdGgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHlBeGlzV2lkdGhbaV0ucG9zaXRpb24gPT0gJ2xlZnQnKSB7XHJcbiAgICAgICAgaWYgKGxlZnRJbmRleCA+IDApIHtcclxuICAgICAgICAgIG9wdHMuYXJlYVszXSArPSB5QXhpc1dpZHRoW2ldLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9wdHMuYXJlYVszXSArPSB5QXhpc1dpZHRoW2ldLndpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZWZ0SW5kZXggKz0gMTtcclxuICAgICAgfSBlbHNlIGlmICh5QXhpc1dpZHRoW2ldLnBvc2l0aW9uID09ICdyaWdodCcpIHtcclxuICAgICAgICBpZiAocmlnaHRJbmRleCA+IDApIHtcclxuICAgICAgICAgIG9wdHMuYXJlYVsxXSArPSB5QXhpc1dpZHRoW2ldLndpZHRoICsgb3B0cy55QXhpcy5wYWRkaW5nICogb3B0cy5waXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9wdHMuYXJlYVsxXSArPSB5QXhpc1dpZHRoW2ldLndpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICByaWdodEluZGV4ICs9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgY29uZmlnLnlBeGlzV2lkdGggPSB5QXhpc1dpZHRoO1xyXG4gIH1cclxuICBvcHRzLmNoYXJ0RGF0YS55QXhpc0RhdGEgPSBfY2FsWUF4aXNEYXRhO1xyXG5cclxuICBpZiAob3B0cy5jYXRlZ29yaWVzICYmIG9wdHMuY2F0ZWdvcmllcy5sZW5ndGggJiYgb3B0cy50eXBlICE9PSAncmFkYXInICYmIG9wdHMudHlwZSAhPT0gJ2dhdWdlJyAmJiBvcHRzLnR5cGUgIT09ICdiYXInKSB7XHJcbiAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEgPSBnZXRYQXhpc1BvaW50cyhvcHRzLmNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZyk7XHJcbiAgICBsZXQgX2NhbENhdGVnb3JpZXNEYXRhID0gY2FsQ2F0ZWdvcmllc0RhdGEob3B0cy5jYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZywgY29udGV4dCksXHJcbiAgICAgIHhBeGlzSGVpZ2h0ID0gX2NhbENhdGVnb3JpZXNEYXRhLnhBeGlzSGVpZ2h0LFxyXG4gICAgICBhbmdsZSA9IF9jYWxDYXRlZ29yaWVzRGF0YS5hbmdsZTtcclxuICAgIGNvbmZpZy54QXhpc0hlaWdodCA9IHhBeGlzSGVpZ2h0O1xyXG4gICAgY29uZmlnLl94QXhpc1RleHRBbmdsZV8gPSBhbmdsZTtcclxuICAgIG9wdHMuYXJlYVsyXSArPSB4QXhpc0hlaWdodDtcclxuICAgIG9wdHMuY2hhcnREYXRhLmNhdGVnb3JpZXNEYXRhID0gX2NhbENhdGVnb3JpZXNEYXRhO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAob3B0cy50eXBlID09PSAnbGluZScgfHwgb3B0cy50eXBlID09PSAnYXJlYScgfHwgb3B0cy50eXBlID09PSAnc2NhdHRlcicgfHwgb3B0cy50eXBlID09PSAnYnViYmxlJyB8fCBvcHRzLnR5cGUgPT09ICdiYXInKSB7XHJcbiAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSA9IGNhbFhBeGlzRGF0YShzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgIGNhdGVnb3JpZXMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEucmFuZ2VzRm9ybWF0O1xyXG4gICAgICBsZXQgX2NhbENhdGVnb3JpZXNEYXRhID0gY2FsQ2F0ZWdvcmllc0RhdGEoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEuZWFjaFNwYWNpbmcsIGNvbnRleHQpLFxyXG4gICAgICAgIHhBeGlzSGVpZ2h0ID0gX2NhbENhdGVnb3JpZXNEYXRhLnhBeGlzSGVpZ2h0LFxyXG4gICAgICAgIGFuZ2xlID0gX2NhbENhdGVnb3JpZXNEYXRhLmFuZ2xlO1xyXG4gICAgICBjb25maWcueEF4aXNIZWlnaHQgPSB4QXhpc0hlaWdodDtcclxuICAgICAgY29uZmlnLl94QXhpc1RleHRBbmdsZV8gPSBhbmdsZTtcclxuICAgICAgb3B0cy5hcmVhWzJdICs9IHhBeGlzSGVpZ2h0O1xyXG4gICAgICBvcHRzLmNoYXJ0RGF0YS5jYXRlZ29yaWVzRGF0YSA9IF9jYWxDYXRlZ29yaWVzRGF0YTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YSA9IHtcclxuICAgICAgICB4QXhpc1BvaW50czogW11cclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8v6K6h566X5Y+z5a+56b2Q5YGP56e76Led56a7XHJcbiAgaWYgKG9wdHMuZW5hYmxlU2Nyb2xsICYmIG9wdHMueEF4aXMuc2Nyb2xsQWxpZ24gPT0gJ3JpZ2h0JyAmJiBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgbGV0IG9mZnNldExlZnQgPSAwLFxyXG4gICAgICB4QXhpc1BvaW50cyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS54QXhpc1BvaW50cyxcclxuICAgICAgc3RhcnRYID0gb3B0cy5jaGFydERhdGEueEF4aXNEYXRhLnN0YXJ0WCxcclxuICAgICAgZW5kWCA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lbmRYLFxyXG4gICAgICBlYWNoU3BhY2luZyA9IG9wdHMuY2hhcnREYXRhLnhBeGlzRGF0YS5lYWNoU3BhY2luZztcclxuICAgIGxldCB0b3RhbFdpZHRoID0gZWFjaFNwYWNpbmcgKiAoeEF4aXNQb2ludHMubGVuZ3RoIC0gMSk7XHJcbiAgICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgb2Zmc2V0TGVmdCA9IHNjcmVlbldpZHRoIC0gdG90YWxXaWR0aDtcclxuICAgIF90aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0ID0gb2Zmc2V0TGVmdDtcclxuICAgIF90aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWCA9IG9mZnNldExlZnQ7XHJcbiAgICBfdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSAwO1xyXG4gICAgX3RoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9IDA7XHJcbiAgICBvcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGUgPT09ICdwaWUnIHx8IHR5cGUgPT09ICdyaW5nJyB8fCB0eXBlID09PSAncm9zZScpIHtcclxuICAgIGNvbmZpZy5fcGllVGV4dE1heExlbmd0aF8gPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogZ2V0UGllVGV4dE1heExlbmd0aChzZXJpZXNNQSwgY29uZmlnLCBjb250ZXh0LCBvcHRzKTtcclxuICB9XHJcbiAgXHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICd3b3JkJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24ocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3V29yZENsb3VkRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdtYXAnOlxyXG4gICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgIGRyYXdNYXBEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgIHRoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgIH0sNTApXHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnZnVubmVsJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24ocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhID0gZHJhd0Z1bm5lbERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGluZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3TGluZURhdGFQb2ludHMgPSBkcmF3TGluZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3TGluZURhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3TGluZURhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3TGluZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnc2NhdHRlcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdZQXhpc0dyaWQoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGRyYXdYQXhpcyhjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgdmFyIF9kcmF3U2NhdHRlckRhdGFQb2ludHMgPSBkcmF3U2NhdHRlckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMueEF4aXNQb2ludHMsXHJcbiAgICAgICAgICAgIGNhbFBvaW50cyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMuY2FsUG9pbnRzLFxyXG4gICAgICAgICAgICBlYWNoU3BhY2luZyA9IF9kcmF3U2NhdHRlckRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYnViYmxlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdCdWJibGVEYXRhUG9pbnRzID0gZHJhd0J1YmJsZURhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3QnViYmxlRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdCdWJibGVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0J1YmJsZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbWl4JzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdNaXhEYXRhUG9pbnRzID0gZHJhd01peERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3TWl4RGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdNaXhEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd01peERhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnY29sdW1uJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdDb2x1bW5EYXRhUG9pbnRzID0gZHJhd0NvbHVtbkRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3Q29sdW1uRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdDb2x1bW5EYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0NvbHVtbkRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbW91bnQnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd01vdW50RGF0YVBvaW50cyA9IGRyYXdNb3VudERhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3TW91bnREYXRhUG9pbnRzLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgICAgICBjYWxQb2ludHMgPSBfZHJhd01vdW50RGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdNb3VudERhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYmFyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdCYXJEYXRhUG9pbnRzID0gZHJhd0JhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB5QXhpc1BvaW50cyA9IF9kcmF3QmFyRGF0YVBvaW50cy55QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdCYXJEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0JhckRhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS55QXhpc1BvaW50cyA9IHlBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEueEF4aXNQb2ludHMgPSBvcHRzLmNoYXJ0RGF0YS54QXhpc0RhdGEueEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB5QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdhcmVhJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1lBeGlzR3JpZChjYXRlZ29yaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgZHJhd1hBeGlzKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICB2YXIgX2RyYXdBcmVhRGF0YVBvaW50cyA9IGRyYXdBcmVhRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2VzcyksXHJcbiAgICAgICAgICAgIHhBeGlzUG9pbnRzID0gX2RyYXdBcmVhRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdBcmVhRGF0YVBvaW50cy5jYWxQb2ludHMsXHJcbiAgICAgICAgICAgIGVhY2hTcGFjaW5nID0gX2RyYXdBcmVhRGF0YVBvaW50cy5lYWNoU3BhY2luZztcclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnhBeGlzUG9pbnRzID0geEF4aXNQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5jYWxQb2ludHMgPSBjYWxQb2ludHM7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS5lYWNoU3BhY2luZyA9IGVhY2hTcGFjaW5nO1xyXG4gICAgICAgICAgZHJhd1lBeGlzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIGlmIChvcHRzLmVuYWJsZU1hcmtMaW5lICE9PSBmYWxzZSAmJiBwcm9jZXNzID09PSAxKSB7XHJcbiAgICAgICAgICAgIGRyYXdNYXJrTGluZShvcHRzLCBjb25maWcsIGNvbnRleHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MsIGVhY2hTcGFjaW5nLCB4QXhpc1BvaW50cyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyaW5nJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEucGllRGF0YSA9IGRyYXdQaWVEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3BpZSc6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnBpZURhdGEgPSBkcmF3UGllRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyb3NlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEucGllRGF0YSA9IGRyYXdSb3NlRGF0YVBvaW50cyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3TGVnZW5kKG9wdHMuc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIGRyYXdUb29sVGlwQnJpZGdlKG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdyYWRhcic6XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgPSBuZXcgQW5pbWF0aW9uKHtcclxuICAgICAgICB0aW1pbmc6IG9wdHMudGltaW5nLFxyXG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBvblByb2Nlc3M6IGZ1bmN0aW9uIG9uUHJvY2Vzcyhwcm9jZXNzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBvcHRzLndpZHRoLCBvcHRzLmhlaWdodCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5yb3RhdGUpIHtcclxuICAgICAgICAgICAgY29udGV4dFJvdGF0ZShjb250ZXh0LCBvcHRzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9wdHMuY2hhcnREYXRhLnJhZGFyRGF0YSA9IGRyYXdSYWRhckRhdGFQb2ludHMoc2VyaWVzLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0xlZ2VuZChvcHRzLnNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBvcHRzLmNoYXJ0RGF0YSk7XHJcbiAgICAgICAgICBkcmF3VG9vbFRpcEJyaWRnZShvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnYXJjYmFyJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuYXJjYmFyRGF0YSA9IGRyYXdBcmNiYXJEYXRhUG9pbnRzKHNlcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzKTtcclxuICAgICAgICAgIGRyYXdDYW52YXMob3B0cywgY29udGV4dCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkFuaW1hdGlvbkZpbmlzaDogZnVuY3Rpb24gb25BbmltYXRpb25GaW5pc2goKSB7XHJcbiAgICAgICAgICBfdGhpcy51ZXZlbnQudHJpZ2dlcigncmVuZGVyQ29tcGxldGUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2dhdWdlJzpcclxuICAgICAgdGhpcy5hbmltYXRpb25JbnN0YW5jZSA9IG5ldyBBbmltYXRpb24oe1xyXG4gICAgICAgIHRpbWluZzogb3B0cy50aW1pbmcsXHJcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxyXG4gICAgICAgIG9uUHJvY2VzczogZnVuY3Rpb24gb25Qcm9jZXNzKHByb2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIG9wdHMud2lkdGgsIG9wdHMuaGVpZ2h0KTtcclxuICAgICAgICAgIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgICAgICAgICBjb250ZXh0Um90YXRlKGNvbnRleHQsIG9wdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZ2F1Z2VEYXRhID0gZHJhd0dhdWdlRGF0YVBvaW50cyhjYXRlZ29yaWVzLCBzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgcHJvY2Vzcyk7XHJcbiAgICAgICAgICBkcmF3Q2FudmFzKG9wdHMsIGNvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25BbmltYXRpb25GaW5pc2g6IGZ1bmN0aW9uIG9uQW5pbWF0aW9uRmluaXNoKCkge1xyXG4gICAgICAgICAgX3RoaXMudWV2ZW50LnRyaWdnZXIoJ3JlbmRlckNvbXBsZXRlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdjYW5kbGUnOlxyXG4gICAgICB0aGlzLmFuaW1hdGlvbkluc3RhbmNlID0gbmV3IEFuaW1hdGlvbih7XHJcbiAgICAgICAgdGltaW5nOiBvcHRzLnRpbWluZyxcclxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgICAgb25Qcm9jZXNzOiBmdW5jdGlvbiBvblByb2Nlc3MocHJvY2Vzcykge1xyXG4gICAgICAgICAgY29udGV4dC5jbGVhclJlY3QoMCwgMCwgb3B0cy53aWR0aCwgb3B0cy5oZWlnaHQpO1xyXG4gICAgICAgICAgaWYgKG9wdHMucm90YXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnRleHRSb3RhdGUoY29udGV4dCwgb3B0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkcmF3WUF4aXNHcmlkKGNhdGVnb3JpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBkcmF3WEF4aXMoY2F0ZWdvcmllcywgb3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIHZhciBfZHJhd0NhbmRsZURhdGFQb2ludHMgPSBkcmF3Q2FuZGxlRGF0YVBvaW50cyhzZXJpZXMsIHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIHByb2Nlc3MpLFxyXG4gICAgICAgICAgICB4QXhpc1BvaW50cyA9IF9kcmF3Q2FuZGxlRGF0YVBvaW50cy54QXhpc1BvaW50cyxcclxuICAgICAgICAgICAgY2FsUG9pbnRzID0gX2RyYXdDYW5kbGVEYXRhUG9pbnRzLmNhbFBvaW50cyxcclxuICAgICAgICAgICAgZWFjaFNwYWNpbmcgPSBfZHJhd0NhbmRsZURhdGFQb2ludHMuZWFjaFNwYWNpbmc7XHJcbiAgICAgICAgICBvcHRzLmNoYXJ0RGF0YS54QXhpc1BvaW50cyA9IHhBeGlzUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzID0gY2FsUG9pbnRzO1xyXG4gICAgICAgICAgb3B0cy5jaGFydERhdGEuZWFjaFNwYWNpbmcgPSBlYWNoU3BhY2luZztcclxuICAgICAgICAgIGRyYXdZQXhpcyhzZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCk7XHJcbiAgICAgICAgICBpZiAob3B0cy5lbmFibGVNYXJrTGluZSAhPT0gZmFsc2UgJiYgcHJvY2VzcyA9PT0gMSkge1xyXG4gICAgICAgICAgICBkcmF3TWFya0xpbmUob3B0cywgY29uZmlnLCBjb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChzZXJpZXNNQSkge1xyXG4gICAgICAgICAgICBkcmF3TGVnZW5kKHNlcmllc01BLCBvcHRzLCBjb25maWcsIGNvbnRleHQsIG9wdHMuY2hhcnREYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRyYXdMZWdlbmQob3B0cy5zZXJpZXMsIG9wdHMsIGNvbmZpZywgY29udGV4dCwgb3B0cy5jaGFydERhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJhd1Rvb2xUaXBCcmlkZ2Uob3B0cywgY29uZmlnLCBjb250ZXh0LCBwcm9jZXNzLCBlYWNoU3BhY2luZywgeEF4aXNQb2ludHMpO1xyXG4gICAgICAgICAgZHJhd0NhbnZhcyhvcHRzLCBjb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uQW5pbWF0aW9uRmluaXNoOiBmdW5jdGlvbiBvbkFuaW1hdGlvbkZpbmlzaCgpIHtcclxuICAgICAgICAgIF90aGlzLnVldmVudC50cmlnZ2VyKCdyZW5kZXJDb21wbGV0ZScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gdUNoYXJ0c0V2ZW50KCkge1xyXG4gIHRoaXMuZXZlbnRzID0ge307XHJcbn1cclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XHJcbiAgdGhpcy5ldmVudHNbdHlwZV0gPSB0aGlzLmV2ZW50c1t0eXBlXSB8fCBbXTtcclxuICB0aGlzLmV2ZW50c1t0eXBlXS5wdXNoKGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHNFdmVudC5wcm90b3R5cGUuZGVsRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUpIHtcclxuICB0aGlzLmV2ZW50c1t0eXBlXSA9IFtdO1xyXG59O1xyXG5cclxudUNoYXJ0c0V2ZW50LnByb3RvdHlwZS50cmlnZ2VyID0gZnVuY3Rpb24oKSB7XHJcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcclxuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XHJcbiAgfVxyXG4gIHZhciB0eXBlID0gYXJnc1swXTtcclxuICB2YXIgcGFyYW1zID0gYXJncy5zbGljZSgxKTtcclxuICBpZiAoISF0aGlzLmV2ZW50c1t0eXBlXSkge1xyXG4gICAgdGhpcy5ldmVudHNbdHlwZV0uZm9yRWFjaChmdW5jdGlvbihsaXN0ZW5lcikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxpc3RlbmVyLmFwcGx5KG51bGwsIHBhcmFtcyk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coJ1t1Q2hhcnRzXSAnK2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG52YXIgdUNoYXJ0cyA9IGZ1bmN0aW9uIHVDaGFydHMob3B0cykge1xyXG4gIG9wdHMucGl4ID0gb3B0cy5waXhlbFJhdGlvID8gb3B0cy5waXhlbFJhdGlvIDogMTtcclxuICBvcHRzLmZvbnRTaXplID0gb3B0cy5mb250U2l6ZSA/IG9wdHMuZm9udFNpemUgOiAxMztcclxuICBvcHRzLmZvbnRDb2xvciA9IG9wdHMuZm9udENvbG9yID8gb3B0cy5mb250Q29sb3IgOiBjb25maWcuZm9udENvbG9yO1xyXG4gIGlmIChvcHRzLmJhY2tncm91bmQgPT0gXCJcIiB8fCBvcHRzLmJhY2tncm91bmQgPT0gXCJub25lXCIpIHtcclxuICAgIG9wdHMuYmFja2dyb3VuZCA9IFwiI0ZGRkZGRlwiXHJcbiAgfVxyXG4gIG9wdHMudGl0bGUgPSBhc3NpZ24oe30sIG9wdHMudGl0bGUpO1xyXG4gIG9wdHMuc3VidGl0bGUgPSBhc3NpZ24oe30sIG9wdHMuc3VidGl0bGUpO1xyXG4gIG9wdHMuZHVyYXRpb24gPSBvcHRzLmR1cmF0aW9uID8gb3B0cy5kdXJhdGlvbiA6IDEwMDA7XHJcbiAgb3B0cy55QXhpcyA9IGFzc2lnbih7fSwge1xyXG4gICAgZGF0YTogW10sXHJcbiAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGlzYWJsZUdyaWQ6IGZhbHNlLFxyXG4gICAgZ3JpZFNldDogJ251bWJlcicsXHJcbiAgICBzcGxpdE51bWJlcjogNSxcclxuICAgIGdyaWRUeXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNCAqIG9wdHMucGl4LFxyXG4gICAgZ3JpZENvbG9yOiAnI2NjY2NjYycsXHJcbiAgICBwYWRkaW5nOiAxMCxcclxuICAgIGZvbnRDb2xvcjogJyM2NjY2NjYnXHJcbiAgfSwgb3B0cy55QXhpcyk7XHJcbiAgb3B0cy54QXhpcyA9IGFzc2lnbih7fSwge1xyXG4gICAgcm90YXRlTGFiZWw6IGZhbHNlLFxyXG4gICAgcm90YXRlQW5nbGU6NDUsXHJcbiAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICBkaXNhYmxlR3JpZDogZmFsc2UsXHJcbiAgICBzcGxpdE51bWJlcjogNSxcclxuICAgIGNhbGlicmF0aW9uOmZhbHNlLFxyXG4gICAgZm9udENvbG9yOiAnIzY2NjY2NicsXHJcbiAgICBmb250U2l6ZTogMTMsXHJcbiAgICBsaW5lSGVpZ2h0OiAyMCxcclxuICAgIG1hcmdpblRvcDogMCxcclxuICAgIGdyaWRUeXBlOiAnc29saWQnLFxyXG4gICAgZGFzaExlbmd0aDogNCxcclxuICAgIHNjcm9sbEFsaWduOiAnbGVmdCcsXHJcbiAgICBib3VuZGFyeUdhcDogJ2NlbnRlcicsXHJcbiAgICBheGlzTGluZTogdHJ1ZSxcclxuICAgIGF4aXNMaW5lQ29sb3I6ICcjY2NjY2NjJyxcclxuICAgIHRpdGxlRm9udFNpemU6IDEzLFxyXG4gICAgdGl0bGVPZmZzZXRZOiAwLFxyXG4gICAgdGl0bGVPZmZzZXRYOiAwLFxyXG4gICAgdGl0bGVGb250Q29sb3I6ICcjNjY2NjY2J1xyXG4gIH0sIG9wdHMueEF4aXMpO1xyXG4gIG9wdHMueEF4aXMuc2Nyb2xsUG9zaXRpb24gPSBvcHRzLnhBeGlzLnNjcm9sbEFsaWduO1xyXG4gIG9wdHMubGVnZW5kID0gYXNzaWduKHt9LCB7XHJcbiAgICBzaG93OiB0cnVlLFxyXG4gICAgcG9zaXRpb246ICdib3R0b20nLFxyXG4gICAgZmxvYXQ6ICdjZW50ZXInLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwKScsXHJcbiAgICBib3JkZXJDb2xvcjogJ3JnYmEoMCwwLDAsMCknLFxyXG4gICAgYm9yZGVyV2lkdGg6IDAsXHJcbiAgICBwYWRkaW5nOiA1LFxyXG4gICAgbWFyZ2luOiA1LFxyXG4gICAgaXRlbUdhcDogMTAsXHJcbiAgICBmb250U2l6ZTogb3B0cy5mb250U2l6ZSxcclxuICAgIGxpbmVIZWlnaHQ6IG9wdHMuZm9udFNpemUsXHJcbiAgICBmb250Q29sb3I6IG9wdHMuZm9udENvbG9yLFxyXG4gICAgZm9ybWF0dGVyOiB7fSxcclxuICAgIGhpZGRlbkNvbG9yOiAnI0NFQ0VDRSdcclxuICB9LCBvcHRzLmxlZ2VuZCk7XHJcbiAgb3B0cy5leHRyYSA9IGFzc2lnbih7XHJcbiAgICB0b29sdGlwOntcclxuICAgICAgbGVnZW5kU2hhcGU6ICdhdXRvJ1xyXG4gICAgfVxyXG4gIH0sIG9wdHMuZXh0cmEpO1xyXG4gIG9wdHMucm90YXRlID0gb3B0cy5yb3RhdGUgPyB0cnVlIDogZmFsc2U7XHJcbiAgb3B0cy5hbmltYXRpb24gPSBvcHRzLmFuaW1hdGlvbiA/IHRydWUgOiBmYWxzZTtcclxuICBvcHRzLnJvdGF0ZSA9IG9wdHMucm90YXRlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIG9wdHMuY2FudmFzMmQgPSBvcHRzLmNhbnZhczJkID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIFxyXG4gIGxldCBjb25maWckJDEgPSBhc3NpZ24oe30sIGNvbmZpZyk7XHJcbiAgY29uZmlnJCQxLmNvbG9yID0gb3B0cy5jb2xvciA/IG9wdHMuY29sb3IgOiBjb25maWckJDEuY29sb3I7XHJcbiAgaWYgKG9wdHMudHlwZSA9PSAncGllJykge1xyXG4gICAgY29uZmlnJCQxLnBpZUNoYXJ0TGluZVBhZGRpbmcgPSBvcHRzLmRhdGFMYWJlbCA9PT0gZmFsc2UgPyAwIDogb3B0cy5leHRyYS5waWUubGFiZWxXaWR0aCAqIG9wdHMucGl4IHx8IGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ3JpbmcnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnJpbmcubGFiZWxXaWR0aCAqIG9wdHMucGl4IHx8IGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGlmIChvcHRzLnR5cGUgPT0gJ3Jvc2UnKSB7XHJcbiAgICBjb25maWckJDEucGllQ2hhcnRMaW5lUGFkZGluZyA9IG9wdHMuZGF0YUxhYmVsID09PSBmYWxzZSA/IDAgOiBvcHRzLmV4dHJhLnJvc2UubGFiZWxXaWR0aCAqIG9wdHMucGl4IHx8IGNvbmZpZyQkMS5waWVDaGFydExpbmVQYWRkaW5nICogb3B0cy5waXg7XHJcbiAgfVxyXG4gIGNvbmZpZyQkMS5waWVDaGFydFRleHRQYWRkaW5nID0gb3B0cy5kYXRhTGFiZWwgPT09IGZhbHNlID8gMCA6IGNvbmZpZyQkMS5waWVDaGFydFRleHRQYWRkaW5nICogb3B0cy5waXg7XHJcblxyXG4gIC8v5bGP5bmV5peL6L2sXHJcbiAgY29uZmlnJCQxLnJvdGF0ZSA9IG9wdHMucm90YXRlO1xyXG4gIGlmIChvcHRzLnJvdGF0ZSkge1xyXG4gICAgbGV0IHRlbXBXaWR0aCA9IG9wdHMud2lkdGg7XHJcbiAgICBsZXQgdGVtcEhlaWdodCA9IG9wdHMuaGVpZ2h0O1xyXG4gICAgb3B0cy53aWR0aCA9IHRlbXBIZWlnaHQ7XHJcbiAgICBvcHRzLmhlaWdodCA9IHRlbXBXaWR0aDtcclxuICB9XHJcblxyXG4gIC8v6YCC6YWN6auY5YiG5bGPXHJcbiAgb3B0cy5wYWRkaW5nID0gb3B0cy5wYWRkaW5nID8gb3B0cy5wYWRkaW5nIDogY29uZmlnJCQxLnBhZGRpbmc7XHJcbiAgY29uZmlnJCQxLnlBeGlzV2lkdGggPSBjb25maWcueUF4aXNXaWR0aCAqIG9wdHMucGl4O1xyXG4gIGNvbmZpZyQkMS5mb250U2l6ZSA9IG9wdHMuZm9udFNpemUgKiBvcHRzLnBpeDtcclxuICBjb25maWckJDEudGl0bGVGb250U2l6ZSA9IGNvbmZpZy50aXRsZUZvbnRTaXplICogb3B0cy5waXg7XHJcbiAgY29uZmlnJCQxLnN1YnRpdGxlRm9udFNpemUgPSBjb25maWcuc3VidGl0bGVGb250U2l6ZSAqIG9wdHMucGl4O1xyXG4gIGlmKCFvcHRzLmNvbnRleHQpe1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdbdUNoYXJ0c10g5pyq6I635Y+W5YiwY29udGV4dO+8geazqOaEj++8mnYyLjDniYjmnKzlkI7vvIzpnIDopoHoh6rooYzojrflj5ZjYW52YXPnmoTnu5jlm77kuIrkuIvmloflubbkvKDlhaVvcHRzLmNvbnRleHTvvIEnKTtcclxuICB9XHJcbiAgdGhpcy5jb250ZXh0ID0gb3B0cy5jb250ZXh0O1xyXG4gIGlmICghdGhpcy5jb250ZXh0LnNldFRleHRBbGlnbikge1xyXG4gICAgdGhpcy5jb250ZXh0LnNldFN0cm9rZVN0eWxlID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdHJva2VTdHlsZSA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0TGluZVdpZHRoID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5saW5lV2lkdGggPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVDYXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxpbmVDYXAgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldEZvbnRTaXplID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb250ID0gZSArIFwicHggc2Fucy1zZXJpZlwiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldEZpbGxTdHlsZSA9IGZ1bmN0aW9uKGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsbFN0eWxlID0gZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5zZXRUZXh0QWxpZ24gPSBmdW5jdGlvbihlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRleHRBbGlnbiA9IGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRleHQuc2V0VGV4dEJhc2VsaW5lID0gZnVuY3Rpb24oZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50ZXh0QmFzZWxpbmUgPSBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0LnNldFNoYWRvdyA9IGZ1bmN0aW9uKG9mZnNldFgsb2Zmc2V0WSxibHVyLGNvbG9yKSB7XHJcbiAgICAgIHRoaXMuc2hhZG93Q29sb3IgPSBjb2xvcjtcclxuICAgICAgdGhpcy5zaGFkb3dPZmZzZXRYID0gb2Zmc2V0WDtcclxuICAgICAgdGhpcy5zaGFkb3dPZmZzZXRZID0gb2Zmc2V0WTtcclxuICAgICAgdGhpcy5zaGFkb3dCbHVyID0gYmx1cjtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dC5kcmF3ID0gZnVuY3Rpb24oKSB7fVxyXG4gIH1cclxuICAvL+WFvOWuuU5WVUVzZXRMaW5lRGFzaFxyXG4gIGlmKCF0aGlzLmNvbnRleHQuc2V0TGluZURhc2gpe1xyXG4gICAgdGhpcy5jb250ZXh0LnNldExpbmVEYXNoID0gZnVuY3Rpb24oZSkge31cclxuICB9XHJcbiAgb3B0cy5jaGFydERhdGEgPSB7fTtcclxuICB0aGlzLnVldmVudCA9IG5ldyB1Q2hhcnRzRXZlbnQoKTtcclxuICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICBzdGFydFRvdWNoWDogMCxcclxuICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgfTtcclxuICB0aGlzLm9wdHMgPSBvcHRzO1xyXG4gIHRoaXMuY29uZmlnID0gY29uZmlnJCQxO1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIGNvbmZpZyQkMSwgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnVwZGF0ZURhdGEgPSBmdW5jdGlvbigpIHtcclxuICBsZXQgZGF0YSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XHJcbiAgdGhpcy5vcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIGRhdGEpO1xyXG4gIHRoaXMub3B0cy51cGRhdGVEYXRhID0gdHJ1ZTtcclxuICBsZXQgc2Nyb2xsUG9zaXRpb24gPSBkYXRhLnNjcm9sbFBvc2l0aW9uIHx8ICdjdXJyZW50JztcclxuICBzd2l0Y2ggKHNjcm9sbFBvc2l0aW9uKSB7XHJcbiAgICBjYXNlICdjdXJyZW50JzpcclxuICAgICAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IDA7XHJcbiAgICAgIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgICAgIGN1cnJlbnRPZmZzZXQ6IDAsXHJcbiAgICAgICAgc3RhcnRUb3VjaFg6IDAsXHJcbiAgICAgICAgZGlzdGFuY2U6IDAsXHJcbiAgICAgICAgbGFzdE1vdmVUaW1lOiAwXHJcbiAgICAgIH07XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLCB5QXhpc1dpZHRoID0gX2NhbFlBeGlzRGF0YS55QXhpc1dpZHRoO1xyXG4gICAgICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICAgICAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gICAgICBsZXQgX2dldFhBeGlzUG9pbnRzMCA9IGdldFhBeGlzUG9pbnRzKHRoaXMub3B0cy5jYXRlZ29yaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnKSwgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgICAgIHN0YXJ0WCA9IF9nZXRYQXhpc1BvaW50czAuc3RhcnRYLFxyXG4gICAgICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICAgICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gICAgICBsZXQgdG90YWxXaWR0aCA9IGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gICAgICBsZXQgc2NyZWVuV2lkdGggPSBlbmRYIC0gc3RhcnRYO1xyXG4gICAgICBvZmZzZXRMZWZ0ID0gc2NyZWVuV2lkdGggLSB0b3RhbFdpZHRoO1xyXG4gICAgICB0aGlzLnNjcm9sbE9wdGlvbiA9IHtcclxuICAgICAgICBjdXJyZW50T2Zmc2V0OiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIHN0YXJ0VG91Y2hYOiBvZmZzZXRMZWZ0LFxyXG4gICAgICAgIGRpc3RhbmNlOiAwLFxyXG4gICAgICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IG9mZnNldExlZnQ7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxuICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgdGhpcy5vcHRzLnR5cGUsIHRoaXMub3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS56b29tID0gZnVuY3Rpb24oKSB7XHJcbiAgdmFyIHZhbCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogdGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudDtcclxuICBpZiAodGhpcy5vcHRzLmVuYWJsZVNjcm9sbCAhPT0gdHJ1ZSkge1xyXG4gICAgY29uc29sZS5sb2coJ1t1Q2hhcnRzXSDor7flkK/nlKjmu5rliqjmnaHlkI7kvb/nlKgnKVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICAvL+W9k+WJjeWxj+W5leS4remXtOeCuVxyXG4gIGxldCBjZW50ZXJQb2ludCA9IE1hdGgucm91bmQoTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkgLyB0aGlzLm9wdHMuY2hhcnREYXRhLmVhY2hTcGFjaW5nKSArIE1hdGgucm91bmQodGhpcy5vcHRzLnhBeGlzLml0ZW1Db3VudCAvIDIpO1xyXG4gIHRoaXMub3B0cy5hbmltYXRpb24gPSBmYWxzZTtcclxuICB0aGlzLm9wdHMueEF4aXMuaXRlbUNvdW50ID0gdmFsLml0ZW1Db3VudDtcclxuICAvL+mHjeaWsOiuoeeul3jovbTlgY/np7vot53nprtcclxuICBsZXQgX2NhbFlBeGlzRGF0YSA9IGNhbFlBeGlzRGF0YSh0aGlzLm9wdHMuc2VyaWVzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpLFxyXG4gICAgeUF4aXNXaWR0aCA9IF9jYWxZQXhpc0RhdGEueUF4aXNXaWR0aDtcclxuICB0aGlzLmNvbmZpZy55QXhpc1dpZHRoID0geUF4aXNXaWR0aDtcclxuICBsZXQgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgbGV0IF9nZXRYQXhpc1BvaW50czAgPSBnZXRYQXhpc1BvaW50cyh0aGlzLm9wdHMuY2F0ZWdvcmllcywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZyksXHJcbiAgICB4QXhpc1BvaW50cyA9IF9nZXRYQXhpc1BvaW50czAueEF4aXNQb2ludHMsXHJcbiAgICBzdGFydFggPSBfZ2V0WEF4aXNQb2ludHMwLnN0YXJ0WCxcclxuICAgIGVuZFggPSBfZ2V0WEF4aXNQb2ludHMwLmVuZFgsXHJcbiAgICBlYWNoU3BhY2luZyA9IF9nZXRYQXhpc1BvaW50czAuZWFjaFNwYWNpbmc7XHJcbiAgbGV0IGNlbnRlckxlZnQgPSBlYWNoU3BhY2luZyAqIGNlbnRlclBvaW50O1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSBzY3JlZW5XaWR0aCAvIDIgLSBjZW50ZXJMZWZ0O1xyXG4gIGlmIChvZmZzZXRMZWZ0ID4gMCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IDA7XHJcbiAgfVxyXG4gIGlmIChvZmZzZXRMZWZ0IDwgTWF4TGVmdCkge1xyXG4gICAgb2Zmc2V0TGVmdCA9IE1heExlZnQ7XHJcbiAgfVxyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogb2Zmc2V0TGVmdCxcclxuICAgIHN0YXJ0VG91Y2hYOiAwLFxyXG4gICAgZGlzdGFuY2U6IDAsXHJcbiAgICBsYXN0TW92ZVRpbWU6IDBcclxuICB9O1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRvYnVsZVpvb20gPSBmdW5jdGlvbihlKSB7XHJcbiAgaWYgKHRoaXMub3B0cy5lbmFibGVTY3JvbGwgIT09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdbdUNoYXJ0c10g6K+35ZCv55So5rua5Yqo5p2h5ZCO5L2/55SoJylcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgY29uc3QgdGNzID0gZS5jaGFuZ2VkVG91Y2hlcztcclxuICBpZiAodGNzLmxlbmd0aCA8IDIpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0Y3MubGVuZ3RoOyBpKyspIHtcclxuICAgIHRjc1tpXS54ID0gdGNzW2ldLnggPyB0Y3NbaV0ueCA6IHRjc1tpXS5jbGllbnRYO1xyXG4gICAgdGNzW2ldLnkgPSB0Y3NbaV0ueSA/IHRjc1tpXS55IDogdGNzW2ldLmNsaWVudFk7XHJcbiAgfVxyXG4gIGNvbnN0IG50Y3MgPSBbZ2V0VG91Y2hlcyh0Y3NbMF0sIHRoaXMub3B0cywgZSksZ2V0VG91Y2hlcyh0Y3NbMV0sIHRoaXMub3B0cywgZSldOyBcclxuICBjb25zdCB4bGVuZ3RoID0gTWF0aC5hYnMobnRjc1swXS54IC0gbnRjc1sxXS54KTtcclxuICAvLyDorrDlvZXliJ3lp4vnmoTkuKTmjIfkuYvpl7TnmoTmlbDmja5cclxuICBpZighdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50KXtcclxuICAgIGxldCBjdHMwID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0Y3NbMF0ueCx5OnRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCArIDJ9XX07XHJcbiAgICBsZXQgY3RzMSA9IHtjaGFuZ2VkVG91Y2hlczpbe3g6dGNzWzFdLngseTp0aGlzLm9wdHMuYXJlYVswXSAvIHRoaXMub3B0cy5waXggKyAyfV19O1xyXG4gICAgaWYodGhpcy5vcHRzLnJvdGF0ZSl7XHJcbiAgICAgIGN0czAgPSB7Y2hhbmdlZFRvdWNoZXM6W3t4OnRoaXMub3B0cy5oZWlnaHQgLyB0aGlzLm9wdHMucGl4IC0gdGhpcy5vcHRzLmFyZWFbMF0gLyB0aGlzLm9wdHMucGl4IC0gMix5OnRjc1swXS55fV19O1xyXG4gICAgICBjdHMxID0ge2NoYW5nZWRUb3VjaGVzOlt7eDp0aGlzLm9wdHMuaGVpZ2h0IC8gdGhpcy5vcHRzLnBpeCAtIHRoaXMub3B0cy5hcmVhWzBdIC8gdGhpcy5vcHRzLnBpeCAtIDIseTp0Y3NbMV0ueX1dfTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MSA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMwKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDdXJyZW50MiA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChjdHMxKS5pbmRleDtcclxuICAgIGNvbnN0IG1vdmVDb3VudCA9IE1hdGguYWJzKG1vdmVDdXJyZW50MSAtIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ291bnQgPSBtb3ZlQ291bnQ7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDEgPSBNYXRoLm1pbihtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5tb3ZlQ3VycmVudDIgPSBNYXRoLm1heChtb3ZlQ3VycmVudDEsIG1vdmVDdXJyZW50Mik7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBjdXJyZW50RWFjaFNwYWNpbmcgPSB4bGVuZ3RoIC8gdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50O1xyXG4gIGxldCBpdGVtQ291bnQgPSAodGhpcy5vcHRzLndpZHRoIC0gdGhpcy5vcHRzLmFyZWFbMV0gLSB0aGlzLm9wdHMuYXJlYVszXSkgLyBjdXJyZW50RWFjaFNwYWNpbmc7XHJcbiAgaXRlbUNvdW50ID0gaXRlbUNvdW50IDw9IDIgPyAyIDogaXRlbUNvdW50O1xyXG4gIGl0ZW1Db3VudCA9IGl0ZW1Db3VudCA+PSB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggPyB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGggOiBpdGVtQ291bnQ7XHJcbiAgdGhpcy5vcHRzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIHRoaXMub3B0cy54QXhpcy5pdGVtQ291bnQgPSBpdGVtQ291bnQ7XHJcbiAgLy8g6YeN5paw6K6h566X5rua5Yqo5p2h5YGP56e76Led56a7XHJcbiAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gIGxldCBfZ2V0WEF4aXNQb2ludHMwID0gZ2V0WEF4aXNQb2ludHModGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cywgdGhpcy5jb25maWcpLFxyXG4gICAgeEF4aXNQb2ludHMgPSBfZ2V0WEF4aXNQb2ludHMwLnhBeGlzUG9pbnRzLFxyXG4gICAgc3RhcnRYID0gX2dldFhBeGlzUG9pbnRzMC5zdGFydFgsXHJcbiAgICBlbmRYID0gX2dldFhBeGlzUG9pbnRzMC5lbmRYLFxyXG4gICAgZWFjaFNwYWNpbmcgPSBfZ2V0WEF4aXNQb2ludHMwLmVhY2hTcGFjaW5nO1xyXG4gIGxldCBjdXJyZW50TGVmdCA9IGVhY2hTcGFjaW5nICogdGhpcy5zY3JvbGxPcHRpb24ubW92ZUN1cnJlbnQxO1xyXG4gIGxldCBzY3JlZW5XaWR0aCA9IGVuZFggLSBzdGFydFg7XHJcbiAgbGV0IE1heExlZnQgPSBzY3JlZW5XaWR0aCAtIGVhY2hTcGFjaW5nICogKHhBeGlzUG9pbnRzLmxlbmd0aCAtIDEpO1xyXG4gIG9mZnNldExlZnQgPSAtY3VycmVudExlZnQrTWF0aC5taW4obnRjc1swXS54LG50Y3NbMV0ueCktdGhpcy5vcHRzLmFyZWFbM10tZWFjaFNwYWNpbmc7XHJcbiAgaWYgKG9mZnNldExlZnQgPiAwKSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gMDtcclxuICB9XHJcbiAgaWYgKG9mZnNldExlZnQgPCBNYXhMZWZ0KSB7XHJcbiAgICBvZmZzZXRMZWZ0ID0gTWF4TGVmdDtcclxuICB9XHJcbiAgdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldD0gb2Zmc2V0TGVmdDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWD0gMDtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5kaXN0YW5jZT0wO1xyXG4gIGNhbFZhbGlkRGlzdGFuY2UodGhpcywgb2Zmc2V0TGVmdCwgdGhpcy5vcHRzLmNoYXJ0RGF0YSwgdGhpcy5jb25maWcsIHRoaXMub3B0cyk7XHJcbiAgdGhpcy5vcHRzLl9zY3JvbGxEaXN0YW5jZV8gPSBvZmZzZXRMZWZ0O1xyXG4gIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufVxyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc3RvcEFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xyXG4gIHRoaXMuYW5pbWF0aW9uSW5zdGFuY2UgJiYgdGhpcy5hbmltYXRpb25JbnN0YW5jZS5zdG9wKCk7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcclxuICB0aGlzLnVldmVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmRlbEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlKSB7XHJcbiAgdGhpcy51ZXZlbnQuZGVsRXZlbnRMaXN0ZW5lcih0eXBlKTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldEN1cnJlbnREYXRhSW5kZXggPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzKSB7XHJcbiAgICBsZXQgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gICAgaWYgKHRoaXMub3B0cy50eXBlID09PSAncGllJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ3JpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kUGllQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucGllRGF0YSwgdGhpcy5vcHRzKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJykge1xyXG4gICAgICByZXR1cm4gZmluZFJvc2VDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5waWVEYXRhLCB0aGlzLm9wdHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3JhZGFyJykge1xyXG4gICAgICByZXR1cm4gZmluZFJhZGFyQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEucmFkYXJEYXRhLCB0aGlzLm9wdHMuY2F0ZWdvcmllcy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRGdW5uZWxDaGFydEN1cnJlbnRJbmRleCh7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfSwgdGhpcy5vcHRzLmNoYXJ0RGF0YS5mdW5uZWxEYXRhKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdtYXAnKSB7XHJcbiAgICAgIHJldHVybiBmaW5kTWFwQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnd29yZCcpIHtcclxuICAgICAgcmV0dXJuIGZpbmRXb3JkQ2hhcnRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEud29yZENsb3VkRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgICByZXR1cm4gZmluZEJhckNoYXJ0Q3VycmVudEluZGV4KHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmNhbFBvaW50cywgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgTWF0aC5hYnModGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZpbmRDdXJyZW50SW5kZXgoe1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH0sIHRoaXMub3B0cy5jaGFydERhdGEuY2FsUG9pbnRzLCB0aGlzLm9wdHMsIHRoaXMuY29uZmlnLCBNYXRoLmFicyh0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiAtMTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLmdldExlZ2VuZERhdGFJbmRleCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIGxldCBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICByZXR1cm4gZmluZExlZ2VuZEluZGV4KHtcclxuICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICB9LCB0aGlzLm9wdHMuY2hhcnREYXRhLmxlZ2VuZERhdGEpO1xyXG4gIH1cclxuICByZXR1cm4gLTE7XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50b3VjaExlZ2VuZCA9IGZ1bmN0aW9uKGUpIHtcclxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcclxuICB2YXIgdG91Y2hlcyA9IG51bGw7XHJcbiAgaWYgKGUuY2hhbmdlZFRvdWNoZXMpIHtcclxuICAgIHRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0b3VjaGVzID0gZS5tcC5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9XHJcbiAgaWYgKHRvdWNoZXMpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLmdldExlZ2VuZERhdGFJbmRleChlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdHMudHlwZSA9PSAnY2FuZGxlJykge1xyXG4gICAgICAgIHRoaXMub3B0cy5zZXJpZXNNQVtpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzTUFbaW5kZXhdLnNob3c7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0uc2hvdyA9ICF0aGlzLm9wdHMuc2VyaWVzW2luZGV4XS5zaG93O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0cy5hbmltYXRpb24gPSBvcHRpb24uYW5pbWF0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wdHMuX3Njcm9sbERpc3RhbmNlXyA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCB0aGlzLm9wdHMudHlwZSwgdGhpcy5vcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2hvd1Rvb2xUaXAgPSBmdW5jdGlvbihlKSB7XHJcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICghdG91Y2hlcykge1xyXG4gICAgY29uc29sZS5sb2coXCJbdUNoYXJ0c10g5pyq6I635Y+W5YiwZXZlbnTlnZDmoIfkv6Hmga9cIik7XHJcbiAgfVxyXG4gIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnbGluZScgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdhcmVhJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2NvbHVtbicgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdzY2F0dGVyJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2J1YmJsZScpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSB8fCBpbmRleC5sZW5ndGg+MCkge1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4LCBjdXJyZW50Lmdyb3VwKTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldFRvb2xUaXBEYXRhKHNlcmllc0RhdGEsIHRoaXMub3B0cywgaW5kZXgsIGN1cnJlbnQuZ3JvdXAsIHRoaXMub3B0cy5jYXRlZ29yaWVzLCBvcHRpb24pLFxyXG4gICAgICAgICAgdGV4dExpc3QgPSBfZ2V0VG9vbFRpcERhdGEudGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQgPSBfZ2V0VG9vbFRpcERhdGEub2Zmc2V0O1xyXG4gICAgICAgIG9mZnNldC55ID0gX3RvdWNoZXMkLnk7XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleCxcclxuICAgICAgICAgIGdyb3VwOiBjdXJyZW50Lmdyb3VwXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21vdW50Jykge1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKS5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHthbmltYXRpb246IGZhbHNlfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gYXNzaWduKHt9LCBvcHRzLl9zZXJpZXNfW2luZGV4XSk7XHJcbiAgICAgIHZhciB0ZXh0TGlzdCA9IFt7XHJcbiAgICAgICAgdGV4dDogb3B0aW9uLmZvcm1hdHRlciA/IG9wdGlvbi5mb3JtYXR0ZXIoc2VyaWVzRGF0YSwgdW5kZWZpbmVkLCBpbmRleCwgb3B0cykgOiBzZXJpZXNEYXRhLm5hbWUgKyAnOiAnICsgc2VyaWVzRGF0YS5kYXRhLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yLFxyXG4gICAgICAgIGxlZ2VuZFNoYXBlOiB0aGlzLm9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZSA9PSAnYXV0bycgPyBzZXJpZXNEYXRhLmxlZ2VuZFNoYXBlIDogdGhpcy5vcHRzLmV4dHJhLnRvb2x0aXAubGVnZW5kU2hhcGVcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogb3B0cy5jaGFydERhdGEuY2FsUG9pbnRzW2luZGV4XS54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbiAgaWYgKHRoaXMub3B0cy50eXBlID09PSAnYmFyJykge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSk7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gY3VycmVudC5pbmRleCA6IG9wdGlvbi5pbmRleDtcclxuICAgIGlmIChpbmRleCA+IC0xIHx8IGluZGV4Lmxlbmd0aD4wKSB7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgsIGN1cnJlbnQuZ3JvdXApO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldFRvb2xUaXBEYXRhID0gZ2V0VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgdGhpcy5vcHRzLCBpbmRleCwgY3VycmVudC5ncm91cCwgdGhpcy5vcHRzLmNhdGVnb3JpZXMsIG9wdGlvbiksXHJcbiAgICAgICAgICB0ZXh0TGlzdCA9IF9nZXRUb29sVGlwRGF0YS50ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldCA9IF9nZXRUb29sVGlwRGF0YS5vZmZzZXQ7XHJcbiAgICAgICAgb2Zmc2V0LnggPSBfdG91Y2hlcyQueDtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21peCcpIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpO1xyXG4gICAgdmFyIGluZGV4ID0gb3B0aW9uLmluZGV4ID09IHVuZGVmaW5lZCA/IGN1cnJlbnQuaW5kZXggOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgY3VycmVudE9mZnNldCA9IHRoaXMuc2Nyb2xsT3B0aW9uLmN1cnJlbnRPZmZzZXQ7XHJcbiAgICAgIHZhciBvcHRzID0gYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtcclxuICAgICAgICBfc2Nyb2xsRGlzdGFuY2VfOiBjdXJyZW50T2Zmc2V0LFxyXG4gICAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICAgIHZhciBzZXJpZXNEYXRhID0gZ2V0U2VyaWVzRGF0YUl0ZW0odGhpcy5vcHRzLnNlcmllcywgaW5kZXgpO1xyXG4gICAgICBpZiAoc2VyaWVzRGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB2YXIgX2dldE1peFRvb2xUaXBEYXRhID0gZ2V0TWl4VG9vbFRpcERhdGEoc2VyaWVzRGF0YSwgdGhpcy5vcHRzLCBpbmRleCwgdGhpcy5vcHRzLmNhdGVnb3JpZXMsIG9wdGlvbiksXHJcbiAgICAgICAgICB0ZXh0TGlzdCA9IF9nZXRNaXhUb29sVGlwRGF0YS50ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldCA9IF9nZXRNaXhUb29sVGlwRGF0YS5vZmZzZXQ7XHJcbiAgICAgICAgb2Zmc2V0LnkgPSBfdG91Y2hlcyQueTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdjYW5kbGUnKSB7XHJcbiAgICB2YXIgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGFJbmRleChlKTtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyBjdXJyZW50LmluZGV4IDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdmFyIGN1cnJlbnRPZmZzZXQgPSB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0O1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICAgICAgX3Njcm9sbERpc3RhbmNlXzogY3VycmVudE9mZnNldCxcclxuICAgICAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4KTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIF9nZXRUb29sVGlwRGF0YSA9IGdldENhbmRsZVRvb2xUaXBEYXRhKHRoaXMub3B0cy5zZXJpZXNbMF0uZGF0YSwgc2VyaWVzRGF0YSwgdGhpcy5vcHRzLCBpbmRleCwgdGhpcy5vcHRzLmNhdGVnb3JpZXMsIHRoaXMub3B0cy5leHRyYS5jYW5kbGUsIG9wdGlvbiksXHJcbiAgICAgICAgICB0ZXh0TGlzdCA9IF9nZXRUb29sVGlwRGF0YS50ZXh0TGlzdCxcclxuICAgICAgICAgIG9mZnNldCA9IF9nZXRUb29sVGlwRGF0YS5vZmZzZXQ7XHJcbiAgICAgICAgb2Zmc2V0LnkgPSBfdG91Y2hlcyQueTtcclxuICAgICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdwaWUnIHx8IHRoaXMub3B0cy50eXBlID09PSAncmluZycgfHwgdGhpcy5vcHRzLnR5cGUgPT09ICdyb3NlJyB8fCB0aGlzLm9wdHMudHlwZSA9PT0gJ2Z1bm5lbCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgb3B0cy5fc2VyaWVzX1tpbmRleF0pO1xyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIG9wdHMpIDogc2VyaWVzRGF0YS5uYW1lICsgJzogJyArIHNlcmllc0RhdGEuZGF0YSxcclxuICAgICAgICBjb2xvcjogc2VyaWVzRGF0YS5jb2xvcixcclxuICAgICAgICBsZWdlbmRTaGFwZTogdGhpcy5vcHRzLmV4dHJhLnRvb2x0aXAubGVnZW5kU2hhcGUgPT0gJ2F1dG8nID8gc2VyaWVzRGF0YS5sZWdlbmRTaGFwZSA6IHRoaXMub3B0cy5leHRyYS50b29sdGlwLmxlZ2VuZFNoYXBlXHJcbiAgICAgIH1dO1xyXG4gICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgIHg6IF90b3VjaGVzJC54LFxyXG4gICAgICAgIHk6IF90b3VjaGVzJC55XHJcbiAgICAgIH07XHJcbiAgICAgIG9wdHMudG9vbHRpcCA9IHtcclxuICAgICAgICB0ZXh0TGlzdDogb3B0aW9uLnRleHRMaXN0ID8gb3B0aW9uLnRleHRMaXN0IDogdGV4dExpc3QsXHJcbiAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgIG9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ21hcCcpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLnNlcmllc1tpbmRleF0pO1xyXG4gICAgICBzZXJpZXNEYXRhLm5hbWUgPSBzZXJpZXNEYXRhLnByb3BlcnRpZXMubmFtZVxyXG4gICAgICB2YXIgdGV4dExpc3QgPSBbe1xyXG4gICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKHNlcmllc0RhdGEsIHVuZGVmaW5lZCwgaW5kZXgsIHRoaXMub3B0cykgOiBzZXJpZXNEYXRhLm5hbWUsXHJcbiAgICAgICAgY29sb3I6IHNlcmllc0RhdGEuY29sb3IsXHJcbiAgICAgICAgbGVnZW5kU2hhcGU6IHRoaXMub3B0cy5leHRyYS50b29sdGlwLmxlZ2VuZFNoYXBlID09ICdhdXRvJyA/IHNlcmllc0RhdGEubGVnZW5kU2hhcGUgOiB0aGlzLm9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZVxyXG4gICAgICB9XTtcclxuICAgICAgdmFyIG9mZnNldCA9IHtcclxuICAgICAgICB4OiBfdG91Y2hlcyQueCxcclxuICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICB9O1xyXG4gICAgICBvcHRzLnRvb2x0aXAgPSB7XHJcbiAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgIG9mZnNldDogb3B0aW9uLm9mZnNldCAhPT0gdW5kZWZpbmVkID8gb3B0aW9uLm9mZnNldCA6IG9mZnNldCxcclxuICAgICAgICBvcHRpb246IG9wdGlvbixcclxuICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIG9wdHMudXBkYXRlRGF0YSA9IGZhbHNlO1xyXG4gICAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIG9wdHMudHlwZSwgb3B0cywgdGhpcy5jb25maWcsIHRoaXMuY29udGV4dCk7XHJcbiAgfVxyXG4gIGlmICh0aGlzLm9wdHMudHlwZSA9PT0gJ3dvcmQnKSB7XHJcbiAgICB2YXIgaW5kZXggPSBvcHRpb24uaW5kZXggPT0gdW5kZWZpbmVkID8gdGhpcy5nZXRDdXJyZW50RGF0YUluZGV4KGUpIDogb3B0aW9uLmluZGV4O1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdmFyIG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge2FuaW1hdGlvbjogZmFsc2V9KTtcclxuICAgICAgdmFyIHNlcmllc0RhdGEgPSBhc3NpZ24oe30sIHRoaXMub3B0cy5zZXJpZXNbaW5kZXhdKTtcclxuICAgICAgdmFyIHRleHRMaXN0ID0gW3tcclxuICAgICAgICB0ZXh0OiBvcHRpb24uZm9ybWF0dGVyID8gb3B0aW9uLmZvcm1hdHRlcihzZXJpZXNEYXRhLCB1bmRlZmluZWQsIGluZGV4LCB0aGlzLm9wdHMpIDogc2VyaWVzRGF0YS5uYW1lLFxyXG4gICAgICAgIGNvbG9yOiBzZXJpZXNEYXRhLmNvbG9yLFxyXG4gICAgICAgIGxlZ2VuZFNoYXBlOiB0aGlzLm9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZSA9PSAnYXV0bycgPyBzZXJpZXNEYXRhLmxlZ2VuZFNoYXBlIDogdGhpcy5vcHRzLmV4dHJhLnRvb2x0aXAubGVnZW5kU2hhcGVcclxuICAgICAgfV07XHJcbiAgICAgIHZhciBvZmZzZXQgPSB7XHJcbiAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgeTogX3RvdWNoZXMkLnlcclxuICAgICAgfTtcclxuICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgIHRleHRMaXN0OiBvcHRpb24udGV4dExpc3QgPyBvcHRpb24udGV4dExpc3QgOiB0ZXh0TGlzdCxcclxuICAgICAgICBvZmZzZXQ6IG9wdGlvbi5vZmZzZXQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5vZmZzZXQgOiBvZmZzZXQsXHJcbiAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgaW5kZXg6IGluZGV4XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvcHRzLnVwZGF0ZURhdGEgPSBmYWxzZTtcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gIH1cclxuICBpZiAodGhpcy5vcHRzLnR5cGUgPT09ICdyYWRhcicpIHtcclxuICAgIHZhciBpbmRleCA9IG9wdGlvbi5pbmRleCA9PSB1bmRlZmluZWQgPyB0aGlzLmdldEN1cnJlbnREYXRhSW5kZXgoZSkgOiBvcHRpb24uaW5kZXg7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7YW5pbWF0aW9uOiBmYWxzZX0pO1xyXG4gICAgICB2YXIgc2VyaWVzRGF0YSA9IGdldFNlcmllc0RhdGFJdGVtKHRoaXMub3B0cy5zZXJpZXMsIGluZGV4KTtcclxuICAgICAgaWYgKHNlcmllc0RhdGEubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdmFyIHRleHRMaXN0ID0gc2VyaWVzRGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHRleHQ6IG9wdGlvbi5mb3JtYXR0ZXIgPyBvcHRpb24uZm9ybWF0dGVyKGl0ZW0sIHRoaXMub3B0cy5jYXRlZ29yaWVzW2luZGV4XSwgaW5kZXgsIHRoaXMub3B0cykgOiBpdGVtLm5hbWUgKyAnOiAnICsgaXRlbS5kYXRhLFxyXG4gICAgICAgICAgICBjb2xvcjogaXRlbS5jb2xvcixcclxuICAgICAgICAgICAgbGVnZW5kU2hhcGU6IHRoaXMub3B0cy5leHRyYS50b29sdGlwLmxlZ2VuZFNoYXBlID09ICdhdXRvJyA/IGl0ZW0ubGVnZW5kU2hhcGUgOiB0aGlzLm9wdHMuZXh0cmEudG9vbHRpcC5sZWdlbmRTaGFwZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB2YXIgb2Zmc2V0ID0ge1xyXG4gICAgICAgICAgeDogX3RvdWNoZXMkLngsXHJcbiAgICAgICAgICB5OiBfdG91Y2hlcyQueVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgb3B0cy50b29sdGlwID0ge1xyXG4gICAgICAgICAgdGV4dExpc3Q6IG9wdGlvbi50ZXh0TGlzdCA/IG9wdGlvbi50ZXh0TGlzdCA6IHRleHRMaXN0LFxyXG4gICAgICAgICAgb2Zmc2V0OiBvcHRpb24ub2Zmc2V0ICE9PSB1bmRlZmluZWQgPyBvcHRpb24ub2Zmc2V0IDogb2Zmc2V0LFxyXG4gICAgICAgICAgb3B0aW9uOiBvcHRpb24sXHJcbiAgICAgICAgICBpbmRleDogaW5kZXhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkcmF3Q2hhcnRzLmNhbGwodGhpcywgb3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxuICB9XHJcbn07XHJcblxyXG51Q2hhcnRzLnByb3RvdHlwZS50cmFuc2xhdGUgPSBmdW5jdGlvbihkaXN0YW5jZSkge1xyXG4gIHRoaXMuc2Nyb2xsT3B0aW9uID0ge1xyXG4gICAgY3VycmVudE9mZnNldDogZGlzdGFuY2UsXHJcbiAgICBzdGFydFRvdWNoWDogZGlzdGFuY2UsXHJcbiAgICBkaXN0YW5jZTogMCxcclxuICAgIGxhc3RNb3ZlVGltZTogMFxyXG4gIH07XHJcbiAgbGV0IG9wdHMgPSBhc3NpZ24oe30sIHRoaXMub3B0cywge1xyXG4gICAgX3Njcm9sbERpc3RhbmNlXzogZGlzdGFuY2UsXHJcbiAgICBhbmltYXRpb246IGZhbHNlXHJcbiAgfSk7XHJcbiAgZHJhd0NoYXJ0cy5jYWxsKHRoaXMsIHRoaXMub3B0cy50eXBlLCBvcHRzLCB0aGlzLmNvbmZpZywgdGhpcy5jb250ZXh0KTtcclxufTtcclxuXHJcbnVDaGFydHMucHJvdG90eXBlLnNjcm9sbFN0YXJ0ID0gZnVuY3Rpb24oZSkge1xyXG4gIHZhciB0b3VjaGVzID0gbnVsbDtcclxuICBpZiAoZS5jaGFuZ2VkVG91Y2hlcykge1xyXG4gICAgdG91Y2hlcyA9IGUuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfSBlbHNlIHtcclxuICAgIHRvdWNoZXMgPSBlLm1wLmNoYW5nZWRUb3VjaGVzWzBdO1xyXG4gIH1cclxuICB2YXIgX3RvdWNoZXMkID0gZ2V0VG91Y2hlcyh0b3VjaGVzLCB0aGlzLm9wdHMsIGUpO1xyXG4gIGlmICh0b3VjaGVzICYmIHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYID0gX3RvdWNoZXMkLng7XHJcbiAgfVxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsID0gZnVuY3Rpb24oZSkge1xyXG4gIGlmICh0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPT09IDApIHtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmxhc3RNb3ZlVGltZSA9IERhdGUubm93KCk7XHJcbiAgfVxyXG4gIGxldCBMaW1pdCA9IHRoaXMub3B0cy50b3VjaE1vdmVMaW1pdCB8fCA2MDtcclxuICBsZXQgY3Vyck1vdmVUaW1lID0gRGF0ZS5ub3coKTtcclxuICBsZXQgZHVyYXRpb24gPSBjdXJyTW92ZVRpbWUgLSB0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWU7XHJcbiAgaWYgKGR1cmF0aW9uIDwgTWF0aC5mbG9vcigxMDAwIC8gTGltaXQpKSByZXR1cm47XHJcbiAgaWYgKHRoaXMuc2Nyb2xsT3B0aW9uLnN0YXJ0VG91Y2hYID09IDApIHJldHVybjtcclxuICB0aGlzLnNjcm9sbE9wdGlvbi5sYXN0TW92ZVRpbWUgPSBjdXJyTW92ZVRpbWU7XHJcbiAgdmFyIHRvdWNoZXMgPSBudWxsO1xyXG4gIGlmIChlLmNoYW5nZWRUb3VjaGVzKSB7XHJcbiAgICB0b3VjaGVzID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcclxuICB9IGVsc2Uge1xyXG4gICAgdG91Y2hlcyA9IGUubXAuY2hhbmdlZFRvdWNoZXNbMF07XHJcbiAgfVxyXG4gIGlmICh0b3VjaGVzICYmIHRoaXMub3B0cy5lbmFibGVTY3JvbGwgPT09IHRydWUpIHtcclxuICAgIHZhciBfdG91Y2hlcyQgPSBnZXRUb3VjaGVzKHRvdWNoZXMsIHRoaXMub3B0cywgZSk7XHJcbiAgICB2YXIgX2Rpc3RhbmNlO1xyXG4gICAgX2Rpc3RhbmNlID0gX3RvdWNoZXMkLnggLSB0aGlzLnNjcm9sbE9wdGlvbi5zdGFydFRvdWNoWDtcclxuICAgIHZhciBjdXJyZW50T2Zmc2V0ID0gdGhpcy5zY3JvbGxPcHRpb24uY3VycmVudE9mZnNldDtcclxuICAgIHZhciB2YWxpZERpc3RhbmNlID0gY2FsVmFsaWREaXN0YW5jZSh0aGlzLCBjdXJyZW50T2Zmc2V0ICsgX2Rpc3RhbmNlLCB0aGlzLm9wdHMuY2hhcnREYXRhLCB0aGlzLmNvbmZpZywgdGhpcy5vcHRzKTtcclxuICAgIHRoaXMuc2Nyb2xsT3B0aW9uLmRpc3RhbmNlID0gX2Rpc3RhbmNlID0gdmFsaWREaXN0YW5jZSAtIGN1cnJlbnRPZmZzZXQ7XHJcbiAgICB2YXIgb3B0cyA9IGFzc2lnbih7fSwgdGhpcy5vcHRzLCB7XHJcbiAgICAgIF9zY3JvbGxEaXN0YW5jZV86IGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2UsXHJcbiAgICAgIGFuaW1hdGlvbjogZmFsc2VcclxuICAgIH0pO1xyXG5cdFx0dGhpcy5vcHRzID0gb3B0cztcclxuICAgIGRyYXdDaGFydHMuY2FsbCh0aGlzLCBvcHRzLnR5cGUsIG9wdHMsIHRoaXMuY29uZmlnLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRPZmZzZXQgKyBfZGlzdGFuY2U7XHJcbiAgfVxyXG59O1xyXG5cclxudUNoYXJ0cy5wcm90b3R5cGUuc2Nyb2xsRW5kID0gZnVuY3Rpb24oZSkge1xyXG4gIGlmICh0aGlzLm9wdHMuZW5hYmxlU2Nyb2xsID09PSB0cnVlKSB7XHJcbiAgICB2YXIgX3Njcm9sbE9wdGlvbiA9IHRoaXMuc2Nyb2xsT3B0aW9uLFxyXG4gICAgICBjdXJyZW50T2Zmc2V0ID0gX3Njcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0LFxyXG4gICAgICBkaXN0YW5jZSA9IF9zY3JvbGxPcHRpb24uZGlzdGFuY2U7XHJcbiAgICB0aGlzLnNjcm9sbE9wdGlvbi5jdXJyZW50T2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGRpc3RhbmNlO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24uZGlzdGFuY2UgPSAwO1xyXG4gICAgdGhpcy5zY3JvbGxPcHRpb24ubW92ZUNvdW50ID0gMDtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCB1Q2hhcnRzOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///385\n"); /***/ }), /* 386 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\n\n//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改\nvar formatDateTime = function formatDateTime(timeStamp, returnType) {\n var date = new Date();\n date.setTime(timeStamp * 1000);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n var d = date.getDate();\n d = d < 10 ? '0' + d : d;\n var h = date.getHours();\n h = h < 10 ? '0' + h : h;\n var minute = date.getMinutes();\n var second = date.getSeconds();\n minute = minute < 10 ? '0' + minute : minute;\n second = second < 10 ? '0' + second : second;\n if (returnType == 'full') {\n return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\n }\n if (returnType == 'y-m-d') {\n return y + '-' + m + '-' + d;\n }\n if (returnType == 'h:m') {\n return h + ':' + minute;\n }\n if (returnType == 'h:m:s') {\n return h + ':' + minute + ':' + second;\n }\n return [y, m, d, h, minute, second];\n};\nvar cfu = {\n //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\n \"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"tline\", \"tarea\", \"scatter\", \"bubble\", \"demotype\"],\n \"range\": [\"饼状图\", \"圆环图\", \"玫瑰图\", \"词云图\", \"漏斗图\", \"地图\", \"圆弧进度条\", \"折线图\", \"柱状图\", \"山峰图\", \"条状图\", \"区域图\", \"雷达图\", \"仪表盘\", \"K线图\", \"混合图\", \"时间轴折线\", \"时间轴区域\", \"散点图\", \"气泡图\", \"自定义类型\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的\"demotype\"\n //自定义类型时需要注意\"tline\",\"tarea\",\"scatter\",\"bubble\"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories\n \"categories\": [\"line\", \"column\", \"mount\", \"bar\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"demotype\"],\n //instance为实例变量承载属性,不要删除\n \"instance\": {},\n //option为opts及eopts承载属性,不要删除\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"yAxisDemo1\": function yAxisDemo1(val, index, opts) {\n return val + '元';\n },\n \"yAxisDemo2\": function yAxisDemo2(val, index, opts) {\n return val.toFixed(2);\n },\n \"xAxisDemo1\": function xAxisDemo1(val, index, opts) {\n return val + '年';\n },\n \"xAxisDemo2\": function xAxisDemo2(val, index, opts) {\n return formatDateTime(val, 'h:m');\n },\n \"seriesDemo1\": function seriesDemo1(val, index, series, opts) {\n return val + '元';\n },\n \"tooltipDemo1\": function tooltipDemo1(item, category, index, opts) {\n if (index == 0) {\n return '随便用' + item.data + '年';\n } else {\n return '其他我没改' + item.data + '天';\n }\n },\n \"pieDemo\": function pieDemo(val, index, series, opts) {\n if (index !== undefined) {\n return series[index].name + ':' + series[index].data + '元';\n }\n }\n },\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。\n \"demotype\": {\n //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2\n }\n }\n },\n //下面是自定义配置,请添加项目所需的通用配置\n \"pie\": {\n \"type\": \"pie\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"extra\": {\n \"pie\": {\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"ring\": {\n \"type\": \"ring\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"rotate\": false,\n \"dataLabel\": true,\n \"legend\": {\n \"show\": true,\n \"position\": \"right\",\n \"lineHeight\": 25\n },\n \"title\": {\n \"name\": \"收益率\",\n \"fontSize\": 15,\n \"color\": \"#666666\"\n },\n \"subtitle\": {\n \"name\": \"70%\",\n \"fontSize\": 25,\n \"color\": \"#7cb5ec\"\n },\n \"extra\": {\n \"ring\": {\n \"ringWidth\": 30,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": true,\n \"borderWidth\": 3,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"rose\": {\n \"type\": \"rose\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"legend\": {\n \"show\": true,\n \"position\": \"left\",\n \"lineHeight\": 25\n },\n \"extra\": {\n \"rose\": {\n \"type\": \"area\",\n \"minRadius\": 50,\n \"activeOpacity\": 0.5,\n \"activeRadius\": 10,\n \"offsetAngle\": 0,\n \"labelWidth\": 15,\n \"border\": false,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\"\n }\n }\n },\n \"word\": {\n \"type\": \"word\",\n \"color\": color,\n \"extra\": {\n \"word\": {\n \"type\": \"normal\",\n \"autoColors\": false\n }\n }\n },\n \"funnel\": {\n \"type\": \"funnel\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"extra\": {\n \"funnel\": {\n \"activeOpacity\": 0.3,\n \"activeWidth\": 10,\n \"border\": true,\n \"borderWidth\": 2,\n \"borderColor\": \"#FFFFFF\",\n \"fillOpacity\": 1,\n \"labelAlign\": \"right\"\n }\n }\n },\n \"map\": {\n \"type\": \"map\",\n \"color\": color,\n \"padding\": [0, 0, 0, 0],\n \"dataLabel\": true,\n \"extra\": {\n \"map\": {\n \"border\": true,\n \"borderWidth\": 1,\n \"borderColor\": \"#666666\",\n \"fillOpacity\": 0.6,\n \"activeBorderColor\": \"#F04864\",\n \"activeFillColor\": \"#FACC14\",\n \"activeFillOpacity\": 1\n }\n }\n },\n \"arcbar\": {\n \"type\": \"arcbar\",\n \"color\": color,\n \"title\": {\n \"name\": \"百分比\",\n \"fontSize\": 25,\n \"color\": \"#00FF00\"\n },\n \"subtitle\": {\n \"name\": \"默认标题\",\n \"fontSize\": 15,\n \"color\": \"#666666\"\n },\n \"extra\": {\n \"arcbar\": {\n \"type\": \"default\",\n \"width\": 12,\n \"backgroundColor\": \"#E9E9E9\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"gap\": 2\n }\n }\n },\n \"line\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"straight\",\n \"width\": 2,\n \"activeType\": \"hollow\"\n }\n }\n },\n \"tline\": {\n \"type\": \"line\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"boundaryGap\": \"justify\"\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [{\n \"min\": 0,\n \"max\": 80\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"line\": {\n \"type\": \"curve\",\n \"width\": 2,\n \"activeType\": \"hollow\"\n }\n }\n },\n \"tarea\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 10, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true,\n \"boundaryGap\": \"justify\"\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2,\n \"data\": [{\n \"min\": 0,\n \"max\": 80\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"area\": {\n \"type\": \"curve\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": true,\n \"activeType\": \"hollow\"\n }\n }\n },\n \"column\": {\n \"type\": \"column\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"data\": [{\n \"min\": 0\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"column\": {\n \"type\": \"group\",\n \"width\": 30,\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08\n }\n }\n },\n \"mount\": {\n \"type\": \"mount\",\n \"color\": color,\n \"padding\": [15, 15, 0, 5],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"data\": [{\n \"min\": 0\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"mount\": {\n \"type\": \"mount\",\n \"widthRatio\": 1.5\n }\n }\n },\n \"bar\": {\n \"type\": \"bar\",\n \"color\": color,\n \"padding\": [15, 30, 0, 5],\n \"xAxis\": {\n \"boundaryGap\": \"justify\",\n \"disableGrid\": false,\n \"min\": 0,\n \"axisLine\": false\n },\n \"yAxis\": {},\n \"legend\": {},\n \"extra\": {\n \"bar\": {\n \"type\": \"group\",\n \"width\": 30,\n \"meterBorde\": 1,\n \"meterFillColor\": \"#FFFFFF\",\n \"activeBgColor\": \"#000000\",\n \"activeBgOpacity\": 0.08\n }\n }\n },\n \"area\": {\n \"type\": \"area\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"gridType\": \"dash\",\n \"dashLength\": 2\n },\n \"legend\": {},\n \"extra\": {\n \"area\": {\n \"type\": \"straight\",\n \"opacity\": 0.2,\n \"addLine\": true,\n \"width\": 2,\n \"gradient\": false,\n \"activeType\": \"hollow\"\n }\n }\n },\n \"radar\": {\n \"type\": \"radar\",\n \"color\": color,\n \"padding\": [5, 5, 5, 5],\n \"dataLabel\": false,\n \"legend\": {\n \"show\": true,\n \"position\": \"right\",\n \"lineHeight\": 25\n },\n \"extra\": {\n \"radar\": {\n \"gridType\": \"radar\",\n \"gridColor\": \"#CCCCCC\",\n \"gridCount\": 3,\n \"opacity\": 0.2,\n \"max\": 200,\n \"labelShow\": true\n }\n }\n },\n \"gauge\": {\n \"type\": \"gauge\",\n \"color\": color,\n \"title\": {\n \"name\": \"66Km/H\",\n \"fontSize\": 25,\n \"color\": \"#2fc25b\",\n \"offsetY\": 50\n },\n \"subtitle\": {\n \"name\": \"实时速度\",\n \"fontSize\": 15,\n \"color\": \"#1890ff\",\n \"offsetY\": -50\n },\n \"extra\": {\n \"gauge\": {\n \"type\": \"default\",\n \"width\": 30,\n \"labelColor\": \"#666666\",\n \"startAngle\": 0.75,\n \"endAngle\": 0.25,\n \"startNumber\": 0,\n \"endNumber\": 100,\n \"labelFormat\": \"\",\n \"splitLine\": {\n \"fixRadius\": 0,\n \"splitNumber\": 10,\n \"width\": 30,\n \"color\": \"#FFFFFF\",\n \"childNumber\": 5,\n \"childWidth\": 12\n },\n \"pointer\": {\n \"width\": 24,\n \"color\": \"auto\"\n }\n }\n }\n },\n \"candle\": {\n \"type\": \"candle\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"enableScroll\": true,\n \"enableMarkLine\": true,\n \"dataLabel\": false,\n \"xAxis\": {\n \"labelCount\": 4,\n \"itemCount\": 40,\n \"disableGrid\": true,\n \"gridColor\": \"#CCCCCC\",\n \"gridType\": \"solid\",\n \"dashLength\": 4,\n \"scrollShow\": true,\n \"scrollAlign\": \"left\",\n \"scrollColor\": \"#A6A6A6\",\n \"scrollBackgroundColor\": \"#EFEBEF\"\n },\n \"yAxis\": {},\n \"legend\": {},\n \"extra\": {\n \"candle\": {\n \"color\": {\n \"upLine\": \"#f04864\",\n \"upFill\": \"#f04864\",\n \"downLine\": \"#2fc25b\",\n \"downFill\": \"#2fc25b\"\n },\n \"average\": {\n \"show\": true,\n \"name\": [\"MA5\", \"MA10\", \"MA30\"],\n \"day\": [5, 10, 20],\n \"color\": [\"#1890ff\", \"#2fc25b\", \"#facc14\"]\n }\n },\n \"markLine\": {\n \"type\": \"dash\",\n \"dashLength\": 5,\n \"data\": [{\n \"value\": 2150,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true\n }, {\n \"value\": 2350,\n \"lineColor\": \"#f04864\",\n \"showLabel\": true\n }]\n }\n }\n },\n \"mix\": {\n \"type\": \"mix\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": true\n },\n \"yAxis\": {\n \"disabled\": false,\n \"disableGrid\": false,\n \"splitNumber\": 5,\n \"gridType\": \"dash\",\n \"dashLength\": 4,\n \"gridColor\": \"#CCCCCC\",\n \"padding\": 10,\n \"showTitle\": true,\n \"data\": []\n },\n \"legend\": {},\n \"extra\": {\n \"mix\": {\n \"column\": {\n \"width\": 20\n }\n }\n }\n },\n \"scatter\": {\n \"type\": \"scatter\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"dataLabel\": false,\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0\n },\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\"\n },\n \"legend\": {},\n \"extra\": {\n \"scatter\": {}\n }\n },\n \"bubble\": {\n \"type\": \"bubble\",\n \"color\": color,\n \"padding\": [15, 15, 0, 15],\n \"xAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"splitNumber\": 5,\n \"boundaryGap\": \"justify\",\n \"min\": 0,\n \"max\": 250\n },\n \"yAxis\": {\n \"disableGrid\": false,\n \"gridType\": \"dash\",\n \"data\": [{\n \"min\": 0,\n \"max\": 150\n }]\n },\n \"legend\": {},\n \"extra\": {\n \"bubble\": {\n \"border\": 2,\n \"opacity\": 0.5\n }\n }\n }\n};\nvar _default = cfu;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLXVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJmb3JtYXREYXRlVGltZSIsInRpbWVTdGFtcCIsInJldHVyblR5cGUiLCJkYXRlIiwiRGF0ZSIsInNldFRpbWUiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsIm1pbnV0ZSIsImdldE1pbnV0ZXMiLCJzZWNvbmQiLCJnZXRTZWNvbmRzIiwiY2Z1IiwidmFsIiwiaW5kZXgiLCJvcHRzIiwidG9GaXhlZCIsInNlcmllcyIsIml0ZW0iLCJjYXRlZ29yeSIsImRhdGEiLCJ1bmRlZmluZWQiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBTUEsS0FBSyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7O0FBRWpIO0FBQ0EsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjLENBQUlDLFNBQVMsRUFBRUMsVUFBVSxFQUFHO0VBQzlDLElBQUlDLElBQUksR0FBRyxJQUFJQyxJQUFJLEVBQUU7RUFDckJELElBQUksQ0FBQ0UsT0FBTyxDQUFDSixTQUFTLEdBQUcsSUFBSSxDQUFDO0VBQzlCLElBQUlLLENBQUMsR0FBR0gsSUFBSSxDQUFDSSxXQUFXLEVBQUU7RUFDMUIsSUFBSUMsQ0FBQyxHQUFHTCxJQUFJLENBQUNNLFFBQVEsRUFBRSxHQUFHLENBQUM7RUFDM0JELENBQUMsR0FBR0EsQ0FBQyxHQUFHLEVBQUUsR0FBSSxHQUFH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LENBQUM7SUFDSCxDQUFDO0lBQ0QsUUFBUSxFQUFFLENBQ1YsQ0FBQztJQUNELE9BQU8sRUFBRTtNQUNSLFFBQVEsRUFBRTtRQUNQLFFBQVEsRUFBQyxDQUFDO1FBQ1YsU0FBUyxFQUFFO01BQ2Q7SUFDRDtFQUNIO0FBQ0QsQ0FBQztBQUFBLGVBRWNtQixHQUFHO0FBQUEiLCJmaWxlIjoiMzg2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogdUNoYXJ0c8KuXHJcbiAqIOmrmOaAp+iDvei3qOW5s+WPsOWbvuihqOW6k++8jOaUr+aMgUg144CBQVBQ44CB5bCP56iL5bqP77yI5b6u5L+hL+aUr+S7mOWunS/nmb7luqYv5aS05p2hL1FRLzM2MO+8ieOAgVZ1ZeOAgVRhcm/nrYnmlK/mjIFjYW52YXPnmoTmoYbmnrblubPlj7BcclxuICogQ29weXJpZ2h0IChjKSAyMDIxIFFJVU7Crueni+S6kSBodHRwczovL3d3dy51Y2hhcnRzLmNuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkICggaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIClcclxuICog5aSN5Yi25L2/55So6K+35L+d55WZ5pys5q615rOo6YeK77yM5oSf6LCi5pSv5oyB5byA5rqQ77yBXHJcbiAqIFxyXG4gKiB1Q2hhcnRzwq7lrpjmlrnnvZHnq5lcclxuICogaHR0cHM6Ly93d3cudUNoYXJ0cy5jblxyXG4gKiBcclxuICog5byA5rqQ5Zyw5Z2AOlxyXG4gKiBodHRwczovL2dpdGVlLmNvbS91Q2hhcnRzL3VDaGFydHNcclxuICogXHJcbiAqIHVuaS1hcHDmj5Lku7bluILlnLrlnLDlnYDvvJpcclxuICogaHR0cDovL2V4dC5kY2xvdWQubmV0LmNuL3BsdWdpbj9pZD0yNzFcclxuICogXHJcbiAqL1xyXG5cclxuLy8g5Li76aKY6aKc6Imy6YWN572u77ya5aaC5q+P5Liq5Zu+6KGo57G75Z6L6ZyA6KaB5LiN5ZCM5Li76aKY77yM6K+35Zyo5a+55bqU5Zu+6KGo57G75Z6L5LiK5pu05pS5Y29sb3LlsZ7mgKdcclxuY29uc3QgY29sb3IgPSBbJyMxODkwRkYnLCAnIzkxQ0I3NCcsICcjRkFDODU4JywgJyNFRTY2NjYnLCAnIzczQzBERScsICcjM0NBMjcyJywgJyNGQzg0NTInLCAnIzlBNjBCNCcsICcjZWE3Y2NjJ107XHJcblxyXG4vL+S6i+S7tui9rOaNouWHveaVsO+8jOS4u+imgeeUqOS9nOagvOW8j+WMlnjovbTkuLrml7bpl7TovbTvvIzmoLnmja7pnIDmsYLoh6rooYzkv67mlLlcclxuY29uc3QgZm9ybWF0RGF0ZVRpbWUgPSAodGltZVN0YW1wLCByZXR1cm5UeXBlKT0+e1xyXG4gIHZhciBkYXRlID0gbmV3IERhdGUoKTtcclxuICBkYXRlLnNldFRpbWUodGltZVN0YW1wICogMTAwMCk7XHJcbiAgdmFyIHkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgdmFyIG0gPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gIG0gPSBtIDwgMTAgPyAoJzAnICsgbSkgOiBtO1xyXG4gIHZhciBkID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgZCA9IGQgPCAxMCA/ICgnMCcgKyBkKSA6IGQ7XHJcbiAgdmFyIGggPSBkYXRlLmdldEhvdXJzKCk7XHJcbiAgaCA9IGggPCAxMCA/ICgnMCcgKyBoKSA6IGg7XHJcbiAgdmFyIG1pbnV0ZSA9IGRhdGUuZ2V0TWludXRlcygpO1xyXG4gIHZhciBzZWNvbmQgPSBkYXRlLmdldFNlY29uZHMoKTtcclxuICBtaW51dGUgPSBtaW51dGUgPCAxMCA/ICgnMCcgKyBtaW51dGUpIDogbWludXRlO1xyXG4gIHNlY29uZCA9IHNlY29uZCA8IDEwID8gKCcwJyArIHNlY29uZCkgOiBzZWNvbmQ7XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnZnVsbCcpe3JldHVybiB5ICsgJy0nICsgbSArICctJyArIGQgKyAnICcrIGggKyc6JyArIG1pbnV0ZSArICc6JyArIHNlY29uZDt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAneS1tLWQnKXtyZXR1cm4geSArICctJyArIG0gKyAnLScgKyBkO31cclxuICBpZihyZXR1cm5UeXBlID09ICdoOm0nKXtyZXR1cm4gIGggKyc6JyArIG1pbnV0ZTt9XHJcbiAgaWYocmV0dXJuVHlwZSA9PSAnaDptOnMnKXtyZXR1cm4gIGggKyc6JyArIG1pbnV0ZSArJzonICsgc2Vjb25kO31cclxuICByZXR1cm4gW3ksIG0sIGQsIGgsIG1pbnV0ZSwgc2Vjb25kXTtcclxufVxyXG5cclxuY29uc3QgY2Z1ID0ge1xyXG4gIC8vZGVtb3R5cGXkuLroh6rlrprkuYnlm77ooajnsbvlnovvvIzkuIDoiKzkuI3pnIDopoHoh6rlrprkuYnlm77ooajnsbvlnovvvIzlj6rpnIDopoHmlLnmoLnoioLngrnkuIrlr7nlupTnmoTnsbvlnovljbPlj69cclxuXHRcInR5cGVcIjpbXCJwaWVcIixcInJpbmdcIixcInJvc2VcIixcIndvcmRcIixcImZ1bm5lbFwiLFwibWFwXCIsXCJhcmNiYXJcIixcImxpbmVcIixcImNvbHVtblwiLFwibW91bnRcIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwidGxpbmVcIixcInRhcmVhXCIsXCJzY2F0dGVyXCIsXCJidWJibGVcIixcImRlbW90eXBlXCJdLFxyXG5cdFwicmFuZ2VcIjpbXCLppbznirblm75cIixcIuWchueOr+WbvlwiLFwi546r55Gw5Zu+XCIsXCLor43kupHlm75cIixcIua8j+aWl+WbvlwiLFwi5Zyw5Zu+XCIsXCLlnIblvKfov5vluqbmnaFcIixcIuaKmOe6v+WbvlwiLFwi5p+x54q25Zu+XCIsXCLlsbHls7Dlm75cIixcIuadoeeKtuWbvlwiLFwi5Yy65Z+f5Zu+XCIsXCLpm7fovr7lm75cIixcIuS7quihqOebmFwiLFwiS+e6v+WbvlwiLFwi5re35ZCI5Zu+XCIsXCLml7bpl7TovbTmipjnur9cIixcIuaXtumXtOi9tOWMuuWfn1wiLFwi5pWj54K55Zu+XCIsXCLmsJTms6Hlm75cIixcIuiHquWumuS5ieexu+Wei1wiXSxcclxuICAvL+WinuWKoOiHquWumuS5ieWbvuihqOexu+Wei++8jOWmguaenOmcgOimgWNhdGVnb3JpZXPvvIzor7flnKjov5nph4zliqDlhaXmgqjnmoTlm77ooajnsbvlnovvvIzkvovlpoLmnIDlkI7nmoRcImRlbW90eXBlXCJcclxuICAvL+iHquWumuS5ieexu+Wei+aXtumcgOimgeazqOaEj1widGxpbmVcIixcInRhcmVhXCIsXCJzY2F0dGVyXCIsXCJidWJibGVcIuetieaXtumXtOi9tO+8iOefoumHj3jovbTvvInnsbvlm77ooajvvIzmsqHmnIljYXRlZ29yaWVz77yM5LiN6ZyA6KaB5Yqg5YWlY2F0ZWdvcmllc1xyXG5cdFwiY2F0ZWdvcmllc1wiOltcImxpbmVcIixcImNvbHVtblwiLFwibW91bnRcIixcImJhclwiLFwiYXJlYVwiLFwicmFkYXJcIixcImdhdWdlXCIsXCJjYW5kbGVcIixcIm1peFwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwiaW5zdGFuY2VcIjp7fSxcclxuICAvL29wdGlvbuS4um9wdHPlj4plb3B0c+aJv+i9veWxnuaAp++8jOS4jeimgeWIoOmZpFxyXG4gIFwib3B0aW9uXCI6e30sXHJcbiAgLy/kuIvpnaLmmK/oh6rlrprkuYlmb3JtYXTphY3nva7vvIzlm6DpmaRINeerr+WklueahOWFtuS7luerr+aXoOazlemAmui/h3Byb3Bz5Lyg6YCS5Ye95pWw77yM5Y+q6IO96YCa6L+H5q2k5bGe5oCn5a+55bqU5LiL5qCH55qE5pa55byP5p2l5pu/5o2iXHJcbiAgXCJmb3JtYXR0ZXJcIjp7XHJcbiAgICBcInlBeGlzRGVtbzFcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gdmFsKyflhYMnfSxcclxuICAgIFwieUF4aXNEZW1vMlwiOmZ1bmN0aW9uKHZhbCwgaW5kZXgsIG9wdHMpe3JldHVybiB2YWwudG9GaXhlZCgyKX0sXHJcbiAgICBcInhBeGlzRGVtbzFcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gdmFsKyflubQnO30sXHJcbiAgICBcInhBeGlzRGVtbzJcIjpmdW5jdGlvbih2YWwsIGluZGV4LCBvcHRzKXtyZXR1cm4gZm9ybWF0RGF0ZVRpbWUodmFsLCdoOm0nKX0sXHJcbiAgICBcInNlcmllc0RlbW8xXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgc2VyaWVzLCBvcHRzKXtyZXR1cm4gdmFsKyflhYMnfSxcclxuICAgIFwidG9vbHRpcERlbW8xXCI6ZnVuY3Rpb24oaXRlbSwgY2F0ZWdvcnksIGluZGV4LCBvcHRzKXtcclxuICAgICAgaWYoaW5kZXg9PTApe1xyXG4gICAgICBcdHJldHVybiAn6ZqP5L6/55SoJytpdGVtLmRhdGErJ+W5tCdcclxuICAgICAgfWVsc2V7XHJcbiAgICAgIFx0cmV0dXJuICflhbbku5bmiJHmsqHmlLknK2l0ZW0uZGF0YSsn5aSpJ1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgXCJwaWVEZW1vXCI6ZnVuY3Rpb24odmFsLCBpbmRleCwgc2VyaWVzLCBvcHRzKXtcclxuICAgICAgaWYoaW5kZXggIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgcmV0dXJuIHNlcmllc1tpbmRleF0ubmFtZSsn77yaJytzZXJpZXNbaW5kZXhdLmRhdGErJ+WFgydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9LFxyXG4gIC8v6L+Z6YeM5ryU56S65LqG6Ieq5a6a5LmJ5oKo55qE5Zu+6KGo57G75Z6L55qEb3B0aW9u77yM5Y+v5Lul6ZqP5oSP5ZG95ZCN77yM5LmL5ZCO5Zyo57uE5Lu25LiKIHR5cGU9XCJkZW1vdHlwZVwiIOWQju+8jOe7hOS7tuS8muiwg+eUqOi/meS4quiKseaLrOWPt+mHjOeahG9wdGlvbu+8jOWmguaenOe7hOS7tuS4iui/mOWtmOWcqG9wdHPlj4LmlbDvvIzkvJrlsIZkZW1vdHlwZeS4jm9wdHPkuK1vcHRpb27lkIjlubblkI7muLLmn5Plm77ooajjgIJcclxuICBcImRlbW90eXBlXCI6e1xyXG4gICAgLy/miJHov5nph4zmiormm7Lnur/lm77lvZPlgZrkuoboh6rlrprkuYnlm77ooajnsbvlnovvvIzmgqjlj6/ku6XmoLnmja7pnIDopoHpmo/mhI/mjIflrprnsbvlnovmiJbphY3nva5cclxuICAgIFwidHlwZVwiOiBcImxpbmVcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcbiAgICBcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG4gICAgXCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcbiAgICB9LFxyXG4gICAgXCJsZWdlbmRcIjoge1xyXG4gICAgfSxcclxuICAgIFwiZXh0cmFcIjoge1xyXG4gICAgXHRcImxpbmVcIjoge1xyXG4gICAgXHRcdFwidHlwZVwiOiBcImN1cnZlXCIsXHJcbiAgICBcdFx0XCJ3aWR0aFwiOiAyXHJcbiAgICBcdH0sXHJcbiAgICB9XHJcbiAgfSxcclxuICAvL+S4i+mdouaYr+iHquWumuS5iemFjee9ru+8jOivt+a3u+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxyXG5cdFwicGllXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwicGllXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcInBpZVwiOiB7XHJcblx0XHRcdFx0XCJhY3RpdmVPcGFjaXR5XCI6IDAuNSxcclxuXHRcdFx0XHRcImFjdGl2ZVJhZGl1c1wiOiAxMCxcclxuXHRcdFx0XHRcIm9mZnNldEFuZ2xlXCI6IDAsXHJcblx0XHRcdFx0XCJsYWJlbFdpZHRoXCI6IDE1LFxyXG5cdFx0XHRcdFwiYm9yZGVyXCI6IHRydWUsXHJcblx0XHRcdFx0XCJib3JkZXJXaWR0aFwiOiAzLFxyXG5cdFx0XHRcdFwiYm9yZGVyQ29sb3JcIjogXCIjRkZGRkZGXCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG5cdFwicmluZ1wiOntcclxuXHRcdFwidHlwZVwiOiBcInJpbmdcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzUsNSw1LDVdLFxyXG5cdFx0XCJyb3RhdGVcIjogZmFsc2UsXHJcblx0XHRcImRhdGFMYWJlbFwiOiB0cnVlLFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJwb3NpdGlvblwiOiBcInJpZ2h0XCIsXHJcbiAgICAgIFwibGluZUhlaWdodFwiOiAyNSxcclxuXHRcdH0sXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwi5pS255uK546HXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMTUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjNjY2NjY2XCJcclxuXHRcdH0sXHJcblx0XHRcInN1YnRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwiNzAlXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjN2NiNWVjXCJcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJyaW5nXCI6IHtcclxuXHRcdFx0XHRcInJpbmdXaWR0aFwiOjMwLFxyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjUsXHJcblx0XHRcdFx0XCJhY3RpdmVSYWRpdXNcIjogMTAsXHJcblx0XHRcdFx0XCJvZmZzZXRBbmdsZVwiOiAwLFxyXG5cdFx0XHRcdFwibGFiZWxXaWR0aFwiOiAxNSxcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMyxcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJyb3NlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwicm9zZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbNSw1LDUsNV0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcInBvc2l0aW9uXCI6IFwibGVmdFwiLFxyXG4gICAgICBcImxpbmVIZWlnaHRcIjogMjUsXHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwicm9zZVwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwiYXJlYVwiLFxyXG5cdFx0XHRcdFwibWluUmFkaXVzXCI6IDUwLFxyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjUsXHJcblx0XHRcdFx0XCJhY3RpdmVSYWRpdXNcIjogMTAsXHJcblx0XHRcdFx0XCJvZmZzZXRBbmdsZVwiOiAwLFxyXG5cdFx0XHRcdFwibGFiZWxXaWR0aFwiOiAxNSxcclxuXHRcdFx0XHRcImJvcmRlclwiOiBmYWxzZSxcclxuXHRcdFx0XHRcImJvcmRlcldpZHRoXCI6IDIsXHJcblx0XHRcdFx0XCJib3JkZXJDb2xvclwiOiBcIiNGRkZGRkZcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJ3b3JkXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwid29yZFwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcIndvcmRcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcIm5vcm1hbFwiLFxyXG5cdFx0XHRcdFwiYXV0b0NvbG9yc1wiOiBmYWxzZVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHRcImZ1bm5lbFwiOntcclxuXHRcdFwidHlwZVwiOiBcImZ1bm5lbFwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTUsMCwxNV0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJmdW5uZWxcIjoge1xyXG5cdFx0XHRcdFwiYWN0aXZlT3BhY2l0eVwiOiAwLjMsXHJcblx0XHRcdFx0XCJhY3RpdmVXaWR0aFwiOiAxMCxcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMixcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiI0ZGRkZGRlwiLFxyXG5cdFx0XHRcdFwiZmlsbE9wYWNpdHlcIjogMSxcclxuXHRcdFx0XHRcImxhYmVsQWxpZ25cIjogXCJyaWdodFwiXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcIm1hcFwiOntcclxuXHRcdFwidHlwZVwiOiBcIm1hcFwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMCwwLDAsMF0sXHJcbiAgICBcImRhdGFMYWJlbFwiOiB0cnVlLFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwibWFwXCI6IHtcclxuXHRcdFx0XHRcImJvcmRlclwiOiB0cnVlLFxyXG5cdFx0XHRcdFwiYm9yZGVyV2lkdGhcIjogMSxcclxuXHRcdFx0XHRcImJvcmRlckNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwiZmlsbE9wYWNpdHlcIjogMC42LFxyXG5cdFx0XHRcdFwiYWN0aXZlQm9yZGVyQ29sb3JcIjogXCIjRjA0ODY0XCIsXHJcblx0XHRcdFx0XCJhY3RpdmVGaWxsQ29sb3JcIjogXCIjRkFDQzE0XCIsXHJcblx0XHRcdFx0XCJhY3RpdmVGaWxsT3BhY2l0eVwiOiAxXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcImFyY2JhclwiOntcclxuXHRcdFwidHlwZVwiOiBcImFyY2JhclwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCLnmb7liIbmr5RcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAyNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMwMEZGMDBcIlxyXG5cdFx0fSxcclxuXHRcdFwic3VidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCLpu5jorqTmoIfpophcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAxNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiM2NjY2NjZcIlxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImFyY2JhclwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwiZGVmYXVsdFwiLFxyXG5cdFx0XHRcdFwid2lkdGhcIjogMTIsXHJcblx0XHRcdFx0XCJiYWNrZ3JvdW5kQ29sb3JcIjogXCIjRTlFOUU5XCIsXHJcblx0XHRcdFx0XCJzdGFydEFuZ2xlXCI6IDAuNzUsXHJcblx0XHRcdFx0XCJlbmRBbmdsZVwiOiAwLjI1LFxyXG5cdFx0XHRcdFwiZ2FwXCI6IDJcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJsaW5lXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwibGluZVwiLFxyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwicGFkZGluZ1wiOiBbMTUsMTAsMCwxNV0sXHJcblx0XHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJkaXNhYmxlR3JpZFwiOiB0cnVlLFxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwibGluZVwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwic3RyYWlnaHRcIixcclxuXHRcdFx0XHRcIndpZHRoXCI6IDIsXHJcbiAgICAgICAgXCJhY3RpdmVUeXBlXCI6IFwiaG9sbG93XCJcclxuXHRcdFx0fSxcclxuXHRcdH1cclxuXHR9LFxyXG4gIFwidGxpbmVcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJsaW5lXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwxMCwwLDE1XSxcclxuICBcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IGZhbHNlLFxyXG4gICAgICBcImJvdW5kYXJ5R2FwXCI6XCJqdXN0aWZ5XCIsXHJcbiAgXHR9LFxyXG4gIFx0XCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZ3JpZFR5cGVcIjogXCJkYXNoXCIsXHJcbiAgICAgIFwiZGFzaExlbmd0aFwiOiAyLFxyXG4gICAgICBcImRhdGFcIjpbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgXCJtaW5cIjowLFxyXG4gICAgICAgICAgXCJtYXhcIjo4MFxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJsaW5lXCI6IHtcclxuICBcdFx0XHRcInR5cGVcIjogXCJjdXJ2ZVwiLFxyXG4gIFx0XHRcdFwid2lkdGhcIjogMixcclxuICAgICAgICBcImFjdGl2ZVR5cGVcIjogXCJob2xsb3dcIlxyXG4gIFx0XHR9LFxyXG4gIFx0fVxyXG4gIH0sXHJcbiAgXCJ0YXJlYVwiOntcclxuICBcdFwidHlwZVwiOiBcImFyZWFcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcbiAgXHRcInBhZGRpbmdcIjogWzE1LDEwLDAsMTVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gIFx0fSxcclxuICBcdFwieUF4aXNcIjoge1xyXG4gICAgICBcImdyaWRUeXBlXCI6IFwiZGFzaFwiLFxyXG4gICAgICBcImRhc2hMZW5ndGhcIjogMixcclxuICAgICAgXCJkYXRhXCI6W1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFwibWluXCI6MCxcclxuICAgICAgICAgIFwibWF4XCI6ODBcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICBcdH0sXHJcbiAgXHRcImxlZ2VuZFwiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJleHRyYVwiOiB7XHJcbiAgXHRcdFwiYXJlYVwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwiY3VydmVcIixcclxuICBcdFx0XHRcIm9wYWNpdHlcIjogMC4yLFxyXG4gIFx0XHRcdFwiYWRkTGluZVwiOiB0cnVlLFxyXG4gIFx0XHRcdFwid2lkdGhcIjogMixcclxuICBcdFx0XHRcImdyYWRpZW50XCI6IHRydWUsXHJcbiAgICAgICAgXCJhY3RpdmVUeXBlXCI6IFwiaG9sbG93XCJcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG5cdFwiY29sdW1uXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiY29sdW1uXCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJkYXRhXCI6W3tcIm1pblwiOjB9XVxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJjb2x1bW5cIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcImdyb3VwXCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuXHRcdFx0XHRcImFjdGl2ZUJnQ29sb3JcIjogXCIjMDAwMDAwXCIsXHJcblx0XHRcdFx0XCJhY3RpdmVCZ09wYWNpdHlcIjogMC4wOFxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcbiAgXCJtb3VudFwiOntcclxuICBcdFwidHlwZVwiOiBcIm1vdW50XCIsXHJcbiAgICBcImNvbG9yXCI6IGNvbG9yLFxyXG4gIFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDVdLFxyXG4gIFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuICBcdH0sXHJcbiAgXHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJkYXRhXCI6W3tcIm1pblwiOjB9XVxyXG4gIFx0fSxcclxuICBcdFwibGVnZW5kXCI6IHtcclxuICBcdH0sXHJcbiAgXHRcImV4dHJhXCI6IHtcclxuICBcdFx0XCJtb3VudFwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwibW91bnRcIixcclxuICBcdFx0XHRcIndpZHRoUmF0aW9cIjogMS41LFxyXG4gIFx0XHR9LFxyXG4gIFx0fVxyXG4gIH0sXHJcbiAgXCJiYXJcIjp7XHJcbiAgXHRcInR5cGVcIjogXCJiYXJcIixcclxuICAgIFwiY29sb3JcIjogY29sb3IsXHJcbiAgXHRcInBhZGRpbmdcIjogWzE1LDMwLDAsNV0sXHJcbiAgXHRcInhBeGlzXCI6IHtcclxuICAgICAgXCJib3VuZGFyeUdhcFwiOlwianVzdGlmeVwiLFxyXG4gICAgICBcImRpc2FibGVHcmlkXCI6ZmFsc2UsXHJcbiAgICAgIFwibWluXCI6MCxcclxuICAgICAgXCJheGlzTGluZVwiOmZhbHNlXHJcbiAgXHR9LFxyXG4gIFx0XCJ5QXhpc1wiOiB7XHJcbiAgXHR9LFxyXG4gIFx0XCJsZWdlbmRcIjoge1xyXG4gIFx0fSxcclxuICBcdFwiZXh0cmFcIjoge1xyXG4gIFx0XHRcImJhclwiOiB7XHJcbiAgXHRcdFx0XCJ0eXBlXCI6IFwiZ3JvdXBcIixcclxuICBcdFx0XHRcIndpZHRoXCI6IDMwLFxyXG4gIFx0XHRcdFwibWV0ZXJCb3JkZVwiOiAxLFxyXG4gIFx0XHRcdFwibWV0ZXJGaWxsQ29sb3JcIjogXCIjRkZGRkZGXCIsXHJcbiAgXHRcdFx0XCJhY3RpdmVCZ0NvbG9yXCI6IFwiIzAwMDAwMFwiLFxyXG4gIFx0XHRcdFwiYWN0aXZlQmdPcGFjaXR5XCI6IDAuMDhcclxuICBcdFx0fSxcclxuICBcdH1cclxuICB9LFxyXG5cdFwiYXJlYVwiOntcclxuXHRcdFwidHlwZVwiOiBcImFyZWFcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuICAgICAgXCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuICAgICAgXCJkYXNoTGVuZ3RoXCI6IDIsXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImFyZWFcIjoge1xyXG5cdFx0XHRcdFwidHlwZVwiOiBcInN0cmFpZ2h0XCIsXHJcblx0XHRcdFx0XCJvcGFjaXR5XCI6IDAuMixcclxuXHRcdFx0XHRcImFkZExpbmVcIjogdHJ1ZSxcclxuXHRcdFx0XHRcIndpZHRoXCI6IDIsXHJcblx0XHRcdFx0XCJncmFkaWVudFwiOiBmYWxzZSxcclxuICAgICAgICBcImFjdGl2ZVR5cGVcIjogXCJob2xsb3dcIlxyXG5cdFx0XHR9LFxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJyYWRhclwiOntcclxuXHRcdFwidHlwZVwiOiBcInJhZGFyXCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFs1LDUsNSw1XSxcclxuICAgIFwiZGF0YUxhYmVsXCI6IGZhbHNlLFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJwb3NpdGlvblwiOiBcInJpZ2h0XCIsXHJcbiAgICAgIFwibGluZUhlaWdodFwiOiAyNSxcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJyYWRhclwiOiB7XHJcblx0XHRcdFx0XCJncmlkVHlwZVwiOiBcInJhZGFyXCIsXHJcblx0XHRcdFx0XCJncmlkQ29sb3JcIjogXCIjQ0NDQ0NDXCIsXHJcblx0XHRcdFx0XCJncmlkQ291bnRcIjogMyxcclxuXHRcdFx0XHRcIm9wYWNpdHlcIjogMC4yLFxyXG5cdFx0XHRcdFwibWF4XCI6IDIwMCxcclxuXHRcdFx0XHRcImxhYmVsU2hvd1wiOiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcImdhdWdlXCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwiZ2F1Z2VcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6IFwiNjZLbS9IXCIsXHJcblx0XHRcdFwiZm9udFNpemVcIjogMjUsXHJcblx0XHRcdFwiY29sb3JcIjogXCIjMmZjMjViXCIsXHJcblx0XHRcdFwib2Zmc2V0WVwiOiA1MFxyXG5cdFx0fSxcclxuXHRcdFwic3VidGl0bGVcIjoge1xyXG5cdFx0XHRcIm5hbWVcIjogXCLlrp7ml7bpgJ/luqZcIixcclxuXHRcdFx0XCJmb250U2l6ZVwiOiAxNSxcclxuXHRcdFx0XCJjb2xvclwiOiBcIiMxODkwZmZcIixcclxuXHRcdFx0XCJvZmZzZXRZXCI6IC01MFxyXG5cdFx0fSxcclxuXHRcdFwiZXh0cmFcIjoge1xyXG5cdFx0XHRcImdhdWdlXCI6IHtcclxuXHRcdFx0XHRcInR5cGVcIjogXCJkZWZhdWx0XCIsXHJcblx0XHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuXHRcdFx0XHRcImxhYmVsQ29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJzdGFydEFuZ2xlXCI6IDAuNzUsXHJcblx0XHRcdFx0XCJlbmRBbmdsZVwiOiAwLjI1LFxyXG5cdFx0XHRcdFwic3RhcnROdW1iZXJcIjogMCxcclxuXHRcdFx0XHRcImVuZE51bWJlclwiOiAxMDAsXHJcblx0XHRcdFx0XCJsYWJlbEZvcm1hdFwiOiBcIlwiLFxyXG5cdFx0XHRcdFwic3BsaXRMaW5lXCI6IHtcclxuXHRcdFx0XHRcdFwiZml4UmFkaXVzXCI6IDAsXHJcblx0XHRcdFx0XHRcInNwbGl0TnVtYmVyXCI6IDEwLFxyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAzMCxcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogXCIjRkZGRkZGXCIsXHJcblx0XHRcdFx0XHRcImNoaWxkTnVtYmVyXCI6IDUsXHJcblx0XHRcdFx0XHRcImNoaWxkV2lkdGhcIjogMTJcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdFwicG9pbnRlclwiOiB7XHJcblx0XHRcdFx0XHRcIndpZHRoXCI6IDI0LFxyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiBcImF1dG9cIlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblx0XCJjYW5kbGVcIjp7XHJcblx0XHRcInR5cGVcIjogXCJjYW5kbGVcIixcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjogWzE1LDE1LDAsMTVdLFxyXG5cdFx0XCJlbmFibGVTY3JvbGxcIjogdHJ1ZSxcclxuXHRcdFwiZW5hYmxlTWFya0xpbmVcIjogdHJ1ZSxcclxuXHRcdFwiZGF0YUxhYmVsXCI6IGZhbHNlLFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwibGFiZWxDb3VudFwiOiA0LFxyXG5cdFx0XHRcIml0ZW1Db3VudFwiOiA0MCxcclxuXHRcdFx0XCJkaXNhYmxlR3JpZFwiOiB0cnVlLFxyXG5cdFx0XHRcImdyaWRDb2xvclwiOiBcIiNDQ0NDQ0NcIixcclxuXHRcdFx0XCJncmlkVHlwZVwiOiBcInNvbGlkXCIsXHJcblx0XHRcdFwiZGFzaExlbmd0aFwiOiA0LFxyXG5cdFx0XHRcInNjcm9sbFNob3dcIjogdHJ1ZSxcclxuXHRcdFx0XCJzY3JvbGxBbGlnblwiOiBcImxlZnRcIixcclxuXHRcdFx0XCJzY3JvbGxDb2xvclwiOiBcIiNBNkE2QTZcIixcclxuXHRcdFx0XCJzY3JvbGxCYWNrZ3JvdW5kQ29sb3JcIjogXCIjRUZFQkVGXCJcclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHR9LFxyXG5cdFx0XCJleHRyYVwiOiB7XHJcblx0XHRcdFwiY2FuZGxlXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6IHtcclxuXHRcdFx0XHRcdFwidXBMaW5lXCI6IFwiI2YwNDg2NFwiLFxyXG5cdFx0XHRcdFx0XCJ1cEZpbGxcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcImRvd25MaW5lXCI6IFwiIzJmYzI1YlwiLFxyXG5cdFx0XHRcdFx0XCJkb3duRmlsbFwiOiBcIiMyZmMyNWJcIlxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0XCJhdmVyYWdlXCI6IHtcclxuXHRcdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcdFx0XCJuYW1lXCI6IFtcIk1BNVwiLFwiTUExMFwiLFwiTUEzMFwiXSxcclxuXHRcdFx0XHRcdFwiZGF5XCI6IFs1LDEwLDIwXSxcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogW1wiIzE4OTBmZlwiLFwiIzJmYzI1YlwiLFwiI2ZhY2MxNFwiXVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0XCJtYXJrTGluZVwiOiB7XHJcblx0XHRcdFx0XCJ0eXBlXCI6IFwiZGFzaFwiLFxyXG5cdFx0XHRcdFwiZGFzaExlbmd0aFwiOiA1LFxyXG5cdFx0XHRcdFwiZGF0YVwiOiBbXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFwidmFsdWVcIjogMjE1MCxcclxuXHRcdFx0XHRcdFx0XCJsaW5lQ29sb3JcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcdFwic2hvd0xhYmVsXCI6IHRydWVcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFwidmFsdWVcIjogMjM1MCxcclxuXHRcdFx0XHRcdFx0XCJsaW5lQ29sb3JcIjogXCIjZjA0ODY0XCIsXHJcblx0XHRcdFx0XHRcdFwic2hvd0xhYmVsXCI6IHRydWVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRdXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cdFwibWl4XCI6e1xyXG5cdFx0XCJ0eXBlXCI6IFwibWl4XCIsXHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6IFsxNSwxNSwwLDE1XSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcblx0XHRcdFwiZGlzYWJsZWRcIjogZmFsc2UsXHJcblx0XHRcdFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcblx0XHRcdFwic3BsaXROdW1iZXJcIjogNSxcclxuXHRcdFx0XCJncmlkVHlwZVwiOiBcImRhc2hcIixcclxuXHRcdFx0XCJkYXNoTGVuZ3RoXCI6IDQsXHJcblx0XHRcdFwiZ3JpZENvbG9yXCI6IFwiI0NDQ0NDQ1wiLFxyXG5cdFx0XHRcInBhZGRpbmdcIjogMTAsXHJcblx0XHRcdFwic2hvd1RpdGxlXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdH0sXHJcblx0XHRcImV4dHJhXCI6IHtcclxuXHRcdFx0XCJtaXhcIjoge1xyXG5cdFx0XHRcdFwiY29sdW1uXCI6IHtcclxuXHRcdFx0XHRcdFwid2lkdGhcIjogMjBcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9XHJcblx0fSxcclxuXHRcInNjYXR0ZXJcIjp7XHJcblx0XHRcInR5cGVcIjogXCJzY2F0dGVyXCIsXHJcblx0XHRcImNvbG9yXCI6Y29sb3IsXHJcblx0XHRcInBhZGRpbmdcIjpbMTUsMTUsMCwxNV0sXHJcbiAgICBcImRhdGFMYWJlbFwiOmZhbHNlLFxyXG4gICAgXCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJzcGxpdE51bWJlclwiOjUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJtaW5cIjowXHJcbiAgICB9LFxyXG4gICAgXCJ5QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgIH0sXHJcbiAgICBcImxlZ2VuZFwiOiB7XHJcbiAgICB9LFxyXG4gICAgXCJleHRyYVwiOiB7XHJcbiAgICBcdFwic2NhdHRlclwiOiB7XHJcbiAgICBcdH0sXHJcbiAgICB9XHJcblx0fSxcclxuXHRcImJ1YmJsZVwiOntcclxuXHRcdFwidHlwZVwiOiBcImJ1YmJsZVwiLFxyXG5cdFx0XCJjb2xvclwiOmNvbG9yLFxyXG5cdFx0XCJwYWRkaW5nXCI6WzE1LDE1LDAsMTVdLFxyXG4gICAgXCJ4QXhpc1wiOiB7XHJcbiAgICAgIFwiZGlzYWJsZUdyaWRcIjogZmFsc2UsXHJcbiAgICAgIFwiZ3JpZFR5cGVcIjpcImRhc2hcIixcclxuICAgICAgXCJzcGxpdE51bWJlclwiOjUsXHJcbiAgICAgIFwiYm91bmRhcnlHYXBcIjpcImp1c3RpZnlcIixcclxuICAgICAgXCJtaW5cIjowLFxyXG4gICAgICBcIm1heFwiOjI1MFxyXG4gICAgfSxcclxuICAgIFwieUF4aXNcIjoge1xyXG4gICAgICBcImRpc2FibGVHcmlkXCI6IGZhbHNlLFxyXG4gICAgICBcImdyaWRUeXBlXCI6XCJkYXNoXCIsXHJcbiAgICAgIFwiZGF0YVwiOlt7XHJcbiAgICAgICAgXCJtaW5cIjowLFxyXG4gICAgICAgIFwibWF4XCI6MTUwXHJcbiAgICAgIH1dXHJcbiAgICB9LFxyXG4gICAgXCJsZWdlbmRcIjoge1xyXG4gICAgfSxcclxuICAgIFwiZXh0cmFcIjoge1xyXG4gICAgXHRcImJ1YmJsZVwiOiB7XHJcbiAgICAgICAgXCJib3JkZXJcIjoyLFxyXG4gICAgICAgIFwib3BhY2l0eVwiOiAwLjUsXHJcbiAgICBcdH0sXHJcbiAgICB9XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjZnU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///386\n"); /***/ }), /* 387 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\n\n// 通用配置项\n\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\nvar color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\nvar cfe = {\n //demotype为自定义图表类型\n \"type\": [\"pie\", \"ring\", \"rose\", \"funnel\", \"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的\"demotype\"\n \"categories\": [\"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"demotype\"],\n //instance为实例变量承载属性,option为eopts承载属性,不要删除\n \"instance\": {},\n \"option\": {},\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\n \"formatter\": {\n \"tooltipDemo1\": function tooltipDemo1(res) {\n var result = '';\n for (var i in res) {\n if (i == 0) {\n result += res[i].axisValueLabel + '年销售额';\n }\n var value = '--';\n if (res[i].data !== null) {\n value = res[i].data;\n }\n result += '
' + res[i].marker + res[i].seriesName + ':' + value + ' 万元';\n }\n return result;\n },\n legendFormat: function legendFormat(name) {\n return \"自定义图例+\" + name;\n },\n \"xAxisFormat\": function xAxisFormat(value) {\n return value.substr('2020--'.length, 11);\n },\n \"stList\": function stList(val) {\n var value = val.substr('2020-'.length, 11);\n var ret = \"\"; //拼接加\\n返回的类目项 \n var maxLength = 6; //每项显示文字个数 \n var valLength = value.length; //X轴类目项的文字个数 \n var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数 \n if (rowN > 1)\n //如果类目项的文字大于5, \n {\n for (var i = 0; i < rowN; i++) {\n var temp = \"\"; //每次截取的字符串 \n var start = i * maxLength; //开始截取的位置 \n var end = start + maxLength; //结束截取的位置 \n //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧 \n temp = value.substring(start, end) + \"\\n\";\n ret += temp; //凭借最终的字符串 \n }\n\n return ret;\n } else {\n return value;\n }\n },\n \"stMonth\": function stMonth(value) {\n var months = value.data.coord[0].substr(\"2024-0\".length, \"2024-0\".length - 5);\n var val = value.data.coord[1];\n return \"\".concat(months, \"\\u6708\\u6838\\u5B9A\\u751F\\u6001\\u6D41\\u91CF\").concat(val, \"m\\xB3/s\");\n },\n \"yhidden\": function yhidden(value, index, axis) {\n __f__(\"log\", \"axis\", axis, \" at uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js:89\");\n if (index === 0 || index === axis.data.length - 1) {\n return '';\n } else {\n return value;\n }\n },\n yAxisFormatDemo: function yAxisFormatDemo(value, index) {\n return value + '元';\n },\n seriesFormatDemo: function seriesFormatDemo(res) {\n return res.name + '年' + res.value + '元';\n }\n },\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。\n \"demotype\": {\n \"color\": color\n //在这里填写echarts的option即可\n },\n\n //下面是自定义配置,请添加项目所需的通用配置\n \"column\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": true,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'bar',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"line\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": true,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"barwidth\": 20,\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"area\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'axis'\n },\n \"grid\": {\n \"top\": 30,\n \"bottom\": 50,\n \"right\": 15,\n \"left\": 40\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"toolbox\": {\n \"show\": false\n },\n \"xAxis\": {\n \"type\": 'category',\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n },\n \"boundaryGap\": true,\n \"data\": []\n },\n \"yAxis\": {\n \"type\": 'value',\n \"axisTick\": {\n \"show\": false\n },\n \"axisLabel\": {\n \"color\": '#666666'\n },\n \"axisLine\": {\n \"lineStyle\": {\n \"color\": '#CCCCCC'\n }\n }\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'line',\n \"data\": [],\n \"areaStyle\": {},\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"pie\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": '50%',\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n }\n }\n },\n \"ring\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"grid\": {\n \"top\": 40,\n \"bottom\": 30,\n \"right\": 15,\n \"left\": 15\n },\n \"legend\": {\n \"bottom\": 'left'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": ['40%', '70%'],\n \"avoidLabelOverlap\": false,\n \"label\": {\n \"show\": true,\n \"color\": \"#666666\",\n \"position\": 'top'\n },\n \"labelLine\": {\n \"show\": true\n }\n }\n },\n \"rose\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item'\n },\n \"legend\": {\n \"top\": 'bottom'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'pie',\n \"data\": [],\n \"radius\": \"55%\",\n \"center\": ['50%', '50%'],\n \"roseType\": 'area'\n }\n },\n \"funnel\": {\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"tooltip\": {\n \"trigger\": 'item',\n \"formatter\": \"{b} : {c}%\"\n },\n \"legend\": {\n \"top\": 'bottom'\n },\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'funnel',\n \"left\": '10%',\n \"top\": 60,\n \"bottom\": 60,\n \"width\": '80%',\n \"min\": 0,\n \"max\": 100,\n \"minSize\": '0%',\n \"maxSize\": '100%',\n \"sort\": 'descending',\n \"gap\": 2,\n \"label\": {\n \"show\": true,\n \"position\": 'inside'\n },\n \"labelLine\": {\n \"length\": 10,\n \"lineStyle\": {\n \"width\": 1,\n \"type\": 'solid'\n }\n },\n \"itemStyle\": {\n \"bordercolor\": '#fff',\n \"borderwidth\": 1\n },\n \"emphasis\": {\n \"label\": {\n \"fontSize\": 20\n }\n },\n \"data\": []\n }\n },\n \"gauge\": {\n \"color\": color,\n \"tooltip\": {\n \"formatter\": '{a}
{b} : {c}%'\n },\n \"seriesTemplate\": {\n \"name\": '业务指标',\n \"type\": 'gauge',\n \"detail\": {\n \"formatter\": '{value}%'\n },\n \"data\": [{\n \"value\": 50,\n \"name\": '完成率'\n }]\n }\n },\n \"candle\": {\n \"xAxis\": {\n \"data\": []\n },\n \"yAxis\": {},\n \"color\": color,\n \"title\": {\n \"text\": ''\n },\n \"dataZoom\": [{\n \"type\": 'inside',\n \"xAxisIndex\": [0, 1],\n \"start\": 10,\n \"end\": 100\n }, {\n \"show\": true,\n \"xAxisIndex\": [0, 1],\n \"type\": 'slider',\n \"bottom\": 10,\n \"start\": 10,\n \"end\": 100\n }],\n \"seriesTemplate\": {\n \"name\": '',\n \"type\": 'k',\n \"data\": []\n }\n }\n};\nvar _default = cfe;\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvcWl1bi1kYXRhLWNoYXJ0cy9qc19zZGsvdS1jaGFydHMvY29uZmlnLWVjaGFydHMuanMiXSwibmFtZXMiOlsiY29sb3IiLCJjZmUiLCJyZXMiLCJyZXN1bHQiLCJpIiwiYXhpc1ZhbHVlTGFiZWwiLCJ2YWx1ZSIsImRhdGEiLCJtYXJrZXIiLCJzZXJpZXNOYW1lIiwibGVnZW5kRm9ybWF0IiwibmFtZSIsInN1YnN0ciIsImxlbmd0aCIsInZhbCIsInJldCIsIm1heExlbmd0aCIsInZhbExlbmd0aCIsInJvd04iLCJNYXRoIiwiY2VpbCIsInRlbXAiLCJzdGFydCIsImVuZCIsInN1YnN0cmluZyIsIm1vbnRocyIsImNvb3JkIiwiaW5kZXgiLCJheGlzIiwieUF4aXNGb3JtYXREZW1vIiwic2VyaWVzRm9ybWF0RGVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLElBQU1BLEtBQUssR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0FBRWpILElBQU1DLEdBQUcsR0FBRztFQUNWO0VBQ0QsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLFVBQVUsQ0FBQztFQUN4RztFQUNELFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLFVBQVUsQ0FBQztFQUM5RTtFQUNELFVBQVUsRUFB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QUFVLEVBQUUsQ0FBQztNQUNYLE1BQU0sRUFBRSxRQUFRO01BQ2hCLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7TUFDcEIsT0FBTyxFQUFFLEVBQUU7TUFDWCxLQUFLLEVBQUU7SUFDUixDQUFDLEVBQ0Q7TUFDQyxNQUFNLEVBQUUsSUFBSTtNQUNaLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7TUFDcEIsTUFBTSxFQUFFLFFBQVE7TUFDaEIsUUFBUSxFQUFFLEVBQUU7TUFDWixPQUFPLEVBQUUsRUFBRTtNQUNYLEtBQUssRUFBRTtJQUNSLENBQUMsQ0FDRDtJQUNELGdCQUFnQixFQUFFO01BQ2pCLE1BQU0sRUFBRSxFQUFFO01BQ1YsTUFBTSxFQUFFLEdBQUc7TUFDWCxNQUFNLEVBQUU7SUFDVDtFQUNEO0FBQ0QsQ0FBQztBQUFBLGVBRWNDLEdBQUc7QUFBQSwyQiIsImZpbGUiOiIzODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiB1Q2hhcnRzwq5cclxuICog6auY5oCn6IO96Leo5bmz5Y+w5Zu+6KGo5bqT77yM5pSv5oyBSDXjgIFBUFDjgIHlsI/nqIvluo/vvIjlvq7kv6Ev5pSv5LuY5a6dL+eZvuW6pi/lpLTmnaEvUVEvMzYw77yJ44CBVnVl44CBVGFyb+etieaUr+aMgWNhbnZhc+eahOahhuaetuW5s+WPsFxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgUUlVTsKu56eL5LqRIGh0dHBzOi8vd3d3LnVjaGFydHMuY24gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogTGljZW5zZWQgKCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgKVxyXG4gKiDlpI3liLbkvb/nlKjor7fkv53nlZnmnKzmrrXms6jph4rvvIzmhJ/osKLmlK/mjIHlvIDmupDvvIFcclxuICogXHJcbiAqIHVDaGFydHPCruWumOaWuee9keermVxyXG4gKiBodHRwczovL3d3dy51Q2hhcnRzLmNuXHJcbiAqIFxyXG4gKiDlvIDmupDlnLDlnYA6XHJcbiAqIGh0dHBzOi8vZ2l0ZWUuY29tL3VDaGFydHMvdUNoYXJ0c1xyXG4gKiBcclxuICogdW5pLWFwcOaPkuS7tuW4guWcuuWcsOWdgO+8mlxyXG4gKiBodHRwOi8vZXh0LmRjbG91ZC5uZXQuY24vcGx1Z2luP2lkPTI3MVxyXG4gKiBcclxuICovXHJcblxyXG4vLyDpgJrnlKjphY3nva7poblcclxuXHJcbi8vIOS4u+mimOminOiJsumFjee9ru+8muWmguavj+S4quWbvuihqOexu+Wei+mcgOimgeS4jeWQjOS4u+mimO+8jOivt+WcqOWvueW6lOWbvuihqOexu+Wei+S4iuabtOaUuWNvbG9y5bGe5oCnXHJcbmNvbnN0IGNvbG9yID0gWycjMTg5MEZGJywgJyM5MUNCNzQnLCAnI0ZBQzg1OCcsICcjRUU2NjY2JywgJyM3M0MwREUnLCAnIzNDQTI3MicsICcjRkM4NDUyJywgJyM5QTYwQjQnLCAnI2VhN2NjYyddO1xyXG5cclxuY29uc3QgY2ZlID0ge1xyXG4gIC8vZGVtb3R5cGXkuLroh6rlrprkuYnlm77ooajnsbvlnotcclxuXHRcInR5cGVcIjogW1wicGllXCIsIFwicmluZ1wiLCBcInJvc2VcIiwgXCJmdW5uZWxcIiwgXCJsaW5lXCIsIFwiY29sdW1uXCIsIFwiYXJlYVwiLCBcInJhZGFyXCIsIFwiZ2F1Z2VcIixcImNhbmRsZVwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy/lop7liqDoh6rlrprkuYnlm77ooajnsbvlnovvvIzlpoLmnpzpnIDopoFjYXRlZ29yaWVz77yM6K+35Zyo6L+Z6YeM5Yqg5YWl5oKo55qE5Zu+6KGo57G75Z6L5L6L5aaC5pyA5ZCO55qEXCJkZW1vdHlwZVwiXHJcblx0XCJjYXRlZ29yaWVzXCI6IFtcImxpbmVcIiwgXCJjb2x1bW5cIiwgXCJhcmVhXCIsIFwicmFkYXJcIiwgXCJnYXVnZVwiLCBcImNhbmRsZVwiLFwiZGVtb3R5cGVcIl0sXHJcbiAgLy9pbnN0YW5jZeS4uuWunuS+i+WPmOmHj+aJv+i9veWxnuaAp++8jG9wdGlvbuS4umVvcHRz5om/6L295bGe5oCn77yM5LiN6KaB5Yig6ZmkXHJcblx0XCJpbnN0YW5jZVwiOiB7fSxcclxuXHRcIm9wdGlvblwiOiB7fSxcclxuICAvL+S4i+mdouaYr+iHquWumuS5iWZvcm1hdOmFjee9ru+8jOWboOmZpEg156uv5aSW55qE5YW25LuW56uv5peg5rOV6YCa6L+HcHJvcHPkvKDpgJLlh73mlbDvvIzlj6rog73pgJrov4fmraTlsZ7mgKflr7nlupTkuIvmoIfnmoTmlrnlvI/mnaXmm7/mjaJcclxuICBcImZvcm1hdHRlclwiOntcclxuICAgIFwidG9vbHRpcERlbW8xXCI6ZnVuY3Rpb24ocmVzKXtcclxuICAgICAgbGV0IHJlc3VsdCA9ICcnXHJcbiAgICAgIGZvciAobGV0IGkgaW4gcmVzKSB7XHJcbiAgICAgIFx0aWYgKGkgPT0gMCkge1xyXG4gICAgICBcdFx0cmVzdWx0ICs9IHJlc1tpXS5heGlzVmFsdWVMYWJlbCArICflubTplIDllK7pop0nXHJcbiAgICAgIFx0fVxyXG4gICAgICBcdGxldCB2YWx1ZSA9ICctLSdcclxuICAgICAgXHRpZiAocmVzW2ldLmRhdGEgIT09IG51bGwpIHtcclxuICAgICAgXHRcdHZhbHVlID0gcmVzW2ldLmRhdGFcclxuICAgICAgXHR9XHJcblxyXG5cclxuXHJcbiAgICAgIFx0XHJcblxyXG4gICAgICBcdHJlc3VsdCArPSAnPGJyLz4nICsgcmVzW2ldLm1hcmtlciArIHJlc1tpXS5zZXJpZXNOYW1lICsgJ++8micgKyB2YWx1ZSArICcg5LiH5YWDJ1xyXG5cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSxcclxuICAgIGxlZ2VuZEZvcm1hdDpmdW5jdGlvbihuYW1lKXtcclxuICAgICAgcmV0dXJuIFwi6Ieq5a6a5LmJ5Zu+5L6LK1wiK25hbWU7XHJcblx0ICB9LFxyXG5cdCAgXCJ4QXhpc0Zvcm1hdFwiOiBmdW5jdGlvbiAodmFsdWUpIHsgXHJcblx0XHRyZXR1cm4gdmFsdWUuc3Vic3RyKCcyMDIwLS0nLmxlbmd0aCwgMTEpXHJcblx0ICB9LFxyXG5cdCAgXCJzdExpc3RcIjogICBmdW5jdGlvbiAodmFsKSAgXHJcblx0ICB7ICBcclxuXHRcdGxldCB2YWx1ZSA9IHZhbC5zdWJzdHIoJzIwMjAtJy5sZW5ndGgsIDExKVxyXG5cdFx0ICB2YXIgcmV0ID0gXCJcIjsvL+aLvOaOpeWKoFxcbui/lOWbnueahOexu+ebrumhuSAgXHJcblx0XHQgIHZhciBtYXhMZW5ndGggPSA2Oy8v5q+P6aG55pi+56S65paH5a2X5Liq5pWwICBcclxuXHRcdCAgdmFyIHZhbExlbmd0aCA9IHZhbHVlLmxlbmd0aDsvL1jovbTnsbvnm67pobnnmoTmloflrZfkuKrmlbAgIFxyXG5cdFx0ICB2YXIgcm93TiA9IE1hdGguY2VpbCh2YWxMZW5ndGggLyBtYXhMZW5ndGgpOyAvL+exu+ebrumhuemcgOimgeaNouihjOeahOihjOaVsCAgXHJcblx0XHQgIGlmIChyb3dOID4gMSkvL+WmguaenOexu+ebrumhueeahOaWh+Wtl+Wkp+S6jjUsICBcclxuXHRcdCAgeyAgXHJcblx0XHRcdCAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dOOyBpKyspIHsgIFxyXG5cdFx0XHRcdCAgdmFyIHRlbXAgPSBcIlwiOy8v5q+P5qyh5oiq5Y+W55qE5a2X56ym5LiyICBcclxuXHRcdFx0XHQgIHZhciBzdGFydCA9IGkgKiBtYXhMZW5ndGg7Ly/lvIDlp4vmiKrlj5bnmoTkvY3nva4gIFxyXG5cdFx0XHRcdCAgdmFyIGVuZCA9IHN0YXJ0ICsgbWF4TGVuZ3RoOy8v57uT5p2f5oiq5Y+W55qE5L2N572uICBcclxuXHRcdFx0IC8v6L+Z6YeM5Lmf5Y+v5Lul5Yqg5LiA5Liq5piv5ZCm5piv5pyA5ZCO5LiA6KGM55qE5Yik5pat77yM5L2G5piv5LiN5Yqg5Lmf5rKh5pyJ5b2x5ZON77yM6YKj5bCx5LiN5Yqg5ZCnICBcclxuXHRcdFx0XHQgIHRlbXAgPSB2YWx1ZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCkgKyBcIlxcblwiOyAgXHJcblx0XHRcdFx0ICByZXQgKz0gdGVtcDsgLy/lh63lgJ/mnIDnu4jnmoTlrZfnrKbkuLIgIFxyXG5cdFx0XHQgIH0gIFxyXG5cdFx0XHQgIHJldHVybiByZXQ7ICBcclxuXHRcdCAgfSAgXHJcblx0XHQgIGVsc2UgeyAgXHJcblx0XHRcdCAgIHJldHVybiB2YWx1ZTsgIFxyXG5cdFx0ICB9ICBcclxuXHQgIH0sXHJcblx0ICBcInN0TW9udGhcIjpmdW5jdGlvbih2YWx1ZSl7XHJcblx0XHRsZXQgbW9udGhzID0gdmFsdWUuZGF0YS5jb29yZFswXS5zdWJzdHIoXCIyMDI0LTBcIi5sZW5ndGgsIFwiMjAyNC0wXCIubGVuZ3RoIC0gNSk7XHJcblx0XHRsZXQgdmFsID0gdmFsdWUuZGF0YS5jb29yZFsxXVxyXG5cdFx0cmV0dXJuIGAke21vbnRoc33mnIjmoLjlrprnlJ/mgIHmtYHph48ke3ZhbH1twrMvc2BcclxuXHQgIH0sXHJcblx0ICBcInloaWRkZW5cIjogZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgYXhpcykge1xyXG5cdFx0ICBjb25zb2xlLmxvZyhcImF4aXNcIixheGlzKTtcclxuXHRcdCAgXHJcblx0XHQgIGlmIChpbmRleCA9PT0gMCB8fCBpbmRleCA9PT0gYXhpcy5kYXRhLmxlbmd0aCAtIDEpIHtcclxuXHRcdFx0ICByZXR1cm4gJydcclxuXHRcdCAgfSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIHZhbHVlXHJcblx0XHQgIH1cclxuXHQgIH0sXHJcbiAgICB5QXhpc0Zvcm1hdERlbW86ZnVuY3Rpb24gKHZhbHVlLCBpbmRleCkge1xyXG4gICAgICByZXR1cm4gdmFsdWUgKyAn5YWDJztcclxuICAgIH0sXHJcbiAgICBzZXJpZXNGb3JtYXREZW1vOmZ1bmN0aW9uKHJlcyl7XHJcbiAgICAgIHJldHVybiByZXMubmFtZSArICflubQnICsgcmVzLnZhbHVlICsgJ+WFgyc7XHJcbiAgICB9XHJcbiAgfSxcclxuICAvL+i/memHjOa8lOekuuS6huiHquWumuS5ieaCqOeahOWbvuihqOexu+Wei+eahG9wdGlvbu+8jOWPr+S7pemaj+aEj+WRveWQje+8jOS5i+WQjuWcqOe7hOS7tuS4iiB0eXBlPVwiZGVtb3R5cGVcIiDlkI7vvIznu4Tku7bkvJrosIPnlKjov5nkuKroirHmi6zlj7fph4znmoRvcHRpb27vvIzlpoLmnpznu4Tku7bkuIrov5jlrZjlnKhlb3B0c+WPguaVsO+8jOS8muWwhmRlbW90eXBl5LiOZW9wdHPkuK1vcHRpb27lkIjlubblkI7muLLmn5Plm77ooajjgIJcclxuICBcImRlbW90eXBlXCI6e1xyXG4gICAgXCJjb2xvclwiOiBjb2xvcixcclxuICAgIC8v5Zyo6L+Z6YeM5aGr5YaZZWNoYXJ0c+eahG9wdGlvbuWNs+WPr1xyXG4gICAgXHJcbiAgfSxcclxuICAvL+S4i+mdouaYr+iHquWumuS5iemFjee9ru+8jOivt+a3u+WKoOmhueebruaJgOmcgOeahOmAmueUqOmFjee9rlxyXG5cdFwiY29sdW1uXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdheGlzJ1xyXG5cdFx0fSxcclxuXHRcdFwiZ3JpZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6IDMwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA1MCxcclxuXHRcdFx0XCJyaWdodFwiOiAxNSxcclxuXHRcdFx0XCJsZWZ0XCI6IDQwXHJcblx0XHR9LFxyXG5cdFx0XCJsZWdlbmRcIjoge1xyXG5cdFx0XHRcImJvdHRvbVwiOiAnbGVmdCcsXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sYm94XCI6IHtcclxuXHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0fSxcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ2NhdGVnb3J5JyxcclxuXHRcdFx0XCJheGlzTGFiZWxcIjoge1xyXG5cdFx0XHRcdFwiY29sb3JcIjogJyM2NjY2NjYnXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xpbmVcIjoge1xyXG5cdFx0XHRcdFwibGluZVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcdFwiY29sb3JcIjogJyNDQ0NDQ0MnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImJvdW5kYXJ5R2FwXCI6IHRydWUsXHJcblx0XHRcdFwiZGF0YVwiOiBbXVxyXG5cdFx0fSxcclxuXHRcdFwieUF4aXNcIjoge1xyXG5cdFx0XHRcInR5cGVcIjogJ3ZhbHVlJyxcclxuXHRcdFx0XCJheGlzVGlja1wiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IGZhbHNlLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdiYXInLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImxpbmVcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXHJcblx0XHR9LFxyXG5cdFx0XCJncmlkXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogMzAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDUwLFxyXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxyXG5cdFx0XHRcImxlZnRcIjogNDBcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwiYm90dG9tXCI6ICdsZWZ0JyxcclxuXHRcdH0sXHJcblx0XHRcInRvb2xib3hcIjoge1xyXG5cdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHR9LFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAnY2F0ZWdvcnknLFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYm91bmRhcnlHYXBcIjogdHJ1ZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAndmFsdWUnLFxyXG5cdFx0XHRcImF4aXNUaWNrXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2xpbmUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYmFyd2lkdGhcIjogMjAsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcImFyZWFcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2F4aXMnXHJcblx0XHR9LFxyXG5cdFx0XCJncmlkXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogMzAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDUwLFxyXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxyXG5cdFx0XHRcImxlZnRcIjogNDBcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwiYm90dG9tXCI6ICdsZWZ0JyxcclxuXHRcdH0sXHJcblx0XHRcInRvb2xib3hcIjoge1xyXG5cdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHR9LFxyXG5cdFx0XCJ4QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAnY2F0ZWdvcnknLFxyXG5cdFx0XHRcImF4aXNMYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJjb2xvclwiOiAnIzY2NjY2NidcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJheGlzTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJjb2xvclwiOiAnI0NDQ0NDQydcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYm91bmRhcnlHYXBcIjogdHJ1ZSxcclxuXHRcdFx0XCJkYXRhXCI6IFtdXHJcblx0XHR9LFxyXG5cdFx0XCJ5QXhpc1wiOiB7XHJcblx0XHRcdFwidHlwZVwiOiAndmFsdWUnLFxyXG5cdFx0XHRcImF4aXNUaWNrXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogZmFsc2UsXHJcblx0XHRcdH0sXHJcblx0XHRcdFwiYXhpc0xhYmVsXCI6IHtcclxuXHRcdFx0XHRcImNvbG9yXCI6ICcjNjY2NjY2J1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImF4aXNMaW5lXCI6IHtcclxuXHRcdFx0XHRcImxpbmVTdHlsZVwiOiB7XHJcblx0XHRcdFx0XHRcImNvbG9yXCI6ICcjQ0NDQ0NDJ1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2xpbmUnLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHRcdFwiYXJlYVN0eWxlXCI6IHt9LFxyXG5cdFx0XHRcImxhYmVsXCI6IHtcclxuXHRcdFx0XHRcInNob3dcIjogdHJ1ZSxcclxuICAgICAgICBcImNvbG9yXCI6IFwiIzY2NjY2NlwiLFxyXG5cdFx0XHRcdFwicG9zaXRpb25cIjogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJwaWVcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nXHJcblx0XHR9LFxyXG5cdFx0XCJncmlkXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogNDAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDMwLFxyXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxyXG5cdFx0XHRcImxlZnRcIjogMTVcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwiYm90dG9tXCI6ICdsZWZ0JyxcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdFx0XCJyYWRpdXNcIjogJzUwJScsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0fSxcclxuXHRcInJpbmdcIjoge1xyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcInRvb2x0aXBcIjoge1xyXG5cdFx0XHRcInRyaWdnZXJcIjogJ2l0ZW0nXHJcblx0XHR9LFxyXG5cdFx0XCJncmlkXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogNDAsXHJcblx0XHRcdFwiYm90dG9tXCI6IDMwLFxyXG5cdFx0XHRcInJpZ2h0XCI6IDE1LFxyXG5cdFx0XHRcImxlZnRcIjogMTVcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwiYm90dG9tXCI6ICdsZWZ0JyxcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdFx0XCJyYWRpdXNcIjogWyc0MCUnLCAnNzAlJ10sXHJcblx0XHRcdFwiYXZvaWRMYWJlbE92ZXJsYXBcIjogZmFsc2UsXHJcblx0XHRcdFwibGFiZWxcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG4gICAgICAgIFwiY29sb3JcIjogXCIjNjY2NjY2XCIsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJsYWJlbExpbmVcIjoge1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJyb3NlXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJ1xyXG5cdFx0fSxcclxuXHRcdFwibGVnZW5kXCI6IHtcclxuXHRcdFx0XCJ0b3BcIjogJ2JvdHRvbSdcclxuXHRcdH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ3BpZScsXHJcblx0XHRcdFwiZGF0YVwiOiBbXSxcclxuXHRcdFx0XCJyYWRpdXNcIjogXCI1NSVcIixcclxuXHRcdFx0XCJjZW50ZXJcIjogWyc1MCUnLCAnNTAlJ10sXHJcblx0XHRcdFwicm9zZVR5cGVcIjogJ2FyZWEnLFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwiZnVubmVsXCI6IHtcclxuXHRcdFwiY29sb3JcIjogY29sb3IsXHJcblx0XHRcInRpdGxlXCI6IHtcclxuXHRcdFx0XCJ0ZXh0XCI6ICcnXHJcblx0XHR9LFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuXHRcdFx0XCJ0cmlnZ2VyXCI6ICdpdGVtJyxcclxuXHRcdFx0XCJmb3JtYXR0ZXJcIjogXCJ7Yn0gOiB7Y30lXCJcclxuXHRcdH0sXHJcblx0XHRcImxlZ2VuZFwiOiB7XHJcblx0XHRcdFwidG9wXCI6ICdib3R0b20nXHJcblx0XHR9LFxyXG5cdFx0XCJzZXJpZXNUZW1wbGF0ZVwiOiB7XHJcblx0XHRcdFwibmFtZVwiOiAnJyxcclxuXHRcdFx0XCJ0eXBlXCI6ICdmdW5uZWwnLFxyXG5cdFx0XHRcImxlZnRcIjogJzEwJScsXHJcblx0XHRcdFwidG9wXCI6IDYwLFxyXG5cdFx0XHRcImJvdHRvbVwiOiA2MCxcclxuXHRcdFx0XCJ3aWR0aFwiOiAnODAlJyxcclxuXHRcdFx0XCJtaW5cIjogMCxcclxuXHRcdFx0XCJtYXhcIjogMTAwLFxyXG5cdFx0XHRcIm1pblNpemVcIjogJzAlJyxcclxuXHRcdFx0XCJtYXhTaXplXCI6ICcxMDAlJyxcclxuXHRcdFx0XCJzb3J0XCI6ICdkZXNjZW5kaW5nJyxcclxuXHRcdFx0XCJnYXBcIjogMixcclxuXHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XCJzaG93XCI6IHRydWUsXHJcblx0XHRcdFx0XCJwb3NpdGlvblwiOiAnaW5zaWRlJ1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImxhYmVsTGluZVwiOiB7XHJcblx0XHRcdFx0XCJsZW5ndGhcIjogMTAsXHJcblx0XHRcdFx0XCJsaW5lU3R5bGVcIjoge1xyXG5cdFx0XHRcdFx0XCJ3aWR0aFwiOiAxLFxyXG5cdFx0XHRcdFx0XCJ0eXBlXCI6ICdzb2xpZCdcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdFwiaXRlbVN0eWxlXCI6IHtcclxuXHRcdFx0XHRcImJvcmRlcmNvbG9yXCI6ICcjZmZmJyxcclxuXHRcdFx0XHRcImJvcmRlcndpZHRoXCI6IDFcclxuXHRcdFx0fSxcclxuXHRcdFx0XCJlbXBoYXNpc1wiOiB7XHJcblx0XHRcdFx0XCJsYWJlbFwiOiB7XHJcblx0XHRcdFx0XHRcImZvbnRTaXplXCI6IDIwXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0XCJnYXVnZVwiOiB7XHJcblx0XHRcImNvbG9yXCI6IGNvbG9yLFxyXG5cdFx0XCJ0b29sdGlwXCI6IHtcclxuICAgICAgICBcImZvcm1hdHRlclwiOiAne2F9IDxici8+e2J9IDoge2N9JSdcclxuICAgIH0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICfkuJrliqHmjIfmoIcnLFxyXG4gICAgICBcInR5cGVcIjogJ2dhdWdlJyxcclxuICAgICAgXCJkZXRhaWxcIjoge1wiZm9ybWF0dGVyXCI6ICd7dmFsdWV9JSd9LFxyXG4gICAgICBcImRhdGFcIjogW3tcInZhbHVlXCI6IDUwLCBcIm5hbWVcIjogJ+WujOaIkOeOhyd9XVxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdFwiY2FuZGxlXCI6IHtcclxuXHRcdFwieEF4aXNcIjoge1xyXG5cdFx0XHRcImRhdGFcIjogW11cclxuXHRcdH0sXHJcblx0XHRcInlBeGlzXCI6IHt9LFxyXG5cdFx0XCJjb2xvclwiOiBjb2xvcixcclxuXHRcdFwidGl0bGVcIjoge1xyXG5cdFx0XHRcInRleHRcIjogJydcclxuXHRcdH0sXHJcblx0XHRcImRhdGFab29tXCI6IFt7XHJcblx0XHRcdFx0XCJ0eXBlXCI6ICdpbnNpZGUnLFxyXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXHJcblx0XHRcdFx0XCJzdGFydFwiOiAxMCxcclxuXHRcdFx0XHRcImVuZFwiOiAxMDBcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdFwic2hvd1wiOiB0cnVlLFxyXG5cdFx0XHRcdFwieEF4aXNJbmRleFwiOiBbMCwgMV0sXHJcblx0XHRcdFx0XCJ0eXBlXCI6ICdzbGlkZXInLFxyXG5cdFx0XHRcdFwiYm90dG9tXCI6IDEwLFxyXG5cdFx0XHRcdFwic3RhcnRcIjogMTAsXHJcblx0XHRcdFx0XCJlbmRcIjogMTAwXHJcblx0XHRcdH1cclxuXHRcdF0sXHJcblx0XHRcInNlcmllc1RlbXBsYXRlXCI6IHtcclxuXHRcdFx0XCJuYW1lXCI6ICcnLFxyXG5cdFx0XHRcInR5cGVcIjogJ2snLFxyXG5cdFx0XHRcImRhdGFcIjogW10sXHJcblx0XHR9LFxyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2ZlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///387\n"); /***/ }), /* 388 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/stlljk/index.vue?vue&type=script&lang=js&mpType=page ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=script&lang=js&mpType=page */ 389);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_script_lang_js_mpType_page__WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRpQixDQUFnQixza0JBQUcsRUFBQyIsImZpbGUiOiIzODguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmbXBUeXBlPXBhZ2VcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvd2VicGFjay1wcmVwcm9jZXNzLWxvYWRlci9pbmRleC5qcz8/cmVmLS03LTEhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXVuaS1hcHAtbG9hZGVyL3VzaW5nLWNvbXBvbmVudHMuanMhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJm1wVHlwZT1wYWdlXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///388\n"); /***/ }), /* 389 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/stlljk/index.vue?vue&type=script&lang=js&mpType=page ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 16));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 18));\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 169));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _moment = _interopRequireDefault(__webpack_require__(/*! moment */ 173));\nvar _jcsjTable = _interopRequireDefault(__webpack_require__(/*! ./jcsjTable */ 390));\nvar _chartOption = _interopRequireDefault(__webpack_require__(/*! ./chartOption.js */ 395));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar stm = (0, _moment.default)().subtract(7, 'months').add(1, 'hour').set({\n minute: 0,\n second: 0\n}).format(\"YYYY-MM-DD HH:mm\");\nvar etm = (0, _moment.default)().add(1, 'hour').set({\n minute: 0,\n second: 0\n}).format(\"YYYY-MM-DD HH:mm\");\nvar _default = {\n props: {\n stcd: String,\n source: String,\n wrz: String,\n grz: String,\n afsltdz: String,\n flLowLimLev: String,\n desFloodLev: String,\n calFloodLev: String,\n default: ''\n },\n data: function data() {\n return {\n startTime: stm,\n endTime: etm,\n stm: stm,\n etm: etm,\n showTime: false,\n showTime1: false,\n tableData: [],\n chartData: {\n chartData: {},\n eopts: {}\n },\n stData: {}\n };\n },\n components: {\n JcsjTable: _jcsjTable.default\n },\n watch: {\n stData: {\n handler: function handler(newV) {\n this.chartData = _objectSpread({}, (0, _chartOption.default)(newV));\n },\n deep: true\n }\n },\n methods: {\n handleStartTime: function handleStartTime(e) {\n var time = (0, _moment.default)(e.value).format(\"YYYY-MM-DD HH:mm\");\n this.stm = time;\n this.showTime = false;\n },\n handleEndTime: function handleEndTime(e) {\n var time = (0, _moment.default)(e.value).format(\"YYYY-MM-DD HH:mm\");\n this.etm = time;\n this.showTime1 = false;\n },\n handleRanger: function handleRanger(e) {\n __f__(\"log\", e, \" at pages/stlljk/index.vue:115\");\n this.tm = (0, _toConsumableArray2.default)(e);\n },\n // 获取月份数据\n getMonthData: function getMonthData() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var startTime, endTime, _yield$uni$$http$get, data;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n startTime = (0, _moment.default)(_this.stm).format(\"YYYY-MM-DD HH:mm:ss\");\n endTime = (0, _moment.default)(_this.etm).format(\"YYYY-MM-DD HH:mm:ss\");\n _context.prev = 2;\n _context.next = 5;\n return uni.$http.get(\"/gunshiApp/xyt/stWaterR/getResMonthEcoFlow?startTime=\".concat(startTime, \"&endTime=\").concat(endTime));\n case 5:\n _yield$uni$$http$get = _context.sent;\n data = _yield$uni$$http$get.data;\n if (data.code == 200) {\n _this.stData = _objectSpread(_objectSpread({}, _this.stData), {}, {\n chart: data.data\n });\n }\n _context.next = 13;\n break;\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](2);\n uni.$showMsg();\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 10]]);\n }))();\n },\n // 获取生态流量数据\n getJcsjData: function getJcsjData() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var _yield$uni$$http$post, data;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return uni.$http.post(\"/gunshiApp/xyt/stWaterR/ecologyFlowList\", {\n startTime: (0, _moment.default)(_this2.stm).format(\"YYYY-MM-DD HH:mm:ss\"),\n endTime: (0, _moment.default)(_this2.etm).format(\"YYYY-MM-DD HH:mm:ss\"),\n isAsc: false,\n orderField: \"tm\"\n });\n case 3:\n _yield$uni$$http$post = _context2.sent;\n data = _yield$uni$$http$post.data;\n if (data.code == 200) {\n _this2.stData = _objectSpread(_objectSpread({}, _this2.stData), {}, {\n list: data.data\n });\n _this2.tableData = data.data;\n }\n _context2.next = 11;\n break;\n case 8:\n _context2.prev = 8;\n _context2.t0 = _context2[\"catch\"](0);\n uni.$showMsg();\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[0, 8]]);\n }))();\n },\n // 搜索\n searchHandle: function searchHandle() {\n this.getJcsjData();\n this.getMonthData();\n }\n },\n mounted: function mounted() {\n this.getJcsjData();\n this.getMonthData();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvc3RsbGprL2luZGV4LnZ1ZSJdLCJuYW1lcyI6WyJtaW51dGUiLCJzZWNvbmQiLCJwcm9wcyIsInN0Y2QiLCJzb3VyY2UiLCJ3cnoiLCJncnoiLCJhZnNsdGR6IiwiZmxMb3dMaW1MZXYiLCJkZXNGbG9vZExldiIsImNhbEZsb29kTGV2IiwiZGVmYXVsdCIsImRhdGEiLCJzdGFydFRpbWUiLCJlbmRUaW1lIiwic3RtIiwiZXRtIiwic2hvd1RpbWUiLCJzaG93VGltZTEiLCJ0YWJsZURhdGEiLCJjaGFydERhdGEiLCJlb3B0cyIsInN0RGF0YSIsImNvbXBvbmVudHMiLCJKY3NqVGFibGUiLCJ3YXRjaCIsImhhbmRsZXIiLCJkZWVwIiwibWV0aG9kcyIsImhhbmRsZVN0YXJ0VGltZSIsImhhbmRsZUVuZFRpbWUiLCJoYW5kbGVSYW5nZXIiLCJnZXRNb250aERhdGEiLCJ1bmkiLCJjaGFydCIsImdldEpjc2pEYXRhIiwiaXNBc2MiLCJvcmRlckZpZWxkIiwibGlzdCIsInNlYXJjaEhhbmRsZSIsIm1vdW50ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBNERBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtFQUFBQTtFQUFBQztBQUFBO0FBQ0E7RUFBQUQ7RUFBQUM7QUFBQTtBQUFBLGVBQ0E7RUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFFQUM7RUFDQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO01BQ0FDO1FBQUFBO1FBQUFDO01BQUE7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDO0lBQ0FDO0VBQ0E7RUFDQUM7SUFDQUg7TUFDQUk7UUFDQTtNQUNBO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBQztNQUNBO01BQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFFQTtJQUNBQztNQUFBO01BQUE7UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUNBbkI7Z0JBQ0FDO2dCQUFBO2dCQUFBO2dCQUFBLE9BRUFtQiw2RUFDQXBCO2NBQUE7Z0JBQUE7Z0JBREFEO2dCQUVBO2tCQUNBLCtDQUNBO29CQUNBc0I7a0JBQUEsRUFDQTtnQkFDQTtnQkFBQTtnQkFBQTtjQUFBO2dCQUFBO2dCQUFBO2dCQUVBRDtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUVBO0lBRUE7SUFDQUU7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBQTtnQkFBQTtnQkFBQSxPQUVBRixlQUNBLDJDQUNBO2tCQUNBcEI7a0JBQ0FDO2tCQUNBc0I7a0JBQ0FDO2dCQUNBO2NBQUE7Z0JBQUE7Z0JBUEF6QjtnQkFRQTtrQkFDQSxnREFDQTtvQkFDQTBCO2tCQUFBLEVBQ0E7a0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBQUE7Y0FBQTtnQkFBQTtnQkFBQTtnQkFFQUw7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFFQTtJQUNBO0lBQ0FNO01BQ0E7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtJQUNBO0VBRUE7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjM4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8dmlldyBzdHlsZT1cImhlaWdodDoxMDB2aDsgb3ZlcmZsb3c6aGlkZGVuXCI+XHJcbiAgICAgIDx1LXN0YXR1cy1iYXI+PC91LXN0YXR1cy1iYXI+XHJcblx0XHQ8dS1uYXZiYXJcclxuXHRcdFx0dGl0bGU9XCLnlJ/mgIHmtYHph4/nm5HmjqdcIiBcclxuXHRcdFx0OmF1dG9CYWNrPVwidHJ1ZVwiIFxyXG5cdFx0XHQ6dGl0bGVTdHlsZT1cIntcclxuXHRcdFx0XHRmb250U2l6ZTonMThweCdcclxuXHRcdFx0fVwiIFxyXG5cdFx0XHQ6aGVpZ2h0PSc0NCdcclxuXHRcdFx0OnNhZmVBcmVhSW5zZXRUb3A9dHJ1ZVxyXG5cdFx0XHRsZWZ0SWNvblNpemU9JzIwJ1xyXG5cdFx0XHRsZWZ0SWNvbkNvbG9yPSdyZ2IoMTUzLCAxNTMsIDE1MyknXHJcblx0XHQ+XHJcblx0XHQ8L3UtbmF2YmFyPlxyXG4gIDx2aWV3IGNsYXNzPVwiamNzai1ib3hcIj5cclxuICBcclxuICAgIDx2aWV3IGNsYXNzPVwidGltZS1yYW5nZXJcIiA+XHJcbiAgICAgICAgPHZpZXcgY2xhc3M9XCJzdGFydC10aW1lXCI+XHJcbiAgICAgICAgPHRleHQ+5byA5aeL5pe26Ze0PC90ZXh0PlxyXG4gICAgICAgIDx0ZXh0IEBjbGljaz1cInNob3dUaW1lPXRydWVcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OjE1JTtjb2xvcjojMzM5OWVmXCI+e3tzdG19fTwvdGV4dD5cclxuICAgICAgPC92aWV3PlxyXG4gICAgICA8dmlldyBjbGFzcz1cImVuZC10aW1lXCI+XHJcbiAgICAgICAgPHRleHQ+57uT5p2f5pe26Ze0PC90ZXh0PlxyXG4gICAgICAgIDx0ZXh0IEBjbGljaz1cInNob3dUaW1lMT10cnVlXCIgc3R5bGU9XCJtYXJnaW46MCAxNSU7Y29sb3I6IzMzOTllZlwiPnt7ZXRtfX08L3RleHQ+XHJcbiAgICAgICAgIDx2aWV3IGNsYXNzPVwic2VhcmNoLWJ0blwiIEBjbGljaz1cInNlYXJjaEhhbmRsZVwiPlxyXG4gICAgICAgICAg5pCc57SiXHJcbiAgICAgICAgPC92aWV3PlxyXG4gICAgICA8L3ZpZXc+XHJcblxyXG4gICAgPC92aWV3PlxyXG4gICAgICBcclxuXHJcbiAgICA8dmlldyBjbGFzcz1cImpjc2otY29udGVudFwiPlxyXG4gICAgPHZpZXcgY2xhc3M9XCJqY3NqLWNoYXJ0c1wiID5cclxuICAgICAgPHFpdW4tZGF0YS1jaGFydHMgIDpjaGFydERhdGE9XCJjaGFydERhdGEuY2hhcnREYXRhXCIgOmVjaGFydHNBcHA9XCJ0cnVlXCIgOmVvcHRzPVwiY2hhcnREYXRhLmVvcHRzXCIgLz5cclxuICAgIDwvdmlldz5cclxuICAgICA8dmlldyBzdHlsZT1cIm1hcmdpbi10b3A6IDIwcHg7XCI+XHJcbiAgICAgIDxKY3NqVGFibGUgOnRhYmxlRGF0YT1cInRhYmxlRGF0YVwiIC8+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICA8L3ZpZXc+XHJcbiAgICAgIDx1LWRhdGV0aW1lLXBpY2tlclxyXG4gICAgICAgICAgICAgICAgOnNob3c9XCJzaG93VGltZVwiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwic3RhcnRUaW1lXCJcclxuICAgICAgICAgICAgICAgIG1vZGU9XCJkYXRldGltZVwiXHJcbiAgICAgICAgICAgICAgICBAY29uZmlybT1cImhhbmRsZVN0YXJ0VGltZVwiXHJcbiAgICAgICAgICAgICAgICBAY2FuY2VsPVwic2hvd1RpbWU9ZmFsc2VcIlxyXG4gICAgICAgID48L3UtZGF0ZXRpbWUtcGlja2VyPlxyXG4gICAgICAgICA8dS1kYXRldGltZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIDpzaG93PVwic2hvd1RpbWUxXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJlbmRUaW1lXCJcclxuICAgICAgICAgICAgICAgIG1vZGU9XCJkYXRldGltZVwiXHJcbiAgICAgICAgICAgICAgICBAY29uZmlybT1cImhhbmRsZUVuZFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgQGNhbmNlbD1cInNob3dUaW1lMT1mYWxzZVwiXHJcbiAgICAgICAgPjwvdS1kYXRldGltZS1waWNrZXI+XHJcbiAgPC92aWV3PlxyXG4gIDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCJcclxuICBpbXBvcnQgSmNzalRhYmxlIGZyb20gXCIuL2pjc2pUYWJsZVwiXHJcbiAgaW1wb3J0IGRycE9wdGlvbiBmcm9tIFwiLi9jaGFydE9wdGlvbi5qc1wiICBcclxuICBjb25zdCBzdG0gPSBtb21lbnQoKS5zdWJ0cmFjdCg3LCAnbW9udGhzJykuYWRkKDEsICdob3VyJykuc2V0KHttaW51dGU6IDAsIHNlY29uZDogMH0pLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW1cIik7XHJcbiAgY29uc3QgZXRtID0gIG1vbWVudCgpLmFkZCgxLCAnaG91cicpLnNldCh7bWludXRlOiAwLCBzZWNvbmQ6IDB9KS5mb3JtYXQoXCJZWVlZLU1NLUREIEhIOm1tXCIpO1xyXG4gIGV4cG9ydCBkZWZhdWx0IHtcclxuICAgIHByb3BzOntcclxuICAgICAgc3RjZDpTdHJpbmcsXHJcbiAgICAgIHNvdXJjZTpTdHJpbmcsXHJcbiAgICAgIHdyejpTdHJpbmcsXHJcbiAgICAgIGdyejpTdHJpbmcsXHJcbiAgICAgIGFmc2x0ZHo6U3RyaW5nLFxyXG4gICAgICBmbExvd0xpbUxldjpTdHJpbmcsXHJcbiAgICAgIGRlc0Zsb29kTGV2OlN0cmluZyxcclxuICAgICAgY2FsRmxvb2RMZXY6U3RyaW5nLFxyXG5cclxuICAgICAgZGVmYXVsdDonJ1xyXG4gICAgfSxcclxuICAgIGRhdGEoKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgc3RhcnRUaW1lOnN0bSxcclxuICAgICAgICBlbmRUaW1lOmV0bSxcclxuICAgICAgICBzdG0sXHJcbiAgICAgICAgZXRtLFxyXG4gICAgICAgIHNob3dUaW1lOmZhbHNlLFxyXG4gICAgICAgIHNob3dUaW1lMTpmYWxzZSxcclxuICAgICAgICB0YWJsZURhdGE6W10sXHJcbiAgICAgICAgY2hhcnREYXRhOiB7Y2hhcnREYXRhOnt9LGVvcHRzOnt9fSxcclxuICAgICAgICBzdERhdGE6e31cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNvbXBvbmVudHM6e1xyXG4gICAgICBKY3NqVGFibGVcclxuICAgIH0sXHJcbiAgICB3YXRjaDp7XHJcbiAgICAgIHN0RGF0YTp7XHJcbiAgICAgICAgaGFuZGxlcihuZXdWKXtcclxuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gey4uLmRycE9wdGlvbihuZXdWKX1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGRlZXA6dHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgbWV0aG9kczoge1xyXG4gICAgICAgICAgaGFuZGxlU3RhcnRUaW1lKGUpe1xyXG4gICAgICAgIGxldCB0aW1lID0gbW9tZW50KGUudmFsdWUpLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW1cIilcclxuICAgICAgICB0aGlzLnN0bSA9IHRpbWVcclxuICAgICAgICB0aGlzLnNob3dUaW1lID0gZmFsc2VcclxuICAgICAgfSwgXHJcbiAgICAgIGhhbmRsZUVuZFRpbWUoZSl7XHJcbiAgICAgICAgIGxldCB0aW1lID0gbW9tZW50KGUudmFsdWUpLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW1cIilcclxuICAgICAgICAgdGhpcy5ldG0gPSB0aW1lO1xyXG4gICAgICAgIHRoaXMuc2hvd1RpbWUxID0gZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgaGFuZGxlUmFuZ2VyKGUpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgICAgIHRoaXMudG0gPSBbLi4uZV1cclxuICAgICAgfSxcclxuXHJcbiAgICAvLyAg6I635Y+W5pyI5Lu95pWw5o2uXHJcbiAgICAgYXN5bmMgZ2V0TW9udGhEYXRhKCl7XHJcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IG1vbWVudCh0aGlzLnN0bSkuZm9ybWF0KFwiWVlZWS1NTS1ERCBISDptbTpzc1wiKTtcclxuICAgICAgY29uc3QgZW5kVGltZSA9IG1vbWVudCh0aGlzLmV0bSkuZm9ybWF0KFwiWVlZWS1NTS1ERCBISDptbTpzc1wiKTtcclxuICAgICAgICB0cnl7IFxyXG4gICAgICAgICAgY29uc3Qge2RhdGF9ID0gYXdhaXQgdW5pLiRodHRwLmdldChcclxuICAgICAgICAgIGAvZ3Vuc2hpQXBwL3h5dC9zdFdhdGVyUi9nZXRSZXNNb250aEVjb0Zsb3c/c3RhcnRUaW1lPSR7c3RhcnRUaW1lfSZlbmRUaW1lPSR7ZW5kVGltZX1gLClcclxuICAgICAgICAgIGlmKGRhdGEuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICB0aGlzLnN0RGF0YSA9IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnN0RGF0YSxcclxuICAgICAgICAgICAgICBjaGFydDpkYXRhLmRhdGFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1jYXRjaChlKXtcclxuICAgICAgICAgdW5pLiRzaG93TXNnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG5cclxuICAgICAgLy8g6I635Y+W55Sf5oCB5rWB6YeP5pWw5o2uXHJcbiAgICAgIGFzeW5jIGdldEpjc2pEYXRhKCl7XHJcbiAgICAgICAgdHJ5eyBcclxuICAgICAgICAgIGNvbnN0IHtkYXRhfSA9IGF3YWl0IHVuaS4kaHR0cC5wb3N0KFxyXG4gICAgICAgICAgXCIvZ3Vuc2hpQXBwL3h5dC9zdFdhdGVyUi9lY29sb2d5Rmxvd0xpc3RcIixcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgc3RhcnRUaW1lOm1vbWVudCh0aGlzLnN0bSkuZm9ybWF0KFwiWVlZWS1NTS1ERCBISDptbTpzc1wiKSxcclxuICAgICAgICAgICAgZW5kVGltZTptb21lbnQodGhpcy5ldG0pLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW06c3NcIiksXHJcbiAgICAgICAgICAgIGlzQXNjOmZhbHNlLFxyXG4gICAgICAgICAgICBvcmRlckZpZWxkOlwidG1cIlxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmKGRhdGEuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICB0aGlzLnN0RGF0YSA9IHtcclxuICAgICAgICAgICAgICAuLi50aGlzLnN0RGF0YSxcclxuICAgICAgICAgICAgICBsaXN0OmRhdGEuZGF0YVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YS5kYXRhO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1jYXRjaChlKXtcclxuICAgICAgICAgdW5pLiRzaG93TXNnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgLy8g5pCc57SiXHJcbiAgICAgIHNlYXJjaEhhbmRsZSgpe1xyXG4gICAgICAgICB0aGlzLmdldEpjc2pEYXRhKClcclxuICAgICAgICB0aGlzLmdldE1vbnRoRGF0YSgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBtb3VudGVkKCkge1xyXG4gICAgICAgdGhpcy5nZXRKY3NqRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0TW9udGhEYXRhKClcclxuXHJcbiAgICB9LFxyXG4gIH1cclxuPC9zY3JpcHQ+XHJcblxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG4uamNzai1ib3h7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG4gIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgLnRpbWUtcmFuZ2Vye1xyXG4gICAgLy8gZGlzcGxheTogZmxleDtcclxuICAgIC8vIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgIC5zdGFydC10aW1lLCAuZW5kLXRpbWV7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZmRmZGY7XHJcbiAgICB9XHJcbiAgICAuc2VhcmNoLWJ0bntcclxuICAgICAgbWFyZ2luOiAzcHggMCAwIDVweDtcclxuICAgICAgLy8gY29sb3I6ICMzMzk5ZWY7XHJcbiAgICB9XHJcbiAgfVxyXG4gICAuamNzai1jb250ZW50e1xyXG4gICAgbWF4LWhlaWdodDoxMDB2aDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgb3ZlcmZsb3cteTphdXRvXHJcbiAgfVxyXG4gIC5qY3NqLWNoYXJ0c3tcclxuICAgIC8vIHdpZHRoOjEwM3Z3O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxuICAuYWN0aXZle1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjNjhiYmZmICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogIzY4YmJmZjtcclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///389\n"); /***/ }), /* 390 */ /*!***********************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/stlljk/jcsjTable.vue ***! \***********************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jcsjTable.vue?vue&type=template&id=b67909ac&scoped=true& */ 391);\n/* harmony import */ var _jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jcsjTable.vue?vue&type=script&lang=js& */ 393);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _jcsjTable_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 _jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 29);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"b67909ac\",\n null,\n false,\n _jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/stlljk/jcsjTable.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0k7QUFDbEk7QUFDNkQ7QUFDTDs7O0FBR3hEO0FBQ21LO0FBQ25LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLCtFQUFNO0FBQ1IsRUFBRSxnR0FBTTtBQUNSLEVBQUUseUdBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsb0dBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMzkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIHJlY3ljbGFibGVSZW5kZXIsIGNvbXBvbmVudHMgfSBmcm9tIFwiLi9qY3NqVGFibGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWI2NzkwOWFjJnNjb3BlZD10cnVlJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vamNzalRhYmxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vamNzalRhYmxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImI2NzkwOWFjXCIsXG4gIG51bGwsXG4gIGZhbHNlLFxuICBjb21wb25lbnRzLFxuICByZW5kZXJqc1xuKVxuXG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInBhZ2VzL3N0bGxqay9qY3NqVGFibGUudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///390\n"); /***/ }), /* 391 */ /*!******************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/stlljk/jcsjTable.vue?vue&type=template&id=b67909ac&scoped=true& ***! \******************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./jcsjTable.vue?vue&type=template&id=b67909ac&scoped=true& */ 392); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_template_id_b67909ac_scoped_true___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 392 */ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/stlljk/jcsjTable.vue?vue&type=template&id=b67909ac&scoped=true& ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); var components var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { staticClass: _vm._$s(0, "sc", "table_div"), attrs: { _i: 0 } }, [ _c( "div", { staticClass: _vm._$s(1, "sc", "table_cur"), attrs: { _i: 1 } }, [ _c("table", [ _c("tr", [ _c("th"), _c("th"), _c("th"), _c("th", [_c("text")]), _c("th", [_c("view")]), ]), _c( "div", { staticClass: _vm._$s(11, "sc", "scroll-table"), attrs: { _i: 11 }, }, [ _vm._l( _vm._$s(12, "f", { forItems: _vm.newList }), function (item, index, $20, $30) { return _c( "tr", { key: _vm._$s(12, "f", { forIndex: $20, key: index }) }, [ _c("td", [ _vm._v( _vm._$s("13-" + $30, "t0-0", _vm._s(index + 1)) ), ]), _c("td", [ _vm._v(_vm._$s("14-" + $30, "t0-0", _vm._s(item.tm))), ]), _c("td", [ _vm._v(_vm._$s("15-" + $30, "t0-0", _vm._s(item.q))), ]), _c("td", [ _vm._v( _vm._$s("16-" + $30, "t0-0", _vm._s(item.approvalV)) ), ]), _c( "td", { style: _vm._$s("17-" + $30, "s", { width: "70px", color: item.isStandard ? "#000" : "red", }), attrs: { _i: "17-" + $30 }, }, [ _vm._v( _vm._$s( "17-" + $30, "t0-0", _vm._s(item.isStandard ? "是" : "否") ) ), ] ), ] ) } ), _c("div"), ], 2 ), ]), ] ), ] ) } var recyclableRender = false var staticRenderFns = [] render._withStripped = true /***/ }), /* 393 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/stlljk/jcsjTable.vue?vue&type=script&lang=js& ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./jcsjTable.vue?vue&type=script&lang=js& */ 394);\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_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 _HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_7_1_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_using_components_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_jcsjTable_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQXFpQixDQUFnQiwrakJBQUcsRUFBQyIsImZpbGUiOiIzOTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9qY3NqVGFibGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uL0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vSEJ1aWxkZXJYL3BsdWdpbnMvdW5pYXBwLWNsaS9ub2RlX21vZHVsZXMvQGRjbG91ZGlvL3Z1ZS1jbGktcGx1Z2luLXVuaS9wYWNrYWdlcy93ZWJwYWNrLXByZXByb2Nlc3MtbG9hZGVyL2luZGV4LmpzPz9yZWYtLTctMSEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3dlYnBhY2stdW5pLWFwcC1sb2FkZXIvdXNpbmctY29tcG9uZW50cy5qcyEuLi8uLi8uLi8uLi9IQnVpbGRlclgvcGx1Z2lucy91bmlhcHAtY2xpL25vZGVfbW9kdWxlcy9AZGNsb3VkaW8vdnVlLWNsaS1wbHVnaW4tdW5pL3BhY2thZ2VzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9qY3NqVGFibGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///393\n"); /***/ }), /* 394 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--7-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/work-gunshi/xytSk-App/pages/stlljk/jcsjTable.vue?vue&type=script&lang=js& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _moment = _interopRequireDefault(__webpack_require__(/*! moment */ 173));\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n props: {\n tableData: {\n type: Array,\n default: []\n }\n },\n computed: {\n newList: function newList() {\n if (this.tableData.length) {\n return this.tableData.map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n tm: (0, _moment.default)(item.tm).format(\"MM-DD HH:mm\")\n });\n });\n }\n }\n },\n methods: {}\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvc3RsbGprL2pjc2pUYWJsZS52dWUiXSwibmFtZXMiOlsicHJvcHMiLCJ0YWJsZURhdGEiLCJ0eXBlIiwiZGVmYXVsdCIsImNvbXB1dGVkIiwibmV3TGlzdCIsInRtIiwibWV0aG9kcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUF5Q0E7QUFBQTtBQUFBO0FBQUEsZUFDQTtFQUNBQTtJQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQUM7TUFDQTtRQUNBO1VBQUE7WUFBQUM7VUFBQTtRQUFBO01BQ0E7SUFDQTtFQUNBO0VBQ0FDLFVBRUE7QUFDQTtBQUFBIiwiZmlsZSI6IjM5NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICAgPGRpdiBjbGFzcz1cInRhYmxlX2RpdlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZV9jdXJcIj5cclxuICAgICAgICAgICAgICAgIDx0YWJsZSBzdHlsZT1cIndpZHRoOjEwMCU7ZGlzcGxheTpibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICDluo/lj7dcclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgycHhcIj7ml7bpl7Q8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAg5rWB6YePKG3Csy9zKVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOjEwMHB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAg5b2T5pyI5qC45a6a5rWB6YePXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOjE2cHg7IGxlZnQ6IDMwcHg7XCI+KG3Csy9zKTwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDcwcHg7IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg5piv5ZCm6L6+5qCHXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGV4dCBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOi0xMHB4OyBsZWZ0OiAyMHB4O1wiPihtwrMvcyk8L3RleHQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIHN0eWxlPVwibWF4LWhlaWdodDogNDgwcHg7IG92ZXJmbG93LXk6IGF1dG9cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbC10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRyIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBuZXdMaXN0XCIgOmtleT1cImluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogMzBweFwiPnt7IGluZGV4ICsgMSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIj57eyBpdGVtLnRtIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA5MHB4XCI+e3sgaXRlbS5xIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAxMDBweFwiPnt7IGl0ZW0uYXBwcm92YWxWIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCA6c3R5bGU9XCJ7d2lkdGg6JzcwcHgnLGNvbG9yOiBpdGVtLmlzU3RhbmRhcmQgPyAnIzAwMCcgOiAncmVkJ31cIj57eyBpdGVtLmlzU3RhbmRhcmQgPyBcIuaYr1wiIDogXCLlkKZcIiB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OjE4MHB4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuICBpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIlxyXG4gICBleHBvcnQgZGVmYXVsdCB7XHJcbiAgICAgcHJvcHM6e1xyXG4gICAgICAgdGFibGVEYXRhOntcclxuICAgICAgICAgdHlwZTpBcnJheSxcclxuICAgICAgICAgZGVmYXVsdDpbXSxcclxuICAgICAgIH1cclxuICAgICB9LFxyXG4gICAgIGNvbXB1dGVkOntcclxuICAgICAgIG5ld0xpc3QoKXtcclxuICAgICAgICAgaWYodGhpcy50YWJsZURhdGEubGVuZ3RoKXtcclxuICAgICAgICAgICByZXR1cm4gdGhpcy50YWJsZURhdGEubWFwKGl0ZW0gPT4gKHsuLi5pdGVtLHRtOm1vbWVudChpdGVtLnRtKS5mb3JtYXQoXCJNTS1ERCBISDptbVwiKX0pKVxyXG4gICAgICAgICB9XHJcbiAgICAgICB9XHJcbiAgICAgfSxcclxuICAgICBtZXRob2RzOntcclxuICAgICAgIFxyXG4gICAgIH1cclxuICAgfVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAudGFibGVfZGl2IHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMHB4KTtcclxuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmgpO1xyXG4gICAgZmxleDogMTtcclxuICAgIHBhZGRpbmctdG9wOiAwcHg7XHJcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XHJcbiAgfVxyXG4gIC8qdGFibGXmoLflvI8qL1xyXG4gIC50YWJsZV9jdXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBlbXB0eS1jZWxsczogc2hvdztcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG4gICAuc2Nyb2xsLXRhYmxle1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTgwcHgpO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIHdpZHRoOicxMDAlJ1xyXG4gIH1cclxuICAudGFibGVfY3VyIHRyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBsaW5lLWhlaWdodDogNzVycHg7XHJcbiAgfVxyXG4gIC50YWJsZV9jdXIgdGgge1xyXG4gICAgaGVpZ2h0OiA4NXJweDtcclxuICAgIGNvbG9yOiAjMzM5OWVmO1xyXG4gICAgYmFja2dyb3VuZDogI2UxZjNmZjtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgcGFkZGluZzogMHB4IDEwcHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBcclxuICAudGFibGVfY3VyIHRkIHtcclxuICAgIGhlaWdodDogNjVycHg7XHJcbiAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q4ZGRlYjtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGNvbG9yOiAjMmY0MDU2O1xyXG4gICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcbiAgLyp0YWJsZeagt+W8jyBlbmQqL1xyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///394\n"); /***/ }), /* 395 */ /*!************************************************************!*\ !*** D:/work-gunshi/xytSk-App/pages/stlljk/chartOption.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = drpOption;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 169));\n__webpack_require__(/*! echarts/extension/bmap/bmap */ 396);\nfunction drpOption(obj) {\n var data = obj.list;\n var monthsData = obj.chart;\n __f__(\"log\", data, monthsData, \" at pages/stlljk/chartOption.js:7\");\n var maxQ = Math.ceil(Math.max.apply(Math, (0, _toConsumableArray2.default)(data.map(function (obj) {\n return obj !== null && obj !== void 0 && obj.q ? obj === null || obj === void 0 ? void 0 : obj.q : 0;\n }))));\n var minQ = Math.floor(Math.min.apply(Math, (0, _toConsumableArray2.default)(data.map(function (obj) {\n return obj !== null && obj !== void 0 && obj.q ? obj === null || obj === void 0 ? void 0 : obj.q : 300;\n }))));\n var monthsX = Object.keys(monthsData);\n var res = monthsX.map(function (item) {\n var result = data === null || data === void 0 ? void 0 : data.map(function (s) {\n var momth = s.tm.substr(\"2024-0\".length, \"2024-0\".length - 5);\n if (momth == String(item)) {\n return [s.tm, monthsData[item]];\n } else {\n return [];\n }\n });\n return result;\n });\n var data1 = res.map(function (s) {\n return s.filter(function (o) {\n return o.length > 0;\n });\n }).filter(function (o) {\n return o.length > 0;\n });\n var lines = data1.map(function (item, index, c) {\n return {\n type: 'line',\n markLine: {\n symbol: \"none\",\n lineStyle: {\n type: \"dotted\",\n color: \"#47daff\",\n width: 3\n },\n label: {\n show: true,\n position: \"middle\",\n color: \"#47daff\",\n distance: 5,\n format: \"stMonth\"\n },\n data: [[{\n coord: [item[0][0], item[0][1]]\n }, {\n coord: [item[item.length - 1][0], item[item.length - 1][1]]\n }]]\n }\n };\n });\n var eopts = {\n tooltip: {\n trigger: 'axis'\n },\n grid: [{\n top: '10%',\n left: '11%',\n right: '5%',\n bottom: \"12%\"\n // width: '80%',\n // height: '35%'\n }],\n\n legend: {\n // 显示图例\n show: true,\n top: '-1%'\n },\n xAxis: [{\n type: 'category',\n data: data.map(function (o) {\n return o.tm;\n }),\n // inverse: true,\n splitLine: {\n show: false\n },\n axisLabel: {\n color: '#333',\n fontSize: 12,\n format: \"stList\"\n },\n axisLine: {\n lineStyle: {\n color: '#000',\n width: 0.5\n }\n },\n axisTick: {\n show: false\n }\n }],\n yAxis: [{\n type: 'value',\n // gridIndex:0,\n position: 'left',\n name: '生态流量(m³/s)',\n splitLine: {\n show: true,\n lineStyle: {\n color: '#000',\n width: 0.25,\n type: 'dotted'\n }\n },\n axisLabel: {\n color: '#333',\n fontSize: 12\n },\n axisLine: {\n show: false\n },\n axisTick: {\n show: false\n },\n min: minQ,\n max: maxQ\n }]\n };\n var chartData = {\n series: [{\n name: '生态流量(m³/s)',\n type: 'line',\n symbol: 'none',\n color: '#4fa2ea',\n smooth: true,\n label: {\n show: false\n },\n data: data.map(function (o) {\n return o.q;\n })\n }].concat((0, _toConsumableArray2.default)(lines))\n };\n return {\n eopts: eopts,\n chartData: chartData\n };\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvc3RsbGprL2NoYXJ0T3B0aW9uLmpzIl0sIm5hbWVzIjpbImRycE9wdGlvbiIsIm9iaiIsImRhdGEiLCJsaXN0IiwibW9udGhzRGF0YSIsImNoYXJ0IiwibWF4USIsIk1hdGgiLCJjZWlsIiwibWF4IiwibWFwIiwicSIsIm1pblEiLCJmbG9vciIsIm1pbiIsIm1vbnRoc1giLCJPYmplY3QiLCJrZXlzIiwicmVzIiwiaXRlbSIsInJlc3VsdCIsInMiLCJtb210aCIsInRtIiwic3Vic3RyIiwibGVuZ3RoIiwiU3RyaW5nIiwiZGF0YTEiLCJmaWx0ZXIiLCJvIiwibGluZXMiLCJpbmRleCIsImMiLCJ0eXBlIiwibWFya0xpbmUiLCJzeW1ib2wiLCJsaW5lU3R5bGUiLCJjb2xvciIsIndpZHRoIiwibGFiZWwiLCJzaG93IiwicG9zaXRpb24iLCJkaXN0YW5jZSIsImZvcm1hdCIsImNvb3JkIiwiZW9wdHMiLCJ0b29sdGlwIiwidHJpZ2dlciIsImdyaWQiLCJ0b3AiLCJsZWZ0IiwicmlnaHQiLCJib3R0b20iLCJsZWdlbmQiLCJ4QXhpcyIsInNwbGl0TGluZSIsImF4aXNMYWJlbCIsImZvbnRTaXplIiwiYXhpc0xpbmUiLCJheGlzVGljayIsInlBeGlzIiwibmFtZSIsImNoYXJ0RGF0YSIsInNlcmllcyIsInNtb290aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUdlLFNBQVNBLFNBQVMsQ0FBRUMsR0FBRyxFQUFFO0VBQ3RDLElBQU1DLElBQUksR0FBR0QsR0FBRyxDQUFDRSxJQUFJO0VBQ3JCLElBQU1DLFVBQVUsR0FBR0gsR0FBRyxDQUFDSSxLQUFLO0VBQzVCLGFBQVlILElBQUksRUFBQ0UsVUFBVTtFQUMzQixJQUFNRSxJQUFJLEdBQUdDLElBQUksQ0FBQ0MsSUFBSSxDQUFDRCxJQUFJLENBQUNFLEdBQUcsT0FBUkYsSUFBSSxtQ0FBUUwsSUFBSSxDQUFDUSxHQUFHLENBQUMsVUFBQVQsR0FBRyxFQUFJO0lBQ2pELE9B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S0FBSyxFQUFFLE1BQU07UUFDYm9CLFFBQVEsRUFBRTtNQUNaLENBQUM7TUFDREMsUUFBUSxFQUFFO1FBQ1JsQixJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0RtQixRQUFRLEVBQUU7UUFDUm5CLElBQUksRUFBRTtNQUNSLENBQUM7TUFDRDFCLEdBQUcsRUFBRUYsSUFBSTtNQUNUSCxHQUFHLEVBQUVIO0lBQ1AsQ0FBQztFQUVMLENBQUM7RUFDRCxJQUFJd0QsU0FBUyxHQUFHO0lBQ2RDLE1BQU0sR0FDSjtNQUNFRixJQUFJLEVBQUUsWUFBWTtNQUNsQjVCLElBQUksRUFBRSxNQUFNO01BQ1pFLE1BQU0sRUFBRSxNQUFNO01BQ2RFLEtBQUssRUFBRSxTQUFTO01BQ2hCMkIsTUFBTSxFQUFDLElBQUk7TUFDWHpCLEtBQUssRUFBRTtRQUNMQyxJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0R0QyxJQUFJLEVBQUVBLElBQUksQ0FBQ1EsR0FBRyxDQUFDLFVBQUFtQixDQUFDO1FBQUEsT0FBSUEsQ0FBQyxDQUFDbEIsQ0FBQztNQUFBO0lBQ3pCLENBQUMsMENBQ0VtQixLQUFLO0VBRVosQ0FBQztFQUNELE9BQU87SUFDTGUsS0FBSyxFQUFMQSxLQUFLO0lBQ0xpQixTQUFTLEVBQVRBO0VBQ0YsQ0FBQztBQUNILEMiLCJmaWxlIjoiMzk1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiZWNoYXJ0cy9leHRlbnNpb24vYm1hcC9ibWFwXCJcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkcnBPcHRpb24gKG9iaikge1xyXG4gIGNvbnN0IGRhdGEgPSBvYmoubGlzdDtcclxuICBjb25zdCBtb250aHNEYXRhID0gb2JqLmNoYXJ0XHJcbiAgY29uc29sZS5sb2coZGF0YSxtb250aHNEYXRhKTtcclxuICBjb25zdCBtYXhRID0gTWF0aC5jZWlsKE1hdGgubWF4KC4uLmRhdGEubWFwKG9iaiA9PiB7XHJcbiAgICByZXR1cm4gIG9iaj8ucSA/IG9iaj8ucTowXHJcbiAgfSkpKVxyXG4gIGNvbnN0IG1pblEgPSBNYXRoLmZsb29yKE1hdGgubWluKC4uLmRhdGEubWFwKG9iaiA9PiB7XHJcbiAgICByZXR1cm4gIG9iaj8ucT8gb2JqPy5xIDozMDBcclxuICB9KSkpXHJcbiAgY29uc3QgbW9udGhzWCA9IE9iamVjdC5rZXlzKG1vbnRoc0RhdGEpO1xyXG4gIGNvbnN0IHJlcyA9IG1vbnRoc1gubWFwKGl0ZW0gPT4ge1xyXG4gICBjb25zdCByZXN1bHQgPSAgZGF0YT8ubWFwKHMgPT4ge1xyXG4gICAgY29uc3QgbW9tdGggPSBzLnRtLnN1YnN0cihcIjIwMjQtMFwiLmxlbmd0aCwgXCIyMDI0LTBcIi5sZW5ndGggLSA1KTtcclxuICAgIGlmIChtb210aCA9PSBTdHJpbmcoaXRlbSkpIHtcclxuICAgICAgcmV0dXJuIFtzLnRtLG1vbnRoc0RhdGFbaXRlbV1dXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW11cclxuICAgIH1cclxuICAgfSlcclxuICAgIHJldHVybiByZXN1bHRcclxuICB9KVxyXG4gIGNvbnN0IGRhdGExID0gcmVzLm1hcChzID0+IHMuZmlsdGVyKG8gPT4gby5sZW5ndGggPiAwKSkuZmlsdGVyKG8gPT4gby5sZW5ndGggPiAwKVxyXG4gIGNvbnN0IGxpbmVzID0gZGF0YTEubWFwKChpdGVtLCBpbmRleCwgYykgPT4gKHtcclxuICAgIHR5cGU6ICdsaW5lJyxcclxuICAgIG1hcmtMaW5lOiB7XHJcbiAgICAgIHN5bWJvbDpcIm5vbmVcIixcclxuICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgdHlwZTogXCJkb3R0ZWRcIixcclxuICAgICAgICBjb2xvcjogXCIjNDdkYWZmXCIsXHJcbiAgICAgICAgd2lkdGg6IDNcclxuICAgICAgfSxcclxuICAgICAgbGFiZWw6IHtcclxuICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgIHBvc2l0aW9uOlwibWlkZGxlXCIsXHJcbiAgICAgICAgY29sb3I6IFwiIzQ3ZGFmZlwiLFxyXG4gICAgICAgIGRpc3RhbmNlOiA1LFxyXG4gICAgICAgIGZvcm1hdDogXCJzdE1vbnRoXCJcclxuICAgICAgfSxcclxuICAgICAgZGF0YTogW1xyXG4gICAgICAgIFt7IGNvb3JkOiBbaXRlbVswXVswXSwgaXRlbVswXVsxXV0gfSx7Y29vcmQ6W2l0ZW1baXRlbS5sZW5ndGggLSAxXVswXSxpdGVtW2l0ZW0ubGVuZ3RoIC0gMV1bMV1dfV1cclxuICAgICAgXVxyXG4gICAgfVxyXG4gIH0pKVxyXG4gIFxyXG4gIGxldCBlb3B0cyA9IHtcclxuICAgIHRvb2x0aXA6IHtcclxuICAgICAgdHJpZ2dlcjogJ2F4aXMnXHJcbiAgICB9LFxyXG4gICAgZ3JpZDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdG9wOiAnMTAlJyxcclxuICAgICAgICBsZWZ0OiAnMTElJyxcclxuICAgICAgICByaWdodDogJzUlJyxcclxuICAgICAgICBib3R0b206XCIxMiVcIlxyXG4gICAgICAgIC8vIHdpZHRoOiAnODAlJyxcclxuICAgICAgICAvLyBoZWlnaHQ6ICczNSUnXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgbGVnZW5kOiB7XHJcbiAgICAgIC8vIOaYvuekuuWbvuS+i1xyXG4gICAgICBzaG93OiB0cnVlLFxyXG4gICAgICB0b3A6ICctMSUnLFxyXG4gICAgfSxcclxuICAgXHJcbiAgICB4QXhpczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogJ2NhdGVnb3J5JyxcclxuICAgICAgICBkYXRhOiBkYXRhLm1hcChvID0+IG8udG0pLFxyXG4gICAgICAgIC8vIGludmVyc2U6IHRydWUsXHJcbiAgICAgICAgc3BsaXRMaW5lOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYXhpc0xhYmVsOiB7XHJcbiAgICAgICAgICBjb2xvcjogJyMzMzMnLFxyXG4gICAgICAgICAgZm9udFNpemU6IDEyLFxyXG4gICAgICAgICAgZm9ybWF0Olwic3RMaXN0XCIgXHJcbiAgICAgICAgfSxcclxuICAgICAgICBheGlzTGluZToge1xyXG4gICAgICAgICAgbGluZVN0eWxlOiB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcsXHJcbiAgICAgICAgICAgIHdpZHRoOiAwLjVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGF4aXNUaWNrOiB7XHJcbiAgICAgICAgICBzaG93OiBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIHlBeGlzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAndmFsdWUnLFxyXG4gICAgICAgIC8vIGdyaWRJbmRleDowLFxyXG4gICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgICAgbmFtZTogJ+eUn+aAgea1gemHjyhtwrMvcyknLFxyXG4gICAgICAgIHNwbGl0TGluZToge1xyXG4gICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgICAgICAgIGxpbmVTdHlsZToge1xyXG4gICAgICAgICAgICBjb2xvcjogJyMwMDAnLFxyXG4gICAgICAgICAgICB3aWR0aDogMC4yNSxcclxuICAgICAgICAgICAgdHlwZTogJ2RvdHRlZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGF4aXNMYWJlbDoge1xyXG4gICAgICAgICAgY29sb3I6ICcjMzMzJyxcclxuICAgICAgICAgIGZvbnRTaXplOiAxMlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYXhpc0xpbmU6IHtcclxuICAgICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBheGlzVGljazoge1xyXG4gICAgICAgICAgc2hvdzogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgICAgIG1pbjogbWluUSxcclxuICAgICAgICBtYXg6IG1heFEgXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH1cclxuICBsZXQgY2hhcnREYXRhID0ge1xyXG4gICAgc2VyaWVzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAn55Sf5oCB5rWB6YePKG3Csy9zKScsXHJcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICAgIHN5bWJvbDogJ25vbmUnLFxyXG4gICAgICAgIGNvbG9yOiAnIzRmYTJlYScsXHJcbiAgICAgICAgc21vb3RoOnRydWUsXHJcbiAgICAgICAgbGFiZWw6IHtcclxuICAgICAgICAgIHNob3c6IGZhbHNlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiBkYXRhLm1hcChvID0+IG8ucSlcclxuICAgICAgfSxcclxuICAgICAgLi4ubGluZXNcclxuICAgIF1cclxuICB9XHJcbiAgcmV0dXJuIHtcclxuICAgIGVvcHRzLFxyXG4gICAgY2hhcnREYXRhXHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///395\n"); /***/ }), /* 396 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/extension/bmap/bmap.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! echarts */ 397); var BMapCoordSys = __webpack_require__(/*! ./BMapCoordSys */ 898); __webpack_require__(/*! ./BMapModel */ 899); __webpack_require__(/*! ./BMapView */ 900); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * BMap component extension */ echarts.registerCoordinateSystem('bmap', BMapCoordSys); // Action echarts.registerAction({ type: 'bmapRoam', event: 'bmapRoam', update: 'updateLayout' }, function (payload, ecModel) { ecModel.eachComponent('bmap', function (bMapModel) { var bmap = bMapModel.getBMap(); var center = bmap.getCenter(); bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom()); }); }); var version = '1.0.0'; exports.version = version; /***/ }), /* 397 */ /*!**************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/index.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _echarts = __webpack_require__(/*! ./lib/echarts */ 398); (function () { for (var key in _echarts) { if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return; exports[key] = _echarts[key]; } })(); var _export = __webpack_require__(/*! ./lib/export */ 522); (function () { for (var key in _export) { if (_export == null || !_export.hasOwnProperty(key) || key === 'default' || key === '__esModule') return; exports[key] = _export[key]; } })(); __webpack_require__(/*! ./lib/component/dataset */ 518); __webpack_require__(/*! ./lib/chart/line */ 549); __webpack_require__(/*! ./lib/chart/bar */ 578); __webpack_require__(/*! ./lib/chart/pie */ 585); __webpack_require__(/*! ./lib/chart/scatter */ 596); __webpack_require__(/*! ./lib/chart/radar */ 600); __webpack_require__(/*! ./lib/chart/map */ 610); __webpack_require__(/*! ./lib/chart/tree */ 634); __webpack_require__(/*! ./lib/chart/treemap */ 643); __webpack_require__(/*! ./lib/chart/graph */ 653); __webpack_require__(/*! ./lib/chart/gauge */ 676); __webpack_require__(/*! ./lib/chart/funnel */ 680); __webpack_require__(/*! ./lib/chart/parallel */ 684); __webpack_require__(/*! ./lib/chart/sankey */ 701); __webpack_require__(/*! ./lib/chart/boxplot */ 707); __webpack_require__(/*! ./lib/chart/candlestick */ 713); __webpack_require__(/*! ./lib/chart/effectScatter */ 719); __webpack_require__(/*! ./lib/chart/lines */ 723); __webpack_require__(/*! ./lib/chart/heatmap */ 732); __webpack_require__(/*! ./lib/chart/pictorialBar */ 736); __webpack_require__(/*! ./lib/chart/themeRiver */ 739); __webpack_require__(/*! ./lib/chart/sunburst */ 761); __webpack_require__(/*! ./lib/chart/custom */ 767); __webpack_require__(/*! ./lib/component/grid */ 773); __webpack_require__(/*! ./lib/component/polar */ 774); __webpack_require__(/*! ./lib/component/geo */ 787); __webpack_require__(/*! ./lib/component/singleAxis */ 740); __webpack_require__(/*! ./lib/component/parallel */ 685); __webpack_require__(/*! ./lib/component/calendar */ 790); __webpack_require__(/*! ./lib/component/graphic */ 794); __webpack_require__(/*! ./lib/component/toolbox */ 795); __webpack_require__(/*! ./lib/component/tooltip */ 817); __webpack_require__(/*! ./lib/component/axisPointer */ 747); __webpack_require__(/*! ./lib/component/brush */ 822); __webpack_require__(/*! ./lib/component/title */ 831); __webpack_require__(/*! ./lib/component/timeline */ 832); __webpack_require__(/*! ./lib/component/markPoint */ 841); __webpack_require__(/*! ./lib/component/markLine */ 847); __webpack_require__(/*! ./lib/component/markArea */ 850); __webpack_require__(/*! ./lib/component/legendScroll */ 853); __webpack_require__(/*! ./lib/component/legend */ 854); __webpack_require__(/*! ./lib/component/dataZoom */ 862); __webpack_require__(/*! ./lib/component/dataZoomInside */ 866); __webpack_require__(/*! ./lib/component/dataZoomSlider */ 863); __webpack_require__(/*! ./lib/component/visualMap */ 870); __webpack_require__(/*! ./lib/component/visualMapContinuous */ 871); __webpack_require__(/*! ./lib/component/visualMapPiecewise */ 882); __webpack_require__(/*! zrender/lib/vml/vml */ 885); __webpack_require__(/*! zrender/lib/svg/svg */ 889); /***/ }), /* 398 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/echarts.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(__f__) {/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ./config */ 399); var __DEV__ = _config.__DEV__; var zrender = __webpack_require__(/*! zrender/lib/zrender */ 400); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var colorTool = __webpack_require__(/*! zrender/lib/tool/color */ 421); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var timsort = __webpack_require__(/*! zrender/lib/core/timsort */ 426); var Eventful = __webpack_require__(/*! zrender/lib/mixin/Eventful */ 407); var GlobalModel = __webpack_require__(/*! ./model/Global */ 443); var ExtensionAPI = __webpack_require__(/*! ./ExtensionAPI */ 497); var CoordinateSystemManager = __webpack_require__(/*! ./CoordinateSystem */ 498); var OptionManager = __webpack_require__(/*! ./model/OptionManager */ 499); var backwardCompat = __webpack_require__(/*! ./preprocessor/backwardCompat */ 500); var dataStack = __webpack_require__(/*! ./processor/dataStack */ 502); var ComponentModel = __webpack_require__(/*! ./model/Component */ 486); var SeriesModel = __webpack_require__(/*! ./model/Series */ 503); var ComponentView = __webpack_require__(/*! ./view/Component */ 507); var ChartView = __webpack_require__(/*! ./view/Chart */ 508); var graphic = __webpack_require__(/*! ./util/graphic */ 451); var modelUtil = __webpack_require__(/*! ./util/model */ 444); var _throttle = __webpack_require__(/*! ./util/throttle */ 510); var throttle = _throttle.throttle; var seriesColor = __webpack_require__(/*! ./visual/seriesColor */ 511); var aria = __webpack_require__(/*! ./visual/aria */ 512); var loadingDefault = __webpack_require__(/*! ./loading/default */ 514); var Scheduler = __webpack_require__(/*! ./stream/Scheduler */ 515); var lightTheme = __webpack_require__(/*! ./theme/light */ 516); var darkTheme = __webpack_require__(/*! ./theme/dark */ 517); __webpack_require__(/*! ./component/dataset */ 518); var mapDataStorage = __webpack_require__(/*! ./coord/geo/mapDataStorage */ 519); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var assert = zrUtil.assert; var each = zrUtil.each; var isFunction = zrUtil.isFunction; var isObject = zrUtil.isObject; var parseClassType = ComponentModel.parseClassType; var version = '4.9.0'; var dependencies = { zrender: '4.3.2' }; var TEST_FRAME_REMAIN_TIME = 1; var PRIORITY_PROCESSOR_FILTER = 1000; var PRIORITY_PROCESSOR_SERIES_FILTER = 800; var PRIORITY_PROCESSOR_DATASTACK = 900; var PRIORITY_PROCESSOR_STATISTIC = 5000; var PRIORITY_VISUAL_LAYOUT = 1000; var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100; var PRIORITY_VISUAL_GLOBAL = 2000; var PRIORITY_VISUAL_CHART = 3000; var PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500; var PRIORITY_VISUAL_COMPONENT = 4000; // FIXME // necessary? var PRIORITY_VISUAL_BRUSH = 5000; var PRIORITY = { PROCESSOR: { FILTER: PRIORITY_PROCESSOR_FILTER, SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER, STATISTIC: PRIORITY_PROCESSOR_STATISTIC }, VISUAL: { LAYOUT: PRIORITY_VISUAL_LAYOUT, PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT, GLOBAL: PRIORITY_VISUAL_GLOBAL, CHART: PRIORITY_VISUAL_CHART, POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT, COMPONENT: PRIORITY_VISUAL_COMPONENT, BRUSH: PRIORITY_VISUAL_BRUSH } }; // Main process have three entries: `setOption`, `dispatchAction` and `resize`, // where they must not be invoked nestedly, except the only case: invoke // dispatchAction with updateMethod "none" in main process. // This flag is used to carry out this rule. // All events will be triggered out side main process (i.e. when !this[IN_MAIN_PROCESS]). var IN_MAIN_PROCESS = '__flagInMainProcess'; var OPTION_UPDATED = '__optionUpdated'; var ACTION_REG = /^[a-zA-Z0-9_]+$/; function createRegisterEventWithLowercaseName(method, ignoreDisposed) { return function (eventName, handler, context) { if (!ignoreDisposed && this._disposed) { disposedWarning(this.id); return; } // Event name is all lowercase eventName = eventName && eventName.toLowerCase(); Eventful.prototype[method].call(this, eventName, handler, context); }; } /** * @module echarts~MessageCenter */ function MessageCenter() { Eventful.call(this); } MessageCenter.prototype.on = createRegisterEventWithLowercaseName('on', true); MessageCenter.prototype.off = createRegisterEventWithLowercaseName('off', true); MessageCenter.prototype.one = createRegisterEventWithLowercaseName('one', true); zrUtil.mixin(MessageCenter, Eventful); /** * @module echarts~ECharts */ function ECharts(dom, theme, opts) { opts = opts || {}; // Get theme by name if (typeof theme === 'string') { theme = themeStorage[theme]; } /** * @type {string} */ this.id; /** * Group id * @type {string} */ this.group; /** * @type {HTMLElement} * @private */ this._dom = dom; var defaultRenderer = 'canvas'; /** * @type {module:zrender/ZRender} * @private */ var zr = this._zr = zrender.init(dom, { renderer: opts.renderer || defaultRenderer, devicePixelRatio: opts.devicePixelRatio, width: opts.width, height: opts.height }); /** * Expect 60 fps. * @type {Function} * @private */ this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17); var theme = zrUtil.clone(theme); theme && backwardCompat(theme, true); /** * @type {Object} * @private */ this._theme = theme; /** * @type {Array.} * @private */ this._chartsViews = []; /** * @type {Object.} * @private */ this._chartsMap = {}; /** * @type {Array.} * @private */ this._componentsViews = []; /** * @type {Object.} * @private */ this._componentsMap = {}; /** * @type {module:echarts/CoordinateSystem} * @private */ this._coordSysMgr = new CoordinateSystemManager(); /** * @type {module:echarts/ExtensionAPI} * @private */ var api = this._api = createExtensionAPI(this); // Sort on demand function prioritySortFunc(a, b) { return a.__prio - b.__prio; } timsort(visualFuncs, prioritySortFunc); timsort(dataProcessorFuncs, prioritySortFunc); /** * @type {module:echarts/stream/Scheduler} */ this._scheduler = new Scheduler(this, api, dataProcessorFuncs, visualFuncs); Eventful.call(this, this._ecEventProcessor = new EventProcessor()); /** * @type {module:echarts~MessageCenter} * @private */ this._messageCenter = new MessageCenter(); // Init mouse events this._initEvents(); // In case some people write `window.onresize = chart.resize` this.resize = zrUtil.bind(this.resize, this); // Can't dispatch action during rendering procedure this._pendingActions = []; zr.animation.on('frame', this._onframe, this); bindRenderedEvent(zr, this); // ECharts instance can be used as value. zrUtil.setAsPrimitive(this); } var echartsProto = ECharts.prototype; echartsProto._onframe = function () { if (this._disposed) { return; } var scheduler = this._scheduler; // Lazy update if (this[OPTION_UPDATED]) { var silent = this[OPTION_UPDATED].silent; this[IN_MAIN_PROCESS] = true; prepare(this); updateMethods.update.call(this); this[IN_MAIN_PROCESS] = false; this[OPTION_UPDATED] = false; flushPendingActions.call(this, silent); triggerUpdatedEvent.call(this, silent); } // Avoid do both lazy update and progress in one frame. else if (scheduler.unfinished) { // Stream progress. var remainTime = TEST_FRAME_REMAIN_TIME; var ecModel = this._model; var api = this._api; scheduler.unfinished = false; do { var startTime = +new Date(); scheduler.performSeriesTasks(ecModel); // Currently dataProcessorFuncs do not check threshold. scheduler.performDataProcessorTasks(ecModel); updateStreamModes(this, ecModel); // Do not update coordinate system here. Because that coord system update in // each frame is not a good user experience. So we follow the rule that // the extent of the coordinate system is determin in the first frame (the // frame is executed immedietely after task reset. // this._coordSysMgr.update(ecModel, api); // console.log('--- ec frame visual ---', remainTime); scheduler.performVisualTasks(ecModel); renderSeries(this, this._model, api, 'remain'); remainTime -= +new Date() - startTime; } while (remainTime > 0 && scheduler.unfinished); // Call flush explicitly for trigger finished event. if (!scheduler.unfinished) { this._zr.flush(); } // Else, zr flushing be ensue within the same frame, // because zr flushing is after onframe event. } }; /** * @return {HTMLElement} */ echartsProto.getDom = function () { return this._dom; }; /** * @return {module:zrender~ZRender} */ echartsProto.getZr = function () { return this._zr; }; /** * Usage: * chart.setOption(option, notMerge, lazyUpdate); * chart.setOption(option, { * notMerge: ..., * lazyUpdate: ..., * silent: ... * }); * * @param {Object} option * @param {Object|boolean} [opts] opts or notMerge. * @param {boolean} [opts.notMerge=false] * @param {boolean} [opts.lazyUpdate=false] Useful when setOption frequently. */ echartsProto.setOption = function (option, notMerge, lazyUpdate) { if (this._disposed) { disposedWarning(this.id); return; } var silent; if (isObject(notMerge)) { lazyUpdate = notMerge.lazyUpdate; silent = notMerge.silent; notMerge = notMerge.notMerge; } this[IN_MAIN_PROCESS] = true; if (!this._model || notMerge) { var optionManager = new OptionManager(this._api); var theme = this._theme; var ecModel = this._model = new GlobalModel(); ecModel.scheduler = this._scheduler; ecModel.init(null, null, theme, optionManager); } this._model.setOption(option, optionPreprocessorFuncs); if (lazyUpdate) { this[OPTION_UPDATED] = { silent: silent }; this[IN_MAIN_PROCESS] = false; } else { prepare(this); updateMethods.update.call(this); // Ensure zr refresh sychronously, and then pixel in canvas can be // fetched after `setOption`. this._zr.flush(); this[OPTION_UPDATED] = false; this[IN_MAIN_PROCESS] = false; flushPendingActions.call(this, silent); triggerUpdatedEvent.call(this, silent); } }; /** * @DEPRECATED */ echartsProto.setTheme = function () { __f__("error", 'ECharts#setTheme() is DEPRECATED in ECharts 3.0', " at node_modules/echarts/lib/echarts.js:428"); }; /** * @return {module:echarts/model/Global} */ echartsProto.getModel = function () { return this._model; }; /** * @return {Object} */ echartsProto.getOption = function () { return this._model && this._model.getOption(); }; /** * @return {number} */ echartsProto.getWidth = function () { return this._zr.getWidth(); }; /** * @return {number} */ echartsProto.getHeight = function () { return this._zr.getHeight(); }; /** * @return {number} */ echartsProto.getDevicePixelRatio = function () { return this._zr.painter.dpr || window.devicePixelRatio || 1; }; /** * Get canvas which has all thing rendered * @param {Object} opts * @param {string} [opts.backgroundColor] * @return {string} */ echartsProto.getRenderedCanvas = function (opts) { if (!env.canvasSupported) { return; } opts = opts || {}; opts.pixelRatio = opts.pixelRatio || 1; opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor'); var zr = this._zr; // var list = zr.storage.getDisplayList(); // Stop animations // Never works before in init animation, so remove it. // zrUtil.each(list, function (el) { // el.stopAnimation(true); // }); return zr.painter.getRenderedCanvas(opts); }; /** * Get svg data url * @return {string} */ echartsProto.getSvgDataURL = function () { if (!env.svgSupported) { return; } var zr = this._zr; var list = zr.storage.getDisplayList(); // Stop animations zrUtil.each(list, function (el) { el.stopAnimation(true); }); return zr.painter.toDataURL(); }; /** * @return {string} * @param {Object} opts * @param {string} [opts.type='png'] * @param {string} [opts.pixelRatio=1] * @param {string} [opts.backgroundColor] * @param {string} [opts.excludeComponents] */ echartsProto.getDataURL = function (opts) { if (this._disposed) { disposedWarning(this.id); return; } opts = opts || {}; var excludeComponents = opts.excludeComponents; var ecModel = this._model; var excludesComponentViews = []; var self = this; each(excludeComponents, function (componentType) { ecModel.eachComponent({ mainType: componentType }, function (component) { var view = self._componentsMap[component.__viewId]; if (!view.group.ignore) { excludesComponentViews.push(view); view.group.ignore = true; } }); }); var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png')); each(excludesComponentViews, function (view) { view.group.ignore = false; }); return url; }; /** * @return {string} * @param {Object} opts * @param {string} [opts.type='png'] * @param {string} [opts.pixelRatio=1] * @param {string} [opts.backgroundColor] */ echartsProto.getConnectedDataURL = function (opts) { if (this._disposed) { disposedWarning(this.id); return; } if (!env.canvasSupported) { return; } var isSvg = opts.type === 'svg'; var groupId = this.group; var mathMin = Math.min; var mathMax = Math.max; var MAX_NUMBER = Infinity; if (connectedGroups[groupId]) { var left = MAX_NUMBER; var top = MAX_NUMBER; var right = -MAX_NUMBER; var bottom = -MAX_NUMBER; var canvasList = []; var dpr = opts && opts.pixelRatio || 1; zrUtil.each(instances, function (chart, id) { if (chart.group === groupId) { var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts)); var boundingRect = chart.getDom().getBoundingClientRect(); left = mathMin(boundingRect.left, left); top = mathMin(boundingRect.top, top); right = mathMax(boundingRect.right, right); bottom = mathMax(boundingRect.bottom, bottom); canvasList.push({ dom: canvas, left: boundingRect.left, top: boundingRect.top }); } }); left *= dpr; top *= dpr; right *= dpr; bottom *= dpr; var width = right - left; var height = bottom - top; var targetCanvas = zrUtil.createCanvas(); var zr = zrender.init(targetCanvas, { renderer: isSvg ? 'svg' : 'canvas' }); zr.resize({ width: width, height: height }); if (isSvg) { var content = ''; each(canvasList, function (item) { var x = item.left - left; var y = item.top - top; content += '' + item.dom + ''; }); zr.painter.getSvgRoot().innerHTML = content; if (opts.connectedBackgroundColor) { zr.painter.setBackgroundColor(opts.connectedBackgroundColor); } zr.refreshImmediately(); return zr.painter.toDataURL(); } else { // Background between the charts if (opts.connectedBackgroundColor) { zr.add(new graphic.Rect({ shape: { x: 0, y: 0, width: width, height: height }, style: { fill: opts.connectedBackgroundColor } })); } each(canvasList, function (item) { var img = new graphic.Image({ style: { x: item.left * dpr - left, y: item.top * dpr - top, image: item.dom } }); zr.add(img); }); zr.refreshImmediately(); return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png')); } } else { return this.getDataURL(opts); } }; /** * Convert from logical coordinate system to pixel coordinate system. * See CoordinateSystem#convertToPixel. * @param {string|Object} finder * If string, e.g., 'geo', means {geoIndex: 0}. * If Object, could contain some of these properties below: * { * seriesIndex / seriesId / seriesName, * geoIndex / geoId, geoName, * bmapIndex / bmapId / bmapName, * xAxisIndex / xAxisId / xAxisName, * yAxisIndex / yAxisId / yAxisName, * gridIndex / gridId / gridName, * ... (can be extended) * } * @param {Array|number} value * @return {Array|number} result */ echartsProto.convertToPixel = zrUtil.curry(doConvertPixel, 'convertToPixel'); /** * Convert from pixel coordinate system to logical coordinate system. * See CoordinateSystem#convertFromPixel. * @param {string|Object} finder * If string, e.g., 'geo', means {geoIndex: 0}. * If Object, could contain some of these properties below: * { * seriesIndex / seriesId / seriesName, * geoIndex / geoId / geoName, * bmapIndex / bmapId / bmapName, * xAxisIndex / xAxisId / xAxisName, * yAxisIndex / yAxisId / yAxisName * gridIndex / gridId / gridName, * ... (can be extended) * } * @param {Array|number} value * @return {Array|number} result */ echartsProto.convertFromPixel = zrUtil.curry(doConvertPixel, 'convertFromPixel'); function doConvertPixel(methodName, finder, value) { if (this._disposed) { disposedWarning(this.id); return; } var ecModel = this._model; var coordSysList = this._coordSysMgr.getCoordinateSystems(); var result; finder = modelUtil.parseFinder(ecModel, finder); for (var i = 0; i < coordSysList.length; i++) { var coordSys = coordSysList[i]; if (coordSys[methodName] && (result = coordSys[methodName](ecModel, finder, value)) != null) { return result; } } } /** * Is the specified coordinate systems or components contain the given pixel point. * @param {string|Object} finder * If string, e.g., 'geo', means {geoIndex: 0}. * If Object, could contain some of these properties below: * { * seriesIndex / seriesId / seriesName, * geoIndex / geoId / geoName, * bmapIndex / bmapId / bmapName, * xAxisIndex / xAxisId / xAxisName, * yAxisIndex / yAxisId / yAxisName, * gridIndex / gridId / gridName, * ... (can be extended) * } * @param {Array|number} value * @return {boolean} result */ echartsProto.containPixel = function (finder, value) { if (this._disposed) { disposedWarning(this.id); return; } var ecModel = this._model; var result; finder = modelUtil.parseFinder(ecModel, finder); zrUtil.each(finder, function (models, key) { key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) { var coordSys = model.coordinateSystem; if (coordSys && coordSys.containPoint) { result |= !!coordSys.containPoint(value); } else if (key === 'seriesModels') { var view = this._chartsMap[model.__viewId]; if (view && view.containPoint) { result |= view.containPoint(value, model); } else {} } else {} }, this); }, this); return !!result; }; /** * Get visual from series or data. * @param {string|Object} finder * If string, e.g., 'series', means {seriesIndex: 0}. * If Object, could contain some of these properties below: * { * seriesIndex / seriesId / seriesName, * dataIndex / dataIndexInside * } * If dataIndex is not specified, series visual will be fetched, * but not data item visual. * If all of seriesIndex, seriesId, seriesName are not specified, * visual will be fetched from first series. * @param {string} visualType 'color', 'symbol', 'symbolSize' */ echartsProto.getVisual = function (finder, visualType) { var ecModel = this._model; finder = modelUtil.parseFinder(ecModel, finder, { defaultMainType: 'series' }); var seriesModel = finder.seriesModel; var data = seriesModel.getData(); var dataIndexInside = finder.hasOwnProperty('dataIndexInside') ? finder.dataIndexInside : finder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(finder.dataIndex) : null; return dataIndexInside != null ? data.getItemVisual(dataIndexInside, visualType) : data.getVisual(visualType); }; /** * Get view of corresponding component model * @param {module:echarts/model/Component} componentModel * @return {module:echarts/view/Component} */ echartsProto.getViewOfComponentModel = function (componentModel) { return this._componentsMap[componentModel.__viewId]; }; /** * Get view of corresponding series model * @param {module:echarts/model/Series} seriesModel * @return {module:echarts/view/Chart} */ echartsProto.getViewOfSeriesModel = function (seriesModel) { return this._chartsMap[seriesModel.__viewId]; }; var updateMethods = { prepareAndUpdate: function prepareAndUpdate(payload) { prepare(this); updateMethods.update.call(this, payload); }, /** * @param {Object} payload * @private */ update: function update(payload) { // console.profile && console.profile('update'); var ecModel = this._model; var api = this._api; var zr = this._zr; var coordSysMgr = this._coordSysMgr; var scheduler = this._scheduler; // update before setOption if (!ecModel) { return; } scheduler.restoreData(ecModel, payload); scheduler.performSeriesTasks(ecModel); // TODO // Save total ecModel here for undo/redo (after restoring data and before processing data). // Undo (restoration of total ecModel) can be carried out in 'action' or outside API call. // Create new coordinate system each update // In LineView may save the old coordinate system and use it to get the orignal point coordSysMgr.create(ecModel, api); scheduler.performDataProcessorTasks(ecModel, payload); // Current stream render is not supported in data process. So we can update // stream modes after data processing, where the filtered data is used to // deteming whether use progressive rendering. updateStreamModes(this, ecModel); // We update stream modes before coordinate system updated, then the modes info // can be fetched when coord sys updating (consider the barGrid extent fix). But // the drawback is the full coord info can not be fetched. Fortunately this full // coord is not requied in stream mode updater currently. coordSysMgr.update(ecModel, api); clearColorPalette(ecModel); scheduler.performVisualTasks(ecModel, payload); render(this, ecModel, api, payload); // Set background var backgroundColor = ecModel.get('backgroundColor') || 'transparent'; // In IE8 if (!env.canvasSupported) { var colorArr = colorTool.parse(backgroundColor); backgroundColor = colorTool.stringify(colorArr, 'rgb'); if (colorArr[3] === 0) { backgroundColor = 'transparent'; } } else { zr.setBackgroundColor(backgroundColor); } performPostUpdateFuncs(ecModel, api); // console.profile && console.profileEnd('update'); }, /** * @param {Object} payload * @private */ updateTransform: function updateTransform(payload) { var ecModel = this._model; var ecIns = this; var api = this._api; // update before setOption if (!ecModel) { return; } // ChartView.markUpdateMethod(payload, 'updateTransform'); var componentDirtyList = []; ecModel.eachComponent(function (componentType, componentModel) { var componentView = ecIns.getViewOfComponentModel(componentModel); if (componentView && componentView.__alive) { if (componentView.updateTransform) { var result = componentView.updateTransform(componentModel, ecModel, api, payload); result && result.update && componentDirtyList.push(componentView); } else { componentDirtyList.push(componentView); } } }); var seriesDirtyMap = zrUtil.createHashMap(); ecModel.eachSeries(function (seriesModel) { var chartView = ecIns._chartsMap[seriesModel.__viewId]; if (chartView.updateTransform) { var result = chartView.updateTransform(seriesModel, ecModel, api, payload); result && result.update && seriesDirtyMap.set(seriesModel.uid, 1); } else { seriesDirtyMap.set(seriesModel.uid, 1); } }); clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline. // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true); this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap }); // Currently, not call render of components. Geo render cost a lot. // renderComponents(ecIns, ecModel, api, payload, componentDirtyList); renderSeries(ecIns, ecModel, api, payload, seriesDirtyMap); performPostUpdateFuncs(ecModel, this._api); }, /** * @param {Object} payload * @private */ updateView: function updateView(payload) { var ecModel = this._model; // update before setOption if (!ecModel) { return; } ChartView.markUpdateMethod(payload, 'updateView'); clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline. this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true }); render(this, this._model, this._api, payload); performPostUpdateFuncs(ecModel, this._api); }, /** * @param {Object} payload * @private */ updateVisual: function updateVisual(payload) { updateMethods.update.call(this, payload); // var ecModel = this._model; // // update before setOption // if (!ecModel) { // return; // } // ChartView.markUpdateMethod(payload, 'updateVisual'); // clearColorPalette(ecModel); // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline. // this._scheduler.performVisualTasks(ecModel, payload, {visualType: 'visual', setDirty: true}); // render(this, this._model, this._api, payload); // performPostUpdateFuncs(ecModel, this._api); }, /** * @param {Object} payload * @private */ updateLayout: function updateLayout(payload) { updateMethods.update.call(this, payload); // var ecModel = this._model; // // update before setOption // if (!ecModel) { // return; // } // ChartView.markUpdateMethod(payload, 'updateLayout'); // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline. // // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true); // this._scheduler.performVisualTasks(ecModel, payload, {setDirty: true}); // render(this, this._model, this._api, payload); // performPostUpdateFuncs(ecModel, this._api); } }; function prepare(ecIns) { var ecModel = ecIns._model; var scheduler = ecIns._scheduler; scheduler.restorePipelines(ecModel); scheduler.prepareStageTasks(); prepareView(ecIns, 'component', ecModel, scheduler); prepareView(ecIns, 'chart', ecModel, scheduler); scheduler.plan(); } /** * @private */ function updateDirectly(ecIns, method, payload, mainType, subType) { var ecModel = ecIns._model; // broadcast if (!mainType) { // FIXME // Chart will not be update directly here, except set dirty. // But there is no such scenario now. each(ecIns._componentsViews.concat(ecIns._chartsViews), callView); return; } var query = {}; query[mainType + 'Id'] = payload[mainType + 'Id']; query[mainType + 'Index'] = payload[mainType + 'Index']; query[mainType + 'Name'] = payload[mainType + 'Name']; var condition = { mainType: mainType, query: query }; subType && (condition.subType = subType); // subType may be '' by parseClassType; var excludeSeriesId = payload.excludeSeriesId; if (excludeSeriesId != null) { excludeSeriesId = zrUtil.createHashMap(modelUtil.normalizeToArray(excludeSeriesId)); } // If dispatchAction before setOption, do nothing. ecModel && ecModel.eachComponent(condition, function (model) { if (!excludeSeriesId || excludeSeriesId.get(model.id) == null) { callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]); } }, ecIns); function callView(view) { view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload); } } /** * Resize the chart * @param {Object} opts * @param {number} [opts.width] Can be 'auto' (the same as null/undefined) * @param {number} [opts.height] Can be 'auto' (the same as null/undefined) * @param {boolean} [opts.silent=false] */ echartsProto.resize = function (opts) { if (this._disposed) { disposedWarning(this.id); return; } this._zr.resize(opts); var ecModel = this._model; // Resize loading effect this._loadingFX && this._loadingFX.resize(); if (!ecModel) { return; } var optionChanged = ecModel.resetOption('media'); var silent = opts && opts.silent; this[IN_MAIN_PROCESS] = true; optionChanged && prepare(this); updateMethods.update.call(this); this[IN_MAIN_PROCESS] = false; flushPendingActions.call(this, silent); triggerUpdatedEvent.call(this, silent); }; function updateStreamModes(ecIns, ecModel) { var chartsMap = ecIns._chartsMap; var scheduler = ecIns._scheduler; ecModel.eachSeries(function (seriesModel) { scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]); }); } /** * Show loading effect * @param {string} [name='default'] * @param {Object} [cfg] */ echartsProto.showLoading = function (name, cfg) { if (this._disposed) { disposedWarning(this.id); return; } if (isObject(name)) { cfg = name; name = ''; } name = name || 'default'; this.hideLoading(); if (!loadingEffects[name]) { return; } var el = loadingEffects[name](this._api, cfg); var zr = this._zr; this._loadingFX = el; zr.add(el); }; /** * Hide loading effect */ echartsProto.hideLoading = function () { if (this._disposed) { disposedWarning(this.id); return; } this._loadingFX && this._zr.remove(this._loadingFX); this._loadingFX = null; }; /** * @param {Object} eventObj * @return {Object} */ echartsProto.makeActionFromEvent = function (eventObj) { var payload = zrUtil.extend({}, eventObj); payload.type = eventActionMap[eventObj.type]; return payload; }; /** * @pubilc * @param {Object} payload * @param {string} [payload.type] Action type * @param {Object|boolean} [opt] If pass boolean, means opt.silent * @param {boolean} [opt.silent=false] Whether trigger events. * @param {boolean} [opt.flush=undefined] * true: Flush immediately, and then pixel in canvas can be fetched * immediately. Caution: it might affect performance. * false: Not flush. * undefined: Auto decide whether perform flush. */ echartsProto.dispatchAction = function (payload, opt) { if (this._disposed) { disposedWarning(this.id); return; } if (!isObject(opt)) { opt = { silent: !!opt }; } if (!actions[payload.type]) { return; } // Avoid dispatch action before setOption. Especially in `connect`. if (!this._model) { return; } // May dispatchAction in rendering procedure if (this[IN_MAIN_PROCESS]) { this._pendingActions.push(payload); return; } doDispatchAction.call(this, payload, opt.silent); if (opt.flush) { this._zr.flush(true); } else if (opt.flush !== false && env.browser.weChat) { // In WeChat embeded browser, `requestAnimationFrame` and `setInterval` // hang when sliding page (on touch event), which cause that zr does not // refresh util user interaction finished, which is not expected. // But `dispatchAction` may be called too frequently when pan on touch // screen, which impacts performance if do not throttle them. this._throttledZrFlush(); } flushPendingActions.call(this, opt.silent); triggerUpdatedEvent.call(this, opt.silent); }; function doDispatchAction(payload, silent) { var payloadType = payload.type; var escapeConnect = payload.escapeConnect; var actionWrap = actions[payloadType]; var actionInfo = actionWrap.actionInfo; var cptType = (actionInfo.update || 'update').split(':'); var updateMethod = cptType.pop(); cptType = cptType[0] != null && parseClassType(cptType[0]); this[IN_MAIN_PROCESS] = true; var payloads = [payload]; var batched = false; // Batch action if (payload.batch) { batched = true; payloads = zrUtil.map(payload.batch, function (item) { item = zrUtil.defaults(zrUtil.extend({}, item), payload); item.batch = null; return item; }); } var eventObjBatch = []; var eventObj; var isHighDown = payloadType === 'highlight' || payloadType === 'downplay'; each(payloads, function (batchItem) { // Action can specify the event by return it. eventObj = actionWrap.action(batchItem, this._model, this._api); // Emit event outside eventObj = eventObj || zrUtil.extend({}, batchItem); // Convert type to eventType eventObj.type = actionInfo.event || eventObj.type; eventObjBatch.push(eventObj); // light update does not perform data process, layout and visual. if (isHighDown) { // method, payload, mainType, subType updateDirectly(this, updateMethod, batchItem, 'series'); } else if (cptType) { updateDirectly(this, updateMethod, batchItem, cptType.main, cptType.sub); } }, this); if (updateMethod !== 'none' && !isHighDown && !cptType) { // Still dirty if (this[OPTION_UPDATED]) { // FIXME Pass payload ? prepare(this); updateMethods.update.call(this, payload); this[OPTION_UPDATED] = false; } else { updateMethods[updateMethod].call(this, payload); } } // Follow the rule of action batch if (batched) { eventObj = { type: actionInfo.event || payloadType, escapeConnect: escapeConnect, batch: eventObjBatch }; } else { eventObj = eventObjBatch[0]; } this[IN_MAIN_PROCESS] = false; !silent && this._messageCenter.trigger(eventObj.type, eventObj); } function flushPendingActions(silent) { var pendingActions = this._pendingActions; while (pendingActions.length) { var payload = pendingActions.shift(); doDispatchAction.call(this, payload, silent); } } function triggerUpdatedEvent(silent) { !silent && this.trigger('updated'); } /** * Event `rendered` is triggered when zr * rendered. It is useful for realtime * snapshot (reflect animation). * * Event `finished` is triggered when: * (1) zrender rendering finished. * (2) initial animation finished. * (3) progressive rendering finished. * (4) no pending action. * (5) no delayed setOption needs to be processed. */ function bindRenderedEvent(zr, ecIns) { zr.on('rendered', function () { ecIns.trigger('rendered'); // The `finished` event should not be triggered repeatly, // so it should only be triggered when rendering indeed happend // in zrender. (Consider the case that dipatchAction is keep // triggering when mouse move). if ( // Although zr is dirty if initial animation is not finished // and this checking is called on frame, we also check // animation finished for robustness. zr.animation.isFinished() && !ecIns[OPTION_UPDATED] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) { ecIns.trigger('finished'); } }); } /** * @param {Object} params * @param {number} params.seriesIndex * @param {Array|TypedArray} params.data */ echartsProto.appendData = function (params) { if (this._disposed) { disposedWarning(this.id); return; } var seriesIndex = params.seriesIndex; var ecModel = this.getModel(); var seriesModel = ecModel.getSeriesByIndex(seriesIndex); seriesModel.appendData(params); // Note: `appendData` does not support that update extent of coordinate // system, util some scenario require that. In the expected usage of // `appendData`, the initial extent of coordinate system should better // be fixed by axis `min`/`max` setting or initial data, otherwise if // the extent changed while `appendData`, the location of the painted // graphic elements have to be changed, which make the usage of // `appendData` meaningless. this._scheduler.unfinished = true; }; /** * Register event * @method */ echartsProto.on = createRegisterEventWithLowercaseName('on', false); echartsProto.off = createRegisterEventWithLowercaseName('off', false); echartsProto.one = createRegisterEventWithLowercaseName('one', false); /** * Prepare view instances of charts and components * @param {module:echarts/model/Global} ecModel * @private */ function prepareView(ecIns, type, ecModel, scheduler) { var isComponent = type === 'component'; var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews; var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap; var zr = ecIns._zr; var api = ecIns._api; for (var i = 0; i < viewList.length; i++) { viewList[i].__alive = false; } isComponent ? ecModel.eachComponent(function (componentType, model) { componentType !== 'series' && doPrepare(model); }) : ecModel.eachSeries(doPrepare); function doPrepare(model) { // Consider: id same and type changed. var viewId = '_ec_' + model.id + '_' + model.type; var view = viewMap[viewId]; if (!view) { var classType = parseClassType(model.type); var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub); view = new Clazz(); view.init(ecModel, api); viewMap[viewId] = view; viewList.push(view); zr.add(view.group); } model.__viewId = view.__id = viewId; view.__alive = true; view.__model = model; view.group.__ecComponentInfo = { mainType: model.mainType, index: model.componentIndex }; !isComponent && scheduler.prepareView(view, model, ecModel, api); } for (var i = 0; i < viewList.length;) { var view = viewList[i]; if (!view.__alive) { !isComponent && view.renderTask.dispose(); zr.remove(view.group); view.dispose(ecModel, api); viewList.splice(i, 1); delete viewMap[view.__id]; view.__id = view.group.__ecComponentInfo = null; } else { i++; } } } // /** // * Encode visual infomation from data after data processing // * // * @param {module:echarts/model/Global} ecModel // * @param {object} layout // * @param {boolean} [layoutFilter] `true`: only layout, // * `false`: only not layout, // * `null`/`undefined`: all. // * @param {string} taskBaseTag // * @private // */ // function startVisualEncoding(ecIns, ecModel, api, payload, layoutFilter) { // each(visualFuncs, function (visual, index) { // var isLayout = visual.isLayout; // if (layoutFilter == null // || (layoutFilter === false && !isLayout) // || (layoutFilter === true && isLayout) // ) { // visual.func(ecModel, api, payload); // } // }); // } function clearColorPalette(ecModel) { ecModel.clearColorPalette(); ecModel.eachSeries(function (seriesModel) { seriesModel.clearColorPalette(); }); } function render(ecIns, ecModel, api, payload) { renderComponents(ecIns, ecModel, api, payload); each(ecIns._chartsViews, function (chart) { chart.__alive = false; }); renderSeries(ecIns, ecModel, api, payload); // Remove groups of unrendered charts each(ecIns._chartsViews, function (chart) { if (!chart.__alive) { chart.remove(ecModel, api); } }); } function renderComponents(ecIns, ecModel, api, payload, dirtyList) { each(dirtyList || ecIns._componentsViews, function (componentView) { var componentModel = componentView.__model; componentView.render(componentModel, ecModel, api, payload); updateZ(componentModel, componentView); }); } /** * Render each chart and component * @private */ function renderSeries(ecIns, ecModel, api, payload, dirtyMap) { // Render all charts var scheduler = ecIns._scheduler; var unfinished; ecModel.eachSeries(function (seriesModel) { var chartView = ecIns._chartsMap[seriesModel.__viewId]; chartView.__alive = true; var renderTask = chartView.renderTask; scheduler.updatePayload(renderTask, payload); if (dirtyMap && dirtyMap.get(seriesModel.uid)) { renderTask.dirty(); } unfinished |= renderTask.perform(scheduler.getPerformArgs(renderTask)); chartView.group.silent = !!seriesModel.get('silent'); updateZ(seriesModel, chartView); updateBlend(seriesModel, chartView); }); scheduler.unfinished |= unfinished; // If use hover layer updateHoverLayerStatus(ecIns, ecModel); // Add aria aria(ecIns._zr.dom, ecModel); } function performPostUpdateFuncs(ecModel, api) { each(postUpdateFuncs, function (func) { func(ecModel, api); }); } var MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu']; /** * @private */ echartsProto._initEvents = function () { each(MOUSE_EVENT_NAMES, function (eveName) { var handler = function handler(e) { var ecModel = this.getModel(); var el = e.target; var params; var isGlobalOut = eveName === 'globalout'; // no e.target when 'globalout'. if (isGlobalOut) { params = {}; } else if (el && el.dataIndex != null) { var dataModel = el.dataModel || ecModel.getSeriesByIndex(el.seriesIndex); params = dataModel && dataModel.getDataParams(el.dataIndex, el.dataType, el) || {}; } // If element has custom eventData of components else if (el && el.eventData) { params = zrUtil.extend({}, el.eventData); } // Contract: if params prepared in mouse event, // these properties must be specified: // { // componentType: string (component main type) // componentIndex: number // } // Otherwise event query can not work. if (params) { var componentType = params.componentType; var componentIndex = params.componentIndex; // Special handling for historic reason: when trigger by // markLine/markPoint/markArea, the componentType is // 'markLine'/'markPoint'/'markArea', but we should better // enable them to be queried by seriesIndex, since their // option is set in each series. if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') { componentType = 'series'; componentIndex = params.seriesIndex; } var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex); var view = model && this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]; params.event = e; params.type = eveName; this._ecEventProcessor.eventInfo = { targetEl: el, packedEvent: params, model: model, view: view }; this.trigger(eveName, params); } }; // Consider that some component (like tooltip, brush, ...) // register zr event handler, but user event handler might // do anything, such as call `setOption` or `dispatchAction`, // which probably update any of the content and probably // cause problem if it is called previous other inner handlers. handler.zrEventfulCallAtLast = true; this._zr.on(eveName, handler, this); }, this); each(eventActionMap, function (actionType, eventType) { this._messageCenter.on(eventType, function (event) { this.trigger(eventType, event); }, this); }, this); }; /** * @return {boolean} */ echartsProto.isDisposed = function () { return this._disposed; }; /** * Clear */ echartsProto.clear = function () { if (this._disposed) { disposedWarning(this.id); return; } this.setOption({ series: [] }, true); }; /** * Dispose instance */ echartsProto.dispose = function () { if (this._disposed) { disposedWarning(this.id); return; } this._disposed = true; modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, ''); var api = this._api; var ecModel = this._model; each(this._componentsViews, function (component) { component.dispose(ecModel, api); }); each(this._chartsViews, function (chart) { chart.dispose(ecModel, api); }); // Dispose after all views disposed this._zr.dispose(); delete instances[this.id]; }; zrUtil.mixin(ECharts, Eventful); function disposedWarning(id) {} function updateHoverLayerStatus(ecIns, ecModel) { var zr = ecIns._zr; var storage = zr.storage; var elCount = 0; storage.traverse(function (el) { elCount++; }); if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) { ecModel.eachSeries(function (seriesModel) { if (seriesModel.preventUsingHoverLayer) { return; } var chartView = ecIns._chartsMap[seriesModel.__viewId]; if (chartView.__alive) { chartView.group.traverse(function (el) { // Don't switch back. el.useHoverLayer = true; }); } }); } } /** * Update chart progressive and blend. * @param {module:echarts/model/Series|module:echarts/model/Component} model * @param {module:echarts/view/Component|module:echarts/view/Chart} view */ function updateBlend(seriesModel, chartView) { var blendMode = seriesModel.get('blendMode') || null; chartView.group.traverse(function (el) { // FIXME marker and other components if (!el.isGroup) { // Only set if blendMode is changed. In case element is incremental and don't wan't to rerender. if (el.style.blend !== blendMode) { el.setStyle('blend', blendMode); } } if (el.eachPendingDisplayable) { el.eachPendingDisplayable(function (displayable) { displayable.setStyle('blend', blendMode); }); } }); } /** * @param {module:echarts/model/Series|module:echarts/model/Component} model * @param {module:echarts/view/Component|module:echarts/view/Chart} view */ function updateZ(model, view) { var z = model.get('z'); var zlevel = model.get('zlevel'); // Set z and zlevel view.group.traverse(function (el) { if (el.type !== 'group') { z != null && (el.z = z); zlevel != null && (el.zlevel = zlevel); } }); } function createExtensionAPI(ecInstance) { var coordSysMgr = ecInstance._coordSysMgr; return zrUtil.extend(new ExtensionAPI(ecInstance), { // Inject methods getCoordinateSystems: zrUtil.bind(coordSysMgr.getCoordinateSystems, coordSysMgr), getComponentByElement: function getComponentByElement(el) { while (el) { var modelInfo = el.__ecComponentInfo; if (modelInfo != null) { return ecInstance._model.getComponent(modelInfo.mainType, modelInfo.index); } el = el.parent; } } }); } /** * @class * Usage of query: * `chart.on('click', query, handler);` * The `query` can be: * + The component type query string, only `mainType` or `mainType.subType`, * like: 'xAxis', 'series', 'xAxis.category' or 'series.line'. * + The component query object, like: * `{seriesIndex: 2}`, `{seriesName: 'xx'}`, `{seriesId: 'some'}`, * `{xAxisIndex: 2}`, `{xAxisName: 'xx'}`, `{xAxisId: 'some'}`. * + The data query object, like: * `{dataIndex: 123}`, `{dataType: 'link'}`, `{name: 'some'}`. * + The other query object (cmponent customized query), like: * `{element: 'some'}` (only available in custom series). * * Caveat: If a prop in the `query` object is `null/undefined`, it is the * same as there is no such prop in the `query` object. */ function EventProcessor() { // These info required: targetEl, packedEvent, model, view this.eventInfo; } EventProcessor.prototype = { constructor: EventProcessor, normalizeQuery: function normalizeQuery(query) { var cptQuery = {}; var dataQuery = {}; var otherQuery = {}; // `query` is `mainType` or `mainType.subType` of component. if (zrUtil.isString(query)) { var condCptType = parseClassType(query); // `.main` and `.sub` may be ''. cptQuery.mainType = condCptType.main || null; cptQuery.subType = condCptType.sub || null; } // `query` is an object, convert to {mainType, index, name, id}. else { // `xxxIndex`, `xxxName`, `xxxId`, `name`, `dataIndex`, `dataType` is reserved, // can not be used in `compomentModel.filterForExposedEvent`. var suffixes = ['Index', 'Name', 'Id']; var dataKeys = { name: 1, dataIndex: 1, dataType: 1 }; zrUtil.each(query, function (val, key) { var reserved = false; for (var i = 0; i < suffixes.length; i++) { var propSuffix = suffixes[i]; var suffixPos = key.lastIndexOf(propSuffix); if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) { var mainType = key.slice(0, suffixPos); // Consider `dataIndex`. if (mainType !== 'data') { cptQuery.mainType = mainType; cptQuery[propSuffix.toLowerCase()] = val; reserved = true; } } } if (dataKeys.hasOwnProperty(key)) { dataQuery[key] = val; reserved = true; } if (!reserved) { otherQuery[key] = val; } }); } return { cptQuery: cptQuery, dataQuery: dataQuery, otherQuery: otherQuery }; }, filter: function filter(eventType, query, args) { // They should be assigned before each trigger call. var eventInfo = this.eventInfo; if (!eventInfo) { return true; } var targetEl = eventInfo.targetEl; var packedEvent = eventInfo.packedEvent; var model = eventInfo.model; var view = eventInfo.view; // For event like 'globalout'. if (!model || !view) { return true; } var cptQuery = query.cptQuery; var dataQuery = query.dataQuery; return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent)); function check(query, host, prop, propOnHost) { return query[prop] == null || host[propOnHost || prop] === query[prop]; } }, afterTrigger: function afterTrigger() { // Make sure the eventInfo wont be used in next trigger. this.eventInfo = null; } }; /** * @type {Object} key: actionType. * @inner */ var actions = {}; /** * Map eventType to actionType * @type {Object} */ var eventActionMap = {}; /** * Data processor functions of each stage * @type {Array.>} * @inner */ var dataProcessorFuncs = []; /** * @type {Array.} * @inner */ var optionPreprocessorFuncs = []; /** * @type {Array.} * @inner */ var postUpdateFuncs = []; /** * Visual encoding functions of each stage * @type {Array.>} */ var visualFuncs = []; /** * Theme storage * @type {Object.} */ var themeStorage = {}; /** * Loading effects */ var loadingEffects = {}; var instances = {}; var connectedGroups = {}; var idBase = new Date() - 0; var groupIdBase = new Date() - 0; var DOM_ATTRIBUTE_KEY = '_echarts_instance_'; function enableConnect(chart) { var STATUS_PENDING = 0; var STATUS_UPDATING = 1; var STATUS_UPDATED = 2; var STATUS_KEY = '__connectUpdateStatus'; function updateConnectedChartsStatus(charts, status) { for (var i = 0; i < charts.length; i++) { var otherChart = charts[i]; otherChart[STATUS_KEY] = status; } } each(eventActionMap, function (actionType, eventType) { chart._messageCenter.on(eventType, function (event) { if (connectedGroups[chart.group] && chart[STATUS_KEY] !== STATUS_PENDING) { if (event && event.escapeConnect) { return; } var action = chart.makeActionFromEvent(event); var otherCharts = []; each(instances, function (otherChart) { if (otherChart !== chart && otherChart.group === chart.group) { otherCharts.push(otherChart); } }); updateConnectedChartsStatus(otherCharts, STATUS_PENDING); each(otherCharts, function (otherChart) { if (otherChart[STATUS_KEY] !== STATUS_UPDATING) { otherChart.dispatchAction(action); } }); updateConnectedChartsStatus(otherCharts, STATUS_UPDATED); } }); }); } /** * @param {HTMLElement} dom * @param {Object} [theme] * @param {Object} opts * @param {number} [opts.devicePixelRatio] Use window.devicePixelRatio by default * @param {string} [opts.renderer] Can choose 'canvas' or 'svg' to render the chart. * @param {number} [opts.width] Use clientWidth of the input `dom` by default. * Can be 'auto' (the same as null/undefined) * @param {number} [opts.height] Use clientHeight of the input `dom` by default. * Can be 'auto' (the same as null/undefined) */ function init(dom, theme, opts) { var existInstance = getInstanceByDom(dom); if (existInstance) { return existInstance; } var chart = new ECharts(dom, theme, opts); chart.id = 'ec_' + idBase++; instances[chart.id] = chart; modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id); enableConnect(chart); return chart; } /** * @return {string|Array.} groupId */ function connect(groupId) { // Is array of charts if (zrUtil.isArray(groupId)) { var charts = groupId; groupId = null; // If any chart has group each(charts, function (chart) { if (chart.group != null) { groupId = chart.group; } }); groupId = groupId || 'g_' + groupIdBase++; each(charts, function (chart) { chart.group = groupId; }); } connectedGroups[groupId] = true; return groupId; } /** * @DEPRECATED * @return {string} groupId */ function disConnect(groupId) { connectedGroups[groupId] = false; } /** * @return {string} groupId */ var disconnect = disConnect; /** * Dispose a chart instance * @param {module:echarts~ECharts|HTMLDomElement|string} chart */ function dispose(chart) { if (typeof chart === 'string') { chart = instances[chart]; } else if (!(chart instanceof ECharts)) { // Try to treat as dom chart = getInstanceByDom(chart); } if (chart instanceof ECharts && !chart.isDisposed()) { chart.dispose(); } } /** * @param {HTMLElement} dom * @return {echarts~ECharts} */ function getInstanceByDom(dom) { return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)]; } /** * @param {string} key * @return {echarts~ECharts} */ function getInstanceById(key) { return instances[key]; } /** * Register theme */ function registerTheme(name, theme) { themeStorage[name] = theme; } /** * Register option preprocessor * @param {Function} preprocessorFunc */ function registerPreprocessor(preprocessorFunc) { optionPreprocessorFuncs.push(preprocessorFunc); } /** * @param {number} [priority=1000] * @param {Object|Function} processor */ function registerProcessor(priority, processor) { normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_FILTER); } /** * Register postUpdater * @param {Function} postUpdateFunc */ function registerPostUpdate(postUpdateFunc) { postUpdateFuncs.push(postUpdateFunc); } /** * Usage: * registerAction('someAction', 'someEvent', function () { ... }); * registerAction('someAction', function () { ... }); * registerAction( * {type: 'someAction', event: 'someEvent', update: 'updateView'}, * function () { ... } * ); * * @param {(string|Object)} actionInfo * @param {string} actionInfo.type * @param {string} [actionInfo.event] * @param {string} [actionInfo.update] * @param {string} [eventName] * @param {Function} action */ function registerAction(actionInfo, eventName, action) { if (typeof eventName === 'function') { action = eventName; eventName = ''; } var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = { event: eventName }][0]; // Event name is all lowercase actionInfo.event = (actionInfo.event || actionType).toLowerCase(); eventName = actionInfo.event; // Validate action type and event name. assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName)); if (!actions[actionType]) { actions[actionType] = { action: action, actionInfo: actionInfo }; } eventActionMap[eventName] = actionType; } /** * @param {string} type * @param {*} CoordinateSystem */ function registerCoordinateSystem(type, CoordinateSystem) { CoordinateSystemManager.register(type, CoordinateSystem); } /** * Get dimensions of specified coordinate system. * @param {string} type * @return {Array.} */ function getCoordinateSystemDimensions(type) { var coordSysCreator = CoordinateSystemManager.get(type); if (coordSysCreator) { return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice(); } } /** * Layout is a special stage of visual encoding * Most visual encoding like color are common for different chart * But each chart has it's own layout algorithm * * @param {number} [priority=1000] * @param {Function} layoutTask */ function registerLayout(priority, layoutTask) { normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout'); } /** * @param {number} [priority=3000] * @param {module:echarts/stream/Task} visualTask */ function registerVisual(priority, visualTask) { normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual'); } /** * @param {Object|Function} fn: {seriesType, createOnAllSeries, performRawSeries, reset} */ function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) { if (isFunction(priority) || isObject(priority)) { fn = priority; priority = defaultPriority; } var stageHandler = Scheduler.wrapStageHandler(fn, visualType); stageHandler.__prio = priority; stageHandler.__raw = fn; targetList.push(stageHandler); return stageHandler; } /** * @param {string} name */ function registerLoading(name, loadingFx) { loadingEffects[name] = loadingFx; } /** * @param {Object} opts * @param {string} [superClass] */ function extendComponentModel(opts /*, superClass*/) { // var Clazz = ComponentModel; // if (superClass) { // var classType = parseClassType(superClass); // Clazz = ComponentModel.getClass(classType.main, classType.sub, true); // } return ComponentModel.extend(opts); } /** * @param {Object} opts * @param {string} [superClass] */ function extendComponentView(opts /*, superClass*/) { // var Clazz = ComponentView; // if (superClass) { // var classType = parseClassType(superClass); // Clazz = ComponentView.getClass(classType.main, classType.sub, true); // } return ComponentView.extend(opts); } /** * @param {Object} opts * @param {string} [superClass] */ function extendSeriesModel(opts /*, superClass*/) { // var Clazz = SeriesModel; // if (superClass) { // superClass = 'series.' + superClass.replace('series.', ''); // var classType = parseClassType(superClass); // Clazz = ComponentModel.getClass(classType.main, classType.sub, true); // } return SeriesModel.extend(opts); } /** * @param {Object} opts * @param {string} [superClass] */ function extendChartView(opts /*, superClass*/) { // var Clazz = ChartView; // if (superClass) { // superClass = superClass.replace('series.', ''); // var classType = parseClassType(superClass); // Clazz = ChartView.getClass(classType.main, true); // } return ChartView.extend(opts); } /** * ZRender need a canvas context to do measureText. * But in node environment canvas may be created by node-canvas. * So we need to specify how to create a canvas instead of using document.createElement('canvas') * * Be careful of using it in the browser. * * @param {Function} creator * @example * var Canvas = require('canvas'); * var echarts = require('echarts'); * echarts.setCanvasCreator(function () { * // Small size is enough. * return new Canvas(32, 32); * }); */ function setCanvasCreator(creator) { zrUtil.$override('createCanvas', creator); } /** * @param {string} mapName * @param {Array.|Object|string} geoJson * @param {Object} [specialAreas] * * @example GeoJSON * $.get('USA.json', function (geoJson) { * echarts.registerMap('USA', geoJson); * // Or * echarts.registerMap('USA', { * geoJson: geoJson, * specialAreas: {} * }) * }); * * $.get('airport.svg', function (svg) { * echarts.registerMap('airport', { * svg: svg * } * }); * * echarts.registerMap('eu', [ * {svg: eu-topographic.svg}, * {geoJSON: eu.json} * ]) */ function registerMap(mapName, geoJson, specialAreas) { mapDataStorage.registerMap(mapName, geoJson, specialAreas); } /** * @param {string} mapName * @return {Object} */ function getMap(mapName) { // For backward compatibility, only return the first one. var records = mapDataStorage.retrieveMap(mapName); return records && records[0] && { geoJson: records[0].geoJSON, specialAreas: records[0].specialAreas }; } registerVisual(PRIORITY_VISUAL_GLOBAL, seriesColor); registerPreprocessor(backwardCompat); registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack); registerLoading('default', loadingDefault); // Default actions registerAction({ type: 'highlight', event: 'highlight', update: 'highlight' }, zrUtil.noop); registerAction({ type: 'downplay', event: 'downplay', update: 'downplay' }, zrUtil.noop); // Default theme registerTheme('light', lightTheme); registerTheme('dark', darkTheme); // For backward compatibility, where the namespace `dataTool` will // be mounted on `echarts` is the extension `dataTool` is imported. var dataTool = {}; exports.version = version; exports.dependencies = dependencies; exports.PRIORITY = PRIORITY; exports.init = init; exports.connect = connect; exports.disConnect = disConnect; exports.disconnect = disconnect; exports.dispose = dispose; exports.getInstanceByDom = getInstanceByDom; exports.getInstanceById = getInstanceById; exports.registerTheme = registerTheme; exports.registerPreprocessor = registerPreprocessor; exports.registerProcessor = registerProcessor; exports.registerPostUpdate = registerPostUpdate; exports.registerAction = registerAction; exports.registerCoordinateSystem = registerCoordinateSystem; exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions; exports.registerLayout = registerLayout; exports.registerVisual = registerVisual; exports.registerLoading = registerLoading; exports.extendComponentModel = extendComponentModel; exports.extendComponentView = extendComponentView; exports.extendSeriesModel = extendSeriesModel; exports.extendChartView = extendChartView; exports.setCanvasCreator = setCanvasCreator; exports.registerMap = registerMap; exports.getMap = getMap; exports.dataTool = dataTool; var ___ec_export = __webpack_require__(/*! ./export */ 522); (function () { for (var key in ___ec_export) { if (___ec_export.hasOwnProperty(key)) { exports[key] = ___ec_export[key]; } } })(); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)["default"])) /***/ }), /* 399 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/config.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // (1) The code `if (__DEV__) ...` can be removed by build tool. // (2) If intend to use `__DEV__`, this module should be imported. Use a global // variable `__DEV__` may cause that miss the declaration (see #6535), or the // declaration is behind of the using position (for example in `Model.extent`, // And tools like rollup can not analysis the dependency if not import). var dev; // In browser if (typeof window !== 'undefined') { dev = window.__DEV__; } // In node else if (typeof global !== 'undefined') { dev = global.__DEV__; } if (typeof dev === 'undefined') { dev = true; } var __DEV__ = dev; exports.__DEV__ = __DEV__; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js */ 52))) /***/ }), /* 400 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/zrender.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var guid = __webpack_require__(/*! ./core/guid */ 401); var env = __webpack_require__(/*! ./core/env */ 402); var zrUtil = __webpack_require__(/*! ./core/util */ 403); var Handler = __webpack_require__(/*! ./Handler */ 404); var Storage = __webpack_require__(/*! ./Storage */ 412); var Painter = __webpack_require__(/*! ./Painter */ 427); var Animation = __webpack_require__(/*! ./animation/Animation */ 441); var HandlerProxy = __webpack_require__(/*! ./dom/HandlerProxy */ 442); /*! * ZRender, a high performance 2d drawing library. * * Copyright (c) 2013, Baidu Inc. * All rights reserved. * * LICENSE * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt */ var useVML = !env.canvasSupported; var painterCtors = { canvas: Painter }; var instances = {}; // ZRender实例map索引 /** * @type {string} */ var version = '4.3.2'; /** * Initializing a zrender instance * @param {HTMLElement} dom * @param {Object} [opts] * @param {string} [opts.renderer='canvas'] 'canvas' or 'svg' * @param {number} [opts.devicePixelRatio] * @param {number|string} [opts.width] Can be 'auto' (the same as null/undefined) * @param {number|string} [opts.height] Can be 'auto' (the same as null/undefined) * @return {module:zrender/ZRender} */ function init(dom, opts) { var zr = new ZRender(guid(), dom, opts); instances[zr.id] = zr; return zr; } /** * Dispose zrender instance * @param {module:zrender/ZRender} zr */ function dispose(zr) { if (zr) { zr.dispose(); } else { for (var key in instances) { if (instances.hasOwnProperty(key)) { instances[key].dispose(); } } instances = {}; } return this; } /** * Get zrender instance by id * @param {string} id zrender instance id * @return {module:zrender/ZRender} */ function getInstance(id) { return instances[id]; } function registerPainter(name, Ctor) { painterCtors[name] = Ctor; } function delInstance(id) { delete instances[id]; } /** * @module zrender/ZRender */ /** * @constructor * @alias module:zrender/ZRender * @param {string} id * @param {HTMLElement} dom * @param {Object} opts * @param {string} [opts.renderer='canvas'] 'canvas' or 'svg' * @param {number} [opts.devicePixelRatio] * @param {number} [opts.width] Can be 'auto' (the same as null/undefined) * @param {number} [opts.height] Can be 'auto' (the same as null/undefined) */ var ZRender = function ZRender(id, dom, opts) { opts = opts || {}; /** * @type {HTMLDomElement} */ this.dom = dom; /** * @type {string} */ this.id = id; var self = this; var storage = new Storage(); var rendererType = opts.renderer; // TODO WebGL if (useVML) { if (!painterCtors.vml) { throw new Error('You need to require \'zrender/vml/vml\' to support IE8'); } rendererType = 'vml'; } else if (!rendererType || !painterCtors[rendererType]) { rendererType = 'canvas'; } var painter = new painterCtors[rendererType](dom, storage, opts, id); this.storage = storage; this.painter = painter; var handerProxy = !env.node && !env.worker ? new HandlerProxy(painter.getViewportRoot(), painter.root) : null; this.handler = new Handler(storage, painter, handerProxy, painter.root); /** * @type {module:zrender/animation/Animation} */ this.animation = new Animation({ stage: { update: zrUtil.bind(this.flush, this) } }); this.animation.start(); /** * @type {boolean} * @private */ this._needsRefresh; // 修改 storage.delFromStorage, 每次删除元素之前删除动画 // FIXME 有点ugly var oldDelFromStorage = storage.delFromStorage; var oldAddToStorage = storage.addToStorage; storage.delFromStorage = function (el) { oldDelFromStorage.call(storage, el); el && el.removeSelfFromZr(self); }; storage.addToStorage = function (el) { oldAddToStorage.call(storage, el); el.addSelfToZr(self); }; }; ZRender.prototype = { constructor: ZRender, /** * 获取实例唯一标识 * @return {string} */ getId: function getId() { return this.id; }, /** * 添加元素 * @param {module:zrender/Element} el */ add: function add(el) { this.storage.addRoot(el); this._needsRefresh = true; }, /** * 删除元素 * @param {module:zrender/Element} el */ remove: function remove(el) { this.storage.delRoot(el); this._needsRefresh = true; }, /** * Change configuration of layer * @param {string} zLevel * @param {Object} config * @param {string} [config.clearColor=0] Clear color * @param {string} [config.motionBlur=false] If enable motion blur * @param {number} [config.lastFrameAlpha=0.7] Motion blur factor. Larger value cause longer trailer */ configLayer: function configLayer(zLevel, config) { if (this.painter.configLayer) { this.painter.configLayer(zLevel, config); } this._needsRefresh = true; }, /** * Set background color * @param {string} backgroundColor */ setBackgroundColor: function setBackgroundColor(backgroundColor) { if (this.painter.setBackgroundColor) { this.painter.setBackgroundColor(backgroundColor); } this._needsRefresh = true; }, /** * Repaint the canvas immediately */ refreshImmediately: function refreshImmediately() { // var start = new Date(); // Clear needsRefresh ahead to avoid something wrong happens in refresh // Or it will cause zrender refreshes again and again. this._needsRefresh = this._needsRefreshHover = false; this.painter.refresh(); // Avoid trigger zr.refresh in Element#beforeUpdate hook this._needsRefresh = this._needsRefreshHover = false; // var end = new Date(); // var log = document.getElementById('log'); // if (log) { // log.innerHTML = log.innerHTML + '
' + (end - start); // } }, /** * Mark and repaint the canvas in the next frame of browser */ refresh: function refresh() { this._needsRefresh = true; }, /** * Perform all refresh */ flush: function flush() { var triggerRendered; if (this._needsRefresh) { triggerRendered = true; this.refreshImmediately(); } if (this._needsRefreshHover) { triggerRendered = true; this.refreshHoverImmediately(); } triggerRendered && this.trigger('rendered'); }, /** * Add element to hover layer * @param {module:zrender/Element} el * @param {Object} style */ addHover: function addHover(el, style) { if (this.painter.addHover) { var elMirror = this.painter.addHover(el, style); this.refreshHover(); return elMirror; } }, /** * Add element from hover layer * @param {module:zrender/Element} el */ removeHover: function removeHover(el) { if (this.painter.removeHover) { this.painter.removeHover(el); this.refreshHover(); } }, /** * Clear all hover elements in hover layer * @param {module:zrender/Element} el */ clearHover: function clearHover() { if (this.painter.clearHover) { this.painter.clearHover(); this.refreshHover(); } }, /** * Refresh hover in next frame */ refreshHover: function refreshHover() { this._needsRefreshHover = true; }, /** * Refresh hover immediately */ refreshHoverImmediately: function refreshHoverImmediately() { this._needsRefreshHover = false; this.painter.refreshHover && this.painter.refreshHover(); }, /** * Resize the canvas. * Should be invoked when container size is changed * @param {Object} [opts] * @param {number|string} [opts.width] Can be 'auto' (the same as null/undefined) * @param {number|string} [opts.height] Can be 'auto' (the same as null/undefined) */ resize: function resize(opts) { opts = opts || {}; this.painter.resize(opts.width, opts.height); this.handler.resize(); }, /** * Stop and clear all animation immediately */ clearAnimation: function clearAnimation() { this.animation.clear(); }, /** * Get container width */ getWidth: function getWidth() { return this.painter.getWidth(); }, /** * Get container height */ getHeight: function getHeight() { return this.painter.getHeight(); }, /** * Export the canvas as Base64 URL * @param {string} type * @param {string} [backgroundColor='#fff'] * @return {string} Base64 URL */ // toDataURL: function(type, backgroundColor) { // return this.painter.getRenderedCanvas({ // backgroundColor: backgroundColor // }).toDataURL(type); // }, /** * Converting a path to image. * It has much better performance of drawing image rather than drawing a vector path. * @param {module:zrender/graphic/Path} e * @param {number} width * @param {number} height */ pathToImage: function pathToImage(e, dpr) { return this.painter.pathToImage(e, dpr); }, /** * Set default cursor * @param {string} [cursorStyle='default'] 例如 crosshair */ setCursorStyle: function setCursorStyle(cursorStyle) { this.handler.setCursorStyle(cursorStyle); }, /** * Find hovered element * @param {number} x * @param {number} y * @return {Object} {target, topTarget} */ findHover: function findHover(x, y) { return this.handler.findHover(x, y); }, /** * Bind event * * @param {string} eventName Event name * @param {Function} eventHandler Handler function * @param {Object} [context] Context object */ on: function on(eventName, eventHandler, context) { this.handler.on(eventName, eventHandler, context); }, /** * Unbind event * @param {string} eventName Event name * @param {Function} [eventHandler] Handler function */ off: function off(eventName, eventHandler) { this.handler.off(eventName, eventHandler); }, /** * Trigger event manually * * @param {string} eventName Event name * @param {event=} event Event object */ trigger: function trigger(eventName, event) { this.handler.trigger(eventName, event); }, /** * Clear all objects and the canvas. */ clear: function clear() { this.storage.delRoot(); this.painter.clear(); }, /** * Dispose self. */ dispose: function dispose() { this.animation.stop(); this.clear(); this.storage.dispose(); this.painter.dispose(); this.handler.dispose(); this.animation = this.storage = this.painter = this.handler = null; delInstance(this.id); } }; exports.version = version; exports.init = init; exports.dispose = dispose; exports.getInstance = getInstance; exports.registerPainter = registerPainter; /***/ }), /* 401 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/guid.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * zrender: 生成唯一id * * @author errorrik (errorrik@gmail.com) */ var idStart = 0x0907; function _default() { return idStart++; } module.exports = _default; /***/ }), /* 402 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/env.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(wx) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); /** * echarts设备环境识别 * * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。 * @author firede[firede@firede.us] * @desc thanks zepto. */ /* global wx */ var env = {}; if ((typeof wx === "undefined" ? "undefined" : _typeof(wx)) === 'object' && typeof wx.getSystemInfoSync === 'function') { // In Weixin Application env = { browser: {}, os: {}, node: false, wxa: true, // Weixin Application canvasSupported: true, svgSupported: false, touchEventsSupported: true, domSupported: false }; } else if (typeof document === 'undefined' && typeof self !== 'undefined') { // In worker env = { browser: {}, os: {}, node: false, worker: true, canvasSupported: true, domSupported: false }; } else if (typeof navigator === 'undefined') { // In node env = { browser: {}, os: {}, node: true, worker: false, // Assume canvas is supported canvasSupported: true, svgSupported: true, domSupported: false }; } else { env = detect(navigator.userAgent); } var _default = env; // Zepto.js // (c) 2010-2013 Thomas Fuchs // Zepto.js may be freely distributed under the MIT license. function detect(ua) { var os = {}; var browser = {}; // var webkit = ua.match(/Web[kK]it[\/]{0,1}([\d.]+)/); // var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); // var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); // var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/); // var webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/); // var touchpad = webos && ua.match(/TouchPad/); // var kindle = ua.match(/Kindle\/([\d.]+)/); // var silk = ua.match(/Silk\/([\d._]+)/); // var blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/); // var bb10 = ua.match(/(BB10).*Version\/([\d.]+)/); // var rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/); // var playbook = ua.match(/PlayBook/); // var chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/); var firefox = ua.match(/Firefox\/([\d.]+)/); // var safari = webkit && ua.match(/Mobile\//) && !chrome; // var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome; var ie = ua.match(/MSIE\s([\d.]+)/) // IE 11 Trident/7.0; rv:11.0 || ua.match(/Trident\/.+?rv:(([\d.]+))/); var edge = ua.match(/Edge\/([\d.]+)/); // IE 12 and 12+ var weChat = /micromessenger/i.test(ua); // Todo: clean this up with a better OS/browser seperation: // - discern (more) between multiple browsers on android // - decide if kindle fire in silk mode is android or not // - Firefox on Android doesn't specify the Android version // - possibly devide in os, device and browser hashes // if (browser.webkit = !!webkit) browser.version = webkit[1]; // if (android) os.android = true, os.version = android[2]; // if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.'); // if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.'); // if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null; // if (webos) os.webos = true, os.version = webos[2]; // if (touchpad) os.touchpad = true; // if (blackberry) os.blackberry = true, os.version = blackberry[2]; // if (bb10) os.bb10 = true, os.version = bb10[2]; // if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2]; // if (playbook) browser.playbook = true; // if (kindle) os.kindle = true, os.version = kindle[1]; // if (silk) browser.silk = true, browser.version = silk[1]; // if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true; // if (chrome) browser.chrome = true, browser.version = chrome[1]; if (firefox) { browser.firefox = true; browser.version = firefox[1]; } // if (safari && (ua.match(/Safari/) || !!os.ios)) browser.safari = true; // if (webview) browser.webview = true; if (ie) { browser.ie = true; browser.version = ie[1]; } if (edge) { browser.edge = true; browser.version = edge[1]; } // It is difficult to detect WeChat in Win Phone precisely, because ua can // not be set on win phone. So we do not consider Win Phone. if (weChat) { browser.weChat = true; } // os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) || // (firefox && ua.match(/Tablet/)) || (ie && !ua.match(/Phone/) && ua.match(/Touch/))); // os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos || // (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\/([\d.]+)/)) || // (firefox && ua.match(/Mobile/)) || (ie && ua.match(/Touch/)))); return { browser: browser, os: os, node: false, // 原生canvas支持,改极端点了 // canvasSupported : !(browser.ie && parseFloat(browser.version) < 9) canvasSupported: !!document.createElement('canvas').getContext, svgSupported: typeof SVGRect !== 'undefined', // works on most browsers // IE10/11 does not support touch event, and MS Edge supports them but not by // default, so we dont check navigator.maxTouchPoints for them here. touchEventsSupported: 'ontouchstart' in window && !browser.ie && !browser.edge, // . pointerEventsSupported: // (1) Firefox supports pointer but not by default, only MS browsers are reliable on pointer // events currently. So we dont use that on other browsers unless tested sufficiently. // For example, in iOS 13 Mobile Chromium 78, if the touching behavior starts page // scroll, the `pointermove` event can not be fired any more. That will break some // features like "pan horizontally to move something and pan vertically to page scroll". // The horizontal pan probably be interrupted by the casually triggered page scroll. // (2) Although IE 10 supports pointer event, it use old style and is different from the // standard. So we exclude that. (IE 10 is hardly used on touch device) 'onpointerdown' in window && (browser.edge || browser.ie && browser.version >= 11), // passiveSupported: detectPassiveSupport() domSupported: typeof document !== 'undefined' }; } // See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection // function detectPassiveSupport() { // // Test via a getter in the options object to see if the passive property is accessed // var supportsPassive = false; // try { // var opts = Object.defineProperty({}, 'passive', { // get: function() { // supportsPassive = true; // } // }); // window.addEventListener('testPassive', function() {}, opts); // } catch (e) { // } // return supportsPassive; // } module.exports = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! @dcloudio/uni-mp-weixin/dist/mp.js */ 378)["default"])) /***/ }), /* 403 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/util.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); /** * @module zrender/core/util */ // 用于处理merge时无法遍历Date等对象的问题 var BUILTIN_OBJECT = { '[object Function]': 1, '[object RegExp]': 1, '[object Date]': 1, '[object Error]': 1, '[object CanvasGradient]': 1, '[object CanvasPattern]': 1, // For node-canvas '[object Image]': 1, '[object Canvas]': 1 }; var TYPED_ARRAY = { '[object Int8Array]': 1, '[object Uint8Array]': 1, '[object Uint8ClampedArray]': 1, '[object Int16Array]': 1, '[object Uint16Array]': 1, '[object Int32Array]': 1, '[object Uint32Array]': 1, '[object Float32Array]': 1, '[object Float64Array]': 1 }; var objToString = Object.prototype.toString; var arrayProto = Array.prototype; var nativeForEach = arrayProto.forEach; var nativeFilter = arrayProto.filter; var nativeSlice = arrayProto.slice; var nativeMap = arrayProto.map; var nativeReduce = arrayProto.reduce; // Avoid assign to an exported variable, for transforming to cjs. var methods = {}; function $override(name, fn) { // Clear ctx instance for different environment if (name === 'createCanvas') { _ctx = null; } methods[name] = fn; } /** * Those data types can be cloned: * Plain object, Array, TypedArray, number, string, null, undefined. * Those data types will be assgined using the orginal data: * BUILTIN_OBJECT * Instance of user defined class will be cloned to a plain object, without * properties in prototype. * Other data types is not supported (not sure what will happen). * * Caution: do not support clone Date, for performance consideration. * (There might be a large number of date in `series.data`). * So date should not be modified in and out of echarts. * * @param {*} source * @return {*} new */ function clone(source) { if (source == null || _typeof(source) !== 'object') { return source; } var result = source; var typeStr = objToString.call(source); if (typeStr === '[object Array]') { if (!isPrimitive(source)) { result = []; for (var i = 0, len = source.length; i < len; i++) { result[i] = clone(source[i]); } } } else if (TYPED_ARRAY[typeStr]) { if (!isPrimitive(source)) { var Ctor = source.constructor; if (source.constructor.from) { result = Ctor.from(source); } else { result = new Ctor(source.length); for (var i = 0, len = source.length; i < len; i++) { result[i] = clone(source[i]); } } } } else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) { result = {}; for (var key in source) { if (source.hasOwnProperty(key)) { result[key] = clone(source[key]); } } } return result; } /** * @memberOf module:zrender/core/util * @param {*} target * @param {*} source * @param {boolean} [overwrite=false] */ function merge(target, source, overwrite) { // We should escapse that source is string // and enter for ... in ... if (!isObject(source) || !isObject(target)) { return overwrite ? clone(source) : target; } for (var key in source) { if (source.hasOwnProperty(key)) { var targetProp = target[key]; var sourceProp = source[key]; if (isObject(sourceProp) && isObject(targetProp) && !isArray(sourceProp) && !isArray(targetProp) && !isDom(sourceProp) && !isDom(targetProp) && !isBuiltInObject(sourceProp) && !isBuiltInObject(targetProp) && !isPrimitive(sourceProp) && !isPrimitive(targetProp)) { // 如果需要递归覆盖,就递归调用merge merge(targetProp, sourceProp, overwrite); } else if (overwrite || !(key in target)) { // 否则只处理overwrite为true,或者在目标对象中没有此属性的情况 // NOTE,在 target[key] 不存在的时候也是直接覆盖 target[key] = clone(source[key], true); } } } return target; } /** * @param {Array} targetAndSources The first item is target, and the rests are source. * @param {boolean} [overwrite=false] * @return {*} target */ function mergeAll(targetAndSources, overwrite) { var result = targetAndSources[0]; for (var i = 1, len = targetAndSources.length; i < len; i++) { result = merge(result, targetAndSources[i], overwrite); } return result; } /** * @param {*} target * @param {*} source * @memberOf module:zrender/core/util */ function extend(target, source) { for (var key in source) { if (source.hasOwnProperty(key)) { target[key] = source[key]; } } return target; } /** * @param {*} target * @param {*} source * @param {boolean} [overlay=false] * @memberOf module:zrender/core/util */ function defaults(target, source, overlay) { for (var key in source) { if (source.hasOwnProperty(key) && (overlay ? source[key] != null : target[key] == null)) { target[key] = source[key]; } } return target; } var createCanvas = function createCanvas() { return methods.createCanvas(); }; methods.createCanvas = function () { return document.createElement('canvas'); }; // FIXME var _ctx; function getContext() { if (!_ctx) { // Use util.createCanvas instead of createCanvas // because createCanvas may be overwritten in different environment _ctx = createCanvas().getContext('2d'); } return _ctx; } /** * 查询数组中元素的index * @memberOf module:zrender/core/util */ function indexOf(array, value) { if (array) { if (array.indexOf) { return array.indexOf(value); } for (var i = 0, len = array.length; i < len; i++) { if (array[i] === value) { return i; } } } return -1; } /** * 构造类继承关系 * * @memberOf module:zrender/core/util * @param {Function} clazz 源类 * @param {Function} baseClazz 基类 */ function inherits(clazz, baseClazz) { var clazzPrototype = clazz.prototype; function F() {} F.prototype = baseClazz.prototype; clazz.prototype = new F(); for (var prop in clazzPrototype) { if (clazzPrototype.hasOwnProperty(prop)) { clazz.prototype[prop] = clazzPrototype[prop]; } } clazz.prototype.constructor = clazz; clazz.superClass = baseClazz; } /** * @memberOf module:zrender/core/util * @param {Object|Function} target * @param {Object|Function} sorce * @param {boolean} overlay */ function mixin(target, source, overlay) { target = 'prototype' in target ? target.prototype : target; source = 'prototype' in source ? source.prototype : source; defaults(target, source, overlay); } /** * Consider typed array. * @param {Array|TypedArray} data */ function isArrayLike(data) { if (!data) { return; } if (typeof data === 'string') { return false; } return typeof data.length === 'number'; } /** * 数组或对象遍历 * @memberOf module:zrender/core/util * @param {Object|Array} obj * @param {Function} cb * @param {*} [context] */ function each(obj, cb, context) { if (!(obj && cb)) { return; } if (obj.forEach && obj.forEach === nativeForEach) { obj.forEach(cb, context); } else if (obj.length === +obj.length) { for (var i = 0, len = obj.length; i < len; i++) { cb.call(context, obj[i], i, obj); } } else { for (var key in obj) { if (obj.hasOwnProperty(key)) { cb.call(context, obj[key], key, obj); } } } } /** * 数组映射 * @memberOf module:zrender/core/util * @param {Array} obj * @param {Function} cb * @param {*} [context] * @return {Array} */ function map(obj, cb, context) { if (!(obj && cb)) { return; } if (obj.map && obj.map === nativeMap) { return obj.map(cb, context); } else { var result = []; for (var i = 0, len = obj.length; i < len; i++) { result.push(cb.call(context, obj[i], i, obj)); } return result; } } /** * @memberOf module:zrender/core/util * @param {Array} obj * @param {Function} cb * @param {Object} [memo] * @param {*} [context] * @return {Array} */ function reduce(obj, cb, memo, context) { if (!(obj && cb)) { return; } if (obj.reduce && obj.reduce === nativeReduce) { return obj.reduce(cb, memo, context); } else { for (var i = 0, len = obj.length; i < len; i++) { memo = cb.call(context, memo, obj[i], i, obj); } return memo; } } /** * 数组过滤 * @memberOf module:zrender/core/util * @param {Array} obj * @param {Function} cb * @param {*} [context] * @return {Array} */ function filter(obj, cb, context) { if (!(obj && cb)) { return; } if (obj.filter && obj.filter === nativeFilter) { return obj.filter(cb, context); } else { var result = []; for (var i = 0, len = obj.length; i < len; i++) { if (cb.call(context, obj[i], i, obj)) { result.push(obj[i]); } } return result; } } /** * 数组项查找 * @memberOf module:zrender/core/util * @param {Array} obj * @param {Function} cb * @param {*} [context] * @return {*} */ function find(obj, cb, context) { if (!(obj && cb)) { return; } for (var i = 0, len = obj.length; i < len; i++) { if (cb.call(context, obj[i], i, obj)) { return obj[i]; } } } /** * @memberOf module:zrender/core/util * @param {Function} func * @param {*} context * @return {Function} */ function bind(func, context) { var args = nativeSlice.call(arguments, 2); return function () { return func.apply(context, args.concat(nativeSlice.call(arguments))); }; } /** * @memberOf module:zrender/core/util * @param {Function} func * @return {Function} */ function curry(func) { var args = nativeSlice.call(arguments, 1); return function () { return func.apply(this, args.concat(nativeSlice.call(arguments))); }; } /** * @memberOf module:zrender/core/util * @param {*} value * @return {boolean} */ function isArray(value) { return objToString.call(value) === '[object Array]'; } /** * @memberOf module:zrender/core/util * @param {*} value * @return {boolean} */ function isFunction(value) { return typeof value === 'function'; } /** * @memberOf module:zrender/core/util * @param {*} value * @return {boolean} */ function isString(value) { return objToString.call(value) === '[object String]'; } /** * @memberOf module:zrender/core/util * @param {*} value * @return {boolean} */ function isObject(value) { // Avoid a V8 JIT bug in Chrome 19-20. // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type = _typeof(value); return type === 'function' || !!value && type === 'object'; } /** * @memberOf module:zrender/core/util * @param {*} value * @return {boolean} */ function isBuiltInObject(value) { return !!BUILTIN_OBJECT[objToString.call(value)]; } /** * @memberOf module:zrender/core/util * @param {*} value * @return {boolean} */ function isTypedArray(value) { return !!TYPED_ARRAY[objToString.call(value)]; } /** * @memberOf module:zrender/core/util * @param {*} value * @return {boolean} */ function isDom(value) { return _typeof(value) === 'object' && typeof value.nodeType === 'number' && _typeof(value.ownerDocument) === 'object'; } /** * Whether is exactly NaN. Notice isNaN('a') returns true. * @param {*} value * @return {boolean} */ function eqNaN(value) { /* eslint-disable-next-line no-self-compare */ return value !== value; } /** * If value1 is not null, then return value1, otherwise judget rest of values. * Low performance. * @memberOf module:zrender/core/util * @return {*} Final value */ function retrieve(values) { for (var i = 0, len = arguments.length; i < len; i++) { if (arguments[i] != null) { return arguments[i]; } } } function retrieve2(value0, value1) { return value0 != null ? value0 : value1; } function retrieve3(value0, value1, value2) { return value0 != null ? value0 : value1 != null ? value1 : value2; } /** * @memberOf module:zrender/core/util * @param {Array} arr * @param {number} startIndex * @param {number} endIndex * @return {Array} */ function slice() { return Function.call.apply(nativeSlice, arguments); } /** * Normalize css liked array configuration * e.g. * 3 => [3, 3, 3, 3] * [4, 2] => [4, 2, 4, 2] * [4, 3, 2] => [4, 3, 2, 3] * @param {number|Array.} val * @return {Array.} */ function normalizeCssArray(val) { if (typeof val === 'number') { return [val, val, val, val]; } var len = val.length; if (len === 2) { // vertical | horizontal return [val[0], val[1], val[0], val[1]]; } else if (len === 3) { // top | horizontal | bottom return [val[0], val[1], val[2], val[1]]; } return val; } /** * @memberOf module:zrender/core/util * @param {boolean} condition * @param {string} message */ function assert(condition, message) { if (!condition) { throw new Error(message); } } /** * @memberOf module:zrender/core/util * @param {string} str string to be trimed * @return {string} trimed string */ function trim(str) { if (str == null) { return null; } else if (typeof str.trim === 'function') { return str.trim(); } else { return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); } } var primitiveKey = '__ec_primitive__'; /** * Set an object as primitive to be ignored traversing children in clone or merge */ function setAsPrimitive(obj) { obj[primitiveKey] = true; } function isPrimitive(obj) { return obj[primitiveKey]; } /** * @constructor * @param {Object} obj Only apply `ownProperty`. */ function HashMap(obj) { var isArr = isArray(obj); // Key should not be set on this, otherwise // methods get/set/... may be overrided. this.data = {}; var thisMap = this; obj instanceof HashMap ? obj.each(visit) : obj && each(obj, visit); function visit(value, key) { isArr ? thisMap.set(value, key) : thisMap.set(key, value); } } HashMap.prototype = { constructor: HashMap, // Do not provide `has` method to avoid defining what is `has`. // (We usually treat `null` and `undefined` as the same, different // from ES6 Map). get: function get(key) { return this.data.hasOwnProperty(key) ? this.data[key] : null; }, set: function set(key, value) { // Comparing with invocation chaining, `return value` is more commonly // used in this case: `var someVal = map.set('a', genVal());` return this.data[key] = value; }, // Although util.each can be performed on this hashMap directly, user // should not use the exposed keys, who are prefixed. each: function each(cb, context) { context !== void 0 && (cb = bind(cb, context)); /* eslint-disable guard-for-in */ for (var key in this.data) { this.data.hasOwnProperty(key) && cb(this.data[key], key); } /* eslint-enable guard-for-in */ }, // Do not use this method if performance sensitive. removeKey: function removeKey(key) { delete this.data[key]; } }; function createHashMap(obj) { return new HashMap(obj); } function concatArray(a, b) { var newArray = new a.constructor(a.length + b.length); for (var i = 0; i < a.length; i++) { newArray[i] = a[i]; } var offset = a.length; for (i = 0; i < b.length; i++) { newArray[i + offset] = b[i]; } return newArray; } function noop() {} exports.$override = $override; exports.clone = clone; exports.merge = merge; exports.mergeAll = mergeAll; exports.extend = extend; exports.defaults = defaults; exports.createCanvas = createCanvas; exports.getContext = getContext; exports.indexOf = indexOf; exports.inherits = inherits; exports.mixin = mixin; exports.isArrayLike = isArrayLike; exports.each = each; exports.map = map; exports.reduce = reduce; exports.filter = filter; exports.find = find; exports.bind = bind; exports.curry = curry; exports.isArray = isArray; exports.isFunction = isFunction; exports.isString = isString; exports.isObject = isObject; exports.isBuiltInObject = isBuiltInObject; exports.isTypedArray = isTypedArray; exports.isDom = isDom; exports.eqNaN = eqNaN; exports.retrieve = retrieve; exports.retrieve2 = retrieve2; exports.retrieve3 = retrieve3; exports.slice = slice; exports.normalizeCssArray = normalizeCssArray; exports.assert = assert; exports.trim = trim; exports.setAsPrimitive = setAsPrimitive; exports.isPrimitive = isPrimitive; exports.createHashMap = createHashMap; exports.concatArray = concatArray; exports.noop = noop; /***/ }), /* 404 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/Handler.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ./core/util */ 403); var vec2 = __webpack_require__(/*! ./core/vector */ 405); var Draggable = __webpack_require__(/*! ./mixin/Draggable */ 406); var Eventful = __webpack_require__(/*! ./mixin/Eventful */ 407); var eventTool = __webpack_require__(/*! ./core/event */ 408); var GestureMgr = __webpack_require__(/*! ./core/GestureMgr */ 411); /** * [The interface between `Handler` and `HandlerProxy`]: * * The default `HandlerProxy` only support the common standard web environment * (e.g., standalone browser, headless browser, embed browser in mobild APP, ...). * But `HandlerProxy` can be replaced to support more non-standard environment * (e.g., mini app), or to support more feature that the default `HandlerProxy` * not provided (like echarts-gl did). * So the interface between `Handler` and `HandlerProxy` should be stable. Do not * make break changes util inevitable. The interface include the public methods * of `Handler` and the events listed in `handlerNames` below, by which `HandlerProxy` * drives `Handler`. */ /** * [Drag outside]: * * That is, triggering `mousemove` and `mouseup` event when the pointer is out of the * zrender area when dragging. That is important for the improvement of the user experience * when dragging something near the boundary without being terminated unexpectedly. * * We originally consider to introduce new events like `pagemovemove` and `pagemouseup` * to resolve this issue. But some drawbacks of it is described in * https://github.com/ecomfe/zrender/pull/536#issuecomment-560286899 * * Instead, we referenced the specifications: * https://www.w3.org/TR/touch-events/#the-touchmove-event * https://www.w3.org/TR/2014/WD-DOM-Level-3-Events-20140925/#event-type-mousemove * where the the mousemove/touchmove can be continue to fire if the user began a drag * operation and the pointer has left the boundary. (for the mouse event, browsers * only do it on `document` and when the pointer has left the boundary of the browser.) * * So the default `HandlerProxy` supports this feature similarly: if it is in the dragging * state (see `pointerCapture` in `HandlerProxy`), the `mousemove` and `mouseup` continue * to fire until release the pointer. That is implemented by listen to those event on * `document`. * If we implement some other `HandlerProxy` only for touch device, that would be easier. * The touch event support this feature by default. * * Note: * There might be some cases that the mouse event can not be * received on `document`. For example, * (A) `useCapture` is not supported and some user defined event listeners on the ancestor * of zr dom throw Error . * (B) `useCapture` is not supported Some user defined event listeners on the ancestor of * zr dom call `stopPropagation`. * In these cases, the `mousemove` event might be keep triggered event * if the mouse is released. We try to reduce the side-effect in those cases. * That is, do nothing (especially, `findHover`) in those cases. See `isOutsideBoundary`. * * Note: * If `HandlerProxy` listens to `document` with `useCapture`, `HandlerProxy` needs to * make sure `stopPropagation` and `preventDefault` doing nothing if and only if the event * target is not zrender dom. Becuase it is dangerous to enable users to call them in * `document` capture phase to prevent the propagation to any listener of the webpage. * But they are needed to work when the pointer inside the zrender dom. */ var SILENT = 'silent'; function makeEventPacket(eveType, targetInfo, event) { return { type: eveType, event: event, // target can only be an element that is not silent. target: targetInfo.target, // topTarget can be a silent element. topTarget: targetInfo.topTarget, cancelBubble: false, offsetX: event.zrX, offsetY: event.zrY, gestureEvent: event.gestureEvent, pinchX: event.pinchX, pinchY: event.pinchY, pinchScale: event.pinchScale, wheelDelta: event.zrDelta, zrByTouch: event.zrByTouch, which: event.which, stop: stopEvent }; } function stopEvent() { eventTool.stop(this.event); } function EmptyProxy() {} EmptyProxy.prototype.dispose = function () {}; var handlerNames = ['click', 'dblclick', 'mousewheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu']; /** * @alias module:zrender/Handler * @constructor * @extends module:zrender/mixin/Eventful * @param {module:zrender/Storage} storage Storage instance. * @param {module:zrender/Painter} painter Painter instance. * @param {module:zrender/dom/HandlerProxy} proxy HandlerProxy instance. * @param {HTMLElement} painterRoot painter.root (not painter.getViewportRoot()). */ var Handler = function Handler(storage, painter, proxy, painterRoot) { Eventful.call(this); this.storage = storage; this.painter = painter; this.painterRoot = painterRoot; proxy = proxy || new EmptyProxy(); /** * Proxy of event. can be Dom, WebGLSurface, etc. */ this.proxy = null; /** * {target, topTarget, x, y} * @private * @type {Object} */ this._hovered = {}; /** * @private * @type {Date} */ this._lastTouchMoment; /** * @private * @type {number} */ this._lastX; /** * @private * @type {number} */ this._lastY; /** * @private * @type {module:zrender/core/GestureMgr} */ this._gestureMgr; Draggable.call(this); this.setHandlerProxy(proxy); }; Handler.prototype = { constructor: Handler, setHandlerProxy: function setHandlerProxy(proxy) { if (this.proxy) { this.proxy.dispose(); } if (proxy) { util.each(handlerNames, function (name) { proxy.on && proxy.on(name, this[name], this); }, this); // Attach handler proxy.handler = this; } this.proxy = proxy; }, mousemove: function mousemove(event) { var x = event.zrX; var y = event.zrY; var isOutside = isOutsideBoundary(this, x, y); var lastHovered = this._hovered; var lastHoveredTarget = lastHovered.target; // If lastHoveredTarget is removed from zr (detected by '__zr') by some API call // (like 'setOption' or 'dispatchAction') in event handlers, we should find // lastHovered again here. Otherwise 'mouseout' can not be triggered normally. // See #6198. if (lastHoveredTarget && !lastHoveredTarget.__zr) { lastHovered = this.findHover(lastHovered.x, lastHovered.y); lastHoveredTarget = lastHovered.target; } var hovered = this._hovered = isOutside ? { x: x, y: y } : this.findHover(x, y); var hoveredTarget = hovered.target; var proxy = this.proxy; proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default'); // Mouse out on previous hovered element if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) { this.dispatchToElement(lastHovered, 'mouseout', event); } // Mouse moving on one element this.dispatchToElement(hovered, 'mousemove', event); // Mouse over on a new element if (hoveredTarget && hoveredTarget !== lastHoveredTarget) { this.dispatchToElement(hovered, 'mouseover', event); } }, mouseout: function mouseout(event) { var eventControl = event.zrEventControl; var zrIsToLocalDOM = event.zrIsToLocalDOM; if (eventControl !== 'only_globalout') { this.dispatchToElement(this._hovered, 'mouseout', event); } if (eventControl !== 'no_globalout') { // FIXME: if the pointer moving from the extra doms to realy "outside", // the `globalout` should have been triggered. But currently not. !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event }); } }, /** * Resize */ resize: function resize(event) { this._hovered = {}; }, /** * Dispatch event * @param {string} eventName * @param {event=} eventArgs */ dispatch: function dispatch(eventName, eventArgs) { var handler = this[eventName]; handler && handler.call(this, eventArgs); }, /** * Dispose */ dispose: function dispose() { this.proxy.dispose(); this.storage = this.proxy = this.painter = null; }, /** * 设置默认的cursor style * @param {string} [cursorStyle='default'] 例如 crosshair */ setCursorStyle: function setCursorStyle(cursorStyle) { var proxy = this.proxy; proxy.setCursor && proxy.setCursor(cursorStyle); }, /** * 事件分发代理 * * @private * @param {Object} targetInfo {target, topTarget} 目标图形元素 * @param {string} eventName 事件名称 * @param {Object} event 事件对象 */ dispatchToElement: function dispatchToElement(targetInfo, eventName, event) { targetInfo = targetInfo || {}; var el = targetInfo.target; if (el && el.silent) { return; } var eventHandler = 'on' + eventName; var eventPacket = makeEventPacket(eventName, targetInfo, event); while (el) { el[eventHandler] && (eventPacket.cancelBubble = el[eventHandler].call(el, eventPacket)); el.trigger(eventName, eventPacket); el = el.parent; if (eventPacket.cancelBubble) { break; } } if (!eventPacket.cancelBubble) { // 冒泡到顶级 zrender 对象 this.trigger(eventName, eventPacket); // 分发事件到用户自定义层 // 用户有可能在全局 click 事件中 dispose,所以需要判断下 painter 是否存在 this.painter && this.painter.eachOtherLayer(function (layer) { if (typeof layer[eventHandler] === 'function') { layer[eventHandler].call(layer, eventPacket); } if (layer.trigger) { layer.trigger(eventName, eventPacket); } }); } }, /** * @private * @param {number} x * @param {number} y * @param {module:zrender/graphic/Displayable} exclude * @return {model:zrender/Element} * @method */ findHover: function findHover(x, y, exclude) { var list = this.storage.getDisplayList(); var out = { x: x, y: y }; for (var i = list.length - 1; i >= 0; i--) { var hoverCheckResult; if (list[i] !== exclude // getDisplayList may include ignored item in VML mode && !list[i].ignore && (hoverCheckResult = isHover(list[i], x, y))) { !out.topTarget && (out.topTarget = list[i]); if (hoverCheckResult !== SILENT) { out.target = list[i]; break; } } } return out; }, processGesture: function processGesture(event, stage) { if (!this._gestureMgr) { this._gestureMgr = new GestureMgr(); } var gestureMgr = this._gestureMgr; stage === 'start' && gestureMgr.clear(); var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom); stage === 'end' && gestureMgr.clear(); // Do not do any preventDefault here. Upper application do that if necessary. if (gestureInfo) { var type = gestureInfo.type; event.gestureEvent = type; this.dispatchToElement({ target: gestureInfo.target }, type, gestureInfo.event); } } }; // Common handlers util.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) { Handler.prototype[name] = function (event) { var x = event.zrX; var y = event.zrY; var isOutside = isOutsideBoundary(this, x, y); var hovered; var hoveredTarget; if (name !== 'mouseup' || !isOutside) { // Find hover again to avoid click event is dispatched manually. Or click is triggered without mouseover hovered = this.findHover(x, y); hoveredTarget = hovered.target; } if (name === 'mousedown') { this._downEl = hoveredTarget; this._downPoint = [event.zrX, event.zrY]; // In case click triggered before mouseup this._upEl = hoveredTarget; } else if (name === 'mouseup') { this._upEl = hoveredTarget; } else if (name === 'click') { if (this._downEl !== this._upEl // Original click event is triggered on the whole canvas element, // including the case that `mousedown` - `mousemove` - `mouseup`, // which should be filtered, otherwise it will bring trouble to // pan and zoom. || !this._downPoint // Arbitrary value || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) { return; } this._downPoint = null; } this.dispatchToElement(hovered, name, event); }; }); function isHover(displayable, x, y) { if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) { var el = displayable; var isSilent; while (el) { // If clipped by ancestor. // FIXME: If clipPath has neither stroke nor fill, // el.clipPath.contain(x, y) will always return false. if (el.clipPath && !el.clipPath.contain(x, y)) { return false; } if (el.silent) { isSilent = true; } el = el.parent; } return isSilent ? SILENT : true; } return false; } /** * See [Drag outside]. */ function isOutsideBoundary(handlerInstance, x, y) { var painter = handlerInstance.painter; return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight(); } util.mixin(Handler, Eventful); util.mixin(Handler, Draggable); var _default = Handler; module.exports = _default; /***/ }), /* 405 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/vector.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* global Float32Array */ var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; /** * 创建一个向量 * @param {number} [x=0] * @param {number} [y=0] * @return {Vector2} */ function create(x, y) { var out = new ArrayCtor(2); if (x == null) { x = 0; } if (y == null) { y = 0; } out[0] = x; out[1] = y; return out; } /** * 复制向量数据 * @param {Vector2} out * @param {Vector2} v * @return {Vector2} */ function copy(out, v) { out[0] = v[0]; out[1] = v[1]; return out; } /** * 克隆一个向量 * @param {Vector2} v * @return {Vector2} */ function clone(v) { var out = new ArrayCtor(2); out[0] = v[0]; out[1] = v[1]; return out; } /** * 设置向量的两个项 * @param {Vector2} out * @param {number} a * @param {number} b * @return {Vector2} 结果 */ function set(out, a, b) { out[0] = a; out[1] = b; return out; } /** * 向量相加 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 */ function add(out, v1, v2) { out[0] = v1[0] + v2[0]; out[1] = v1[1] + v2[1]; return out; } /** * 向量缩放后相加 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 * @param {number} a */ function scaleAndAdd(out, v1, v2, a) { out[0] = v1[0] + v2[0] * a; out[1] = v1[1] + v2[1] * a; return out; } /** * 向量相减 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 */ function sub(out, v1, v2) { out[0] = v1[0] - v2[0]; out[1] = v1[1] - v2[1]; return out; } /** * 向量长度 * @param {Vector2} v * @return {number} */ function len(v) { return Math.sqrt(lenSquare(v)); } var length = len; // jshint ignore:line /** * 向量长度平方 * @param {Vector2} v * @return {number} */ function lenSquare(v) { return v[0] * v[0] + v[1] * v[1]; } var lengthSquare = lenSquare; /** * 向量乘法 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 */ function mul(out, v1, v2) { out[0] = v1[0] * v2[0]; out[1] = v1[1] * v2[1]; return out; } /** * 向量除法 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 */ function div(out, v1, v2) { out[0] = v1[0] / v2[0]; out[1] = v1[1] / v2[1]; return out; } /** * 向量点乘 * @param {Vector2} v1 * @param {Vector2} v2 * @return {number} */ function dot(v1, v2) { return v1[0] * v2[0] + v1[1] * v2[1]; } /** * 向量缩放 * @param {Vector2} out * @param {Vector2} v * @param {number} s */ function scale(out, v, s) { out[0] = v[0] * s; out[1] = v[1] * s; return out; } /** * 向量归一化 * @param {Vector2} out * @param {Vector2} v */ function normalize(out, v) { var d = len(v); if (d === 0) { out[0] = 0; out[1] = 0; } else { out[0] = v[0] / d; out[1] = v[1] / d; } return out; } /** * 计算向量间距离 * @param {Vector2} v1 * @param {Vector2} v2 * @return {number} */ function distance(v1, v2) { return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1])); } var dist = distance; /** * 向量距离平方 * @param {Vector2} v1 * @param {Vector2} v2 * @return {number} */ function distanceSquare(v1, v2) { return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]); } var distSquare = distanceSquare; /** * 求负向量 * @param {Vector2} out * @param {Vector2} v */ function negate(out, v) { out[0] = -v[0]; out[1] = -v[1]; return out; } /** * 插值两个点 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 * @param {number} t */ function lerp(out, v1, v2, t) { out[0] = v1[0] + t * (v2[0] - v1[0]); out[1] = v1[1] + t * (v2[1] - v1[1]); return out; } /** * 矩阵左乘向量 * @param {Vector2} out * @param {Vector2} v * @param {Vector2} m */ function applyTransform(out, v, m) { var x = v[0]; var y = v[1]; out[0] = m[0] * x + m[2] * y + m[4]; out[1] = m[1] * x + m[3] * y + m[5]; return out; } /** * 求两个向量最小值 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 */ function min(out, v1, v2) { out[0] = Math.min(v1[0], v2[0]); out[1] = Math.min(v1[1], v2[1]); return out; } /** * 求两个向量最大值 * @param {Vector2} out * @param {Vector2} v1 * @param {Vector2} v2 */ function max(out, v1, v2) { out[0] = Math.max(v1[0], v2[0]); out[1] = Math.max(v1[1], v2[1]); return out; } exports.create = create; exports.copy = copy; exports.clone = clone; exports.set = set; exports.add = add; exports.scaleAndAdd = scaleAndAdd; exports.sub = sub; exports.len = len; exports.length = length; exports.lenSquare = lenSquare; exports.lengthSquare = lengthSquare; exports.mul = mul; exports.div = div; exports.dot = dot; exports.scale = scale; exports.normalize = normalize; exports.distance = distance; exports.dist = dist; exports.distanceSquare = distanceSquare; exports.distSquare = distSquare; exports.negate = negate; exports.lerp = lerp; exports.applyTransform = applyTransform; exports.min = min; exports.max = max; /***/ }), /* 406 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/mixin/Draggable.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { // TODO Draggable for group // FIXME Draggable on element which has parent rotation or scale function Draggable() { this.on('mousedown', this._dragStart, this); this.on('mousemove', this._drag, this); this.on('mouseup', this._dragEnd, this); // `mosuemove` and `mouseup` can be continue to fire when dragging. // See [Drag outside] in `Handler.js`. So we do not need to trigger // `_dragEnd` when globalout. That would brings better user experience. // this.on('globalout', this._dragEnd, this); // this._dropTarget = null; // this._draggingTarget = null; // this._x = 0; // this._y = 0; } Draggable.prototype = { constructor: Draggable, _dragStart: function _dragStart(e) { var draggingTarget = e.target; // Find if there is draggable in the ancestor while (draggingTarget && !draggingTarget.draggable) { draggingTarget = draggingTarget.parent; } if (draggingTarget) { this._draggingTarget = draggingTarget; draggingTarget.dragging = true; this._x = e.offsetX; this._y = e.offsetY; this.dispatchToElement(param(draggingTarget, e), 'dragstart', e.event); } }, _drag: function _drag(e) { var draggingTarget = this._draggingTarget; if (draggingTarget) { var x = e.offsetX; var y = e.offsetY; var dx = x - this._x; var dy = y - this._y; this._x = x; this._y = y; draggingTarget.drift(dx, dy, e); this.dispatchToElement(param(draggingTarget, e), 'drag', e.event); var dropTarget = this.findHover(x, y, draggingTarget).target; var lastDropTarget = this._dropTarget; this._dropTarget = dropTarget; if (draggingTarget !== dropTarget) { if (lastDropTarget && dropTarget !== lastDropTarget) { this.dispatchToElement(param(lastDropTarget, e), 'dragleave', e.event); } if (dropTarget && dropTarget !== lastDropTarget) { this.dispatchToElement(param(dropTarget, e), 'dragenter', e.event); } } } }, _dragEnd: function _dragEnd(e) { var draggingTarget = this._draggingTarget; if (draggingTarget) { draggingTarget.dragging = false; } this.dispatchToElement(param(draggingTarget, e), 'dragend', e.event); if (this._dropTarget) { this.dispatchToElement(param(this._dropTarget, e), 'drop', e.event); } this._draggingTarget = null; this._dropTarget = null; } }; function param(target, e) { return { target: target, topTarget: e && e.topTarget }; } var _default = Draggable; module.exports = _default; /***/ }), /* 407 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/mixin/Eventful.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * Event Mixin * @module zrender/mixin/Eventful * @author Kener (@Kener-林峰, kener.linfeng@gmail.com) * pissang (https://www.github.com/pissang) */ var arrySlice = Array.prototype.slice; /** * Event dispatcher. * * @alias module:zrender/mixin/Eventful * @constructor * @param {Object} [eventProcessor] The object eventProcessor is the scope when * `eventProcessor.xxx` called. * @param {Function} [eventProcessor.normalizeQuery] * param: {string|Object} Raw query. * return: {string|Object} Normalized query. * @param {Function} [eventProcessor.filter] Event will be dispatched only * if it returns `true`. * param: {string} eventType * param: {string|Object} query * return: {boolean} * @param {Function} [eventProcessor.afterTrigger] Called after all handlers called. * param: {string} eventType */ var Eventful = function Eventful(eventProcessor) { this._$handlers = {}; this._$eventProcessor = eventProcessor; }; Eventful.prototype = { constructor: Eventful, /** * The handler can only be triggered once, then removed. * * @param {string} event The event name. * @param {string|Object} [query] Condition used on event filter. * @param {Function} handler The event handler. * @param {Object} context */ one: function one(event, query, handler, context) { return _on(this, event, query, handler, context, true); }, /** * Bind a handler. * * @param {string} event The event name. * @param {string|Object} [query] Condition used on event filter. * @param {Function} handler The event handler. * @param {Object} [context] */ on: function on(event, query, handler, context) { return _on(this, event, query, handler, context, false); }, /** * Whether any handler has bound. * * @param {string} event * @return {boolean} */ isSilent: function isSilent(event) { var _h = this._$handlers; return !_h[event] || !_h[event].length; }, /** * Unbind a event. * * @param {string} [event] The event name. * If no `event` input, "off" all listeners. * @param {Function} [handler] The event handler. * If no `handler` input, "off" all listeners of the `event`. */ off: function off(event, handler) { var _h = this._$handlers; if (!event) { this._$handlers = {}; return this; } if (handler) { if (_h[event]) { var newList = []; for (var i = 0, l = _h[event].length; i < l; i++) { if (_h[event][i].h !== handler) { newList.push(_h[event][i]); } } _h[event] = newList; } if (_h[event] && _h[event].length === 0) { delete _h[event]; } } else { delete _h[event]; } return this; }, /** * Dispatch a event. * * @param {string} type The event name. */ trigger: function trigger(type) { var _h = this._$handlers[type]; var eventProcessor = this._$eventProcessor; if (_h) { var args = arguments; var argLen = args.length; if (argLen > 3) { args = arrySlice.call(args, 1); } var len = _h.length; for (var i = 0; i < len;) { var hItem = _h[i]; if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) { i++; continue; } // Optimize advise from backbone switch (argLen) { case 1: hItem.h.call(hItem.ctx); break; case 2: hItem.h.call(hItem.ctx, args[1]); break; case 3: hItem.h.call(hItem.ctx, args[1], args[2]); break; default: // have more than 2 given arguments hItem.h.apply(hItem.ctx, args); break; } if (hItem.one) { _h.splice(i, 1); len--; } else { i++; } } } eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type); return this; }, /** * Dispatch a event with context, which is specified at the last parameter. * * @param {string} type The event name. */ triggerWithContext: function triggerWithContext(type) { var _h = this._$handlers[type]; var eventProcessor = this._$eventProcessor; if (_h) { var args = arguments; var argLen = args.length; if (argLen > 4) { args = arrySlice.call(args, 1, args.length - 1); } var ctx = args[args.length - 1]; var len = _h.length; for (var i = 0; i < len;) { var hItem = _h[i]; if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) { i++; continue; } // Optimize advise from backbone switch (argLen) { case 1: hItem.h.call(ctx); break; case 2: hItem.h.call(ctx, args[1]); break; case 3: hItem.h.call(ctx, args[1], args[2]); break; default: // have more than 2 given arguments hItem.h.apply(ctx, args); break; } if (hItem.one) { _h.splice(i, 1); len--; } else { i++; } } } eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type); return this; } }; function normalizeQuery(host, query) { var eventProcessor = host._$eventProcessor; if (query != null && eventProcessor && eventProcessor.normalizeQuery) { query = eventProcessor.normalizeQuery(query); } return query; } function _on(eventful, event, query, handler, context, isOnce) { var _h = eventful._$handlers; if (typeof query === 'function') { context = handler; handler = query; query = null; } if (!handler || !event) { return eventful; } query = normalizeQuery(eventful, query); if (!_h[event]) { _h[event] = []; } for (var i = 0; i < _h[event].length; i++) { if (_h[event][i].h === handler) { return eventful; } } var wrap = { h: handler, one: isOnce, query: query, ctx: context || eventful, // FIXME // Do not publish this feature util it is proved that it makes sense. callAtLast: handler.zrEventfulCallAtLast }; var lastIndex = _h[event].length - 1; var lastWrap = _h[event][lastIndex]; lastWrap && lastWrap.callAtLast ? _h[event].splice(lastIndex, 0, wrap) : _h[event].push(wrap); return eventful; } // ---------------------- // The events in zrender // ---------------------- /** * @event module:zrender/mixin/Eventful#onclick * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#onmouseover * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#onmouseout * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#onmousemove * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#onmousewheel * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#onmousedown * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#onmouseup * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#ondrag * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#ondragstart * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#ondragend * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#ondragenter * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#ondragleave * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#ondragover * @type {Function} * @default null */ /** * @event module:zrender/mixin/Eventful#ondrop * @type {Function} * @default null */ var _default = Eventful; module.exports = _default; /***/ }), /* 408 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/event.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Eventful = __webpack_require__(/*! ../mixin/Eventful */ 407); exports.Dispatcher = Eventful; var env = __webpack_require__(/*! ./env */ 402); var _dom = __webpack_require__(/*! ./dom */ 409); var isCanvasEl = _dom.isCanvasEl; var transformCoordWithViewport = _dom.transformCoordWithViewport; /** * Utilities for mouse or touch events. */ var isDomLevel2 = typeof window !== 'undefined' && !!window.addEventListener; var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/; var _calcOut = []; /** * Get the `zrX` and `zrY`, which are relative to the top-left of * the input `el`. * CSS transform (2D & 3D) is supported. * * The strategy to fetch the coords: * + If `calculate` is not set as `true`, users of this method should * ensure that `el` is the same or the same size & location as `e.target`. * Otherwise the result coords are probably not expected. Because we * firstly try to get coords from e.offsetX/e.offsetY. * + If `calculate` is set as `true`, the input `el` can be any element * and we force to calculate the coords based on `el`. * + The input `el` should be positionable (not position:static). * * The force `calculate` can be used in case like: * When mousemove event triggered on ec tooltip, `e.target` is not `el`(zr painter.dom). * * @param {HTMLElement} el DOM element. * @param {Event} e Mouse event or touch event. * @param {Object} out Get `out.zrX` and `out.zrY` as the result. * @param {boolean} [calculate=false] Whether to force calculate * the coordinates but not use ones provided by browser. */ function clientToLocal(el, e, out, calculate) { out = out || {}; // According to the W3C Working Draft, offsetX and offsetY should be relative // to the padding edge of the target element. The only browser using this convention // is IE. Webkit uses the border edge, Opera uses the content edge, and FireFox does // not support the properties. // (see http://www.jacklmoore.com/notes/mouse-position/) // In zr painter.dom, padding edge equals to border edge. if (calculate || !env.canvasSupported) { calculateZrXY(el, e, out); } // Caution: In FireFox, layerX/layerY Mouse position relative to the closest positioned // ancestor element, so we should make sure el is positioned (e.g., not position:static). // BTW1, Webkit don't return the same results as FF in non-simple cases (like add // zoom-factor, overflow / opacity layers, transforms ...) // BTW2, (ev.offsetY || ev.pageY - $(ev.target).offset().top) is not correct in preserve-3d. // // BTW3, In ff, offsetX/offsetY is always 0. else if (env.browser.firefox && e.layerX != null && e.layerX !== e.offsetX) { out.zrX = e.layerX; out.zrY = e.layerY; } // For IE6+, chrome, safari, opera. (When will ff support offsetX?) else if (e.offsetX != null) { out.zrX = e.offsetX; out.zrY = e.offsetY; } // For some other device, e.g., IOS safari. else { calculateZrXY(el, e, out); } return out; } function calculateZrXY(el, e, out) { // BlackBerry 5, iOS 3 (original iPhone) don't have getBoundingRect. if (env.domSupported && el.getBoundingClientRect) { var ex = e.clientX; var ey = e.clientY; if (isCanvasEl(el)) { // Original approach, which do not support CSS transform. // marker can not be locationed in a canvas container // (getBoundingClientRect is always 0). We do not support // that input a pre-created canvas to zr while using css // transform in iOS. var box = el.getBoundingClientRect(); out.zrX = ex - box.left; out.zrY = ey - box.top; return; } else { if (transformCoordWithViewport(_calcOut, el, ex, ey)) { out.zrX = _calcOut[0]; out.zrY = _calcOut[1]; return; } } } out.zrX = out.zrY = 0; } /** * Find native event compat for legency IE. * Should be called at the begining of a native event listener. * * @param {Event} [e] Mouse event or touch event or pointer event. * For lagency IE, we use `window.event` is used. * @return {Event} The native event. */ function getNativeEvent(e) { return e || window.event; } /** * Normalize the coordinates of the input event. * * Get the `e.zrX` and `e.zrY`, which are relative to the top-left of * the input `el`. * Get `e.zrDelta` if using mouse wheel. * Get `e.which`, see the comment inside this function. * * Do not calculate repeatly if `zrX` and `zrY` already exist. * * Notice: see comments in `clientToLocal`. check the relationship * between the result coords and the parameters `el` and `calculate`. * * @param {HTMLElement} el DOM element. * @param {Event} [e] See `getNativeEvent`. * @param {boolean} [calculate=false] Whether to force calculate * the coordinates but not use ones provided by browser. * @return {UIEvent} The normalized native UIEvent. */ function normalizeEvent(el, e, calculate) { e = getNativeEvent(e); if (e.zrX != null) { return e; } var eventType = e.type; var isTouch = eventType && eventType.indexOf('touch') >= 0; if (!isTouch) { clientToLocal(el, e, e, calculate); e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3; } else { var touch = eventType !== 'touchend' ? e.targetTouches[0] : e.changedTouches[0]; touch && clientToLocal(el, touch, e, calculate); } // Add which for click: 1 === left; 2 === middle; 3 === right; otherwise: 0; // See jQuery: https://github.com/jquery/jquery/blob/master/src/event.js // If e.which has been defined, it may be readonly, // see: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/which var button = e.button; if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) { e.which = button & 1 ? 1 : button & 2 ? 3 : button & 4 ? 2 : 0; } // [Caution]: `e.which` from browser is not always reliable. For example, // when press left button and `mousemove (pointermove)` in Edge, the `e.which` // is 65536 and the `e.button` is -1. But the `mouseup (pointerup)` and // `mousedown (pointerdown)` is the same as Chrome does. return e; } /** * @param {HTMLElement} el * @param {string} name * @param {Function} handler * @param {Object|boolean} opt If boolean, means `opt.capture` * @param {boolean} [opt.capture=false] * @param {boolean} [opt.passive=false] */ function addEventListener(el, name, handler, opt) { if (isDomLevel2) { // Reproduct the console warning: // [Violation] Added non-passive event listener to a scroll-blocking event. // Consider marking event handler as 'passive' to make the page more responsive. // Just set console log level: verbose in chrome dev tool. // then the warning log will be printed when addEventListener called. // See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md // We have not yet found a neat way to using passive. Because in zrender the dom event // listener delegate all of the upper events of element. Some of those events need // to prevent default. For example, the feature `preventDefaultMouseMove` of echarts. // Before passive can be adopted, these issues should be considered: // (1) Whether and how a zrender user specifies an event listener passive. And by default, // passive or not. // (2) How to tread that some zrender event listener is passive, and some is not. If // we use other way but not preventDefault of mousewheel and touchmove, browser // compatibility should be handled. // var opts = (env.passiveSupported && name === 'mousewheel') // ? {passive: true} // // By default, the third param of el.addEventListener is `capture: false`. // : void 0; // el.addEventListener(name, handler /* , opts */); el.addEventListener(name, handler, opt); } else { // For simplicity, do not implement `setCapture` for IE9-. el.attachEvent('on' + name, handler); } } /** * Parameter are the same as `addEventListener`. * * Notice that if a listener is registered twice, one with capture and one without, * remove each one separately. Removal of a capturing listener does not affect a * non-capturing version of the same listener, and vice versa. */ function removeEventListener(el, name, handler, opt) { if (isDomLevel2) { el.removeEventListener(name, handler, opt); } else { el.detachEvent('on' + name, handler); } } /** * preventDefault and stopPropagation. * Notice: do not use this method in zrender. It can only be * used by upper applications if necessary. * * @param {Event} e A mouse or touch event. */ var stop = isDomLevel2 ? function (e) { e.preventDefault(); e.stopPropagation(); e.cancelBubble = true; } : function (e) { e.returnValue = false; e.cancelBubble = true; }; /** * This method only works for mouseup and mousedown. The functionality is restricted * for fault tolerance, See the `e.which` compatibility above. * * @param {MouseEvent} e * @return {boolean} */ function isMiddleOrRightButtonOnMouseUpDown(e) { return e.which === 2 || e.which === 3; } /** * To be removed. * @deprecated */ function notLeftMouse(e) { // If e.which is undefined, considered as left mouse event. return e.which > 1; } // For backward compatibility exports.clientToLocal = clientToLocal; exports.getNativeEvent = getNativeEvent; exports.normalizeEvent = normalizeEvent; exports.addEventListener = addEventListener; exports.removeEventListener = removeEventListener; exports.stop = stop; exports.isMiddleOrRightButtonOnMouseUpDown = isMiddleOrRightButtonOnMouseUpDown; exports.notLeftMouse = notLeftMouse; /***/ }), /* 409 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/dom.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var env = __webpack_require__(/*! ./env */ 402); var _fourPointsTransform = __webpack_require__(/*! ./fourPointsTransform */ 410); var buildTransformer = _fourPointsTransform.buildTransformer; var EVENT_SAVED_PROP = '___zrEVENTSAVED'; var _calcOut = []; /** * Transform "local coord" from `elFrom` to `elTarget`. * "local coord": the coord based on the input `el`. The origin point is at * the position of "left: 0; top: 0;" in the `el`. * * Support when CSS transform is used. * * Having the `out` (that is, `[outX, outY]`), we can create an DOM element * and set the CSS style as "left: outX; top: outY;" and append it to `elTarge` * to locate the element. * * For example, this code below positions a child of `document.body` on the event * point, no matter whether `body` has `margin`/`paddin`/`transfrom`/... : * ```js * transformLocalCoord(out, container, document.body, event.offsetX, event.offsetY); * if (!eqNaN(out[0])) { * // Then locate the tip element on the event point. * var tipEl = document.createElement('div'); * tipEl.style.cssText = 'position: absolute; left:' + out[0] + ';top:' + out[1] + ';'; * document.body.appendChild(tipEl); * } * ``` * * Notice: In some env this method is not supported. If called, `out` will be `[NaN, NaN]`. * * @param {Array.} out [inX: number, inY: number] The output.. * If can not transform, `out` will not be modified but return `false`. * @param {HTMLElement} elFrom The `[inX, inY]` is based on elFrom. * @param {HTMLElement} elTarget The `out` is based on elTarget. * @param {number} inX * @param {number} inY * @return {boolean} Whether transform successfully. */ function transformLocalCoord(out, elFrom, elTarget, inX, inY) { return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true) && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]); } /** * Transform between a "viewport coord" and a "local coord". * "viewport coord": the coord based on the left-top corner of the viewport * of the browser. * "local coord": the coord based on the input `el`. The origin point is at * the position of "left: 0; top: 0;" in the `el`. * * Support the case when CSS transform is used on el. * * @param {Array.} out [inX: number, inY: number] The output. If `inverse: false`, * it represents "local coord", otherwise "vireport coord". * If can not transform, `out` will not be modified but return `false`. * @param {HTMLElement} el The "local coord" is based on the `el`, see comment above. * @param {number} inX If `inverse: false`, * it represents "vireport coord", otherwise "local coord". * @param {number} inY If `inverse: false`, * it represents "vireport coord", otherwise "local coord". * @param {boolean} [inverse=false] * `true`: from "viewport coord" to "local coord". * `false`: from "local coord" to "viewport coord". * @return {boolean} Whether transform successfully. */ function transformCoordWithViewport(out, el, inX, inY, inverse) { if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) { var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {}); var markers = prepareCoordMarkers(el, saved); var transformer = preparePointerTransformer(markers, saved, inverse); if (transformer) { transformer(out, inX, inY); return true; } } return false; } function prepareCoordMarkers(el, saved) { var markers = saved.markers; if (markers) { return markers; } markers = saved.markers = []; var propLR = ['left', 'right']; var propTB = ['top', 'bottom']; for (var i = 0; i < 4; i++) { var marker = document.createElement('div'); var stl = marker.style; var idxLR = i % 2; var idxTB = (i >> 1) % 2; stl.cssText = ['position: absolute', 'visibility: hidden', 'padding: 0', 'margin: 0', 'border-width: 0', 'user-select: none', 'width:0', 'height:0', // 'width: 5px', // 'height: 5px', propLR[idxLR] + ':0', propTB[idxTB] + ':0', propLR[1 - idxLR] + ':auto', propTB[1 - idxTB] + ':auto', ''].join('!important;'); el.appendChild(marker); markers.push(marker); } return markers; } function preparePointerTransformer(markers, saved, inverse) { var transformerName = inverse ? 'invTrans' : 'trans'; var transformer = saved[transformerName]; var oldSrcCoords = saved.srcCoords; var oldCoordTheSame = true; var srcCoords = []; var destCoords = []; for (var i = 0; i < 4; i++) { var rect = markers[i].getBoundingClientRect(); var ii = 2 * i; var x = rect.left; var y = rect.top; srcCoords.push(x, y); oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1]; destCoords.push(markers[i].offsetLeft, markers[i].offsetTop); } // Cache to avoid time consuming of `buildTransformer`. return oldCoordTheSame && transformer ? transformer : (saved.srcCoords = srcCoords, saved[transformerName] = inverse ? buildTransformer(destCoords, srcCoords) : buildTransformer(srcCoords, destCoords)); } function isCanvasEl(el) { return el.nodeName.toUpperCase() === 'CANVAS'; } exports.transformLocalCoord = transformLocalCoord; exports.transformCoordWithViewport = transformCoordWithViewport; exports.isCanvasEl = isCanvasEl; /***/ }), /* 410 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/fourPointsTransform.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * The algoritm is learnt from * https://franklinta.com/2014/09/08/computing-css-matrix3d-transforms/ * And we made some optimization for matrix inversion. * Other similar approaches: * "cv::getPerspectiveTransform", "Direct Linear Transformation". */ var LN2 = Math.log(2); function determinant(rows, rank, rowStart, rowMask, colMask, detCache) { var cacheKey = rowMask + '-' + colMask; var fullRank = rows.length; if (detCache.hasOwnProperty(cacheKey)) { return detCache[cacheKey]; } if (rank === 1) { // In this case the colMask must be like: `11101111`. We can find the place of `0`. var colStart = Math.round(Math.log((1 << fullRank) - 1 & ~colMask) / LN2); return rows[rowStart][colStart]; } var subRowMask = rowMask | 1 << rowStart; var subRowStart = rowStart + 1; while (rowMask & 1 << subRowStart) { subRowStart++; } var sum = 0; for (var j = 0, colLocalIdx = 0; j < fullRank; j++) { var colTag = 1 << j; if (!(colTag & colMask)) { sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j] // det(subMatrix(0, j)) * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache); colLocalIdx++; } } detCache[cacheKey] = sum; return sum; } /** * Usage: * ```js * var transformer = buildTransformer( * [10, 44, 100, 44, 100, 300, 10, 300], * [50, 54, 130, 14, 140, 330, 14, 220] * ); * var out = []; * transformer && transformer([11, 33], out); * ``` * * Notice: `buildTransformer` may take more than 10ms in some Android device. * * @param {Array.} src source four points, [x0, y0, x1, y1, x2, y2, x3, y3] * @param {Array.} dest destination four points, [x0, y0, x1, y1, x2, y2, x3, y3] * @return {Function} transformer If fail, return null/undefined. */ function buildTransformer(src, dest) { var mA = [[src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]], [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]], [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]], [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]], [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]], [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]], [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]], [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]]; var detCache = {}; var det = determinant(mA, 8, 0, 0, 0, detCache); if (det === 0) { // can not make transformer when and only when // any three of the markers are collinear. return; } // `invert(mA) * dest`, that is, `adj(mA) / det * dest`. var vh = []; for (var i = 0; i < 8; i++) { for (var j = 0; j < 8; j++) { vh[j] == null && (vh[j] = 0); vh[j] += ((i + j) % 2 ? -1 : 1) * // det(subMatrix(i, j)) determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache) / det * dest[i]; } } return function (out, srcPointX, srcPointY) { var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1; out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk; out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk; }; } exports.buildTransformer = buildTransformer; /***/ }), /* 411 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/GestureMgr.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var eventUtil = __webpack_require__(/*! ./event */ 408); /** * Only implements needed gestures for mobile. */ var GestureMgr = function GestureMgr() { /** * @private * @type {Array.} */ this._track = []; }; GestureMgr.prototype = { constructor: GestureMgr, recognize: function recognize(event, target, root) { this._doTrack(event, target, root); return this._recognize(event); }, clear: function clear() { this._track.length = 0; return this; }, _doTrack: function _doTrack(event, target, root) { var touches = event.touches; if (!touches) { return; } var trackItem = { points: [], touches: [], target: target, event: event }; for (var i = 0, len = touches.length; i < len; i++) { var touch = touches[i]; var pos = eventUtil.clientToLocal(root, touch, {}); trackItem.points.push([pos.zrX, pos.zrY]); trackItem.touches.push(touch); } this._track.push(trackItem); }, _recognize: function _recognize(event) { for (var eventName in recognizers) { if (recognizers.hasOwnProperty(eventName)) { var gestureInfo = recognizers[eventName](this._track, event); if (gestureInfo) { return gestureInfo; } } } } }; function dist(pointPair) { var dx = pointPair[1][0] - pointPair[0][0]; var dy = pointPair[1][1] - pointPair[0][1]; return Math.sqrt(dx * dx + dy * dy); } function center(pointPair) { return [(pointPair[0][0] + pointPair[1][0]) / 2, (pointPair[0][1] + pointPair[1][1]) / 2]; } var recognizers = { pinch: function pinch(track, event) { var trackLen = track.length; if (!trackLen) { return; } var pinchEnd = (track[trackLen - 1] || {}).points; var pinchPre = (track[trackLen - 2] || {}).points || pinchEnd; if (pinchPre && pinchPre.length > 1 && pinchEnd && pinchEnd.length > 1) { var pinchScale = dist(pinchEnd) / dist(pinchPre); !isFinite(pinchScale) && (pinchScale = 1); event.pinchScale = pinchScale; var pinchCenter = center(pinchEnd); event.pinchX = pinchCenter[0]; event.pinchY = pinchCenter[1]; return { type: 'pinch', target: track[0].target, event: event }; } } // Only pinch currently. }; var _default = GestureMgr; module.exports = _default; /***/ }), /* 412 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/Storage.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ./core/util */ 403); var env = __webpack_require__(/*! ./core/env */ 402); var Group = __webpack_require__(/*! ./container/Group */ 413); var timsort = __webpack_require__(/*! ./core/timsort */ 426); // Use timsort because in most case elements are partially sorted // https://jsfiddle.net/pissang/jr4x7mdm/8/ function shapeCompareFunc(a, b) { if (a.zlevel === b.zlevel) { if (a.z === b.z) { // if (a.z2 === b.z2) { // // FIXME Slow has renderidx compare // // http://stackoverflow.com/questions/20883421/sorting-in-javascript-should-every-compare-function-have-a-return-0-statement // // https://github.com/v8/v8/blob/47cce544a31ed5577ffe2963f67acb4144ee0232/src/js/array.js#L1012 // return a.__renderidx - b.__renderidx; // } return a.z2 - b.z2; } return a.z - b.z; } return a.zlevel - b.zlevel; } /** * 内容仓库 (M) * @alias module:zrender/Storage * @constructor */ var Storage = function Storage() { // jshint ignore:line this._roots = []; this._displayList = []; this._displayListLen = 0; }; Storage.prototype = { constructor: Storage, /** * @param {Function} cb * */ traverse: function traverse(cb, context) { for (var i = 0; i < this._roots.length; i++) { this._roots[i].traverse(cb, context); } }, /** * 返回所有图形的绘制队列 * @param {boolean} [update=false] 是否在返回前更新该数组 * @param {boolean} [includeIgnore=false] 是否包含 ignore 的数组, 在 update 为 true 的时候有效 * * 详见{@link module:zrender/graphic/Displayable.prototype.updateDisplayList} * @return {Array.} */ getDisplayList: function getDisplayList(update, includeIgnore) { includeIgnore = includeIgnore || false; if (update) { this.updateDisplayList(includeIgnore); } return this._displayList; }, /** * 更新图形的绘制队列。 * 每次绘制前都会调用,该方法会先深度优先遍历整个树,更新所有Group和Shape的变换并且把所有可见的Shape保存到数组中, * 最后根据绘制的优先级(zlevel > z > 插入顺序)排序得到绘制队列 * @param {boolean} [includeIgnore=false] 是否包含 ignore 的数组 */ updateDisplayList: function updateDisplayList(includeIgnore) { this._displayListLen = 0; var roots = this._roots; var displayList = this._displayList; for (var i = 0, len = roots.length; i < len; i++) { this._updateAndAddDisplayable(roots[i], null, includeIgnore); } displayList.length = this._displayListLen; env.canvasSupported && timsort(displayList, shapeCompareFunc); }, _updateAndAddDisplayable: function _updateAndAddDisplayable(el, clipPaths, includeIgnore) { if (el.ignore && !includeIgnore) { return; } el.beforeUpdate(); if (el.__dirty) { el.update(); } el.afterUpdate(); var userSetClipPath = el.clipPath; if (userSetClipPath) { // FIXME 效率影响 if (clipPaths) { clipPaths = clipPaths.slice(); } else { clipPaths = []; } var currentClipPath = userSetClipPath; var parentClipPath = el; // Recursively add clip path while (currentClipPath) { // clipPath 的变换是基于使用这个 clipPath 的元素 currentClipPath.parent = parentClipPath; currentClipPath.updateTransform(); clipPaths.push(currentClipPath); parentClipPath = currentClipPath; currentClipPath = currentClipPath.clipPath; } } if (el.isGroup) { var children = el._children; for (var i = 0; i < children.length; i++) { var child = children[i]; // Force to mark as dirty if group is dirty // FIXME __dirtyPath ? if (el.__dirty) { child.__dirty = true; } this._updateAndAddDisplayable(child, clipPaths, includeIgnore); } // Mark group clean here el.__dirty = false; } else { el.__clipPaths = clipPaths; this._displayList[this._displayListLen++] = el; } }, /** * 添加图形(Shape)或者组(Group)到根节点 * @param {module:zrender/Element} el */ addRoot: function addRoot(el) { if (el.__storage === this) { return; } if (el instanceof Group) { el.addChildrenToStorage(this); } this.addToStorage(el); this._roots.push(el); }, /** * 删除指定的图形(Shape)或者组(Group) * @param {string|Array.} [el] 如果为空清空整个Storage */ delRoot: function delRoot(el) { if (el == null) { // 不指定el清空 for (var i = 0; i < this._roots.length; i++) { var root = this._roots[i]; if (root instanceof Group) { root.delChildrenFromStorage(this); } } this._roots = []; this._displayList = []; this._displayListLen = 0; return; } if (el instanceof Array) { for (var i = 0, l = el.length; i < l; i++) { this.delRoot(el[i]); } return; } var idx = util.indexOf(this._roots, el); if (idx >= 0) { this.delFromStorage(el); this._roots.splice(idx, 1); if (el instanceof Group) { el.delChildrenFromStorage(this); } } }, addToStorage: function addToStorage(el) { if (el) { el.__storage = this; el.dirty(false); } return this; }, delFromStorage: function delFromStorage(el) { if (el) { el.__storage = null; } return this; }, /** * 清空并且释放Storage */ dispose: function dispose() { this._renderList = this._roots = null; }, displayableSortFunc: shapeCompareFunc }; var _default = Storage; module.exports = _default; /***/ }), /* 413 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/container/Group.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var zrUtil = __webpack_require__(/*! ../core/util */ 403); var Element = __webpack_require__(/*! ../Element */ 414); var BoundingRect = __webpack_require__(/*! ../core/BoundingRect */ 425); /** * Group是一个容器,可以插入子节点,Group的变换也会被应用到子节点上 * @module zrender/graphic/Group * @example * var Group = require('zrender/container/Group'); * var Circle = require('zrender/graphic/shape/Circle'); * var g = new Group(); * g.position[0] = 100; * g.position[1] = 100; * g.add(new Circle({ * style: { * x: 100, * y: 100, * r: 20, * } * })); * zr.add(g); */ /** * @alias module:zrender/graphic/Group * @constructor * @extends module:zrender/mixin/Transformable * @extends module:zrender/mixin/Eventful */ var Group = function Group(opts) { opts = opts || {}; Element.call(this, opts); for (var key in opts) { if (opts.hasOwnProperty(key)) { this[key] = opts[key]; } } this._children = []; this.__storage = null; this.__dirty = true; }; Group.prototype = { constructor: Group, isGroup: true, /** * @type {string} */ type: 'group', /** * 所有子孙元素是否响应鼠标事件 * @name module:/zrender/container/Group#silent * @type {boolean} * @default false */ silent: false, /** * @return {Array.} */ children: function children() { return this._children.slice(); }, /** * 获取指定 index 的儿子节点 * @param {number} idx * @return {module:zrender/Element} */ childAt: function childAt(idx) { return this._children[idx]; }, /** * 获取指定名字的儿子节点 * @param {string} name * @return {module:zrender/Element} */ childOfName: function childOfName(name) { var children = this._children; for (var i = 0; i < children.length; i++) { if (children[i].name === name) { return children[i]; } } }, /** * @return {number} */ childCount: function childCount() { return this._children.length; }, /** * 添加子节点到最后 * @param {module:zrender/Element} child */ add: function add(child) { if (child && child !== this && child.parent !== this) { this._children.push(child); this._doAdd(child); } return this; }, /** * 添加子节点在 nextSibling 之前 * @param {module:zrender/Element} child * @param {module:zrender/Element} nextSibling */ addBefore: function addBefore(child, nextSibling) { if (child && child !== this && child.parent !== this && nextSibling && nextSibling.parent === this) { var children = this._children; var idx = children.indexOf(nextSibling); if (idx >= 0) { children.splice(idx, 0, child); this._doAdd(child); } } return this; }, _doAdd: function _doAdd(child) { if (child.parent) { child.parent.remove(child); } child.parent = this; var storage = this.__storage; var zr = this.__zr; if (storage && storage !== child.__storage) { storage.addToStorage(child); if (child instanceof Group) { child.addChildrenToStorage(storage); } } zr && zr.refresh(); }, /** * 移除子节点 * @param {module:zrender/Element} child */ remove: function remove(child) { var zr = this.__zr; var storage = this.__storage; var children = this._children; var idx = zrUtil.indexOf(children, child); if (idx < 0) { return this; } children.splice(idx, 1); child.parent = null; if (storage) { storage.delFromStorage(child); if (child instanceof Group) { child.delChildrenFromStorage(storage); } } zr && zr.refresh(); return this; }, /** * 移除所有子节点 */ removeAll: function removeAll() { var children = this._children; var storage = this.__storage; var child; var i; for (i = 0; i < children.length; i++) { child = children[i]; if (storage) { storage.delFromStorage(child); if (child instanceof Group) { child.delChildrenFromStorage(storage); } } child.parent = null; } children.length = 0; return this; }, /** * 遍历所有子节点 * @param {Function} cb * @param {} context */ eachChild: function eachChild(cb, context) { var children = this._children; for (var i = 0; i < children.length; i++) { var child = children[i]; cb.call(context, child, i); } return this; }, /** * 深度优先遍历所有子孙节点 * @param {Function} cb * @param {} context */ traverse: function traverse(cb, context) { for (var i = 0; i < this._children.length; i++) { var child = this._children[i]; cb.call(context, child); if (child.type === 'group') { child.traverse(cb, context); } } return this; }, addChildrenToStorage: function addChildrenToStorage(storage) { for (var i = 0; i < this._children.length; i++) { var child = this._children[i]; storage.addToStorage(child); if (child instanceof Group) { child.addChildrenToStorage(storage); } } }, delChildrenFromStorage: function delChildrenFromStorage(storage) { for (var i = 0; i < this._children.length; i++) { var child = this._children[i]; storage.delFromStorage(child); if (child instanceof Group) { child.delChildrenFromStorage(storage); } } }, dirty: function dirty() { this.__dirty = true; this.__zr && this.__zr.refresh(); return this; }, /** * @return {module:zrender/core/BoundingRect} */ getBoundingRect: function getBoundingRect(includeChildren) { // TODO Caching var rect = null; var tmpRect = new BoundingRect(0, 0, 0, 0); var children = includeChildren || this._children; var tmpMat = []; for (var i = 0; i < children.length; i++) { var child = children[i]; if (child.ignore || child.invisible) { continue; } var childRect = child.getBoundingRect(); var transform = child.getLocalTransform(tmpMat); // TODO // The boundingRect cacluated by transforming original // rect may be bigger than the actual bundingRect when rotation // is used. (Consider a circle rotated aginst its center, where // the actual boundingRect should be the same as that not be // rotated.) But we can not find better approach to calculate // actual boundingRect yet, considering performance. if (transform) { tmpRect.copy(childRect); tmpRect.applyTransform(transform); rect = rect || tmpRect.clone(); rect.union(tmpRect); } else { rect = rect || childRect.clone(); rect.union(childRect); } } return rect || tmpRect; } }; zrUtil.inherits(Group, Element); var _default = Group; module.exports = _default; /***/ }), /* 414 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/Element.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var guid = __webpack_require__(/*! ./core/guid */ 401); var Eventful = __webpack_require__(/*! ./mixin/Eventful */ 407); var Transformable = __webpack_require__(/*! ./mixin/Transformable */ 415); var Animatable = __webpack_require__(/*! ./mixin/Animatable */ 417); var zrUtil = __webpack_require__(/*! ./core/util */ 403); /** * @alias module:zrender/Element * @constructor * @extends {module:zrender/mixin/Animatable} * @extends {module:zrender/mixin/Transformable} * @extends {module:zrender/mixin/Eventful} */ var Element = function Element(opts) { // jshint ignore:line Transformable.call(this, opts); Eventful.call(this, opts); Animatable.call(this, opts); /** * 画布元素ID * @type {string} */ this.id = opts.id || guid(); }; Element.prototype = { /** * 元素类型 * Element type * @type {string} */ type: 'element', /** * 元素名字 * Element name * @type {string} */ name: '', /** * ZRender 实例对象,会在 element 添加到 zrender 实例中后自动赋值 * ZRender instance will be assigned when element is associated with zrender * @name module:/zrender/Element#__zr * @type {module:zrender/ZRender} */ __zr: null, /** * 图形是否忽略,为true时忽略图形的绘制以及事件触发 * If ignore drawing and events of the element object * @name module:/zrender/Element#ignore * @type {boolean} * @default false */ ignore: false, /** * 用于裁剪的路径(shape),所有 Group 内的路径在绘制时都会被这个路径裁剪 * 该路径会继承被裁减对象的变换 * @type {module:zrender/graphic/Path} * @see http://www.w3.org/TR/2dcontext/#clipping-region * @readOnly */ clipPath: null, /** * 是否是 Group * @type {boolean} */ isGroup: false, /** * Drift element * @param {number} dx dx on the global space * @param {number} dy dy on the global space */ drift: function drift(dx, dy) { switch (this.draggable) { case 'horizontal': dy = 0; break; case 'vertical': dx = 0; break; } var m = this.transform; if (!m) { m = this.transform = [1, 0, 0, 1, 0, 0]; } m[4] += dx; m[5] += dy; this.decomposeTransform(); this.dirty(false); }, /** * Hook before update */ beforeUpdate: function beforeUpdate() {}, /** * Hook after update */ afterUpdate: function afterUpdate() {}, /** * Update each frame */ update: function update() { this.updateTransform(); }, /** * @param {Function} cb * @param {} context */ traverse: function traverse(cb, context) {}, /** * @protected */ attrKV: function attrKV(key, value) { if (key === 'position' || key === 'scale' || key === 'origin') { // Copy the array if (value) { var target = this[key]; if (!target) { target = this[key] = []; } target[0] = value[0]; target[1] = value[1]; } } else { this[key] = value; } }, /** * Hide the element */ hide: function hide() { this.ignore = true; this.__zr && this.__zr.refresh(); }, /** * Show the element */ show: function show() { this.ignore = false; this.__zr && this.__zr.refresh(); }, /** * @param {string|Object} key * @param {*} value */ attr: function attr(key, value) { if (typeof key === 'string') { this.attrKV(key, value); } else if (zrUtil.isObject(key)) { for (var name in key) { if (key.hasOwnProperty(name)) { this.attrKV(name, key[name]); } } } this.dirty(false); return this; }, /** * @param {module:zrender/graphic/Path} clipPath */ setClipPath: function setClipPath(clipPath) { var zr = this.__zr; if (zr) { clipPath.addSelfToZr(zr); } // Remove previous clip path if (this.clipPath && this.clipPath !== clipPath) { this.removeClipPath(); } this.clipPath = clipPath; clipPath.__zr = zr; clipPath.__clipTarget = this; this.dirty(false); }, /** */ removeClipPath: function removeClipPath() { var clipPath = this.clipPath; if (clipPath) { if (clipPath.__zr) { clipPath.removeSelfFromZr(clipPath.__zr); } clipPath.__zr = null; clipPath.__clipTarget = null; this.clipPath = null; this.dirty(false); } }, /** * Add self from zrender instance. * Not recursively because it will be invoked when element added to storage. * @param {module:zrender/ZRender} zr */ addSelfToZr: function addSelfToZr(zr) { this.__zr = zr; // 添加动画 var animators = this.animators; if (animators) { for (var i = 0; i < animators.length; i++) { zr.animation.addAnimator(animators[i]); } } if (this.clipPath) { this.clipPath.addSelfToZr(zr); } }, /** * Remove self from zrender instance. * Not recursively because it will be invoked when element added to storage. * @param {module:zrender/ZRender} zr */ removeSelfFromZr: function removeSelfFromZr(zr) { this.__zr = null; // 移除动画 var animators = this.animators; if (animators) { for (var i = 0; i < animators.length; i++) { zr.animation.removeAnimator(animators[i]); } } if (this.clipPath) { this.clipPath.removeSelfFromZr(zr); } } }; zrUtil.mixin(Element, Animatable); zrUtil.mixin(Element, Transformable); zrUtil.mixin(Element, Eventful); var _default = Element; module.exports = _default; /***/ }), /* 415 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/mixin/Transformable.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var matrix = __webpack_require__(/*! ../core/matrix */ 416); var vector = __webpack_require__(/*! ../core/vector */ 405); /** * 提供变换扩展 * @module zrender/mixin/Transformable * @author pissang (https://www.github.com/pissang) */ var mIdentity = matrix.identity; var EPSILON = 5e-5; function isNotAroundZero(val) { return val > EPSILON || val < -EPSILON; } /** * @alias module:zrender/mixin/Transformable * @constructor */ var Transformable = function Transformable(opts) { opts = opts || {}; // If there are no given position, rotation, scale if (!opts.position) { /** * 平移 * @type {Array.} * @default [0, 0] */ this.position = [0, 0]; } if (opts.rotation == null) { /** * 旋转 * @type {Array.} * @default 0 */ this.rotation = 0; } if (!opts.scale) { /** * 缩放 * @type {Array.} * @default [1, 1] */ this.scale = [1, 1]; } /** * 旋转和缩放的原点 * @type {Array.} * @default null */ this.origin = this.origin || null; }; var transformableProto = Transformable.prototype; transformableProto.transform = null; /** * 判断是否需要有坐标变换 * 如果有坐标变换, 则从position, rotation, scale以及父节点的transform计算出自身的transform矩阵 */ transformableProto.needLocalTransform = function () { return isNotAroundZero(this.rotation) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1); }; var scaleTmp = []; transformableProto.updateTransform = function () { var parent = this.parent; var parentHasTransform = parent && parent.transform; var needLocalTransform = this.needLocalTransform(); var m = this.transform; if (!(needLocalTransform || parentHasTransform)) { m && mIdentity(m); return; } m = m || matrix.create(); if (needLocalTransform) { this.getLocalTransform(m); } else { mIdentity(m); } // 应用父节点变换 if (parentHasTransform) { if (needLocalTransform) { matrix.mul(m, parent.transform, m); } else { matrix.copy(m, parent.transform); } } // 保存这个变换矩阵 this.transform = m; var globalScaleRatio = this.globalScaleRatio; if (globalScaleRatio != null && globalScaleRatio !== 1) { this.getGlobalScale(scaleTmp); var relX = scaleTmp[0] < 0 ? -1 : 1; var relY = scaleTmp[1] < 0 ? -1 : 1; var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0; var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0; m[0] *= sx; m[1] *= sx; m[2] *= sy; m[3] *= sy; } this.invTransform = this.invTransform || matrix.create(); matrix.invert(this.invTransform, m); }; transformableProto.getLocalTransform = function (m) { return Transformable.getLocalTransform(this, m); }; /** * 将自己的transform应用到context上 * @param {CanvasRenderingContext2D} ctx */ transformableProto.setTransform = function (ctx) { var m = this.transform; var dpr = ctx.dpr || 1; if (m) { ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]); } else { ctx.setTransform(dpr, 0, 0, dpr, 0, 0); } }; transformableProto.restoreTransform = function (ctx) { var dpr = ctx.dpr || 1; ctx.setTransform(dpr, 0, 0, dpr, 0, 0); }; var tmpTransform = []; var originTransform = matrix.create(); transformableProto.setLocalTransform = function (m) { if (!m) { // TODO return or set identity? return; } var sx = m[0] * m[0] + m[1] * m[1]; var sy = m[2] * m[2] + m[3] * m[3]; var position = this.position; var scale = this.scale; if (isNotAroundZero(sx - 1)) { sx = Math.sqrt(sx); } if (isNotAroundZero(sy - 1)) { sy = Math.sqrt(sy); } if (m[0] < 0) { sx = -sx; } if (m[3] < 0) { sy = -sy; } position[0] = m[4]; position[1] = m[5]; scale[0] = sx; scale[1] = sy; this.rotation = Math.atan2(-m[1] / sy, m[0] / sx); }; /** * 分解`transform`矩阵到`position`, `rotation`, `scale` */ transformableProto.decomposeTransform = function () { if (!this.transform) { return; } var parent = this.parent; var m = this.transform; if (parent && parent.transform) { // Get local transform and decompose them to position, scale, rotation matrix.mul(tmpTransform, parent.invTransform, m); m = tmpTransform; } var origin = this.origin; if (origin && (origin[0] || origin[1])) { originTransform[4] = origin[0]; originTransform[5] = origin[1]; matrix.mul(tmpTransform, m, originTransform); tmpTransform[4] -= origin[0]; tmpTransform[5] -= origin[1]; m = tmpTransform; } this.setLocalTransform(m); }; /** * Get global scale * @return {Array.} */ transformableProto.getGlobalScale = function (out) { var m = this.transform; out = out || []; if (!m) { out[0] = 1; out[1] = 1; return out; } out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]); out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]); if (m[0] < 0) { out[0] = -out[0]; } if (m[3] < 0) { out[1] = -out[1]; } return out; }; /** * 变换坐标位置到 shape 的局部坐标空间 * @method * @param {number} x * @param {number} y * @return {Array.} */ transformableProto.transformCoordToLocal = function (x, y) { var v2 = [x, y]; var invTransform = this.invTransform; if (invTransform) { vector.applyTransform(v2, v2, invTransform); } return v2; }; /** * 变换局部坐标位置到全局坐标空间 * @method * @param {number} x * @param {number} y * @return {Array.} */ transformableProto.transformCoordToGlobal = function (x, y) { var v2 = [x, y]; var transform = this.transform; if (transform) { vector.applyTransform(v2, v2, transform); } return v2; }; /** * @static * @param {Object} target * @param {Array.} target.origin * @param {number} target.rotation * @param {Array.} target.position * @param {Array.} [m] */ Transformable.getLocalTransform = function (target, m) { m = m || []; mIdentity(m); var origin = target.origin; var scale = target.scale || [1, 1]; var rotation = target.rotation || 0; var position = target.position || [0, 0]; if (origin) { // Translate to origin m[4] -= origin[0]; m[5] -= origin[1]; } matrix.scale(m, m, scale); if (rotation) { matrix.rotate(m, m, rotation); } if (origin) { // Translate back from origin m[4] += origin[0]; m[5] += origin[1]; } m[4] += position[0]; m[5] += position[1]; return m; }; var _default = Transformable; module.exports = _default; /***/ }), /* 416 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/matrix.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * 3x2矩阵操作类 * @exports zrender/tool/matrix */ /* global Float32Array */ var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; /** * Create a identity matrix. * @return {Float32Array|Array.} */ function create() { var out = new ArrayCtor(6); identity(out); return out; } /** * 设置矩阵为单位矩阵 * @param {Float32Array|Array.} out */ function identity(out) { out[0] = 1; out[1] = 0; out[2] = 0; out[3] = 1; out[4] = 0; out[5] = 0; return out; } /** * 复制矩阵 * @param {Float32Array|Array.} out * @param {Float32Array|Array.} m */ function copy(out, m) { out[0] = m[0]; out[1] = m[1]; out[2] = m[2]; out[3] = m[3]; out[4] = m[4]; out[5] = m[5]; return out; } /** * 矩阵相乘 * @param {Float32Array|Array.} out * @param {Float32Array|Array.} m1 * @param {Float32Array|Array.} m2 */ function mul(out, m1, m2) { // Consider matrix.mul(m, m2, m); // where out is the same as m2. // So use temp variable to escape error. var out0 = m1[0] * m2[0] + m1[2] * m2[1]; var out1 = m1[1] * m2[0] + m1[3] * m2[1]; var out2 = m1[0] * m2[2] + m1[2] * m2[3]; var out3 = m1[1] * m2[2] + m1[3] * m2[3]; var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4]; var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5]; out[0] = out0; out[1] = out1; out[2] = out2; out[3] = out3; out[4] = out4; out[5] = out5; return out; } /** * 平移变换 * @param {Float32Array|Array.} out * @param {Float32Array|Array.} a * @param {Float32Array|Array.} v */ function translate(out, a, v) { out[0] = a[0]; out[1] = a[1]; out[2] = a[2]; out[3] = a[3]; out[4] = a[4] + v[0]; out[5] = a[5] + v[1]; return out; } /** * 旋转变换 * @param {Float32Array|Array.} out * @param {Float32Array|Array.} a * @param {number} rad */ function rotate(out, a, rad) { var aa = a[0]; var ac = a[2]; var atx = a[4]; var ab = a[1]; var ad = a[3]; var aty = a[5]; var st = Math.sin(rad); var ct = Math.cos(rad); out[0] = aa * ct + ab * st; out[1] = -aa * st + ab * ct; out[2] = ac * ct + ad * st; out[3] = -ac * st + ct * ad; out[4] = ct * atx + st * aty; out[5] = ct * aty - st * atx; return out; } /** * 缩放变换 * @param {Float32Array|Array.} out * @param {Float32Array|Array.} a * @param {Float32Array|Array.} v */ function scale(out, a, v) { var vx = v[0]; var vy = v[1]; out[0] = a[0] * vx; out[1] = a[1] * vy; out[2] = a[2] * vx; out[3] = a[3] * vy; out[4] = a[4] * vx; out[5] = a[5] * vy; return out; } /** * 求逆矩阵 * @param {Float32Array|Array.} out * @param {Float32Array|Array.} a */ function invert(out, a) { var aa = a[0]; var ac = a[2]; var atx = a[4]; var ab = a[1]; var ad = a[3]; var aty = a[5]; var det = aa * ad - ab * ac; if (!det) { return null; } det = 1.0 / det; out[0] = ad * det; out[1] = -ab * det; out[2] = -ac * det; out[3] = aa * det; out[4] = (ac * aty - ad * atx) * det; out[5] = (ab * atx - aa * aty) * det; return out; } /** * Clone a new matrix. * @param {Float32Array|Array.} a */ function clone(a) { var b = create(); copy(b, a); return b; } exports.create = create; exports.identity = identity; exports.copy = copy; exports.mul = mul; exports.translate = translate; exports.rotate = rotate; exports.scale = scale; exports.invert = invert; exports.clone = clone; /***/ }), /* 417 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/mixin/Animatable.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Animator = __webpack_require__(/*! ../animation/Animator */ 418); var logError = __webpack_require__(/*! ../core/log */ 423); var _util = __webpack_require__(/*! ../core/util */ 403); var isString = _util.isString; var isFunction = _util.isFunction; var isObject = _util.isObject; var isArrayLike = _util.isArrayLike; var indexOf = _util.indexOf; /** * @alias module:zrender/mixin/Animatable * @constructor */ var Animatable = function Animatable() { /** * @type {Array.} * @readOnly */ this.animators = []; }; Animatable.prototype = { constructor: Animatable, /** * 动画 * * @param {string} path The path to fetch value from object, like 'a.b.c'. * @param {boolean} [loop] Whether to loop animation. * @return {module:zrender/animation/Animator} * @example: * el.animate('style', false) * .when(1000, {x: 10} ) * .done(function(){ // Animation done }) * .start() */ animate: function animate(path, loop) { var target; var animatingShape = false; var el = this; var zr = this.__zr; if (path) { var pathSplitted = path.split('.'); var prop = el; // If animating shape animatingShape = pathSplitted[0] === 'shape'; for (var i = 0, l = pathSplitted.length; i < l; i++) { if (!prop) { continue; } prop = prop[pathSplitted[i]]; } if (prop) { target = prop; } } else { target = el; } if (!target) { logError('Property "' + path + '" is not existed in element ' + el.id); return; } var animators = el.animators; var animator = new Animator(target, loop); animator.during(function (target) { el.dirty(animatingShape); }).done(function () { // FIXME Animator will not be removed if use `Animator#stop` to stop animation animators.splice(indexOf(animators, animator), 1); }); animators.push(animator); // If animate after added to the zrender if (zr) { zr.animation.addAnimator(animator); } return animator; }, /** * 停止动画 * @param {boolean} forwardToLast If move to last frame before stop */ stopAnimation: function stopAnimation(forwardToLast) { var animators = this.animators; var len = animators.length; for (var i = 0; i < len; i++) { animators[i].stop(forwardToLast); } animators.length = 0; return this; }, /** * Caution: this method will stop previous animation. * So do not use this method to one element twice before * animation starts, unless you know what you are doing. * @param {Object} target * @param {number} [time=500] Time in ms * @param {string} [easing='linear'] * @param {number} [delay=0] * @param {Function} [callback] * @param {Function} [forceAnimate] Prevent stop animation and callback * immediently when target values are the same as current values. * * @example * // Animate position * el.animateTo({ * position: [10, 10] * }, function () { // done }) * * // Animate shape, style and position in 100ms, delayed 100ms, with cubicOut easing * el.animateTo({ * shape: { * width: 500 * }, * style: { * fill: 'red' * } * position: [10, 10] * }, 100, 100, 'cubicOut', function () { // done }) */ // TODO Return animation key animateTo: function animateTo(target, time, delay, easing, callback, forceAnimate) { _animateTo(this, target, time, delay, easing, callback, forceAnimate); }, /** * Animate from the target state to current state. * The params and the return value are the same as `this.animateTo`. */ animateFrom: function animateFrom(target, time, delay, easing, callback, forceAnimate) { _animateTo(this, target, time, delay, easing, callback, forceAnimate, true); } }; function _animateTo(animatable, target, time, delay, easing, callback, forceAnimate, reverse) { // animateTo(target, time, easing, callback); if (isString(delay)) { callback = easing; easing = delay; delay = 0; } // animateTo(target, time, delay, callback); else if (isFunction(easing)) { callback = easing; easing = 'linear'; delay = 0; } // animateTo(target, time, callback); else if (isFunction(delay)) { callback = delay; delay = 0; } // animateTo(target, callback) else if (isFunction(time)) { callback = time; time = 500; } // animateTo(target) else if (!time) { time = 500; } // Stop all previous animations animatable.stopAnimation(); animateToShallow(animatable, '', animatable, target, time, delay, reverse); // Animators may be removed immediately after start // if there is nothing to animate var animators = animatable.animators.slice(); var count = animators.length; function done() { count--; if (!count) { callback && callback(); } } // No animators. This should be checked before animators[i].start(), // because 'done' may be executed immediately if no need to animate. if (!count) { callback && callback(); } // Start after all animators created // Incase any animator is done immediately when all animation properties are not changed for (var i = 0; i < animators.length; i++) { animators[i].done(done).start(easing, forceAnimate); } } /** * @param {string} path='' * @param {Object} source=animatable * @param {Object} target * @param {number} [time=500] * @param {number} [delay=0] * @param {boolean} [reverse] If `true`, animate * from the `target` to current state. * * @example * // Animate position * el._animateToShallow({ * position: [10, 10] * }) * * // Animate shape, style and position in 100ms, delayed 100ms * el._animateToShallow({ * shape: { * width: 500 * }, * style: { * fill: 'red' * } * position: [10, 10] * }, 100, 100) */ function animateToShallow(animatable, path, source, target, time, delay, reverse) { var objShallow = {}; var propertyCount = 0; for (var name in target) { if (!target.hasOwnProperty(name)) { continue; } if (source[name] != null) { if (isObject(target[name]) && !isArrayLike(target[name])) { animateToShallow(animatable, path ? path + '.' + name : name, source[name], target[name], time, delay, reverse); } else { if (reverse) { objShallow[name] = source[name]; setAttrByPath(animatable, path, name, target[name]); } else { objShallow[name] = target[name]; } propertyCount++; } } else if (target[name] != null && !reverse) { setAttrByPath(animatable, path, name, target[name]); } } if (propertyCount > 0) { animatable.animate(path, false).when(time == null ? 500 : time, objShallow).delay(delay || 0); } } function setAttrByPath(el, path, name, value) { // Attr directly if not has property // FIXME, if some property not needed for element ? if (!path) { el.attr(name, value); } else { // Only support set shape or style var props = {}; props[path] = {}; props[path][name] = value; el.attr(props); } } var _default = Animatable; module.exports = _default; /***/ }), /* 418 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/animation/Animator.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Clip = __webpack_require__(/*! ./Clip */ 419); var color = __webpack_require__(/*! ../tool/color */ 421); var _util = __webpack_require__(/*! ../core/util */ 403); var isArrayLike = _util.isArrayLike; /** * @module echarts/animation/Animator */ var arraySlice = Array.prototype.slice; function defaultGetter(target, key) { return target[key]; } function defaultSetter(target, key, value) { target[key] = value; } /** * @param {number} p0 * @param {number} p1 * @param {number} percent * @return {number} */ function interpolateNumber(p0, p1, percent) { return (p1 - p0) * percent + p0; } /** * @param {string} p0 * @param {string} p1 * @param {number} percent * @return {string} */ function interpolateString(p0, p1, percent) { return percent > 0.5 ? p1 : p0; } /** * @param {Array} p0 * @param {Array} p1 * @param {number} percent * @param {Array} out * @param {number} arrDim */ function interpolateArray(p0, p1, percent, out, arrDim) { var len = p0.length; if (arrDim === 1) { for (var i = 0; i < len; i++) { out[i] = interpolateNumber(p0[i], p1[i], percent); } } else { var len2 = len && p0[0].length; for (var i = 0; i < len; i++) { for (var j = 0; j < len2; j++) { out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent); } } } } // arr0 is source array, arr1 is target array. // Do some preprocess to avoid error happened when interpolating from arr0 to arr1 function fillArr(arr0, arr1, arrDim) { var arr0Len = arr0.length; var arr1Len = arr1.length; if (arr0Len !== arr1Len) { // FIXME Not work for TypedArray var isPreviousLarger = arr0Len > arr1Len; if (isPreviousLarger) { // Cut the previous arr0.length = arr1Len; } else { // Fill the previous for (var i = arr0Len; i < arr1Len; i++) { arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i])); } } } // Handling NaN value var len2 = arr0[0] && arr0[0].length; for (var i = 0; i < arr0.length; i++) { if (arrDim === 1) { if (isNaN(arr0[i])) { arr0[i] = arr1[i]; } } else { for (var j = 0; j < len2; j++) { if (isNaN(arr0[i][j])) { arr0[i][j] = arr1[i][j]; } } } } } /** * @param {Array} arr0 * @param {Array} arr1 * @param {number} arrDim * @return {boolean} */ function isArraySame(arr0, arr1, arrDim) { if (arr0 === arr1) { return true; } var len = arr0.length; if (len !== arr1.length) { return false; } if (arrDim === 1) { for (var i = 0; i < len; i++) { if (arr0[i] !== arr1[i]) { return false; } } } else { var len2 = arr0[0].length; for (var i = 0; i < len; i++) { for (var j = 0; j < len2; j++) { if (arr0[i][j] !== arr1[i][j]) { return false; } } } } return true; } /** * Catmull Rom interpolate array * @param {Array} p0 * @param {Array} p1 * @param {Array} p2 * @param {Array} p3 * @param {number} t * @param {number} t2 * @param {number} t3 * @param {Array} out * @param {number} arrDim */ function catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) { var len = p0.length; if (arrDim === 1) { for (var i = 0; i < len; i++) { out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3); } } else { var len2 = p0[0].length; for (var i = 0; i < len; i++) { for (var j = 0; j < len2; j++) { out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3); } } } } /** * Catmull Rom interpolate number * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} p3 * @param {number} t * @param {number} t2 * @param {number} t3 * @return {number} */ function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) { var v0 = (p2 - p0) * 0.5; var v1 = (p3 - p1) * 0.5; return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; } function cloneValue(value) { if (isArrayLike(value)) { var len = value.length; if (isArrayLike(value[0])) { var ret = []; for (var i = 0; i < len; i++) { ret.push(arraySlice.call(value[i])); } return ret; } return arraySlice.call(value); } return value; } function rgba2String(rgba) { rgba[0] = Math.floor(rgba[0]); rgba[1] = Math.floor(rgba[1]); rgba[2] = Math.floor(rgba[2]); return 'rgba(' + rgba.join(',') + ')'; } function getArrayDim(keyframes) { var lastValue = keyframes[keyframes.length - 1].value; return isArrayLike(lastValue && lastValue[0]) ? 2 : 1; } function createTrackClip(animator, easing, oneTrackDone, keyframes, propName, forceAnimate) { var getter = animator._getter; var setter = animator._setter; var useSpline = easing === 'spline'; var trackLen = keyframes.length; if (!trackLen) { return; } // Guess data type var firstVal = keyframes[0].value; var isValueArray = isArrayLike(firstVal); var isValueColor = false; var isValueString = false; // For vertices morphing var arrDim = isValueArray ? getArrayDim(keyframes) : 0; var trackMaxTime; // Sort keyframe as ascending keyframes.sort(function (a, b) { return a.time - b.time; }); trackMaxTime = keyframes[trackLen - 1].time; // Percents of each keyframe var kfPercents = []; // Value of each keyframe var kfValues = []; var prevValue = keyframes[0].value; var isAllValueEqual = true; for (var i = 0; i < trackLen; i++) { kfPercents.push(keyframes[i].time / trackMaxTime); // Assume value is a color when it is a string var value = keyframes[i].value; // Check if value is equal, deep check if value is array if (!(isValueArray && isArraySame(value, prevValue, arrDim) || !isValueArray && value === prevValue)) { isAllValueEqual = false; } prevValue = value; // Try converting a string to a color array if (typeof value === 'string') { var colorArray = color.parse(value); if (colorArray) { value = colorArray; isValueColor = true; } else { isValueString = true; } } kfValues.push(value); } if (!forceAnimate && isAllValueEqual) { return; } var lastValue = kfValues[trackLen - 1]; // Polyfill array and NaN value for (var i = 0; i < trackLen - 1; i++) { if (isValueArray) { fillArr(kfValues[i], lastValue, arrDim); } else { if (isNaN(kfValues[i]) && !isNaN(lastValue) && !isValueString && !isValueColor) { kfValues[i] = lastValue; } } } isValueArray && fillArr(getter(animator._target, propName), lastValue, arrDim); // Cache the key of last frame to speed up when // animation playback is sequency var lastFrame = 0; var lastFramePercent = 0; var start; var w; var p0; var p1; var p2; var p3; if (isValueColor) { var rgba = [0, 0, 0, 0]; } var onframe = function onframe(target, percent) { // Find the range keyframes // kf1-----kf2---------current--------kf3 // find kf2 and kf3 and do interpolation var frame; // In the easing function like elasticOut, percent may less than 0 if (percent < 0) { frame = 0; } else if (percent < lastFramePercent) { // Start from next key // PENDING start from lastFrame ? start = Math.min(lastFrame + 1, trackLen - 1); for (frame = start; frame >= 0; frame--) { if (kfPercents[frame] <= percent) { break; } } // PENDING really need to do this ? frame = Math.min(frame, trackLen - 2); } else { for (frame = lastFrame; frame < trackLen; frame++) { if (kfPercents[frame] > percent) { break; } } frame = Math.min(frame - 1, trackLen - 2); } lastFrame = frame; lastFramePercent = percent; var range = kfPercents[frame + 1] - kfPercents[frame]; if (range === 0) { return; } else { w = (percent - kfPercents[frame]) / range; } if (useSpline) { p1 = kfValues[frame]; p0 = kfValues[frame === 0 ? frame : frame - 1]; p2 = kfValues[frame > trackLen - 2 ? trackLen - 1 : frame + 1]; p3 = kfValues[frame > trackLen - 3 ? trackLen - 1 : frame + 2]; if (isValueArray) { catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim); } else { var value; if (isValueColor) { value = catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1); value = rgba2String(rgba); } else if (isValueString) { // String is step(0.5) return interpolateString(p1, p2, w); } else { value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w); } setter(target, propName, value); } } else { if (isValueArray) { interpolateArray(kfValues[frame], kfValues[frame + 1], w, getter(target, propName), arrDim); } else { var value; if (isValueColor) { interpolateArray(kfValues[frame], kfValues[frame + 1], w, rgba, 1); value = rgba2String(rgba); } else if (isValueString) { // String is step(0.5) return interpolateString(kfValues[frame], kfValues[frame + 1], w); } else { value = interpolateNumber(kfValues[frame], kfValues[frame + 1], w); } setter(target, propName, value); } } }; var clip = new Clip({ target: animator._target, life: trackMaxTime, loop: animator._loop, delay: animator._delay, onframe: onframe, ondestroy: oneTrackDone }); if (easing && easing !== 'spline') { clip.easing = easing; } return clip; } /** * @alias module:zrender/animation/Animator * @constructor * @param {Object} target * @param {boolean} loop * @param {Function} getter * @param {Function} setter */ var Animator = function Animator(target, loop, getter, setter) { this._tracks = {}; this._target = target; this._loop = loop || false; this._getter = getter || defaultGetter; this._setter = setter || defaultSetter; this._clipCount = 0; this._delay = 0; this._doneList = []; this._onframeList = []; this._clipList = []; }; Animator.prototype = { /** * Set Animation keyframe * @param {number} time 关键帧时间,单位是ms * @param {Object} props 关键帧的属性值,key-value表示 * @return {module:zrender/animation/Animator} */ when: function when(time /* ms */, props) { var tracks = this._tracks; for (var propName in props) { if (!props.hasOwnProperty(propName)) { continue; } if (!tracks[propName]) { tracks[propName] = []; // Invalid value var value = this._getter(this._target, propName); if (value == null) { // zrLog('Invalid property ' + propName); continue; } // If time is 0 // Then props is given initialize value // Else // Initialize value from current prop value if (time !== 0) { tracks[propName].push({ time: 0, value: cloneValue(value) }); } } tracks[propName].push({ time: time, value: props[propName] }); } return this; }, /** * 添加动画每一帧的回调函数 * @param {Function} callback * @return {module:zrender/animation/Animator} */ during: function during(callback) { this._onframeList.push(callback); return this; }, pause: function pause() { for (var i = 0; i < this._clipList.length; i++) { this._clipList[i].pause(); } this._paused = true; }, resume: function resume() { for (var i = 0; i < this._clipList.length; i++) { this._clipList[i].resume(); } this._paused = false; }, isPaused: function isPaused() { return !!this._paused; }, _doneCallback: function _doneCallback() { // Clear all tracks this._tracks = {}; // Clear all clips this._clipList.length = 0; var doneList = this._doneList; var len = doneList.length; for (var i = 0; i < len; i++) { doneList[i].call(this); } }, /** * Start the animation * @param {string|Function} [easing] * 动画缓动函数,详见{@link module:zrender/animation/easing} * @param {boolean} forceAnimate * @return {module:zrender/animation/Animator} */ start: function start(easing, forceAnimate) { var self = this; var clipCount = 0; var oneTrackDone = function oneTrackDone() { clipCount--; if (!clipCount) { self._doneCallback(); } }; var lastClip; for (var propName in this._tracks) { if (!this._tracks.hasOwnProperty(propName)) { continue; } var clip = createTrackClip(this, easing, oneTrackDone, this._tracks[propName], propName, forceAnimate); if (clip) { this._clipList.push(clip); clipCount++; // If start after added to animation if (this.animation) { this.animation.addClip(clip); } lastClip = clip; } } // Add during callback on the last clip if (lastClip) { var oldOnFrame = lastClip.onframe; lastClip.onframe = function (target, percent) { oldOnFrame(target, percent); for (var i = 0; i < self._onframeList.length; i++) { self._onframeList[i](target, percent); } }; } // This optimization will help the case that in the upper application // the view may be refreshed frequently, where animation will be // called repeatly but nothing changed. if (!clipCount) { this._doneCallback(); } return this; }, /** * Stop animation * @param {boolean} forwardToLast If move to last frame before stop */ stop: function stop(forwardToLast) { var clipList = this._clipList; var animation = this.animation; for (var i = 0; i < clipList.length; i++) { var clip = clipList[i]; if (forwardToLast) { // Move to last frame before stop clip.onframe(this._target, 1); } animation && animation.removeClip(clip); } clipList.length = 0; }, /** * Set when animation delay starts * @param {number} time 单位ms * @return {module:zrender/animation/Animator} */ delay: function delay(time) { this._delay = time; return this; }, /** * Add callback for animation end * @param {Function} cb * @return {module:zrender/animation/Animator} */ done: function done(cb) { if (cb) { this._doneList.push(cb); } return this; }, /** * @return {Array.} */ getClips: function getClips() { return this._clipList; } }; var _default = Animator; module.exports = _default; /***/ }), /* 419 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/animation/Clip.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var easingFuncs = __webpack_require__(/*! ./easing */ 420); /** * 动画主控制器 * @config target 动画对象,可以是数组,如果是数组的话会批量分发onframe等事件 * @config life(1000) 动画时长 * @config delay(0) 动画延迟时间 * @config loop(true) * @config gap(0) 循环的间隔时间 * @config onframe * @config easing(optional) * @config ondestroy(optional) * @config onrestart(optional) * * TODO pause */ function Clip(options) { this._target = options.target; // 生命周期 this._life = options.life || 1000; // 延时 this._delay = options.delay || 0; // 开始时间 // this._startTime = new Date().getTime() + this._delay;// 单位毫秒 this._initialized = false; // 是否循环 this.loop = options.loop == null ? false : options.loop; this.gap = options.gap || 0; this.easing = options.easing || 'Linear'; this.onframe = options.onframe; this.ondestroy = options.ondestroy; this.onrestart = options.onrestart; this._pausedTime = 0; this._paused = false; } Clip.prototype = { constructor: Clip, step: function step(globalTime, deltaTime) { // Set startTime on first step, or _startTime may has milleseconds different between clips // PENDING if (!this._initialized) { this._startTime = globalTime + this._delay; this._initialized = true; } if (this._paused) { this._pausedTime += deltaTime; return; } var percent = (globalTime - this._startTime - this._pausedTime) / this._life; // 还没开始 if (percent < 0) { return; } percent = Math.min(percent, 1); var easing = this.easing; var easingFunc = typeof easing === 'string' ? easingFuncs[easing] : easing; var schedule = typeof easingFunc === 'function' ? easingFunc(percent) : percent; this.fire('frame', schedule); // 结束 if (percent === 1) { if (this.loop) { this.restart(globalTime); // 重新开始周期 // 抛出而不是直接调用事件直到 stage.update 后再统一调用这些事件 return 'restart'; } // 动画完成将这个控制器标识为待删除 // 在Animation.update中进行批量删除 this._needsRemove = true; return 'destroy'; } return null; }, restart: function restart(globalTime) { var remainder = (globalTime - this._startTime - this._pausedTime) % this._life; this._startTime = globalTime - remainder + this.gap; this._pausedTime = 0; this._needsRemove = false; }, fire: function fire(eventType, arg) { eventType = 'on' + eventType; if (this[eventType]) { this[eventType](this._target, arg); } }, pause: function pause() { this._paused = true; }, resume: function resume() { this._paused = false; } }; var _default = Clip; module.exports = _default; /***/ }), /* 420 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/animation/easing.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * 缓动代码来自 https://github.com/sole/tween.js/blob/master/src/Tween.js * @see http://sole.github.io/tween.js/examples/03_graphs.html * @exports zrender/animation/easing */ var easing = { /** * @param {number} k * @return {number} */ linear: function linear(k) { return k; }, /** * @param {number} k * @return {number} */ quadraticIn: function quadraticIn(k) { return k * k; }, /** * @param {number} k * @return {number} */ quadraticOut: function quadraticOut(k) { return k * (2 - k); }, /** * @param {number} k * @return {number} */ quadraticInOut: function quadraticInOut(k) { if ((k *= 2) < 1) { return 0.5 * k * k; } return -0.5 * (--k * (k - 2) - 1); }, // 三次方的缓动(t^3) /** * @param {number} k * @return {number} */ cubicIn: function cubicIn(k) { return k * k * k; }, /** * @param {number} k * @return {number} */ cubicOut: function cubicOut(k) { return --k * k * k + 1; }, /** * @param {number} k * @return {number} */ cubicInOut: function cubicInOut(k) { if ((k *= 2) < 1) { return 0.5 * k * k * k; } return 0.5 * ((k -= 2) * k * k + 2); }, // 四次方的缓动(t^4) /** * @param {number} k * @return {number} */ quarticIn: function quarticIn(k) { return k * k * k * k; }, /** * @param {number} k * @return {number} */ quarticOut: function quarticOut(k) { return 1 - --k * k * k * k; }, /** * @param {number} k * @return {number} */ quarticInOut: function quarticInOut(k) { if ((k *= 2) < 1) { return 0.5 * k * k * k * k; } return -0.5 * ((k -= 2) * k * k * k - 2); }, // 五次方的缓动(t^5) /** * @param {number} k * @return {number} */ quinticIn: function quinticIn(k) { return k * k * k * k * k; }, /** * @param {number} k * @return {number} */ quinticOut: function quinticOut(k) { return --k * k * k * k * k + 1; }, /** * @param {number} k * @return {number} */ quinticInOut: function quinticInOut(k) { if ((k *= 2) < 1) { return 0.5 * k * k * k * k * k; } return 0.5 * ((k -= 2) * k * k * k * k + 2); }, // 正弦曲线的缓动(sin(t)) /** * @param {number} k * @return {number} */ sinusoidalIn: function sinusoidalIn(k) { return 1 - Math.cos(k * Math.PI / 2); }, /** * @param {number} k * @return {number} */ sinusoidalOut: function sinusoidalOut(k) { return Math.sin(k * Math.PI / 2); }, /** * @param {number} k * @return {number} */ sinusoidalInOut: function sinusoidalInOut(k) { return 0.5 * (1 - Math.cos(Math.PI * k)); }, // 指数曲线的缓动(2^t) /** * @param {number} k * @return {number} */ exponentialIn: function exponentialIn(k) { return k === 0 ? 0 : Math.pow(1024, k - 1); }, /** * @param {number} k * @return {number} */ exponentialOut: function exponentialOut(k) { return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); }, /** * @param {number} k * @return {number} */ exponentialInOut: function exponentialInOut(k) { if (k === 0) { return 0; } if (k === 1) { return 1; } if ((k *= 2) < 1) { return 0.5 * Math.pow(1024, k - 1); } return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); }, // 圆形曲线的缓动(sqrt(1-t^2)) /** * @param {number} k * @return {number} */ circularIn: function circularIn(k) { return 1 - Math.sqrt(1 - k * k); }, /** * @param {number} k * @return {number} */ circularOut: function circularOut(k) { return Math.sqrt(1 - --k * k); }, /** * @param {number} k * @return {number} */ circularInOut: function circularInOut(k) { if ((k *= 2) < 1) { return -0.5 * (Math.sqrt(1 - k * k) - 1); } return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); }, // 创建类似于弹簧在停止前来回振荡的动画 /** * @param {number} k * @return {number} */ elasticIn: function elasticIn(k) { var s; var a = 0.1; var p = 0.4; if (k === 0) { return 0; } if (k === 1) { return 1; } if (!a || a < 1) { a = 1; s = p / 4; } else { s = p * Math.asin(1 / a) / (2 * Math.PI); } return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); }, /** * @param {number} k * @return {number} */ elasticOut: function elasticOut(k) { var s; var a = 0.1; var p = 0.4; if (k === 0) { return 0; } if (k === 1) { return 1; } if (!a || a < 1) { a = 1; s = p / 4; } else { s = p * Math.asin(1 / a) / (2 * Math.PI); } return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; }, /** * @param {number} k * @return {number} */ elasticInOut: function elasticInOut(k) { var s; var a = 0.1; var p = 0.4; if (k === 0) { return 0; } if (k === 1) { return 1; } if (!a || a < 1) { a = 1; s = p / 4; } else { s = p * Math.asin(1 / a) / (2 * Math.PI); } if ((k *= 2) < 1) { return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); } return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; }, // 在某一动画开始沿指示的路径进行动画处理前稍稍收回该动画的移动 /** * @param {number} k * @return {number} */ backIn: function backIn(k) { var s = 1.70158; return k * k * ((s + 1) * k - s); }, /** * @param {number} k * @return {number} */ backOut: function backOut(k) { var s = 1.70158; return --k * k * ((s + 1) * k + s) + 1; }, /** * @param {number} k * @return {number} */ backInOut: function backInOut(k) { var s = 1.70158 * 1.525; if ((k *= 2) < 1) { return 0.5 * (k * k * ((s + 1) * k - s)); } return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); }, // 创建弹跳效果 /** * @param {number} k * @return {number} */ bounceIn: function bounceIn(k) { return 1 - easing.bounceOut(1 - k); }, /** * @param {number} k * @return {number} */ bounceOut: function bounceOut(k) { if (k < 1 / 2.75) { return 7.5625 * k * k; } else if (k < 2 / 2.75) { return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; } else if (k < 2.5 / 2.75) { return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; } else { return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; } }, /** * @param {number} k * @return {number} */ bounceInOut: function bounceInOut(k) { if (k < 0.5) { return easing.bounceIn(k * 2) * 0.5; } return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5; } }; var _default = easing; module.exports = _default; /***/ }), /* 421 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/tool/color.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var LRU = __webpack_require__(/*! ../core/LRU */ 422); var kCSSColorTable = { 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1], 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1], 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1], 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1], 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1], 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1], 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1], 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1], 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1], 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1], 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1], 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1], 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1], 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1], 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1], 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1], 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1], 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1], 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1], 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1], 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1], 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1], 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1], 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1], 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1], 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1], 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1], 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1], 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1], 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1], 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1], 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1], 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1], 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1], 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1], 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1], 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1], 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1], 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1], 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1], 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1], 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1], 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1], 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1], 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1], 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1], 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1], 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1], 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1], 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1], 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1], 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1], 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1], 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1], 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1], 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1], 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1], 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1], 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1], 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1], 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1], 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1], 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1], 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1], 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1], 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1], 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1], 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1], 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1], 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1], 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1], 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1], 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1], 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1] }; function clampCssByte(i) { // Clamp to integer 0 .. 255. i = Math.round(i); // Seems to be what Chrome does (vs truncation). return i < 0 ? 0 : i > 255 ? 255 : i; } function clampCssAngle(i) { // Clamp to integer 0 .. 360. i = Math.round(i); // Seems to be what Chrome does (vs truncation). return i < 0 ? 0 : i > 360 ? 360 : i; } function clampCssFloat(f) { // Clamp to float 0.0 .. 1.0. return f < 0 ? 0 : f > 1 ? 1 : f; } function parseCssInt(str) { // int or percentage. if (str.length && str.charAt(str.length - 1) === '%') { return clampCssByte(parseFloat(str) / 100 * 255); } return clampCssByte(parseInt(str, 10)); } function parseCssFloat(str) { // float or percentage. if (str.length && str.charAt(str.length - 1) === '%') { return clampCssFloat(parseFloat(str) / 100); } return clampCssFloat(parseFloat(str)); } function cssHueToRgb(m1, m2, h) { if (h < 0) { h += 1; } else if (h > 1) { h -= 1; } if (h * 6 < 1) { return m1 + (m2 - m1) * h * 6; } if (h * 2 < 1) { return m2; } if (h * 3 < 2) { return m1 + (m2 - m1) * (2 / 3 - h) * 6; } return m1; } function lerpNumber(a, b, p) { return a + (b - a) * p; } function setRgba(out, r, g, b, a) { out[0] = r; out[1] = g; out[2] = b; out[3] = a; return out; } function copyRgba(out, a) { out[0] = a[0]; out[1] = a[1]; out[2] = a[2]; out[3] = a[3]; return out; } var colorCache = new LRU(20); var lastRemovedArr = null; function putToCache(colorStr, rgbaArr) { // Reuse removed array if (lastRemovedArr) { copyRgba(lastRemovedArr, rgbaArr); } lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || rgbaArr.slice()); } /** * @param {string} colorStr * @param {Array.} out * @return {Array.} * @memberOf module:zrender/util/color */ function parse(colorStr, rgbaArr) { if (!colorStr) { return; } rgbaArr = rgbaArr || []; var cached = colorCache.get(colorStr); if (cached) { return copyRgba(rgbaArr, cached); } // colorStr may be not string colorStr = colorStr + ''; // Remove all whitespace, not compliant, but should just be more accepting. var str = colorStr.replace(/ /g, '').toLowerCase(); // Color keywords (and transparent) lookup. if (str in kCSSColorTable) { copyRgba(rgbaArr, kCSSColorTable[str]); putToCache(colorStr, rgbaArr); return rgbaArr; } // #abc and #abc123 syntax. if (str.charAt(0) === '#') { if (str.length === 4) { var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing. if (!(iv >= 0 && iv <= 0xfff)) { setRgba(rgbaArr, 0, 0, 0, 1); return; // Covers NaN. } setRgba(rgbaArr, (iv & 0xf00) >> 4 | (iv & 0xf00) >> 8, iv & 0xf0 | (iv & 0xf0) >> 4, iv & 0xf | (iv & 0xf) << 4, 1); putToCache(colorStr, rgbaArr); return rgbaArr; } else if (str.length === 7) { var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing. if (!(iv >= 0 && iv <= 0xffffff)) { setRgba(rgbaArr, 0, 0, 0, 1); return; // Covers NaN. } setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1); putToCache(colorStr, rgbaArr); return rgbaArr; } return; } var op = str.indexOf('('); var ep = str.indexOf(')'); if (op !== -1 && ep + 1 === str.length) { var fname = str.substr(0, op); var params = str.substr(op + 1, ep - (op + 1)).split(','); var alpha = 1; // To allow case fallthrough. switch (fname) { case 'rgba': if (params.length !== 4) { setRgba(rgbaArr, 0, 0, 0, 1); return; } alpha = parseCssFloat(params.pop()); // jshint ignore:line // Fall through. case 'rgb': if (params.length !== 3) { setRgba(rgbaArr, 0, 0, 0, 1); return; } setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha); putToCache(colorStr, rgbaArr); return rgbaArr; case 'hsla': if (params.length !== 4) { setRgba(rgbaArr, 0, 0, 0, 1); return; } params[3] = parseCssFloat(params[3]); hsla2rgba(params, rgbaArr); putToCache(colorStr, rgbaArr); return rgbaArr; case 'hsl': if (params.length !== 3) { setRgba(rgbaArr, 0, 0, 0, 1); return; } hsla2rgba(params, rgbaArr); putToCache(colorStr, rgbaArr); return rgbaArr; default: return; } } setRgba(rgbaArr, 0, 0, 0, 1); return; } /** * @param {Array.} hsla * @param {Array.} rgba * @return {Array.} rgba */ function hsla2rgba(hsla, rgba) { var h = (parseFloat(hsla[0]) % 360 + 360) % 360 / 360; // 0 .. 1 // NOTE(deanm): According to the CSS spec s/l should only be // percentages, but we don't bother and let float or percentage. var s = parseCssFloat(hsla[1]); var l = parseCssFloat(hsla[2]); var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s; var m1 = l * 2 - m2; rgba = rgba || []; setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1); if (hsla.length === 4) { rgba[3] = hsla[3]; } return rgba; } /** * @param {Array.} rgba * @return {Array.} hsla */ function rgba2hsla(rgba) { if (!rgba) { return; } // RGB from 0 to 255 var R = rgba[0] / 255; var G = rgba[1] / 255; var B = rgba[2] / 255; var vMin = Math.min(R, G, B); // Min. value of RGB var vMax = Math.max(R, G, B); // Max. value of RGB var delta = vMax - vMin; // Delta RGB value var L = (vMax + vMin) / 2; var H; var S; // HSL results from 0 to 1 if (delta === 0) { H = 0; S = 0; } else { if (L < 0.5) { S = delta / (vMax + vMin); } else { S = delta / (2 - vMax - vMin); } var deltaR = ((vMax - R) / 6 + delta / 2) / delta; var deltaG = ((vMax - G) / 6 + delta / 2) / delta; var deltaB = ((vMax - B) / 6 + delta / 2) / delta; if (R === vMax) { H = deltaB - deltaG; } else if (G === vMax) { H = 1 / 3 + deltaR - deltaB; } else if (B === vMax) { H = 2 / 3 + deltaG - deltaR; } if (H < 0) { H += 1; } if (H > 1) { H -= 1; } } var hsla = [H * 360, S, L]; if (rgba[3] != null) { hsla.push(rgba[3]); } return hsla; } /** * @param {string} color * @param {number} level * @return {string} * @memberOf module:zrender/util/color */ function lift(color, level) { var colorArr = parse(color); if (colorArr) { for (var i = 0; i < 3; i++) { if (level < 0) { colorArr[i] = colorArr[i] * (1 - level) | 0; } else { colorArr[i] = (255 - colorArr[i]) * level + colorArr[i] | 0; } if (colorArr[i] > 255) { colorArr[i] = 255; } else if (color[i] < 0) { colorArr[i] = 0; } } return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb'); } } /** * @param {string} color * @return {string} * @memberOf module:zrender/util/color */ function toHex(color) { var colorArr = parse(color); if (colorArr) { return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + +colorArr[2]).toString(16).slice(1); } } /** * Map value to color. Faster than lerp methods because color is represented by rgba array. * @param {number} normalizedValue A float between 0 and 1. * @param {Array.>} colors List of rgba color array * @param {Array.} [out] Mapped gba color array * @return {Array.} will be null/undefined if input illegal. */ function fastLerp(normalizedValue, colors, out) { if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { return; } out = out || []; var value = normalizedValue * (colors.length - 1); var leftIndex = Math.floor(value); var rightIndex = Math.ceil(value); var leftColor = colors[leftIndex]; var rightColor = colors[rightIndex]; var dv = value - leftIndex; out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)); out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)); out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)); out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv)); return out; } /** * @deprecated */ var fastMapToColor = fastLerp; /** * @param {number} normalizedValue A float between 0 and 1. * @param {Array.} colors Color list. * @param {boolean=} fullOutput Default false. * @return {(string|Object)} Result color. If fullOutput, * return {color: ..., leftIndex: ..., rightIndex: ..., value: ...}, * @memberOf module:zrender/util/color */ function lerp(normalizedValue, colors, fullOutput) { if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { return; } var value = normalizedValue * (colors.length - 1); var leftIndex = Math.floor(value); var rightIndex = Math.ceil(value); var leftColor = parse(colors[leftIndex]); var rightColor = parse(colors[rightIndex]); var dv = value - leftIndex; var color = stringify([clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)), clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)), clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)), clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))], 'rgba'); return fullOutput ? { color: color, leftIndex: leftIndex, rightIndex: rightIndex, value: value } : color; } /** * @deprecated */ var mapToColor = lerp; /** * @param {string} color * @param {number=} h 0 ~ 360, ignore when null. * @param {number=} s 0 ~ 1, ignore when null. * @param {number=} l 0 ~ 1, ignore when null. * @return {string} Color string in rgba format. * @memberOf module:zrender/util/color */ function modifyHSL(color, h, s, l) { color = parse(color); if (color) { color = rgba2hsla(color); h != null && (color[0] = clampCssAngle(h)); s != null && (color[1] = parseCssFloat(s)); l != null && (color[2] = parseCssFloat(l)); return stringify(hsla2rgba(color), 'rgba'); } } /** * @param {string} color * @param {number=} alpha 0 ~ 1 * @return {string} Color string in rgba format. * @memberOf module:zrender/util/color */ function modifyAlpha(color, alpha) { color = parse(color); if (color && alpha != null) { color[3] = clampCssFloat(alpha); return stringify(color, 'rgba'); } } /** * @param {Array.} arrColor like [12,33,44,0.4] * @param {string} type 'rgba', 'hsva', ... * @return {string} Result color. (If input illegal, return undefined). */ function stringify(arrColor, type) { if (!arrColor || !arrColor.length) { return; } var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2]; if (type === 'rgba' || type === 'hsva' || type === 'hsla') { colorStr += ',' + arrColor[3]; } return type + '(' + colorStr + ')'; } exports.parse = parse; exports.lift = lift; exports.toHex = toHex; exports.fastLerp = fastLerp; exports.fastMapToColor = fastMapToColor; exports.lerp = lerp; exports.mapToColor = mapToColor; exports.modifyHSL = modifyHSL; exports.modifyAlpha = modifyAlpha; exports.stringify = stringify; /***/ }), /* 422 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/LRU.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { // Simple LRU cache use doubly linked list // @module zrender/core/LRU /** * Simple double linked list. Compared with array, it has O(1) remove operation. * @constructor */ var LinkedList = function LinkedList() { /** * @type {module:zrender/core/LRU~Entry} */ this.head = null; /** * @type {module:zrender/core/LRU~Entry} */ this.tail = null; this._len = 0; }; var linkedListProto = LinkedList.prototype; /** * Insert a new value at the tail * @param {} val * @return {module:zrender/core/LRU~Entry} */ linkedListProto.insert = function (val) { var entry = new Entry(val); this.insertEntry(entry); return entry; }; /** * Insert an entry at the tail * @param {module:zrender/core/LRU~Entry} entry */ linkedListProto.insertEntry = function (entry) { if (!this.head) { this.head = this.tail = entry; } else { this.tail.next = entry; entry.prev = this.tail; entry.next = null; this.tail = entry; } this._len++; }; /** * Remove entry. * @param {module:zrender/core/LRU~Entry} entry */ linkedListProto.remove = function (entry) { var prev = entry.prev; var next = entry.next; if (prev) { prev.next = next; } else { // Is head this.head = next; } if (next) { next.prev = prev; } else { // Is tail this.tail = prev; } entry.next = entry.prev = null; this._len--; }; /** * @return {number} */ linkedListProto.len = function () { return this._len; }; /** * Clear list */ linkedListProto.clear = function () { this.head = this.tail = null; this._len = 0; }; /** * @constructor * @param {} val */ var Entry = function Entry(val) { /** * @type {} */ this.value = val; /** * @type {module:zrender/core/LRU~Entry} */ this.next; /** * @type {module:zrender/core/LRU~Entry} */ this.prev; }; /** * LRU Cache * @constructor * @alias module:zrender/core/LRU */ var LRU = function LRU(maxSize) { this._list = new LinkedList(); this._map = {}; this._maxSize = maxSize || 10; this._lastRemovedEntry = null; }; var LRUProto = LRU.prototype; /** * @param {string} key * @param {} value * @return {} Removed value */ LRUProto.put = function (key, value) { var list = this._list; var map = this._map; var removed = null; if (map[key] == null) { var len = list.len(); // Reuse last removed entry var entry = this._lastRemovedEntry; if (len >= this._maxSize && len > 0) { // Remove the least recently used var leastUsedEntry = list.head; list.remove(leastUsedEntry); delete map[leastUsedEntry.key]; removed = leastUsedEntry.value; this._lastRemovedEntry = leastUsedEntry; } if (entry) { entry.value = value; } else { entry = new Entry(value); } entry.key = key; list.insertEntry(entry); map[key] = entry; } return removed; }; /** * @param {string} key * @return {} */ LRUProto.get = function (key) { var entry = this._map[key]; var list = this._list; if (entry != null) { // Put the latest used entry in the tail if (entry !== list.tail) { list.remove(entry); list.insertEntry(entry); } return entry.value; } }; /** * Clear the cache */ LRUProto.clear = function () { this._list.clear(); this._map = {}; }; var _default = LRU; module.exports = _default; /***/ }), /* 423 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/log.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _config = __webpack_require__(/*! ../config */ 424); var debugMode = _config.debugMode; var logError = function logError() {}; if (debugMode === 1) { logError = console.error; } var _default = logError; module.exports = _default; /***/ }), /* 424 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/config.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { var dpr = 1; // If in browser environment if (typeof window !== 'undefined') { dpr = Math.max(window.devicePixelRatio || 1, 1); } /** * config默认配置项 * @exports zrender/config * @author Kener (@Kener-林峰, kener.linfeng@gmail.com) */ /** * Debug log mode: * 0: Do nothing, for release. * 1: console.error, for debug. */ var debugMode = 0; // retina 屏幕优化 var devicePixelRatio = dpr; exports.debugMode = debugMode; exports.devicePixelRatio = devicePixelRatio; /***/ }), /* 425 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/BoundingRect.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var vec2 = __webpack_require__(/*! ./vector */ 405); var matrix = __webpack_require__(/*! ./matrix */ 416); /** * @module echarts/core/BoundingRect */ var v2ApplyTransform = vec2.applyTransform; var mathMin = Math.min; var mathMax = Math.max; /** * @alias module:echarts/core/BoundingRect */ function BoundingRect(x, y, width, height) { if (width < 0) { x = x + width; width = -width; } if (height < 0) { y = y + height; height = -height; } /** * @type {number} */ this.x = x; /** * @type {number} */ this.y = y; /** * @type {number} */ this.width = width; /** * @type {number} */ this.height = height; } BoundingRect.prototype = { constructor: BoundingRect, /** * @param {module:echarts/core/BoundingRect} other */ union: function union(other) { var x = mathMin(other.x, this.x); var y = mathMin(other.y, this.y); this.width = mathMax(other.x + other.width, this.x + this.width) - x; this.height = mathMax(other.y + other.height, this.y + this.height) - y; this.x = x; this.y = y; }, /** * @param {Array.} m * @methods */ applyTransform: function () { var lt = []; var rb = []; var lb = []; var rt = []; return function (m) { // In case usage like this // el.getBoundingRect().applyTransform(el.transform) // And element has no transform if (!m) { return; } lt[0] = lb[0] = this.x; lt[1] = rt[1] = this.y; rb[0] = rt[0] = this.x + this.width; rb[1] = lb[1] = this.y + this.height; v2ApplyTransform(lt, lt, m); v2ApplyTransform(rb, rb, m); v2ApplyTransform(lb, lb, m); v2ApplyTransform(rt, rt, m); this.x = mathMin(lt[0], rb[0], lb[0], rt[0]); this.y = mathMin(lt[1], rb[1], lb[1], rt[1]); var maxX = mathMax(lt[0], rb[0], lb[0], rt[0]); var maxY = mathMax(lt[1], rb[1], lb[1], rt[1]); this.width = maxX - this.x; this.height = maxY - this.y; }; }(), /** * Calculate matrix of transforming from self to target rect * @param {module:zrender/core/BoundingRect} b * @return {Array.} */ calculateTransform: function calculateTransform(b) { var a = this; var sx = b.width / a.width; var sy = b.height / a.height; var m = matrix.create(); // 矩阵右乘 matrix.translate(m, m, [-a.x, -a.y]); matrix.scale(m, m, [sx, sy]); matrix.translate(m, m, [b.x, b.y]); return m; }, /** * @param {(module:echarts/core/BoundingRect|Object)} b * @return {boolean} */ intersect: function intersect(b) { if (!b) { return false; } if (!(b instanceof BoundingRect)) { // Normalize negative width/height. b = BoundingRect.create(b); } var a = this; var ax0 = a.x; var ax1 = a.x + a.width; var ay0 = a.y; var ay1 = a.y + a.height; var bx0 = b.x; var bx1 = b.x + b.width; var by0 = b.y; var by1 = b.y + b.height; return !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0); }, contain: function contain(x, y) { var rect = this; return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height; }, /** * @return {module:echarts/core/BoundingRect} */ clone: function clone() { return new BoundingRect(this.x, this.y, this.width, this.height); }, /** * Copy from another rect */ copy: function copy(other) { this.x = other.x; this.y = other.y; this.width = other.width; this.height = other.height; }, plain: function plain() { return { x: this.x, y: this.y, width: this.width, height: this.height }; } }; /** * @param {Object|module:zrender/core/BoundingRect} rect * @param {number} rect.x * @param {number} rect.y * @param {number} rect.width * @param {number} rect.height * @return {module:zrender/core/BoundingRect} */ BoundingRect.create = function (rect) { return new BoundingRect(rect.x, rect.y, rect.width, rect.height); }; var _default = BoundingRect; module.exports = _default; /***/ }), /* 426 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/timsort.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { // https://github.com/mziccard/node-timsort var DEFAULT_MIN_MERGE = 32; var DEFAULT_MIN_GALLOPING = 7; var DEFAULT_TMP_STORAGE_LENGTH = 256; function minRunLength(n) { var r = 0; while (n >= DEFAULT_MIN_MERGE) { r |= n & 1; n >>= 1; } return n + r; } function makeAscendingRun(array, lo, hi, compare) { var runHi = lo + 1; if (runHi === hi) { return 1; } if (compare(array[runHi++], array[lo]) < 0) { while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) { runHi++; } reverseRun(array, lo, runHi); } else { while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) { runHi++; } } return runHi - lo; } function reverseRun(array, lo, hi) { hi--; while (lo < hi) { var t = array[lo]; array[lo++] = array[hi]; array[hi--] = t; } } function binaryInsertionSort(array, lo, hi, start, compare) { if (start === lo) { start++; } for (; start < hi; start++) { var pivot = array[start]; var left = lo; var right = start; var mid; while (left < right) { mid = left + right >>> 1; if (compare(pivot, array[mid]) < 0) { right = mid; } else { left = mid + 1; } } var n = start - left; switch (n) { case 3: array[left + 3] = array[left + 2]; case 2: array[left + 2] = array[left + 1]; case 1: array[left + 1] = array[left]; break; default: while (n > 0) { array[left + n] = array[left + n - 1]; n--; } } array[left] = pivot; } } function gallopLeft(value, array, start, length, hint, compare) { var lastOffset = 0; var maxOffset = 0; var offset = 1; if (compare(value, array[start + hint]) > 0) { maxOffset = length - hint; while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) { lastOffset = offset; offset = (offset << 1) + 1; if (offset <= 0) { offset = maxOffset; } } if (offset > maxOffset) { offset = maxOffset; } lastOffset += hint; offset += hint; } else { maxOffset = hint + 1; while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) { lastOffset = offset; offset = (offset << 1) + 1; if (offset <= 0) { offset = maxOffset; } } if (offset > maxOffset) { offset = maxOffset; } var tmp = lastOffset; lastOffset = hint - offset; offset = hint - tmp; } lastOffset++; while (lastOffset < offset) { var m = lastOffset + (offset - lastOffset >>> 1); if (compare(value, array[start + m]) > 0) { lastOffset = m + 1; } else { offset = m; } } return offset; } function gallopRight(value, array, start, length, hint, compare) { var lastOffset = 0; var maxOffset = 0; var offset = 1; if (compare(value, array[start + hint]) < 0) { maxOffset = hint + 1; while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) { lastOffset = offset; offset = (offset << 1) + 1; if (offset <= 0) { offset = maxOffset; } } if (offset > maxOffset) { offset = maxOffset; } var tmp = lastOffset; lastOffset = hint - offset; offset = hint - tmp; } else { maxOffset = length - hint; while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) { lastOffset = offset; offset = (offset << 1) + 1; if (offset <= 0) { offset = maxOffset; } } if (offset > maxOffset) { offset = maxOffset; } lastOffset += hint; offset += hint; } lastOffset++; while (lastOffset < offset) { var m = lastOffset + (offset - lastOffset >>> 1); if (compare(value, array[start + m]) < 0) { offset = m; } else { lastOffset = m + 1; } } return offset; } function TimSort(array, compare) { var minGallop = DEFAULT_MIN_GALLOPING; var length = 0; var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH; var stackLength = 0; var runStart; var runLength; var stackSize = 0; length = array.length; if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) { tmpStorageLength = length >>> 1; } var tmp = []; stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40; runStart = []; runLength = []; function pushRun(_runStart, _runLength) { runStart[stackSize] = _runStart; runLength[stackSize] = _runLength; stackSize += 1; } function mergeRuns() { while (stackSize > 1) { var n = stackSize - 2; if (n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1] || n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1]) { if (runLength[n - 1] < runLength[n + 1]) { n--; } } else if (runLength[n] > runLength[n + 1]) { break; } mergeAt(n); } } function forceMergeRuns() { while (stackSize > 1) { var n = stackSize - 2; if (n > 0 && runLength[n - 1] < runLength[n + 1]) { n--; } mergeAt(n); } } function mergeAt(i) { var start1 = runStart[i]; var length1 = runLength[i]; var start2 = runStart[i + 1]; var length2 = runLength[i + 1]; runLength[i] = length1 + length2; if (i === stackSize - 3) { runStart[i + 1] = runStart[i + 2]; runLength[i + 1] = runLength[i + 2]; } stackSize--; var k = gallopRight(array[start2], array, start1, length1, 0, compare); start1 += k; length1 -= k; if (length1 === 0) { return; } length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare); if (length2 === 0) { return; } if (length1 <= length2) { mergeLow(start1, length1, start2, length2); } else { mergeHigh(start1, length1, start2, length2); } } function mergeLow(start1, length1, start2, length2) { var i = 0; for (i = 0; i < length1; i++) { tmp[i] = array[start1 + i]; } var cursor1 = 0; var cursor2 = start2; var dest = start1; array[dest++] = array[cursor2++]; if (--length2 === 0) { for (i = 0; i < length1; i++) { array[dest + i] = tmp[cursor1 + i]; } return; } if (length1 === 1) { for (i = 0; i < length2; i++) { array[dest + i] = array[cursor2 + i]; } array[dest + length2] = tmp[cursor1]; return; } var _minGallop = minGallop; var count1; var count2; var exit; while (1) { count1 = 0; count2 = 0; exit = false; do { if (compare(array[cursor2], tmp[cursor1]) < 0) { array[dest++] = array[cursor2++]; count2++; count1 = 0; if (--length2 === 0) { exit = true; break; } } else { array[dest++] = tmp[cursor1++]; count1++; count2 = 0; if (--length1 === 1) { exit = true; break; } } } while ((count1 | count2) < _minGallop); if (exit) { break; } do { count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare); if (count1 !== 0) { for (i = 0; i < count1; i++) { array[dest + i] = tmp[cursor1 + i]; } dest += count1; cursor1 += count1; length1 -= count1; if (length1 <= 1) { exit = true; break; } } array[dest++] = array[cursor2++]; if (--length2 === 0) { exit = true; break; } count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare); if (count2 !== 0) { for (i = 0; i < count2; i++) { array[dest + i] = array[cursor2 + i]; } dest += count2; cursor2 += count2; length2 -= count2; if (length2 === 0) { exit = true; break; } } array[dest++] = tmp[cursor1++]; if (--length1 === 1) { exit = true; break; } _minGallop--; } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING); if (exit) { break; } if (_minGallop < 0) { _minGallop = 0; } _minGallop += 2; } minGallop = _minGallop; minGallop < 1 && (minGallop = 1); if (length1 === 1) { for (i = 0; i < length2; i++) { array[dest + i] = array[cursor2 + i]; } array[dest + length2] = tmp[cursor1]; } else if (length1 === 0) { throw new Error(); // throw new Error('mergeLow preconditions were not respected'); } else { for (i = 0; i < length1; i++) { array[dest + i] = tmp[cursor1 + i]; } } } function mergeHigh(start1, length1, start2, length2) { var i = 0; for (i = 0; i < length2; i++) { tmp[i] = array[start2 + i]; } var cursor1 = start1 + length1 - 1; var cursor2 = length2 - 1; var dest = start2 + length2 - 1; var customCursor = 0; var customDest = 0; array[dest--] = array[cursor1--]; if (--length1 === 0) { customCursor = dest - (length2 - 1); for (i = 0; i < length2; i++) { array[customCursor + i] = tmp[i]; } return; } if (length2 === 1) { dest -= length1; cursor1 -= length1; customDest = dest + 1; customCursor = cursor1 + 1; for (i = length1 - 1; i >= 0; i--) { array[customDest + i] = array[customCursor + i]; } array[dest] = tmp[cursor2]; return; } var _minGallop = minGallop; while (true) { var count1 = 0; var count2 = 0; var exit = false; do { if (compare(tmp[cursor2], array[cursor1]) < 0) { array[dest--] = array[cursor1--]; count1++; count2 = 0; if (--length1 === 0) { exit = true; break; } } else { array[dest--] = tmp[cursor2--]; count2++; count1 = 0; if (--length2 === 1) { exit = true; break; } } } while ((count1 | count2) < _minGallop); if (exit) { break; } do { count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare); if (count1 !== 0) { dest -= count1; cursor1 -= count1; length1 -= count1; customDest = dest + 1; customCursor = cursor1 + 1; for (i = count1 - 1; i >= 0; i--) { array[customDest + i] = array[customCursor + i]; } if (length1 === 0) { exit = true; break; } } array[dest--] = tmp[cursor2--]; if (--length2 === 1) { exit = true; break; } count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare); if (count2 !== 0) { dest -= count2; cursor2 -= count2; length2 -= count2; customDest = dest + 1; customCursor = cursor2 + 1; for (i = 0; i < count2; i++) { array[customDest + i] = tmp[customCursor + i]; } if (length2 <= 1) { exit = true; break; } } array[dest--] = array[cursor1--]; if (--length1 === 0) { exit = true; break; } _minGallop--; } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING); if (exit) { break; } if (_minGallop < 0) { _minGallop = 0; } _minGallop += 2; } minGallop = _minGallop; if (minGallop < 1) { minGallop = 1; } if (length2 === 1) { dest -= length1; cursor1 -= length1; customDest = dest + 1; customCursor = cursor1 + 1; for (i = length1 - 1; i >= 0; i--) { array[customDest + i] = array[customCursor + i]; } array[dest] = tmp[cursor2]; } else if (length2 === 0) { throw new Error(); // throw new Error('mergeHigh preconditions were not respected'); } else { customCursor = dest - (length2 - 1); for (i = 0; i < length2; i++) { array[customCursor + i] = tmp[i]; } } } this.mergeRuns = mergeRuns; this.forceMergeRuns = forceMergeRuns; this.pushRun = pushRun; } function sort(array, compare, lo, hi) { if (!lo) { lo = 0; } if (!hi) { hi = array.length; } var remaining = hi - lo; if (remaining < 2) { return; } var runLength = 0; if (remaining < DEFAULT_MIN_MERGE) { runLength = makeAscendingRun(array, lo, hi, compare); binaryInsertionSort(array, lo, hi, lo + runLength, compare); return; } var ts = new TimSort(array, compare); var minRun = minRunLength(remaining); do { runLength = makeAscendingRun(array, lo, hi, compare); if (runLength < minRun) { var force = remaining; if (force > minRun) { force = minRun; } binaryInsertionSort(array, lo, lo + force, lo + runLength, compare); runLength = force; } ts.pushRun(lo, runLength); ts.mergeRuns(); remaining -= runLength; lo += runLength; } while (remaining !== 0); ts.forceMergeRuns(); } module.exports = sort; /***/ }), /* 427 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/Painter.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(__f__) {var _config = __webpack_require__(/*! ./config */ 424); var devicePixelRatio = _config.devicePixelRatio; var util = __webpack_require__(/*! ./core/util */ 403); var logError = __webpack_require__(/*! ./core/log */ 423); var BoundingRect = __webpack_require__(/*! ./core/BoundingRect */ 425); var timsort = __webpack_require__(/*! ./core/timsort */ 426); var Layer = __webpack_require__(/*! ./Layer */ 428); var requestAnimationFrame = __webpack_require__(/*! ./animation/requestAnimationFrame */ 433); var Image = __webpack_require__(/*! ./graphic/Image */ 434); var env = __webpack_require__(/*! ./core/env */ 402); var HOVER_LAYER_ZLEVEL = 1e5; var CANVAS_ZLEVEL = 314159; var EL_AFTER_INCREMENTAL_INC = 0.01; var INCREMENTAL_INC = 0.001; function parseInt10(val) { return parseInt(val, 10); } function isLayerValid(layer) { if (!layer) { return false; } if (layer.__builtin__) { return true; } if (typeof layer.resize !== 'function' || typeof layer.refresh !== 'function') { return false; } return true; } var tmpRect = new BoundingRect(0, 0, 0, 0); var viewRect = new BoundingRect(0, 0, 0, 0); function isDisplayableCulled(el, width, height) { tmpRect.copy(el.getBoundingRect()); if (el.transform) { tmpRect.applyTransform(el.transform); } viewRect.width = width; viewRect.height = height; return !tmpRect.intersect(viewRect); } function isClipPathChanged(clipPaths, prevClipPaths) { // displayable.__clipPaths can only be `null`/`undefined` or an non-empty array. if (clipPaths === prevClipPaths) { return false; } if (!clipPaths || !prevClipPaths || clipPaths.length !== prevClipPaths.length) { return true; } for (var i = 0; i < clipPaths.length; i++) { if (clipPaths[i] !== prevClipPaths[i]) { return true; } } return false; } function doClip(clipPaths, ctx) { for (var i = 0; i < clipPaths.length; i++) { var clipPath = clipPaths[i]; clipPath.setTransform(ctx); ctx.beginPath(); clipPath.buildPath(ctx, clipPath.shape); ctx.clip(); // Transform back clipPath.restoreTransform(ctx); } } function createRoot(width, height) { var domRoot = document.createElement('div'); // domRoot.onselectstart = returnFalse; // Avoid page selected domRoot.style.cssText = ['position:relative', // IOS13 safari probably has a compositing bug (z order of the canvas and the consequent // dom does not act as expected) when some of the parent dom has // `-webkit-overflow-scrolling: touch;` and the webpage is longer than one screen and // the canvas is not at the top part of the page. // Check `https://bugs.webkit.org/show_bug.cgi?id=203681` for more details. We remove // this `overflow:hidden` to avoid the bug. // 'overflow:hidden', 'width:' + width + 'px', 'height:' + height + 'px', 'padding:0', 'margin:0', 'border-width:0'].join(';') + ';'; return domRoot; } /** * @alias module:zrender/Painter * @constructor * @param {HTMLElement} root 绘图容器 * @param {module:zrender/Storage} storage * @param {Object} opts */ var Painter = function Painter(root, storage, opts) { this.type = 'canvas'; // In node environment using node-canvas var singleCanvas = !root.nodeName // In node ? || root.nodeName.toUpperCase() === 'CANVAS'; this._opts = opts = util.extend({}, opts || {}); /** * @type {number} */ this.dpr = opts.devicePixelRatio || devicePixelRatio; /** * @type {boolean} * @private */ this._singleCanvas = singleCanvas; /** * 绘图容器 * @type {HTMLElement} */ this.root = root; var rootStyle = root.style; if (rootStyle) { rootStyle['-webkit-tap-highlight-color'] = 'transparent'; rootStyle['-webkit-user-select'] = rootStyle['user-select'] = rootStyle['-webkit-touch-callout'] = 'none'; root.innerHTML = ''; } /** * @type {module:zrender/Storage} */ this.storage = storage; /** * @type {Array.} * @private */ var zlevelList = this._zlevelList = []; /** * @type {Object.} * @private */ var layers = this._layers = {}; /** * @type {Object.} * @private */ this._layerConfig = {}; /** * zrender will do compositing when root is a canvas and have multiple zlevels. */ this._needsManuallyCompositing = false; if (!singleCanvas) { this._width = this._getSize(0); this._height = this._getSize(1); var domRoot = this._domRoot = createRoot(this._width, this._height); root.appendChild(domRoot); } else { var width = root.width; var height = root.height; if (opts.width != null) { width = opts.width; } if (opts.height != null) { height = opts.height; } this.dpr = opts.devicePixelRatio || 1; // Use canvas width and height directly root.width = width * this.dpr; root.height = height * this.dpr; this._width = width; this._height = height; // Create layer if only one given canvas // Device can be specified to create a high dpi image. var mainLayer = new Layer(root, this, this.dpr); mainLayer.__builtin__ = true; mainLayer.initContext(); // FIXME Use canvas width and height // mainLayer.resize(width, height); layers[CANVAS_ZLEVEL] = mainLayer; mainLayer.zlevel = CANVAS_ZLEVEL; // Not use common zlevel. zlevelList.push(CANVAS_ZLEVEL); this._domRoot = root; } /** * @type {module:zrender/Layer} * @private */ this._hoverlayer = null; this._hoverElements = []; }; Painter.prototype = { constructor: Painter, getType: function getType() { return 'canvas'; }, /** * If painter use a single canvas * @return {boolean} */ isSingleCanvas: function isSingleCanvas() { return this._singleCanvas; }, /** * @return {HTMLDivElement} */ getViewportRoot: function getViewportRoot() { return this._domRoot; }, getViewportRootOffset: function getViewportRootOffset() { var viewportRoot = this.getViewportRoot(); if (viewportRoot) { return { offsetLeft: viewportRoot.offsetLeft || 0, offsetTop: viewportRoot.offsetTop || 0 }; } }, /** * 刷新 * @param {boolean} [paintAll=false] 强制绘制所有displayable */ refresh: function refresh(paintAll) { var list = this.storage.getDisplayList(true); var zlevelList = this._zlevelList; this._redrawId = Math.random(); this._paintList(list, paintAll, this._redrawId); // Paint custum layers for (var i = 0; i < zlevelList.length; i++) { var z = zlevelList[i]; var layer = this._layers[z]; if (!layer.__builtin__ && layer.refresh) { var clearColor = i === 0 ? this._backgroundColor : null; layer.refresh(clearColor); } } this.refreshHover(); return this; }, addHover: function addHover(el, hoverStyle) { if (el.__hoverMir) { return; } var elMirror = new el.constructor({ style: el.style, shape: el.shape, z: el.z, z2: el.z2, silent: el.silent }); elMirror.__from = el; el.__hoverMir = elMirror; hoverStyle && elMirror.setStyle(hoverStyle); this._hoverElements.push(elMirror); return elMirror; }, removeHover: function removeHover(el) { var elMirror = el.__hoverMir; var hoverElements = this._hoverElements; var idx = util.indexOf(hoverElements, elMirror); if (idx >= 0) { hoverElements.splice(idx, 1); } el.__hoverMir = null; }, clearHover: function clearHover(el) { var hoverElements = this._hoverElements; for (var i = 0; i < hoverElements.length; i++) { var from = hoverElements[i].__from; if (from) { from.__hoverMir = null; } } hoverElements.length = 0; }, refreshHover: function refreshHover() { var hoverElements = this._hoverElements; var len = hoverElements.length; var hoverLayer = this._hoverlayer; hoverLayer && hoverLayer.clear(); if (!len) { return; } timsort(hoverElements, this.storage.displayableSortFunc); // Use a extream large zlevel // FIXME? if (!hoverLayer) { hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL); } var scope = {}; hoverLayer.ctx.save(); for (var i = 0; i < len;) { var el = hoverElements[i]; var originalEl = el.__from; // Original el is removed // PENDING if (!(originalEl && originalEl.__zr)) { hoverElements.splice(i, 1); originalEl.__hoverMir = null; len--; continue; } i++; // Use transform // FIXME style and shape ? if (!originalEl.invisible) { el.transform = originalEl.transform; el.invTransform = originalEl.invTransform; el.__clipPaths = originalEl.__clipPaths; // el. this._doPaintEl(el, hoverLayer, true, scope); } } hoverLayer.ctx.restore(); }, getHoverLayer: function getHoverLayer() { return this.getLayer(HOVER_LAYER_ZLEVEL); }, _paintList: function _paintList(list, paintAll, redrawId) { if (this._redrawId !== redrawId) { return; } paintAll = paintAll || false; this._updateLayerStatus(list); var finished = this._doPaintList(list, paintAll); if (this._needsManuallyCompositing) { this._compositeManually(); } if (!finished) { var self = this; requestAnimationFrame(function () { self._paintList(list, paintAll, redrawId); }); } }, _compositeManually: function _compositeManually() { var ctx = this.getLayer(CANVAS_ZLEVEL).ctx; var width = this._domRoot.width; var height = this._domRoot.height; ctx.clearRect(0, 0, width, height); // PENDING, If only builtin layer? this.eachBuiltinLayer(function (layer) { if (layer.virtual) { ctx.drawImage(layer.dom, 0, 0, width, height); } }); }, _doPaintList: function _doPaintList(list, paintAll) { var layerList = []; for (var zi = 0; zi < this._zlevelList.length; zi++) { var zlevel = this._zlevelList[zi]; var layer = this._layers[zlevel]; if (layer.__builtin__ && layer !== this._hoverlayer && (layer.__dirty || paintAll)) { layerList.push(layer); } } var finished = true; for (var k = 0; k < layerList.length; k++) { var layer = layerList[k]; var ctx = layer.ctx; var scope = {}; ctx.save(); var start = paintAll ? layer.__startIndex : layer.__drawIndex; var useTimer = !paintAll && layer.incremental && Date.now; var startTime = useTimer && Date.now(); var clearColor = layer.zlevel === this._zlevelList[0] ? this._backgroundColor : null; // All elements in this layer are cleared. if (layer.__startIndex === layer.__endIndex) { layer.clear(false, clearColor); } else if (start === layer.__startIndex) { var firstEl = list[start]; if (!firstEl.incremental || !firstEl.notClear || paintAll) { layer.clear(false, clearColor); } } if (start === -1) { __f__("error", 'For some unknown reason. drawIndex is -1', " at node_modules/zrender/lib/Painter.js:438"); start = layer.__startIndex; } for (var i = start; i < layer.__endIndex; i++) { var el = list[i]; this._doPaintEl(el, layer, paintAll, scope); el.__dirty = el.__dirtyText = false; if (useTimer) { // Date.now can be executed in 13,025,305 ops/second. var dTime = Date.now() - startTime; // Give 15 millisecond to draw. // The rest elements will be drawn in the next frame. if (dTime > 15) { break; } } } layer.__drawIndex = i; if (layer.__drawIndex < layer.__endIndex) { finished = false; } if (scope.prevElClipPaths) { // Needs restore the state. If last drawn element is in the clipping area. ctx.restore(); } ctx.restore(); } if (env.wxa) { // Flush for weixin application util.each(this._layers, function (layer) { if (layer && layer.ctx && layer.ctx.draw) { layer.ctx.draw(); } }); } return finished; }, _doPaintEl: function _doPaintEl(el, currentLayer, forcePaint, scope) { var ctx = currentLayer.ctx; var m = el.transform; if ((currentLayer.__dirty || forcePaint) && // Ignore invisible element !el.invisible // Ignore transparent element && el.style.opacity !== 0 // Ignore scale 0 element, in some environment like node-canvas // Draw a scale 0 element can cause all following draw wrong // And setTransform with scale 0 will cause set back transform failed. && !(m && !m[0] && !m[3]) // Ignore culled element && !(el.culling && isDisplayableCulled(el, this._width, this._height))) { var clipPaths = el.__clipPaths; var prevElClipPaths = scope.prevElClipPaths; // Optimize when clipping on group with several elements if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) { // If has previous clipping state, restore from it if (prevElClipPaths) { ctx.restore(); scope.prevElClipPaths = null; // Reset prevEl since context has been restored scope.prevEl = null; } // New clipping state if (clipPaths) { ctx.save(); doClip(clipPaths, ctx); scope.prevElClipPaths = clipPaths; } } el.beforeBrush && el.beforeBrush(ctx); el.brush(ctx, scope.prevEl || null); scope.prevEl = el; el.afterBrush && el.afterBrush(ctx); } }, /** * 获取 zlevel 所在层,如果不存在则会创建一个新的层 * @param {number} zlevel * @param {boolean} virtual Virtual layer will not be inserted into dom. * @return {module:zrender/Layer} */ getLayer: function getLayer(zlevel, virtual) { if (this._singleCanvas && !this._needsManuallyCompositing) { zlevel = CANVAS_ZLEVEL; } var layer = this._layers[zlevel]; if (!layer) { // Create a new layer layer = new Layer('zr_' + zlevel, this, this.dpr); layer.zlevel = zlevel; layer.__builtin__ = true; if (this._layerConfig[zlevel]) { util.merge(layer, this._layerConfig[zlevel], true); } // TODO Remove EL_AFTER_INCREMENTAL_INC magic number else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) { util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true); } if (virtual) { layer.virtual = virtual; } this.insertLayer(zlevel, layer); // Context is created after dom inserted to document // Or excanvas will get 0px clientWidth and clientHeight layer.initContext(); } return layer; }, insertLayer: function insertLayer(zlevel, layer) { var layersMap = this._layers; var zlevelList = this._zlevelList; var len = zlevelList.length; var prevLayer = null; var i = -1; var domRoot = this._domRoot; if (layersMap[zlevel]) { logError('ZLevel ' + zlevel + ' has been used already'); return; } // Check if is a valid layer if (!isLayerValid(layer)) { logError('Layer of zlevel ' + zlevel + ' is not valid'); return; } if (len > 0 && zlevel > zlevelList[0]) { for (i = 0; i < len - 1; i++) { if (zlevelList[i] < zlevel && zlevelList[i + 1] > zlevel) { break; } } prevLayer = layersMap[zlevelList[i]]; } zlevelList.splice(i + 1, 0, zlevel); layersMap[zlevel] = layer; // Vitual layer will not directly show on the screen. // (It can be a WebGL layer and assigned to a ZImage element) // But it still under management of zrender. if (!layer.virtual) { if (prevLayer) { var prevDom = prevLayer.dom; if (prevDom.nextSibling) { domRoot.insertBefore(layer.dom, prevDom.nextSibling); } else { domRoot.appendChild(layer.dom); } } else { if (domRoot.firstChild) { domRoot.insertBefore(layer.dom, domRoot.firstChild); } else { domRoot.appendChild(layer.dom); } } } }, // Iterate each layer eachLayer: function eachLayer(cb, context) { var zlevelList = this._zlevelList; var z; var i; for (i = 0; i < zlevelList.length; i++) { z = zlevelList[i]; cb.call(context, this._layers[z], z); } }, // Iterate each buildin layer eachBuiltinLayer: function eachBuiltinLayer(cb, context) { var zlevelList = this._zlevelList; var layer; var z; var i; for (i = 0; i < zlevelList.length; i++) { z = zlevelList[i]; layer = this._layers[z]; if (layer.__builtin__) { cb.call(context, layer, z); } } }, // Iterate each other layer except buildin layer eachOtherLayer: function eachOtherLayer(cb, context) { var zlevelList = this._zlevelList; var layer; var z; var i; for (i = 0; i < zlevelList.length; i++) { z = zlevelList[i]; layer = this._layers[z]; if (!layer.__builtin__) { cb.call(context, layer, z); } } }, /** * 获取所有已创建的层 * @param {Array.} [prevLayer] */ getLayers: function getLayers() { return this._layers; }, _updateLayerStatus: function _updateLayerStatus(list) { this.eachBuiltinLayer(function (layer, z) { layer.__dirty = layer.__used = false; }); function updatePrevLayer(idx) { if (prevLayer) { if (prevLayer.__endIndex !== idx) { prevLayer.__dirty = true; } prevLayer.__endIndex = idx; } } if (this._singleCanvas) { for (var i = 1; i < list.length; i++) { var el = list[i]; if (el.zlevel !== list[i - 1].zlevel || el.incremental) { this._needsManuallyCompositing = true; break; } } } var prevLayer = null; var incrementalLayerCount = 0; var prevZlevel; for (var i = 0; i < list.length; i++) { var el = list[i]; var zlevel = el.zlevel; var layer; if (prevZlevel !== zlevel) { prevZlevel = zlevel; incrementalLayerCount = 0; } // TODO Not use magic number on zlevel. // Each layer with increment element can be separated to 3 layers. // (Other Element drawn after incremental element) // -----------------zlevel + EL_AFTER_INCREMENTAL_INC-------------------- // (Incremental element) // ----------------------zlevel + INCREMENTAL_INC------------------------ // (Element drawn before incremental element) // --------------------------------zlevel-------------------------------- if (el.incremental) { layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing); layer.incremental = true; incrementalLayerCount = 1; } else { layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing); } if (!layer.__builtin__) { logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id); } if (layer !== prevLayer) { layer.__used = true; if (layer.__startIndex !== i) { layer.__dirty = true; } layer.__startIndex = i; if (!layer.incremental) { layer.__drawIndex = i; } else { // Mark layer draw index needs to update. layer.__drawIndex = -1; } updatePrevLayer(i); prevLayer = layer; } if (el.__dirty) { layer.__dirty = true; if (layer.incremental && layer.__drawIndex < 0) { // Start draw from the first dirty element. layer.__drawIndex = i; } } } updatePrevLayer(i); this.eachBuiltinLayer(function (layer, z) { // Used in last frame but not in this frame. Needs clear if (!layer.__used && layer.getElementCount() > 0) { layer.__dirty = true; layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0; } // For incremental layer. In case start index changed and no elements are dirty. if (layer.__dirty && layer.__drawIndex < 0) { layer.__drawIndex = layer.__startIndex; } }); }, /** * 清除hover层外所有内容 */ clear: function clear() { this.eachBuiltinLayer(this._clearLayer); return this; }, _clearLayer: function _clearLayer(layer) { layer.clear(); }, setBackgroundColor: function setBackgroundColor(backgroundColor) { this._backgroundColor = backgroundColor; }, /** * 修改指定zlevel的绘制参数 * * @param {string} zlevel * @param {Object} config 配置对象 * @param {string} [config.clearColor=0] 每次清空画布的颜色 * @param {string} [config.motionBlur=false] 是否开启动态模糊 * @param {number} [config.lastFrameAlpha=0.7] * 在开启动态模糊的时候使用,与上一帧混合的alpha值,值越大尾迹越明显 */ configLayer: function configLayer(zlevel, config) { if (config) { var layerConfig = this._layerConfig; if (!layerConfig[zlevel]) { layerConfig[zlevel] = config; } else { util.merge(layerConfig[zlevel], config, true); } for (var i = 0; i < this._zlevelList.length; i++) { var _zlevel = this._zlevelList[i]; // TODO Remove EL_AFTER_INCREMENTAL_INC magic number if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) { var layer = this._layers[_zlevel]; util.merge(layer, layerConfig[zlevel], true); } } } }, /** * 删除指定层 * @param {number} zlevel 层所在的zlevel */ delLayer: function delLayer(zlevel) { var layers = this._layers; var zlevelList = this._zlevelList; var layer = layers[zlevel]; if (!layer) { return; } layer.dom.parentNode.removeChild(layer.dom); delete layers[zlevel]; zlevelList.splice(util.indexOf(zlevelList, zlevel), 1); }, /** * 区域大小变化后重绘 */ resize: function resize(width, height) { if (!this._domRoot.style) { // Maybe in node or worker if (width == null || height == null) { return; } this._width = width; this._height = height; this.getLayer(CANVAS_ZLEVEL).resize(width, height); } else { var domRoot = this._domRoot; // FIXME Why ? domRoot.style.display = 'none'; // Save input w/h var opts = this._opts; width != null && (opts.width = width); height != null && (opts.height = height); width = this._getSize(0); height = this._getSize(1); domRoot.style.display = ''; // 优化没有实际改变的resize if (this._width !== width || height !== this._height) { domRoot.style.width = width + 'px'; domRoot.style.height = height + 'px'; for (var id in this._layers) { if (this._layers.hasOwnProperty(id)) { this._layers[id].resize(width, height); } } util.each(this._progressiveLayers, function (layer) { layer.resize(width, height); }); this.refresh(true); } this._width = width; this._height = height; } return this; }, /** * 清除单独的一个层 * @param {number} zlevel */ clearLayer: function clearLayer(zlevel) { var layer = this._layers[zlevel]; if (layer) { layer.clear(); } }, /** * 释放 */ dispose: function dispose() { this.root.innerHTML = ''; this.root = this.storage = this._domRoot = this._layers = null; }, /** * Get canvas which has all thing rendered * @param {Object} opts * @param {string} [opts.backgroundColor] * @param {number} [opts.pixelRatio] */ getRenderedCanvas: function getRenderedCanvas(opts) { opts = opts || {}; if (this._singleCanvas && !this._compositeManually) { return this._layers[CANVAS_ZLEVEL].dom; } var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr); imageLayer.initContext(); imageLayer.clear(false, opts.backgroundColor || this._backgroundColor); if (opts.pixelRatio <= this.dpr) { this.refresh(); var width = imageLayer.dom.width; var height = imageLayer.dom.height; var ctx = imageLayer.ctx; this.eachLayer(function (layer) { if (layer.__builtin__) { ctx.drawImage(layer.dom, 0, 0, width, height); } else if (layer.renderToCanvas) { imageLayer.ctx.save(); layer.renderToCanvas(imageLayer.ctx); imageLayer.ctx.restore(); } }); } else { // PENDING, echarts-gl and incremental rendering. var scope = {}; var displayList = this.storage.getDisplayList(true); for (var i = 0; i < displayList.length; i++) { var el = displayList[i]; this._doPaintEl(el, imageLayer, true, scope); } } return imageLayer.dom; }, /** * 获取绘图区域宽度 */ getWidth: function getWidth() { return this._width; }, /** * 获取绘图区域高度 */ getHeight: function getHeight() { return this._height; }, _getSize: function _getSize(whIdx) { var opts = this._opts; var wh = ['width', 'height'][whIdx]; var cwh = ['clientWidth', 'clientHeight'][whIdx]; var plt = ['paddingLeft', 'paddingTop'][whIdx]; var prb = ['paddingRight', 'paddingBottom'][whIdx]; if (opts[wh] != null && opts[wh] !== 'auto') { return parseFloat(opts[wh]); } var root = this.root; // IE8 does not support getComputedStyle, but it use VML. var stl = document.defaultView.getComputedStyle(root); return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0; }, pathToImage: function pathToImage(path, dpr) { dpr = dpr || this.dpr; var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var rect = path.getBoundingRect(); var style = path.style; var shadowBlurSize = style.shadowBlur * dpr; var shadowOffsetX = style.shadowOffsetX * dpr; var shadowOffsetY = style.shadowOffsetY * dpr; var lineWidth = style.hasStroke() ? style.lineWidth : 0; var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize); var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize); var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize); var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize); var width = rect.width + leftMargin + rightMargin; var height = rect.height + topMargin + bottomMargin; canvas.width = width * dpr; canvas.height = height * dpr; ctx.scale(dpr, dpr); ctx.clearRect(0, 0, width, height); ctx.dpr = dpr; var pathTransform = { position: path.position, rotation: path.rotation, scale: path.scale }; path.position = [leftMargin - rect.x, topMargin - rect.y]; path.rotation = 0; path.scale = [1, 1]; path.updateTransform(); if (path) { path.brush(ctx); } var ImageShape = Image; var imgShape = new ImageShape({ style: { x: 0, y: 0, image: canvas } }); if (pathTransform.position != null) { imgShape.position = path.position = pathTransform.position; } if (pathTransform.rotation != null) { imgShape.rotation = path.rotation = pathTransform.rotation; } if (pathTransform.scale != null) { imgShape.scale = path.scale = pathTransform.scale; } return imgShape; } }; var _default = Painter; module.exports = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)["default"])) /***/ }), /* 428 */ /*!******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/Layer.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ./core/util */ 403); var _config = __webpack_require__(/*! ./config */ 424); var devicePixelRatio = _config.devicePixelRatio; var Style = __webpack_require__(/*! ./graphic/Style */ 429); var Pattern = __webpack_require__(/*! ./graphic/Pattern */ 432); /** * @module zrender/Layer * @author pissang(https://www.github.com/pissang) */ function returnFalse() { return false; } /** * 创建dom * * @inner * @param {string} id dom id 待用 * @param {Painter} painter painter instance * @param {number} number */ function createDom(id, painter, dpr) { var newDom = util.createCanvas(); var width = painter.getWidth(); var height = painter.getHeight(); var newDomStyle = newDom.style; if (newDomStyle) { // In node or some other non-browser environment newDomStyle.position = 'absolute'; newDomStyle.left = 0; newDomStyle.top = 0; newDomStyle.width = width + 'px'; newDomStyle.height = height + 'px'; newDom.setAttribute('data-zr-dom-id', id); } newDom.width = width * dpr; newDom.height = height * dpr; return newDom; } /** * @alias module:zrender/Layer * @constructor * @extends module:zrender/mixin/Transformable * @param {string} id * @param {module:zrender/Painter} painter * @param {number} [dpr] */ var Layer = function Layer(id, painter, dpr) { var dom; dpr = dpr || devicePixelRatio; if (typeof id === 'string') { dom = createDom(id, painter, dpr); } // Not using isDom because in node it will return false else if (util.isObject(id)) { dom = id; id = dom.id; } this.id = id; this.dom = dom; var domStyle = dom.style; if (domStyle) { // Not in node dom.onselectstart = returnFalse; // 避免页面选中的尴尬 domStyle['-webkit-user-select'] = 'none'; domStyle['user-select'] = 'none'; domStyle['-webkit-touch-callout'] = 'none'; domStyle['-webkit-tap-highlight-color'] = 'rgba(0,0,0,0)'; domStyle['padding'] = 0; // eslint-disable-line dot-notation domStyle['margin'] = 0; // eslint-disable-line dot-notation domStyle['border-width'] = 0; } this.domBack = null; this.ctxBack = null; this.painter = painter; this.config = null; // Configs /** * 每次清空画布的颜色 * @type {string} * @default 0 */ this.clearColor = 0; /** * 是否开启动态模糊 * @type {boolean} * @default false */ this.motionBlur = false; /** * 在开启动态模糊的时候使用,与上一帧混合的alpha值,值越大尾迹越明显 * @type {number} * @default 0.7 */ this.lastFrameAlpha = 0.7; /** * Layer dpr * @type {number} */ this.dpr = dpr; }; Layer.prototype = { constructor: Layer, __dirty: true, __used: false, __drawIndex: 0, __startIndex: 0, __endIndex: 0, incremental: false, getElementCount: function getElementCount() { return this.__endIndex - this.__startIndex; }, initContext: function initContext() { this.ctx = this.dom.getContext('2d'); this.ctx.dpr = this.dpr; }, createBackBuffer: function createBackBuffer() { var dpr = this.dpr; this.domBack = createDom('back-' + this.id, this.painter, dpr); this.ctxBack = this.domBack.getContext('2d'); if (dpr !== 1) { this.ctxBack.scale(dpr, dpr); } }, /** * @param {number} width * @param {number} height */ resize: function resize(width, height) { var dpr = this.dpr; var dom = this.dom; var domStyle = dom.style; var domBack = this.domBack; if (domStyle) { domStyle.width = width + 'px'; domStyle.height = height + 'px'; } dom.width = width * dpr; dom.height = height * dpr; if (domBack) { domBack.width = width * dpr; domBack.height = height * dpr; if (dpr !== 1) { this.ctxBack.scale(dpr, dpr); } } }, /** * 清空该层画布 * @param {boolean} [clearAll]=false Clear all with out motion blur * @param {Color} [clearColor] */ clear: function clear(clearAll, clearColor) { var dom = this.dom; var ctx = this.ctx; var width = dom.width; var height = dom.height; var clearColor = clearColor || this.clearColor; var haveMotionBLur = this.motionBlur && !clearAll; var lastFrameAlpha = this.lastFrameAlpha; var dpr = this.dpr; if (haveMotionBLur) { if (!this.domBack) { this.createBackBuffer(); } this.ctxBack.globalCompositeOperation = 'copy'; this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr); } ctx.clearRect(0, 0, width, height); if (clearColor && clearColor !== 'transparent') { var clearColorGradientOrPattern; // Gradient if (clearColor.colorStops) { // Cache canvas gradient clearColorGradientOrPattern = clearColor.__canvasGradient || Style.getGradient(ctx, clearColor, { x: 0, y: 0, width: width, height: height }); clearColor.__canvasGradient = clearColorGradientOrPattern; } // Pattern else if (clearColor.image) { clearColorGradientOrPattern = Pattern.prototype.getCanvasPattern.call(clearColor, ctx); } ctx.save(); ctx.fillStyle = clearColorGradientOrPattern || clearColor; ctx.fillRect(0, 0, width, height); ctx.restore(); } if (haveMotionBLur) { var domBack = this.domBack; ctx.save(); ctx.globalAlpha = lastFrameAlpha; ctx.drawImage(domBack, 0, 0, width, height); ctx.restore(); } } }; var _default = Layer; module.exports = _default; /***/ }), /* 429 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/Style.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var fixShadow = __webpack_require__(/*! ./helper/fixShadow */ 430); var _constant = __webpack_require__(/*! ./constant */ 431); var ContextCachedBy = _constant.ContextCachedBy; var STYLE_COMMON_PROPS = [['shadowBlur', 0], ['shadowOffsetX', 0], ['shadowOffsetY', 0], ['shadowColor', '#000'], ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]]; // var SHADOW_PROPS = STYLE_COMMON_PROPS.slice(0, 4); // var LINE_PROPS = STYLE_COMMON_PROPS.slice(4); var Style = function Style(opts) { this.extendFrom(opts, false); }; function createLinearGradient(ctx, obj, rect) { var x = obj.x == null ? 0 : obj.x; var x2 = obj.x2 == null ? 1 : obj.x2; var y = obj.y == null ? 0 : obj.y; var y2 = obj.y2 == null ? 0 : obj.y2; if (!obj.global) { x = x * rect.width + rect.x; x2 = x2 * rect.width + rect.x; y = y * rect.height + rect.y; y2 = y2 * rect.height + rect.y; } // Fix NaN when rect is Infinity x = isNaN(x) ? 0 : x; x2 = isNaN(x2) ? 1 : x2; y = isNaN(y) ? 0 : y; y2 = isNaN(y2) ? 0 : y2; var canvasGradient = ctx.createLinearGradient(x, y, x2, y2); return canvasGradient; } function createRadialGradient(ctx, obj, rect) { var width = rect.width; var height = rect.height; var min = Math.min(width, height); var x = obj.x == null ? 0.5 : obj.x; var y = obj.y == null ? 0.5 : obj.y; var r = obj.r == null ? 0.5 : obj.r; if (!obj.global) { x = x * width + rect.x; y = y * height + rect.y; r = r * min; } var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r); return canvasGradient; } Style.prototype = { constructor: Style, /** * @type {string} */ fill: '#000', /** * @type {string} */ stroke: null, /** * @type {number} */ opacity: 1, /** * @type {number} */ fillOpacity: null, /** * @type {number} */ strokeOpacity: null, /** * `true` is not supported. * `false`/`null`/`undefined` are the same. * `false` is used to remove lineDash in some * case that `null`/`undefined` can not be set. * (e.g., emphasis.lineStyle in echarts) * @type {Array.|boolean} */ lineDash: null, /** * @type {number} */ lineDashOffset: 0, /** * @type {number} */ shadowBlur: 0, /** * @type {number} */ shadowOffsetX: 0, /** * @type {number} */ shadowOffsetY: 0, /** * @type {number} */ lineWidth: 1, /** * If stroke ignore scale * @type {Boolean} */ strokeNoScale: false, // Bounding rect text configuration // Not affected by element transform /** * @type {string} */ text: null, /** * If `fontSize` or `fontFamily` exists, `font` will be reset by * `fontSize`, `fontStyle`, `fontWeight`, `fontFamily`. * So do not visit it directly in upper application (like echarts), * but use `contain/text#makeFont` instead. * @type {string} */ font: null, /** * The same as font. Use font please. * @deprecated * @type {string} */ textFont: null, /** * It helps merging respectively, rather than parsing an entire font string. * @type {string} */ fontStyle: null, /** * It helps merging respectively, rather than parsing an entire font string. * @type {string} */ fontWeight: null, /** * It helps merging respectively, rather than parsing an entire font string. * Should be 12 but not '12px'. * @type {number} */ fontSize: null, /** * It helps merging respectively, rather than parsing an entire font string. * @type {string} */ fontFamily: null, /** * Reserved for special functinality, like 'hr'. * @type {string} */ textTag: null, /** * @type {string} */ textFill: '#000', /** * @type {string} */ textStroke: null, /** * @type {number} */ textWidth: null, /** * Only for textBackground. * @type {number} */ textHeight: null, /** * textStroke may be set as some color as a default * value in upper applicaion, where the default value * of textStrokeWidth should be 0 to make sure that * user can choose to do not use text stroke. * @type {number} */ textStrokeWidth: 0, /** * @type {number} */ textLineHeight: null, /** * 'inside', 'left', 'right', 'top', 'bottom' * [x, y] * Based on x, y of rect. * @type {string|Array.} * @default 'inside' */ textPosition: 'inside', /** * If not specified, use the boundingRect of a `displayable`. * @type {Object} */ textRect: null, /** * [x, y] * @type {Array.} */ textOffset: null, /** * @type {string} */ textAlign: null, /** * @type {string} */ textVerticalAlign: null, /** * @type {number} */ textDistance: 5, /** * @type {string} */ textShadowColor: 'transparent', /** * @type {number} */ textShadowBlur: 0, /** * @type {number} */ textShadowOffsetX: 0, /** * @type {number} */ textShadowOffsetY: 0, /** * @type {string} */ textBoxShadowColor: 'transparent', /** * @type {number} */ textBoxShadowBlur: 0, /** * @type {number} */ textBoxShadowOffsetX: 0, /** * @type {number} */ textBoxShadowOffsetY: 0, /** * Whether transform text. * Only available in Path and Image element, * where the text is called as `RectText`. * @type {boolean} */ transformText: false, /** * Text rotate around position of Path or Image. * The origin of the rotation can be specified by `textOrigin`. * Only available in Path and Image element, * where the text is called as `RectText`. */ textRotation: 0, /** * Text origin of text rotation. * Useful in the case like label rotation of circular symbol. * Only available in Path and Image element, where the text is called * as `RectText` and the element is called as "host element". * The value can be: * + If specified as a coordinate like `[10, 40]`, it is the `[x, y]` * base on the left-top corner of the rect of its host element. * + If specified as a string `center`, it is the center of the rect of * its host element. * + By default, this origin is the `textPosition`. * @type {string|Array.} */ textOrigin: null, /** * @type {string} */ textBackgroundColor: null, /** * @type {string} */ textBorderColor: null, /** * @type {number} */ textBorderWidth: 0, /** * @type {number} */ textBorderRadius: 0, /** * Can be `2` or `[2, 4]` or `[2, 3, 4, 5]` * @type {number|Array.} */ textPadding: null, /** * Text styles for rich text. * @type {Object} */ rich: null, /** * {outerWidth, outerHeight, ellipsis, placeholder} * @type {Object} */ truncate: null, /** * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation * @type {string} */ blend: null, /** * @param {CanvasRenderingContext2D} ctx */ bind: function bind(ctx, el, prevEl) { var style = this; var prevStyle = prevEl && prevEl.style; // If no prevStyle, it means first draw. // Only apply cache if the last time cachced by this function. var notCheckCache = !prevStyle || ctx.__attrCachedBy !== ContextCachedBy.STYLE_BIND; ctx.__attrCachedBy = ContextCachedBy.STYLE_BIND; for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) { var prop = STYLE_COMMON_PROPS[i]; var styleName = prop[0]; if (notCheckCache || style[styleName] !== prevStyle[styleName]) { // FIXME Invalid property value will cause style leak from previous element. ctx[styleName] = fixShadow(ctx, styleName, style[styleName] || prop[1]); } } if (notCheckCache || style.fill !== prevStyle.fill) { ctx.fillStyle = style.fill; } if (notCheckCache || style.stroke !== prevStyle.stroke) { ctx.strokeStyle = style.stroke; } if (notCheckCache || style.opacity !== prevStyle.opacity) { ctx.globalAlpha = style.opacity == null ? 1 : style.opacity; } if (notCheckCache || style.blend !== prevStyle.blend) { ctx.globalCompositeOperation = style.blend || 'source-over'; } if (this.hasStroke()) { var lineWidth = style.lineWidth; ctx.lineWidth = lineWidth / (this.strokeNoScale && el && el.getLineScale ? el.getLineScale() : 1); } }, hasFill: function hasFill() { var fill = this.fill; return fill != null && fill !== 'none'; }, hasStroke: function hasStroke() { var stroke = this.stroke; return stroke != null && stroke !== 'none' && this.lineWidth > 0; }, /** * Extend from other style * @param {zrender/graphic/Style} otherStyle * @param {boolean} overwrite true: overwrirte any way. * false: overwrite only when !target.hasOwnProperty * others: overwrite when property is not null/undefined. */ extendFrom: function extendFrom(otherStyle, overwrite) { if (otherStyle) { for (var name in otherStyle) { if (otherStyle.hasOwnProperty(name) && (overwrite === true || (overwrite === false ? !this.hasOwnProperty(name) : otherStyle[name] != null))) { this[name] = otherStyle[name]; } } } }, /** * Batch setting style with a given object * @param {Object|string} obj * @param {*} [obj] */ set: function set(obj, value) { if (typeof obj === 'string') { this[obj] = value; } else { this.extendFrom(obj, true); } }, /** * Clone * @return {zrender/graphic/Style} [description] */ clone: function clone() { var newStyle = new this.constructor(); newStyle.extendFrom(this, true); return newStyle; }, getGradient: function getGradient(ctx, obj, rect) { var method = obj.type === 'radial' ? createRadialGradient : createLinearGradient; var canvasGradient = method(ctx, obj, rect); var colorStops = obj.colorStops; for (var i = 0; i < colorStops.length; i++) { canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color); } return canvasGradient; } }; var styleProto = Style.prototype; for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) { var prop = STYLE_COMMON_PROPS[i]; if (!(prop[0] in styleProto)) { styleProto[prop[0]] = prop[1]; } } // Provide for others Style.getGradient = styleProto.getGradient; var _default = Style; module.exports = _default; /***/ }), /* 430 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/fixShadow.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { var SHADOW_PROPS = { 'shadowBlur': 1, 'shadowOffsetX': 1, 'shadowOffsetY': 1, 'textShadowBlur': 1, 'textShadowOffsetX': 1, 'textShadowOffsetY': 1, 'textBoxShadowBlur': 1, 'textBoxShadowOffsetX': 1, 'textBoxShadowOffsetY': 1 }; function _default(ctx, propName, value) { if (SHADOW_PROPS.hasOwnProperty(propName)) { return value *= ctx.dpr; } return value; } module.exports = _default; /***/ }), /* 431 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/constant.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { var ContextCachedBy = { NONE: 0, STYLE_BIND: 1, PLAIN_TEXT: 2 }; // Avoid confused with 0/false. var WILL_BE_RESTORED = 9; exports.ContextCachedBy = ContextCachedBy; exports.WILL_BE_RESTORED = WILL_BE_RESTORED; /***/ }), /* 432 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/Pattern.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { var Pattern = function Pattern(image, repeat) { // Should do nothing more in this constructor. Because gradient can be // declard by `color: {image: ...}`, where this constructor will not be called. this.image = image; this.repeat = repeat; // Can be cloned this.type = 'pattern'; }; Pattern.prototype.getCanvasPattern = function (ctx) { return ctx.createPattern(this.image, this.repeat || 'repeat'); }; var _default = Pattern; module.exports = _default; /***/ }), /* 433 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/animation/requestAnimationFrame.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { var _default = typeof window !== 'undefined' && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || // https://github.com/ecomfe/zrender/issues/189#issuecomment-224919809 window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function (func) { setTimeout(func, 16); }; module.exports = _default; /***/ }), /* 434 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/Image.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Displayable = __webpack_require__(/*! ./Displayable */ 435); var BoundingRect = __webpack_require__(/*! ../core/BoundingRect */ 425); var zrUtil = __webpack_require__(/*! ../core/util */ 403); var imageHelper = __webpack_require__(/*! ./helper/image */ 439); /** * @alias zrender/graphic/Image * @extends module:zrender/graphic/Displayable * @constructor * @param {Object} opts */ function ZImage(opts) { Displayable.call(this, opts); } ZImage.prototype = { constructor: ZImage, type: 'image', brush: function brush(ctx, prevEl) { var style = this.style; var src = style.image; // Must bind each time style.bind(ctx, this, prevEl); var image = this._image = imageHelper.createOrUpdateImage(src, this._image, this, this.onload); if (!image || !imageHelper.isImageReady(image)) { return; } // 图片已经加载完成 // if (image.nodeName.toUpperCase() == 'IMG') { // if (!image.complete) { // return; // } // } // Else is canvas var x = style.x || 0; var y = style.y || 0; var width = style.width; var height = style.height; var aspect = image.width / image.height; if (width == null && height != null) { // Keep image/height ratio width = height * aspect; } else if (height == null && width != null) { height = width / aspect; } else if (width == null && height == null) { width = image.width; height = image.height; } // 设置transform this.setTransform(ctx); if (style.sWidth && style.sHeight) { var sx = style.sx || 0; var sy = style.sy || 0; ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height); } else if (style.sx && style.sy) { var sx = style.sx; var sy = style.sy; var sWidth = width - sx; var sHeight = height - sy; ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height); } else { ctx.drawImage(image, x, y, width, height); } // Draw rect text if (style.text != null) { // Only restore transform when needs draw text. this.restoreTransform(ctx); this.drawRectText(ctx, this.getBoundingRect()); } }, getBoundingRect: function getBoundingRect() { var style = this.style; if (!this._rect) { this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0); } return this._rect; } }; zrUtil.inherits(ZImage, Displayable); var _default = ZImage; module.exports = _default; /***/ }), /* 435 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/Displayable.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var zrUtil = __webpack_require__(/*! ../core/util */ 403); var Style = __webpack_require__(/*! ./Style */ 429); var Element = __webpack_require__(/*! ../Element */ 414); var RectText = __webpack_require__(/*! ./mixin/RectText */ 436); /** * Base class of all displayable graphic objects * @module zrender/graphic/Displayable */ /** * @alias module:zrender/graphic/Displayable * @extends module:zrender/Element * @extends module:zrender/graphic/mixin/RectText */ function Displayable(opts) { opts = opts || {}; Element.call(this, opts); // Extend properties for (var name in opts) { if (opts.hasOwnProperty(name) && name !== 'style') { this[name] = opts[name]; } } /** * @type {module:zrender/graphic/Style} */ this.style = new Style(opts.style, this); this._rect = null; // Shapes for cascade clipping. // Can only be `null`/`undefined` or an non-empty array, MUST NOT be an empty array. // because it is easy to only using null to check whether clipPaths changed. this.__clipPaths = null; // FIXME Stateful must be mixined after style is setted // Stateful.call(this, opts); } Displayable.prototype = { constructor: Displayable, type: 'displayable', /** * Dirty flag. From which painter will determine if this displayable object needs brush. * @name module:zrender/graphic/Displayable#__dirty * @type {boolean} */ __dirty: true, /** * Whether the displayable object is visible. when it is true, the displayable object * is not drawn, but the mouse event can still trigger the object. * @name module:/zrender/graphic/Displayable#invisible * @type {boolean} * @default false */ invisible: false, /** * @name module:/zrender/graphic/Displayable#z * @type {number} * @default 0 */ z: 0, /** * @name module:/zrender/graphic/Displayable#z * @type {number} * @default 0 */ z2: 0, /** * The z level determines the displayable object can be drawn in which layer canvas. * @name module:/zrender/graphic/Displayable#zlevel * @type {number} * @default 0 */ zlevel: 0, /** * Whether it can be dragged. * @name module:/zrender/graphic/Displayable#draggable * @type {boolean} * @default false */ draggable: false, /** * Whether is it dragging. * @name module:/zrender/graphic/Displayable#draggable * @type {boolean} * @default false */ dragging: false, /** * Whether to respond to mouse events. * @name module:/zrender/graphic/Displayable#silent * @type {boolean} * @default false */ silent: false, /** * If enable culling * @type {boolean} * @default false */ culling: false, /** * Mouse cursor when hovered * @name module:/zrender/graphic/Displayable#cursor * @type {string} */ cursor: 'pointer', /** * If hover area is bounding rect * @name module:/zrender/graphic/Displayable#rectHover * @type {string} */ rectHover: false, /** * Render the element progressively when the value >= 0, * usefull for large data. * @type {boolean} */ progressive: false, /** * @type {boolean} */ incremental: false, /** * Scale ratio for global scale. * @type {boolean} */ globalScaleRatio: 1, beforeBrush: function beforeBrush(ctx) {}, afterBrush: function afterBrush(ctx) {}, /** * Graphic drawing method. * @param {CanvasRenderingContext2D} ctx */ // Interface brush: function brush(ctx, prevEl) {}, /** * Get the minimum bounding box. * @return {module:zrender/core/BoundingRect} */ // Interface getBoundingRect: function getBoundingRect() {}, /** * If displayable element contain coord x, y * @param {number} x * @param {number} y * @return {boolean} */ contain: function contain(x, y) { return this.rectContain(x, y); }, /** * @param {Function} cb * @param {} context */ traverse: function traverse(cb, context) { cb.call(context, this); }, /** * If bounding rect of element contain coord x, y * @param {number} x * @param {number} y * @return {boolean} */ rectContain: function rectContain(x, y) { var coord = this.transformCoordToLocal(x, y); var rect = this.getBoundingRect(); return rect.contain(coord[0], coord[1]); }, /** * Mark displayable element dirty and refresh next frame */ dirty: function dirty() { this.__dirty = this.__dirtyText = true; this._rect = null; this.__zr && this.__zr.refresh(); }, /** * If displayable object binded any event * @return {boolean} */ // TODO, events bound by bind // isSilent: function () { // return !( // this.hoverable || this.draggable // || this.onmousemove || this.onmouseover || this.onmouseout // || this.onmousedown || this.onmouseup || this.onclick // || this.ondragenter || this.ondragover || this.ondragleave // || this.ondrop // ); // }, /** * Alias for animate('style') * @param {boolean} loop */ animateStyle: function animateStyle(loop) { return this.animate('style', loop); }, attrKV: function attrKV(key, value) { if (key !== 'style') { Element.prototype.attrKV.call(this, key, value); } else { this.style.set(value); } }, /** * @param {Object|string} key * @param {*} value */ setStyle: function setStyle(key, value) { this.style.set(key, value); this.dirty(false); return this; }, /** * Use given style object * @param {Object} obj */ useStyle: function useStyle(obj) { this.style = new Style(obj, this); this.dirty(false); return this; }, /** * The string value of `textPosition` needs to be calculated to a real postion. * For example, `'inside'` is calculated to `[rect.width/2, rect.height/2]` * by default. See `contain/text.js#calculateTextPosition` for more details. * But some coutom shapes like "pin", "flag" have center that is not exactly * `[width/2, height/2]`. So we provide this hook to customize the calculation * for those shapes. It will be called if the `style.textPosition` is a string. * @param {Obejct} [out] Prepared out object. If not provided, this method should * be responsible for creating one. * @param {module:zrender/graphic/Style} style * @param {Object} rect {x, y, width, height} * @return {Obejct} out The same as the input out. * { * x: number. mandatory. * y: number. mandatory. * textAlign: string. optional. use style.textAlign by default. * textVerticalAlign: string. optional. use style.textVerticalAlign by default. * } */ calculateTextPosition: null }; zrUtil.inherits(Displayable, Element); zrUtil.mixin(Displayable, RectText); // zrUtil.mixin(Displayable, Stateful); var _default = Displayable; module.exports = _default; /***/ }), /* 436 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/mixin/RectText.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var textHelper = __webpack_require__(/*! ../helper/text */ 437); var BoundingRect = __webpack_require__(/*! ../../core/BoundingRect */ 425); var _constant = __webpack_require__(/*! ../constant */ 431); var WILL_BE_RESTORED = _constant.WILL_BE_RESTORED; /** * Mixin for drawing text in a element bounding rect * @module zrender/mixin/RectText */ var tmpRect = new BoundingRect(); var RectText = function RectText() {}; RectText.prototype = { constructor: RectText, /** * Draw text in a rect with specified position. * @param {CanvasRenderingContext2D} ctx * @param {Object} rect Displayable rect */ drawRectText: function drawRectText(ctx, rect) { var style = this.style; rect = style.textRect || rect; // Optimize, avoid normalize every time. this.__dirty && textHelper.normalizeTextStyle(style, true); var text = style.text; // Convert to string text != null && (text += ''); if (!textHelper.needDrawText(text, style)) { return; } // FIXME // Do not provide prevEl to `textHelper.renderText` for ctx prop cache, // but use `ctx.save()` and `ctx.restore()`. Because the cache for rect // text propably break the cache for its host elements. ctx.save(); // Transform rect to view space var transform = this.transform; if (!style.transformText) { if (transform) { tmpRect.copy(rect); tmpRect.applyTransform(transform); rect = tmpRect; } } else { this.setTransform(ctx); } // transformText and textRotation can not be used at the same time. textHelper.renderText(this, ctx, text, style, rect, WILL_BE_RESTORED); ctx.restore(); } }; var _default = RectText; module.exports = _default; /***/ }), /* 437 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/text.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _util = __webpack_require__(/*! ../../core/util */ 403); var retrieve2 = _util.retrieve2; var retrieve3 = _util.retrieve3; var each = _util.each; var normalizeCssArray = _util.normalizeCssArray; var isString = _util.isString; var isObject = _util.isObject; var textContain = __webpack_require__(/*! ../../contain/text */ 438); var roundRectHelper = __webpack_require__(/*! ./roundRect */ 440); var imageHelper = __webpack_require__(/*! ./image */ 439); var fixShadow = __webpack_require__(/*! ./fixShadow */ 430); var _constant = __webpack_require__(/*! ../constant */ 431); var ContextCachedBy = _constant.ContextCachedBy; var WILL_BE_RESTORED = _constant.WILL_BE_RESTORED; var DEFAULT_FONT = textContain.DEFAULT_FONT; // TODO: Have not support 'start', 'end' yet. var VALID_TEXT_ALIGN = { left: 1, right: 1, center: 1 }; var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 }; // Different from `STYLE_COMMON_PROPS` of `graphic/Style`, // the default value of shadowColor is `'transparent'`. var SHADOW_STYLE_COMMON_PROPS = [['textShadowBlur', 'shadowBlur', 0], ['textShadowOffsetX', 'shadowOffsetX', 0], ['textShadowOffsetY', 'shadowOffsetY', 0], ['textShadowColor', 'shadowColor', 'transparent']]; var _tmpTextPositionResult = {}; var _tmpBoxPositionResult = {}; /** * @param {module:zrender/graphic/Style} style * @return {module:zrender/graphic/Style} The input style. */ function normalizeTextStyle(style) { normalizeStyle(style); each(style.rich, normalizeStyle); return style; } function normalizeStyle(style) { if (style) { style.font = textContain.makeFont(style); var textAlign = style.textAlign; textAlign === 'middle' && (textAlign = 'center'); style.textAlign = textAlign == null || VALID_TEXT_ALIGN[textAlign] ? textAlign : 'left'; // Compatible with textBaseline. var textVerticalAlign = style.textVerticalAlign || style.textBaseline; textVerticalAlign === 'center' && (textVerticalAlign = 'middle'); style.textVerticalAlign = textVerticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[textVerticalAlign] ? textVerticalAlign : 'top'; var textPadding = style.textPadding; if (textPadding) { style.textPadding = normalizeCssArray(style.textPadding); } } } /** * @param {CanvasRenderingContext2D} ctx * @param {string} text * @param {module:zrender/graphic/Style} style * @param {Object|boolean} [rect] {x, y, width, height} * If set false, rect text is not used. * @param {Element|module:zrender/graphic/helper/constant.WILL_BE_RESTORED} [prevEl] For ctx prop cache. */ function renderText(hostEl, ctx, text, style, rect, prevEl) { style.rich ? renderRichText(hostEl, ctx, text, style, rect, prevEl) : renderPlainText(hostEl, ctx, text, style, rect, prevEl); } // Avoid setting to ctx according to prevEl if possible for // performance in scenarios of large amount text. function renderPlainText(hostEl, ctx, text, style, rect, prevEl) { 'use strict'; var needDrawBg = needDrawBackground(style); var prevStyle; var checkCache = false; var cachedByMe = ctx.__attrCachedBy === ContextCachedBy.PLAIN_TEXT; // Only take and check cache for `Text` el, but not RectText. if (prevEl !== WILL_BE_RESTORED) { if (prevEl) { prevStyle = prevEl.style; checkCache = !needDrawBg && cachedByMe && prevStyle; } // Prevent from using cache in `Style::bind`, because of the case: // ctx property is modified by other properties than `Style::bind` // used, and Style::bind is called next. ctx.__attrCachedBy = needDrawBg ? ContextCachedBy.NONE : ContextCachedBy.PLAIN_TEXT; } // Since this will be restored, prevent from using these props to check cache in the next // entering of this method. But do not need to clear other cache like `Style::bind`. else if (cachedByMe) { ctx.__attrCachedBy = ContextCachedBy.NONE; } var styleFont = style.font || DEFAULT_FONT; // PENDING // Only `Text` el set `font` and keep it (`RectText` will restore). So theoretically // we can make font cache on ctx, which can cache for text el that are discontinuous. // But layer save/restore needed to be considered. // if (styleFont !== ctx.__fontCache) { // ctx.font = styleFont; // if (prevEl !== WILL_BE_RESTORED) { // ctx.__fontCache = styleFont; // } // } if (!checkCache || styleFont !== (prevStyle.font || DEFAULT_FONT)) { ctx.font = styleFont; } // Use the final font from context-2d, because the final // font might not be the style.font when it is illegal. // But get `ctx.font` might be time consuming. var computedFont = hostEl.__computedFont; if (hostEl.__styleFont !== styleFont) { hostEl.__styleFont = styleFont; computedFont = hostEl.__computedFont = ctx.font; } var textPadding = style.textPadding; var textLineHeight = style.textLineHeight; var contentBlock = hostEl.__textCotentBlock; if (!contentBlock || hostEl.__dirtyText) { contentBlock = hostEl.__textCotentBlock = textContain.parsePlainText(text, computedFont, textPadding, textLineHeight, style.truncate); } var outerHeight = contentBlock.outerHeight; var textLines = contentBlock.lines; var lineHeight = contentBlock.lineHeight; var boxPos = getBoxPosition(_tmpBoxPositionResult, hostEl, style, rect); var baseX = boxPos.baseX; var baseY = boxPos.baseY; var textAlign = boxPos.textAlign || 'left'; var textVerticalAlign = boxPos.textVerticalAlign; // Origin of textRotation should be the base point of text drawing. applyTextRotation(ctx, style, rect, baseX, baseY); var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign); var textX = baseX; var textY = boxY; if (needDrawBg || textPadding) { // Consider performance, do not call getTextWidth util necessary. var textWidth = textContain.getWidth(text, computedFont); var outerWidth = textWidth; textPadding && (outerWidth += textPadding[1] + textPadding[3]); var boxX = textContain.adjustTextX(baseX, outerWidth, textAlign); needDrawBg && drawBackground(hostEl, ctx, style, boxX, boxY, outerWidth, outerHeight); if (textPadding) { textX = getTextXForPadding(baseX, textAlign, textPadding); textY += textPadding[0]; } } // Always set textAlign and textBase line, because it is difficute to calculate // textAlign from prevEl, and we dont sure whether textAlign will be reset if // font set happened. ctx.textAlign = textAlign; // Force baseline to be "middle". Otherwise, if using "top", the // text will offset downward a little bit in font "Microsoft YaHei". ctx.textBaseline = 'middle'; // Set text opacity ctx.globalAlpha = style.opacity || 1; // Always set shadowBlur and shadowOffset to avoid leak from displayable. for (var i = 0; i < SHADOW_STYLE_COMMON_PROPS.length; i++) { var propItem = SHADOW_STYLE_COMMON_PROPS[i]; var styleProp = propItem[0]; var ctxProp = propItem[1]; var val = style[styleProp]; if (!checkCache || val !== prevStyle[styleProp]) { ctx[ctxProp] = fixShadow(ctx, ctxProp, val || propItem[2]); } } // `textBaseline` is set as 'middle'. textY += lineHeight / 2; var textStrokeWidth = style.textStrokeWidth; var textStrokeWidthPrev = checkCache ? prevStyle.textStrokeWidth : null; var strokeWidthChanged = !checkCache || textStrokeWidth !== textStrokeWidthPrev; var strokeChanged = !checkCache || strokeWidthChanged || style.textStroke !== prevStyle.textStroke; var textStroke = getStroke(style.textStroke, textStrokeWidth); var textFill = getFill(style.textFill); if (textStroke) { if (strokeWidthChanged) { ctx.lineWidth = textStrokeWidth; } if (strokeChanged) { ctx.strokeStyle = textStroke; } } if (textFill) { if (!checkCache || style.textFill !== prevStyle.textFill) { ctx.fillStyle = textFill; } } // Optimize simply, in most cases only one line exists. if (textLines.length === 1) { // Fill after stroke so the outline will not cover the main part. textStroke && ctx.strokeText(textLines[0], textX, textY); textFill && ctx.fillText(textLines[0], textX, textY); } else { for (var i = 0; i < textLines.length; i++) { // Fill after stroke so the outline will not cover the main part. textStroke && ctx.strokeText(textLines[i], textX, textY); textFill && ctx.fillText(textLines[i], textX, textY); textY += lineHeight; } } } function renderRichText(hostEl, ctx, text, style, rect, prevEl) { // Do not do cache for rich text because of the complexity. // But `RectText` this will be restored, do not need to clear other cache like `Style::bind`. if (prevEl !== WILL_BE_RESTORED) { ctx.__attrCachedBy = ContextCachedBy.NONE; } var contentBlock = hostEl.__textCotentBlock; if (!contentBlock || hostEl.__dirtyText) { contentBlock = hostEl.__textCotentBlock = textContain.parseRichText(text, style); } drawRichText(hostEl, ctx, contentBlock, style, rect); } function drawRichText(hostEl, ctx, contentBlock, style, rect) { var contentWidth = contentBlock.width; var outerWidth = contentBlock.outerWidth; var outerHeight = contentBlock.outerHeight; var textPadding = style.textPadding; var boxPos = getBoxPosition(_tmpBoxPositionResult, hostEl, style, rect); var baseX = boxPos.baseX; var baseY = boxPos.baseY; var textAlign = boxPos.textAlign; var textVerticalAlign = boxPos.textVerticalAlign; // Origin of textRotation should be the base point of text drawing. applyTextRotation(ctx, style, rect, baseX, baseY); var boxX = textContain.adjustTextX(baseX, outerWidth, textAlign); var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign); var xLeft = boxX; var lineTop = boxY; if (textPadding) { xLeft += textPadding[3]; lineTop += textPadding[0]; } var xRight = xLeft + contentWidth; needDrawBackground(style) && drawBackground(hostEl, ctx, style, boxX, boxY, outerWidth, outerHeight); for (var i = 0; i < contentBlock.lines.length; i++) { var line = contentBlock.lines[i]; var tokens = line.tokens; var tokenCount = tokens.length; var lineHeight = line.lineHeight; var usedWidth = line.width; var leftIndex = 0; var lineXLeft = xLeft; var lineXRight = xRight; var rightIndex = tokenCount - 1; var token; while (leftIndex < tokenCount && (token = tokens[leftIndex], !token.textAlign || token.textAlign === 'left')) { placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXLeft, 'left'); usedWidth -= token.width; lineXLeft += token.width; leftIndex++; } while (rightIndex >= 0 && (token = tokens[rightIndex], token.textAlign === 'right')) { placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXRight, 'right'); usedWidth -= token.width; lineXRight -= token.width; rightIndex--; } // The other tokens are placed as textAlign 'center' if there is enough space. lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - usedWidth) / 2; while (leftIndex <= rightIndex) { token = tokens[leftIndex]; // Consider width specified by user, use 'center' rather than 'left'. placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center'); lineXLeft += token.width; leftIndex++; } lineTop += lineHeight; } } function applyTextRotation(ctx, style, rect, x, y) { // textRotation only apply in RectText. if (rect && style.textRotation) { var origin = style.textOrigin; if (origin === 'center') { x = rect.width / 2 + rect.x; y = rect.height / 2 + rect.y; } else if (origin) { x = origin[0] + rect.x; y = origin[1] + rect.y; } ctx.translate(x, y); // Positive: anticlockwise ctx.rotate(-style.textRotation); ctx.translate(-x, -y); } } function placeToken(hostEl, ctx, token, style, lineHeight, lineTop, x, textAlign) { var tokenStyle = style.rich[token.styleName] || {}; tokenStyle.text = token.text; // 'ctx.textBaseline' is always set as 'middle', for sake of // the bias of "Microsoft YaHei". var textVerticalAlign = token.textVerticalAlign; var y = lineTop + lineHeight / 2; if (textVerticalAlign === 'top') { y = lineTop + token.height / 2; } else if (textVerticalAlign === 'bottom') { y = lineTop + lineHeight - token.height / 2; } !token.isLineHolder && needDrawBackground(tokenStyle) && drawBackground(hostEl, ctx, tokenStyle, textAlign === 'right' ? x - token.width : textAlign === 'center' ? x - token.width / 2 : x, y - token.height / 2, token.width, token.height); var textPadding = token.textPadding; if (textPadding) { x = getTextXForPadding(x, textAlign, textPadding); y -= token.height / 2 - textPadding[2] - token.textHeight / 2; } setCtx(ctx, 'shadowBlur', retrieve3(tokenStyle.textShadowBlur, style.textShadowBlur, 0)); setCtx(ctx, 'shadowColor', tokenStyle.textShadowColor || style.textShadowColor || 'transparent'); setCtx(ctx, 'shadowOffsetX', retrieve3(tokenStyle.textShadowOffsetX, style.textShadowOffsetX, 0)); setCtx(ctx, 'shadowOffsetY', retrieve3(tokenStyle.textShadowOffsetY, style.textShadowOffsetY, 0)); setCtx(ctx, 'textAlign', textAlign); // Force baseline to be "middle". Otherwise, if using "top", the // text will offset downward a little bit in font "Microsoft YaHei". setCtx(ctx, 'textBaseline', 'middle'); setCtx(ctx, 'font', token.font || DEFAULT_FONT); var textStroke = getStroke(tokenStyle.textStroke || style.textStroke, textStrokeWidth); var textFill = getFill(tokenStyle.textFill || style.textFill); var textStrokeWidth = retrieve2(tokenStyle.textStrokeWidth, style.textStrokeWidth); // Fill after stroke so the outline will not cover the main part. if (textStroke) { setCtx(ctx, 'lineWidth', textStrokeWidth); setCtx(ctx, 'strokeStyle', textStroke); ctx.strokeText(token.text, x, y); } if (textFill) { setCtx(ctx, 'fillStyle', textFill); ctx.fillText(token.text, x, y); } } function needDrawBackground(style) { return !!(style.textBackgroundColor || style.textBorderWidth && style.textBorderColor); } // style: {textBackgroundColor, textBorderWidth, textBorderColor, textBorderRadius, text} // shape: {x, y, width, height} function drawBackground(hostEl, ctx, style, x, y, width, height) { var textBackgroundColor = style.textBackgroundColor; var textBorderWidth = style.textBorderWidth; var textBorderColor = style.textBorderColor; var isPlainBg = isString(textBackgroundColor); setCtx(ctx, 'shadowBlur', style.textBoxShadowBlur || 0); setCtx(ctx, 'shadowColor', style.textBoxShadowColor || 'transparent'); setCtx(ctx, 'shadowOffsetX', style.textBoxShadowOffsetX || 0); setCtx(ctx, 'shadowOffsetY', style.textBoxShadowOffsetY || 0); if (isPlainBg || textBorderWidth && textBorderColor) { ctx.beginPath(); var textBorderRadius = style.textBorderRadius; if (!textBorderRadius) { ctx.rect(x, y, width, height); } else { roundRectHelper.buildPath(ctx, { x: x, y: y, width: width, height: height, r: textBorderRadius }); } ctx.closePath(); } if (isPlainBg) { setCtx(ctx, 'fillStyle', textBackgroundColor); if (style.fillOpacity != null) { var originalGlobalAlpha = ctx.globalAlpha; ctx.globalAlpha = style.fillOpacity * style.opacity; ctx.fill(); ctx.globalAlpha = originalGlobalAlpha; } else { ctx.fill(); } } else if (isObject(textBackgroundColor)) { var image = textBackgroundColor.image; image = imageHelper.createOrUpdateImage(image, null, hostEl, onBgImageLoaded, textBackgroundColor); if (image && imageHelper.isImageReady(image)) { ctx.drawImage(image, x, y, width, height); } } if (textBorderWidth && textBorderColor) { setCtx(ctx, 'lineWidth', textBorderWidth); setCtx(ctx, 'strokeStyle', textBorderColor); if (style.strokeOpacity != null) { var originalGlobalAlpha = ctx.globalAlpha; ctx.globalAlpha = style.strokeOpacity * style.opacity; ctx.stroke(); ctx.globalAlpha = originalGlobalAlpha; } else { ctx.stroke(); } } } function onBgImageLoaded(image, textBackgroundColor) { // Replace image, so that `contain/text.js#parseRichText` // will get correct result in next tick. textBackgroundColor.image = image; } function getBoxPosition(out, hostEl, style, rect) { var baseX = style.x || 0; var baseY = style.y || 0; var textAlign = style.textAlign; var textVerticalAlign = style.textVerticalAlign; // Text position represented by coord if (rect) { var textPosition = style.textPosition; if (textPosition instanceof Array) { // Percent baseX = rect.x + parsePercent(textPosition[0], rect.width); baseY = rect.y + parsePercent(textPosition[1], rect.height); } else { var res = hostEl && hostEl.calculateTextPosition ? hostEl.calculateTextPosition(_tmpTextPositionResult, style, rect) : textContain.calculateTextPosition(_tmpTextPositionResult, style, rect); baseX = res.x; baseY = res.y; // Default align and baseline when has textPosition textAlign = textAlign || res.textAlign; textVerticalAlign = textVerticalAlign || res.textVerticalAlign; } // textOffset is only support in RectText, otherwise // we have to adjust boundingRect for textOffset. var textOffset = style.textOffset; if (textOffset) { baseX += textOffset[0]; baseY += textOffset[1]; } } out = out || {}; out.baseX = baseX; out.baseY = baseY; out.textAlign = textAlign; out.textVerticalAlign = textVerticalAlign; return out; } function setCtx(ctx, prop, value) { ctx[prop] = fixShadow(ctx, prop, value); return ctx[prop]; } /** * @param {string} [stroke] If specified, do not check style.textStroke. * @param {string} [lineWidth] If specified, do not check style.textStroke. * @param {number} style */ function getStroke(stroke, lineWidth) { return stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none' ? null // TODO pattern and gradient? : stroke.image || stroke.colorStops ? '#000' : stroke; } function getFill(fill) { return fill == null || fill === 'none' ? null // TODO pattern and gradient? : fill.image || fill.colorStops ? '#000' : fill; } function parsePercent(value, maxValue) { if (typeof value === 'string') { if (value.lastIndexOf('%') >= 0) { return parseFloat(value) / 100 * maxValue; } return parseFloat(value); } return value; } function getTextXForPadding(x, textAlign, textPadding) { return textAlign === 'right' ? x - textPadding[1] : textAlign === 'center' ? x + textPadding[3] / 2 - textPadding[1] / 2 : x + textPadding[3]; } /** * @param {string} text * @param {module:zrender/Style} style * @return {boolean} */ function needDrawText(text, style) { return text != null && (text || style.textBackgroundColor || style.textBorderWidth && style.textBorderColor || style.textPadding); } exports.normalizeTextStyle = normalizeTextStyle; exports.renderText = renderText; exports.getBoxPosition = getBoxPosition; exports.getStroke = getStroke; exports.getFill = getFill; exports.parsePercent = parsePercent; exports.needDrawText = needDrawText; /***/ }), /* 438 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/text.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var BoundingRect = __webpack_require__(/*! ../core/BoundingRect */ 425); var imageHelper = __webpack_require__(/*! ../graphic/helper/image */ 439); var _util = __webpack_require__(/*! ../core/util */ 403); var getContext = _util.getContext; var extend = _util.extend; var retrieve2 = _util.retrieve2; var retrieve3 = _util.retrieve3; var trim = _util.trim; var textWidthCache = {}; var textWidthCacheCounter = 0; var TEXT_CACHE_MAX = 5000; var STYLE_REG = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g; var DEFAULT_FONT = '12px sans-serif'; // Avoid assign to an exported variable, for transforming to cjs. var methods = {}; function $override(name, fn) { methods[name] = fn; } /** * @public * @param {string} text * @param {string} font * @return {number} width */ function getWidth(text, font) { font = font || DEFAULT_FONT; var key = text + ':' + font; if (textWidthCache[key]) { return textWidthCache[key]; } var textLines = (text + '').split('\n'); var width = 0; for (var i = 0, l = textLines.length; i < l; i++) { // textContain.measureText may be overrided in SVG or VML width = Math.max(measureText(textLines[i], font).width, width); } if (textWidthCacheCounter > TEXT_CACHE_MAX) { textWidthCacheCounter = 0; textWidthCache = {}; } textWidthCacheCounter++; textWidthCache[key] = width; return width; } /** * @public * @param {string} text * @param {string} font * @param {string} [textAlign='left'] * @param {string} [textVerticalAlign='top'] * @param {Array.} [textPadding] * @param {Object} [rich] * @param {Object} [truncate] * @return {Object} {x, y, width, height, lineHeight} */ function getBoundingRect(text, font, textAlign, textVerticalAlign, textPadding, textLineHeight, rich, truncate) { return rich ? getRichTextRect(text, font, textAlign, textVerticalAlign, textPadding, textLineHeight, rich, truncate) : getPlainTextRect(text, font, textAlign, textVerticalAlign, textPadding, textLineHeight, truncate); } function getPlainTextRect(text, font, textAlign, textVerticalAlign, textPadding, textLineHeight, truncate) { var contentBlock = parsePlainText(text, font, textPadding, textLineHeight, truncate); var outerWidth = getWidth(text, font); if (textPadding) { outerWidth += textPadding[1] + textPadding[3]; } var outerHeight = contentBlock.outerHeight; var x = adjustTextX(0, outerWidth, textAlign); var y = adjustTextY(0, outerHeight, textVerticalAlign); var rect = new BoundingRect(x, y, outerWidth, outerHeight); rect.lineHeight = contentBlock.lineHeight; return rect; } function getRichTextRect(text, font, textAlign, textVerticalAlign, textPadding, textLineHeight, rich, truncate) { var contentBlock = parseRichText(text, { rich: rich, truncate: truncate, font: font, textAlign: textAlign, textPadding: textPadding, textLineHeight: textLineHeight }); var outerWidth = contentBlock.outerWidth; var outerHeight = contentBlock.outerHeight; var x = adjustTextX(0, outerWidth, textAlign); var y = adjustTextY(0, outerHeight, textVerticalAlign); return new BoundingRect(x, y, outerWidth, outerHeight); } /** * @public * @param {number} x * @param {number} width * @param {string} [textAlign='left'] * @return {number} Adjusted x. */ function adjustTextX(x, width, textAlign) { // FIXME Right to left language if (textAlign === 'right') { x -= width; } else if (textAlign === 'center') { x -= width / 2; } return x; } /** * @public * @param {number} y * @param {number} height * @param {string} [textVerticalAlign='top'] * @return {number} Adjusted y. */ function adjustTextY(y, height, textVerticalAlign) { if (textVerticalAlign === 'middle') { y -= height / 2; } else if (textVerticalAlign === 'bottom') { y -= height; } return y; } /** * Follow same interface to `Displayable.prototype.calculateTextPosition`. * @public * @param {Obejct} [out] Prepared out object. If not input, auto created in the method. * @param {module:zrender/graphic/Style} style where `textPosition` and `textDistance` are visited. * @param {Object} rect {x, y, width, height} Rect of the host elment, according to which the text positioned. * @return {Object} The input `out`. Set: {x, y, textAlign, textVerticalAlign} */ function calculateTextPosition(out, style, rect) { var textPosition = style.textPosition; var distance = style.textDistance; var x = rect.x; var y = rect.y; distance = distance || 0; var height = rect.height; var width = rect.width; var halfHeight = height / 2; var textAlign = 'left'; var textVerticalAlign = 'top'; switch (textPosition) { case 'left': x -= distance; y += halfHeight; textAlign = 'right'; textVerticalAlign = 'middle'; break; case 'right': x += distance + width; y += halfHeight; textVerticalAlign = 'middle'; break; case 'top': x += width / 2; y -= distance; textAlign = 'center'; textVerticalAlign = 'bottom'; break; case 'bottom': x += width / 2; y += height + distance; textAlign = 'center'; break; case 'inside': x += width / 2; y += halfHeight; textAlign = 'center'; textVerticalAlign = 'middle'; break; case 'insideLeft': x += distance; y += halfHeight; textVerticalAlign = 'middle'; break; case 'insideRight': x += width - distance; y += halfHeight; textAlign = 'right'; textVerticalAlign = 'middle'; break; case 'insideTop': x += width / 2; y += distance; textAlign = 'center'; break; case 'insideBottom': x += width / 2; y += height - distance; textAlign = 'center'; textVerticalAlign = 'bottom'; break; case 'insideTopLeft': x += distance; y += distance; break; case 'insideTopRight': x += width - distance; y += distance; textAlign = 'right'; break; case 'insideBottomLeft': x += distance; y += height - distance; textVerticalAlign = 'bottom'; break; case 'insideBottomRight': x += width - distance; y += height - distance; textAlign = 'right'; textVerticalAlign = 'bottom'; break; } out = out || {}; out.x = x; out.y = y; out.textAlign = textAlign; out.textVerticalAlign = textVerticalAlign; return out; } /** * To be removed. But still do not remove in case that some one has imported it. * @deprecated * @public * @param {stirng} textPosition * @param {Object} rect {x, y, width, height} * @param {number} distance * @return {Object} {x, y, textAlign, textVerticalAlign} */ function adjustTextPositionOnRect(textPosition, rect, distance) { var dummyStyle = { textPosition: textPosition, textDistance: distance }; return calculateTextPosition({}, dummyStyle, rect); } /** * Show ellipsis if overflow. * * @public * @param {string} text * @param {string} containerWidth * @param {string} font * @param {number} [ellipsis='...'] * @param {Object} [options] * @param {number} [options.maxIterations=3] * @param {number} [options.minChar=0] If truncate result are less * then minChar, ellipsis will not show, which is * better for user hint in some cases. * @param {number} [options.placeholder=''] When all truncated, use the placeholder. * @return {string} */ function truncateText(text, containerWidth, font, ellipsis, options) { if (!containerWidth) { return ''; } var textLines = (text + '').split('\n'); options = prepareTruncateOptions(containerWidth, font, ellipsis, options); // FIXME // It is not appropriate that every line has '...' when truncate multiple lines. for (var i = 0, len = textLines.length; i < len; i++) { textLines[i] = truncateSingleLine(textLines[i], options); } return textLines.join('\n'); } function prepareTruncateOptions(containerWidth, font, ellipsis, options) { options = extend({}, options); options.font = font; var ellipsis = retrieve2(ellipsis, '...'); options.maxIterations = retrieve2(options.maxIterations, 2); var minChar = options.minChar = retrieve2(options.minChar, 0); // FIXME // Other languages? options.cnCharWidth = getWidth('国', font); // FIXME // Consider proportional font? var ascCharWidth = options.ascCharWidth = getWidth('a', font); options.placeholder = retrieve2(options.placeholder, ''); // Example 1: minChar: 3, text: 'asdfzxcv', truncate result: 'asdf', but not: 'a...'. // Example 2: minChar: 3, text: '维度', truncate result: '维', but not: '...'. var contentWidth = containerWidth = Math.max(0, containerWidth - 1); // Reserve some gap. for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) { contentWidth -= ascCharWidth; } var ellipsisWidth = getWidth(ellipsis, font); if (ellipsisWidth > contentWidth) { ellipsis = ''; ellipsisWidth = 0; } contentWidth = containerWidth - ellipsisWidth; options.ellipsis = ellipsis; options.ellipsisWidth = ellipsisWidth; options.contentWidth = contentWidth; options.containerWidth = containerWidth; return options; } function truncateSingleLine(textLine, options) { var containerWidth = options.containerWidth; var font = options.font; var contentWidth = options.contentWidth; if (!containerWidth) { return ''; } var lineWidth = getWidth(textLine, font); if (lineWidth <= containerWidth) { return textLine; } for (var j = 0;; j++) { if (lineWidth <= contentWidth || j >= options.maxIterations) { textLine += options.ellipsis; break; } var subLength = j === 0 ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth) : lineWidth > 0 ? Math.floor(textLine.length * contentWidth / lineWidth) : 0; textLine = textLine.substr(0, subLength); lineWidth = getWidth(textLine, font); } if (textLine === '') { textLine = options.placeholder; } return textLine; } function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) { var width = 0; var i = 0; for (var len = text.length; i < len && width < contentWidth; i++) { var charCode = text.charCodeAt(i); width += 0 <= charCode && charCode <= 127 ? ascCharWidth : cnCharWidth; } return i; } /** * @public * @param {string} font * @return {number} line height */ function getLineHeight(font) { // FIXME A rough approach. return getWidth('国', font); } /** * @public * @param {string} text * @param {string} font * @return {Object} width */ function measureText(text, font) { return methods.measureText(text, font); } // Avoid assign to an exported variable, for transforming to cjs. methods.measureText = function (text, font) { var ctx = getContext(); ctx.font = font || DEFAULT_FONT; return ctx.measureText(text); }; /** * @public * @param {string} text * @param {string} font * @param {Object} [truncate] * @return {Object} block: {lineHeight, lines, height, outerHeight, canCacheByTextString} * Notice: for performance, do not calculate outerWidth util needed. * `canCacheByTextString` means the result `lines` is only determined by the input `text`. * Thus we can simply comparing the `input` text to determin whether the result changed, * without travel the result `lines`. */ function parsePlainText(text, font, padding, textLineHeight, truncate) { text != null && (text += ''); var lineHeight = retrieve2(textLineHeight, getLineHeight(font)); var lines = text ? text.split('\n') : []; var height = lines.length * lineHeight; var outerHeight = height; var canCacheByTextString = true; if (padding) { outerHeight += padding[0] + padding[2]; } if (text && truncate) { canCacheByTextString = false; var truncOuterHeight = truncate.outerHeight; var truncOuterWidth = truncate.outerWidth; if (truncOuterHeight != null && outerHeight > truncOuterHeight) { text = ''; lines = []; } else if (truncOuterWidth != null) { var options = prepareTruncateOptions(truncOuterWidth - (padding ? padding[1] + padding[3] : 0), font, truncate.ellipsis, { minChar: truncate.minChar, placeholder: truncate.placeholder }); // FIXME // It is not appropriate that every line has '...' when truncate multiple lines. for (var i = 0, len = lines.length; i < len; i++) { lines[i] = truncateSingleLine(lines[i], options); } } } return { lines: lines, height: height, outerHeight: outerHeight, lineHeight: lineHeight, canCacheByTextString: canCacheByTextString }; } /** * For example: 'some text {a|some text}other text{b|some text}xxx{c|}xxx' * Also consider 'bbbb{a|xxx\nzzz}xxxx\naaaa'. * * @public * @param {string} text * @param {Object} style * @return {Object} block * { * width, * height, * lines: [{ * lineHeight, * width, * tokens: [[{ * styleName, * text, * width, // include textPadding * height, // include textPadding * textWidth, // pure text width * textHeight, // pure text height * lineHeihgt, * font, * textAlign, * textVerticalAlign * }], [...], ...] * }, ...] * } * If styleName is undefined, it is plain text. */ function parseRichText(text, style) { var contentBlock = { lines: [], width: 0, height: 0 }; text != null && (text += ''); if (!text) { return contentBlock; } var lastIndex = STYLE_REG.lastIndex = 0; var result; while ((result = STYLE_REG.exec(text)) != null) { var matchedIndex = result.index; if (matchedIndex > lastIndex) { pushTokens(contentBlock, text.substring(lastIndex, matchedIndex)); } pushTokens(contentBlock, result[2], result[1]); lastIndex = STYLE_REG.lastIndex; } if (lastIndex < text.length) { pushTokens(contentBlock, text.substring(lastIndex, text.length)); } var lines = contentBlock.lines; var contentHeight = 0; var contentWidth = 0; // For `textWidth: 100%` var pendingList = []; var stlPadding = style.textPadding; var truncate = style.truncate; var truncateWidth = truncate && truncate.outerWidth; var truncateHeight = truncate && truncate.outerHeight; if (stlPadding) { truncateWidth != null && (truncateWidth -= stlPadding[1] + stlPadding[3]); truncateHeight != null && (truncateHeight -= stlPadding[0] + stlPadding[2]); } // Calculate layout info of tokens. for (var i = 0; i < lines.length; i++) { var line = lines[i]; var lineHeight = 0; var lineWidth = 0; for (var j = 0; j < line.tokens.length; j++) { var token = line.tokens[j]; var tokenStyle = token.styleName && style.rich[token.styleName] || {}; // textPadding should not inherit from style. var textPadding = token.textPadding = tokenStyle.textPadding; // textFont has been asigned to font by `normalizeStyle`. var font = token.font = tokenStyle.font || style.font; // textHeight can be used when textVerticalAlign is specified in token. var tokenHeight = token.textHeight = retrieve2( // textHeight should not be inherited, consider it can be specified // as box height of the block. tokenStyle.textHeight, getLineHeight(font)); textPadding && (tokenHeight += textPadding[0] + textPadding[2]); token.height = tokenHeight; token.lineHeight = retrieve3(tokenStyle.textLineHeight, style.textLineHeight, tokenHeight); token.textAlign = tokenStyle && tokenStyle.textAlign || style.textAlign; token.textVerticalAlign = tokenStyle && tokenStyle.textVerticalAlign || 'middle'; if (truncateHeight != null && contentHeight + token.lineHeight > truncateHeight) { return { lines: [], width: 0, height: 0 }; } token.textWidth = getWidth(token.text, font); var tokenWidth = tokenStyle.textWidth; var tokenWidthNotSpecified = tokenWidth == null || tokenWidth === 'auto'; // Percent width, can be `100%`, can be used in drawing separate // line when box width is needed to be auto. if (typeof tokenWidth === 'string' && tokenWidth.charAt(tokenWidth.length - 1) === '%') { token.percentWidth = tokenWidth; pendingList.push(token); tokenWidth = 0; // Do not truncate in this case, because there is no user case // and it is too complicated. } else { if (tokenWidthNotSpecified) { tokenWidth = token.textWidth; // FIXME: If image is not loaded and textWidth is not specified, calling // `getBoundingRect()` will not get correct result. var textBackgroundColor = tokenStyle.textBackgroundColor; var bgImg = textBackgroundColor && textBackgroundColor.image; // Use cases: // (1) If image is not loaded, it will be loaded at render phase and call // `dirty()` and `textBackgroundColor.image` will be replaced with the loaded // image, and then the right size will be calculated here at the next tick. // See `graphic/helper/text.js`. // (2) If image loaded, and `textBackgroundColor.image` is image src string, // use `imageHelper.findExistImage` to find cached image. // `imageHelper.findExistImage` will always be called here before // `imageHelper.createOrUpdateImage` in `graphic/helper/text.js#renderRichText` // which ensures that image will not be rendered before correct size calcualted. if (bgImg) { bgImg = imageHelper.findExistImage(bgImg); if (imageHelper.isImageReady(bgImg)) { tokenWidth = Math.max(tokenWidth, bgImg.width * tokenHeight / bgImg.height); } } } var paddingW = textPadding ? textPadding[1] + textPadding[3] : 0; tokenWidth += paddingW; var remianTruncWidth = truncateWidth != null ? truncateWidth - lineWidth : null; if (remianTruncWidth != null && remianTruncWidth < tokenWidth) { if (!tokenWidthNotSpecified || remianTruncWidth < paddingW) { token.text = ''; token.textWidth = tokenWidth = 0; } else { token.text = truncateText(token.text, remianTruncWidth - paddingW, font, truncate.ellipsis, { minChar: truncate.minChar }); token.textWidth = getWidth(token.text, font); tokenWidth = token.textWidth + paddingW; } } } lineWidth += token.width = tokenWidth; tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight)); } line.width = lineWidth; line.lineHeight = lineHeight; contentHeight += lineHeight; contentWidth = Math.max(contentWidth, lineWidth); } contentBlock.outerWidth = contentBlock.width = retrieve2(style.textWidth, contentWidth); contentBlock.outerHeight = contentBlock.height = retrieve2(style.textHeight, contentHeight); if (stlPadding) { contentBlock.outerWidth += stlPadding[1] + stlPadding[3]; contentBlock.outerHeight += stlPadding[0] + stlPadding[2]; } for (var i = 0; i < pendingList.length; i++) { var token = pendingList[i]; var percentWidth = token.percentWidth; // Should not base on outerWidth, because token can not be placed out of padding. token.width = parseInt(percentWidth, 10) / 100 * contentWidth; } return contentBlock; } function pushTokens(block, str, styleName) { var isEmptyStr = str === ''; var strs = str.split('\n'); var lines = block.lines; for (var i = 0; i < strs.length; i++) { var text = strs[i]; var token = { styleName: styleName, text: text, isLineHolder: !text && !isEmptyStr }; // The first token should be appended to the last line. if (!i) { var tokens = (lines[lines.length - 1] || (lines[0] = { tokens: [] })).tokens; // Consider cases: // (1) ''.split('\n') => ['', '\n', ''], the '' at the first item // (which is a placeholder) should be replaced by new token. // (2) A image backage, where token likes {a|}. // (3) A redundant '' will affect textAlign in line. // (4) tokens with the same tplName should not be merged, because // they should be displayed in different box (with border and padding). var tokensLen = tokens.length; tokensLen === 1 && tokens[0].isLineHolder ? tokens[0] = token : // Consider text is '', only insert when it is the "lineHolder" or // "emptyStr". Otherwise a redundant '' will affect textAlign in line. (text || !tokensLen || isEmptyStr) && tokens.push(token); } // Other tokens always start a new line. else { // If there is '', insert it as a placeholder. lines.push({ tokens: [token] }); } } } function makeFont(style) { // FIXME in node-canvas fontWeight is before fontStyle // Use `fontSize` `fontFamily` to check whether font properties are defined. var font = (style.fontSize || style.fontFamily) && [style.fontStyle, style.fontWeight, (style.fontSize || 12) + 'px', // If font properties are defined, `fontFamily` should not be ignored. style.fontFamily || 'sans-serif'].join(' '); return font && trim(font) || style.textFont || style.font; } exports.DEFAULT_FONT = DEFAULT_FONT; exports.$override = $override; exports.getWidth = getWidth; exports.getBoundingRect = getBoundingRect; exports.adjustTextX = adjustTextX; exports.adjustTextY = adjustTextY; exports.calculateTextPosition = calculateTextPosition; exports.adjustTextPositionOnRect = adjustTextPositionOnRect; exports.truncateText = truncateText; exports.getLineHeight = getLineHeight; exports.measureText = measureText; exports.parsePlainText = parsePlainText; exports.parseRichText = parseRichText; exports.makeFont = makeFont; /***/ }), /* 439 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/image.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var LRU = __webpack_require__(/*! ../../core/LRU */ 422); var globalImageCache = new LRU(50); /** * @param {string|HTMLImageElement|HTMLCanvasElement|Canvas} newImageOrSrc * @return {HTMLImageElement|HTMLCanvasElement|Canvas} image */ function findExistImage(newImageOrSrc) { if (typeof newImageOrSrc === 'string') { var cachedImgObj = globalImageCache.get(newImageOrSrc); return cachedImgObj && cachedImgObj.image; } else { return newImageOrSrc; } } /** * Caution: User should cache loaded images, but not just count on LRU. * Consider if required images more than LRU size, will dead loop occur? * * @param {string|HTMLImageElement|HTMLCanvasElement|Canvas} newImageOrSrc * @param {HTMLImageElement|HTMLCanvasElement|Canvas} image Existent image. * @param {module:zrender/Element} [hostEl] For calling `dirty`. * @param {Function} [cb] params: (image, cbPayload) * @param {Object} [cbPayload] Payload on cb calling. * @return {HTMLImageElement|HTMLCanvasElement|Canvas} image */ function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) { if (!newImageOrSrc) { return image; } else if (typeof newImageOrSrc === 'string') { // Image should not be loaded repeatly. if (image && image.__zrImageSrc === newImageOrSrc || !hostEl) { return image; } // Only when there is no existent image or existent image src // is different, this method is responsible for load. var cachedImgObj = globalImageCache.get(newImageOrSrc); var pendingWrap = { hostEl: hostEl, cb: cb, cbPayload: cbPayload }; if (cachedImgObj) { image = cachedImgObj.image; !isImageReady(image) && cachedImgObj.pending.push(pendingWrap); } else { image = new Image(); image.onload = image.onerror = imageOnLoad; globalImageCache.put(newImageOrSrc, image.__cachedImgObj = { image: image, pending: [pendingWrap] }); image.src = image.__zrImageSrc = newImageOrSrc; } return image; } // newImageOrSrc is an HTMLImageElement or HTMLCanvasElement or Canvas else { return newImageOrSrc; } } function imageOnLoad() { var cachedImgObj = this.__cachedImgObj; this.onload = this.onerror = this.__cachedImgObj = null; for (var i = 0; i < cachedImgObj.pending.length; i++) { var pendingWrap = cachedImgObj.pending[i]; var cb = pendingWrap.cb; cb && cb(this, pendingWrap.cbPayload); pendingWrap.hostEl.dirty(); } cachedImgObj.pending.length = 0; } function isImageReady(image) { return image && image.width && image.height; } exports.findExistImage = findExistImage; exports.createOrUpdateImage = createOrUpdateImage; exports.isImageReady = isImageReady; /***/ }), /* 440 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/roundRect.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * @param {Object} ctx * @param {Object} shape * @param {number} shape.x * @param {number} shape.y * @param {number} shape.width * @param {number} shape.height * @param {number} shape.r */ function buildPath(ctx, shape) { var x = shape.x; var y = shape.y; var width = shape.width; var height = shape.height; var r = shape.r; var r1; var r2; var r3; var r4; // Convert width and height to positive for better borderRadius if (width < 0) { x = x + width; width = -width; } if (height < 0) { y = y + height; height = -height; } if (typeof r === 'number') { r1 = r2 = r3 = r4 = r; } else if (r instanceof Array) { if (r.length === 1) { r1 = r2 = r3 = r4 = r[0]; } else if (r.length === 2) { r1 = r3 = r[0]; r2 = r4 = r[1]; } else if (r.length === 3) { r1 = r[0]; r2 = r4 = r[1]; r3 = r[2]; } else { r1 = r[0]; r2 = r[1]; r3 = r[2]; r4 = r[3]; } } else { r1 = r2 = r3 = r4 = 0; } var total; if (r1 + r2 > width) { total = r1 + r2; r1 *= width / total; r2 *= width / total; } if (r3 + r4 > width) { total = r3 + r4; r3 *= width / total; r4 *= width / total; } if (r2 + r3 > height) { total = r2 + r3; r2 *= height / total; r3 *= height / total; } if (r1 + r4 > height) { total = r1 + r4; r1 *= height / total; r4 *= height / total; } ctx.moveTo(x + r1, y); ctx.lineTo(x + width - r2, y); r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0); ctx.lineTo(x + width, y + height - r3); r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2); ctx.lineTo(x + r4, y + height); r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI); ctx.lineTo(x, y + r1); r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5); } exports.buildPath = buildPath; /***/ }), /* 441 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/animation/Animation.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var util = __webpack_require__(/*! ../core/util */ 403); var _event = __webpack_require__(/*! ../core/event */ 408); var Dispatcher = _event.Dispatcher; var requestAnimationFrame = __webpack_require__(/*! ./requestAnimationFrame */ 433); var Animator = __webpack_require__(/*! ./Animator */ 418); /** * Animation main class, dispatch and manage all animation controllers * * @module zrender/animation/Animation * @author pissang(https://github.com/pissang) */ // TODO Additive animation // http://iosoteric.com/additive-animations-animatewithduration-in-ios-8/ // https://developer.apple.com/videos/wwdc2014/#236 /** * @typedef {Object} IZRenderStage * @property {Function} update */ /** * @alias module:zrender/animation/Animation * @constructor * @param {Object} [options] * @param {Function} [options.onframe] * @param {IZRenderStage} [options.stage] * @example * var animation = new Animation(); * var obj = { * x: 100, * y: 100 * }; * animation.animate(node.position) * .when(1000, { * x: 500, * y: 500 * }) * .when(2000, { * x: 100, * y: 100 * }) * .start('spline'); */ var Animation = function Animation(options) { options = options || {}; this.stage = options.stage || {}; this.onframe = options.onframe || function () {}; // private properties this._clips = []; this._running = false; this._time; this._pausedTime; this._pauseStart; this._paused = false; Dispatcher.call(this); }; Animation.prototype = { constructor: Animation, /** * Add clip * @param {module:zrender/animation/Clip} clip */ addClip: function addClip(clip) { this._clips.push(clip); }, /** * Add animator * @param {module:zrender/animation/Animator} animator */ addAnimator: function addAnimator(animator) { animator.animation = this; var clips = animator.getClips(); for (var i = 0; i < clips.length; i++) { this.addClip(clips[i]); } }, /** * Delete animation clip * @param {module:zrender/animation/Clip} clip */ removeClip: function removeClip(clip) { var idx = util.indexOf(this._clips, clip); if (idx >= 0) { this._clips.splice(idx, 1); } }, /** * Delete animation clip * @param {module:zrender/animation/Animator} animator */ removeAnimator: function removeAnimator(animator) { var clips = animator.getClips(); for (var i = 0; i < clips.length; i++) { this.removeClip(clips[i]); } animator.animation = null; }, _update: function _update() { var time = new Date().getTime() - this._pausedTime; var delta = time - this._time; var clips = this._clips; var len = clips.length; var deferredEvents = []; var deferredClips = []; for (var i = 0; i < len; i++) { var clip = clips[i]; var e = clip.step(time, delta); // Throw out the events need to be called after // stage.update, like destroy if (e) { deferredEvents.push(e); deferredClips.push(clip); } } // Remove the finished clip for (var i = 0; i < len;) { if (clips[i]._needsRemove) { clips[i] = clips[len - 1]; clips.pop(); len--; } else { i++; } } len = deferredEvents.length; for (var i = 0; i < len; i++) { deferredClips[i].fire(deferredEvents[i]); } this._time = time; this.onframe(delta); // 'frame' should be triggered before stage, because upper application // depends on the sequence (e.g., echarts-stream and finish // event judge) this.trigger('frame', delta); if (this.stage.update) { this.stage.update(); } }, _startLoop: function _startLoop() { var self = this; this._running = true; function step() { if (self._running) { requestAnimationFrame(step); !self._paused && self._update(); } } requestAnimationFrame(step); }, /** * Start animation. */ start: function start() { this._time = new Date().getTime(); this._pausedTime = 0; this._startLoop(); }, /** * Stop animation. */ stop: function stop() { this._running = false; }, /** * Pause animation. */ pause: function pause() { if (!this._paused) { this._pauseStart = new Date().getTime(); this._paused = true; } }, /** * Resume animation. */ resume: function resume() { if (this._paused) { this._pausedTime += new Date().getTime() - this._pauseStart; this._paused = false; } }, /** * Clear animation. */ clear: function clear() { this._clips = []; }, /** * Whether animation finished. */ isFinished: function isFinished() { return !this._clips.length; }, /** * Creat animator for a target, whose props can be animated. * * @param {Object} target * @param {Object} options * @param {boolean} [options.loop=false] Whether loop animation. * @param {Function} [options.getter=null] Get value from target. * @param {Function} [options.setter=null] Set value to target. * @return {module:zrender/animation/Animation~Animator} */ // TODO Gap animate: function animate(target, options) { options = options || {}; var animator = new Animator(target, options.loop, options.getter, options.setter); this.addAnimator(animator); return animator; } }; util.mixin(Animation, Dispatcher); var _default = Animation; module.exports = _default; /***/ }), /* 442 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/dom/HandlerProxy.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _event = __webpack_require__(/*! ../core/event */ 408); var addEventListener = _event.addEventListener; var removeEventListener = _event.removeEventListener; var normalizeEvent = _event.normalizeEvent; var getNativeEvent = _event.getNativeEvent; var zrUtil = __webpack_require__(/*! ../core/util */ 403); var Eventful = __webpack_require__(/*! ../mixin/Eventful */ 407); var env = __webpack_require__(/*! ../core/env */ 402); /* global document */ var TOUCH_CLICK_DELAY = 300; var globalEventSupported = env.domSupported; var localNativeListenerNames = function () { var mouseHandlerNames = ['click', 'dblclick', 'mousewheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu']; var touchHandlerNames = ['touchstart', 'touchend', 'touchmove']; var pointerEventNameMap = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 }; var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) { var nm = name.replace('mouse', 'pointer'); return pointerEventNameMap.hasOwnProperty(nm) ? nm : name; }); return { mouse: mouseHandlerNames, touch: touchHandlerNames, pointer: pointerHandlerNames }; }(); var globalNativeListenerNames = { mouse: ['mousemove', 'mouseup'], pointer: ['pointermove', 'pointerup'] }; function eventNameFix(name) { return name === 'mousewheel' && env.browser.firefox ? 'DOMMouseScroll' : name; } function isPointerFromTouch(event) { var pointerType = event.pointerType; return pointerType === 'pen' || pointerType === 'touch'; } // function useMSGuesture(handlerProxy, event) { // return isPointerFromTouch(event) && !!handlerProxy._msGesture; // } // function onMSGestureChange(proxy, event) { // if (event.translationX || event.translationY) { // // mousemove is carried by MSGesture to reduce the sensitivity. // proxy.handler.dispatchToElement(event.target, 'mousemove', event); // } // if (event.scale !== 1) { // event.pinchX = event.offsetX; // event.pinchY = event.offsetY; // event.pinchScale = event.scale; // proxy.handler.dispatchToElement(event.target, 'pinch', event); // } // } /** * Prevent mouse event from being dispatched after Touch Events action * @see * 1. Mobile browsers dispatch mouse events 300ms after touchend. * 2. Chrome for Android dispatch mousedown for long-touch about 650ms * Result: Blocking Mouse Events for 700ms. * * @param {DOMHandlerScope} scope */ function setTouchTimer(scope) { scope.touching = true; if (scope.touchTimer != null) { clearTimeout(scope.touchTimer); scope.touchTimer = null; } scope.touchTimer = setTimeout(function () { scope.touching = false; scope.touchTimer = null; }, 700); } // Mark touch, which is useful in distinguish touch and // mouse event in upper applicatoin. function markTouch(event) { event && (event.zrByTouch = true); } // function markTriggeredFromLocal(event) { // event && (event.__zrIsFromLocal = true); // } // function isTriggeredFromLocal(instance, event) { // return !!(event && event.__zrIsFromLocal); // } function normalizeGlobalEvent(instance, event) { // offsetX, offsetY still need to be calculated. They are necessary in the event // handlers of the upper applications. Set `true` to force calculate them. return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true); } /** * Detect whether the given el is in `painterRoot`. */ function isLocalEl(instance, el) { var elTmp = el; var isLocal = false; while (elTmp && elTmp.nodeType !== 9 && !(isLocal = elTmp.domBelongToZr || elTmp !== el && elTmp === instance.painterRoot)) { elTmp = elTmp.parentNode; } return isLocal; } /** * Make a fake event but not change the original event, * becuase the global event probably be used by other * listeners not belonging to zrender. * @class */ function FakeGlobalEvent(instance, event) { this.type = event.type; this.target = this.currentTarget = instance.dom; this.pointerType = event.pointerType; // Necessray for the force calculation of zrX, zrY this.clientX = event.clientX; this.clientY = event.clientY; // Because we do not mount global listeners to touch events, // we do not copy `targetTouches` and `changedTouches` here. } var fakeGlobalEventProto = FakeGlobalEvent.prototype; // we make the default methods on the event do nothing, // otherwise it is dangerous. See more details in // [Drag outside] in `Handler.js`. fakeGlobalEventProto.stopPropagation = fakeGlobalEventProto.stopImmediatePropagation = fakeGlobalEventProto.preventDefault = zrUtil.noop; /** * Local DOM Handlers * @this {HandlerProxy} */ var localDOMHandlers = { mousedown: function mousedown(event) { event = normalizeEvent(this.dom, event); this._mayPointerCapture = [event.zrX, event.zrY]; this.trigger('mousedown', event); }, mousemove: function mousemove(event) { event = normalizeEvent(this.dom, event); var downPoint = this._mayPointerCapture; if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) { togglePointerCapture(this, true); } this.trigger('mousemove', event); }, mouseup: function mouseup(event) { event = normalizeEvent(this.dom, event); togglePointerCapture(this, false); this.trigger('mouseup', event); }, mouseout: function mouseout(event) { event = normalizeEvent(this.dom, event); // Similarly to the browser did on `document` and touch event, // `globalout` will be delayed to final pointer cature release. if (this._pointerCapturing) { event.zrEventControl = 'no_globalout'; } // There might be some doms created by upper layer application // at the same level of painter.getViewportRoot() (e.g., tooltip // dom created by echarts), where 'globalout' event should not // be triggered when mouse enters these doms. (But 'mouseout' // should be triggered at the original hovered element as usual). var element = event.toElement || event.relatedTarget; event.zrIsToLocalDOM = isLocalEl(this, element); this.trigger('mouseout', event); }, touchstart: function touchstart(event) { // Default mouse behaviour should not be disabled here. // For example, page may needs to be slided. event = normalizeEvent(this.dom, event); markTouch(event); this._lastTouchMoment = new Date(); this.handler.processGesture(event, 'start'); // For consistent event listener for both touch device and mouse device, // we simulate "mouseover-->mousedown" in touch device. So we trigger // `mousemove` here (to trigger `mouseover` inside), and then trigger // `mousedown`. localDOMHandlers.mousemove.call(this, event); localDOMHandlers.mousedown.call(this, event); }, touchmove: function touchmove(event) { event = normalizeEvent(this.dom, event); markTouch(event); this.handler.processGesture(event, 'change'); // Mouse move should always be triggered no matter whether // there is gestrue event, because mouse move and pinch may // be used at the same time. localDOMHandlers.mousemove.call(this, event); }, touchend: function touchend(event) { event = normalizeEvent(this.dom, event); markTouch(event); this.handler.processGesture(event, 'end'); localDOMHandlers.mouseup.call(this, event); // Do not trigger `mouseout` here, in spite of `mousemove`(`mouseover`) is // triggered in `touchstart`. This seems to be illogical, but by this mechanism, // we can conveniently implement "hover style" in both PC and touch device just // by listening to `mouseover` to add "hover style" and listening to `mouseout` // to remove "hover style" on an element, without any additional code for // compatibility. (`mouseout` will not be triggered in `touchend`, so "hover // style" will remain for user view) // click event should always be triggered no matter whether // there is gestrue event. System click can not be prevented. if (+new Date() - this._lastTouchMoment < TOUCH_CLICK_DELAY) { localDOMHandlers.click.call(this, event); } }, pointerdown: function pointerdown(event) { localDOMHandlers.mousedown.call(this, event); // if (useMSGuesture(this, event)) { // this._msGesture.addPointer(event.pointerId); // } }, pointermove: function pointermove(event) { // FIXME // pointermove is so sensitive that it always triggered when // tap(click) on touch screen, which affect some judgement in // upper application. So, we dont support mousemove on MS touch // device yet. if (!isPointerFromTouch(event)) { localDOMHandlers.mousemove.call(this, event); } }, pointerup: function pointerup(event) { localDOMHandlers.mouseup.call(this, event); }, pointerout: function pointerout(event) { // pointerout will be triggered when tap on touch screen // (IE11+/Edge on MS Surface) after click event triggered, // which is inconsistent with the mousout behavior we defined // in touchend. So we unify them. // (check localDOMHandlers.touchend for detailed explanation) if (!isPointerFromTouch(event)) { localDOMHandlers.mouseout.call(this, event); } } }; /** * Othere DOM UI Event handlers for zr dom. * @this {HandlerProxy} */ zrUtil.each(['click', 'mousewheel', 'dblclick', 'contextmenu'], function (name) { localDOMHandlers[name] = function (event) { event = normalizeEvent(this.dom, event); this.trigger(name, event); }; }); /** * DOM UI Event handlers for global page. * * [Caution]: * those handlers should both support in capture phase and bubble phase! * * @this {HandlerProxy} */ var globalDOMHandlers = { pointermove: function pointermove(event) { // FIXME // pointermove is so sensitive that it always triggered when // tap(click) on touch screen, which affect some judgement in // upper application. So, we dont support mousemove on MS touch // device yet. if (!isPointerFromTouch(event)) { globalDOMHandlers.mousemove.call(this, event); } }, pointerup: function pointerup(event) { globalDOMHandlers.mouseup.call(this, event); }, mousemove: function mousemove(event) { this.trigger('mousemove', event); }, mouseup: function mouseup(event) { var pointerCaptureReleasing = this._pointerCapturing; togglePointerCapture(this, false); this.trigger('mouseup', event); if (pointerCaptureReleasing) { event.zrEventControl = 'only_globalout'; this.trigger('mouseout', event); } } }; /** * @param {HandlerProxy} instance * @param {DOMHandlerScope} scope */ function mountLocalDOMEventListeners(instance, scope) { var domHandlers = scope.domHandlers; if (env.pointerEventsSupported) { // Only IE11+/Edge // 1. On devices that both enable touch and mouse (e.g., MS Surface and lenovo X240), // IE11+/Edge do not trigger touch event, but trigger pointer event and mouse event // at the same time. // 2. On MS Surface, it probablely only trigger mousedown but no mouseup when tap on // screen, which do not occurs in pointer event. // So we use pointer event to both detect touch gesture and mouse behavior. zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) { mountSingleDOMEventListener(scope, nativeEventName, function (event) { // markTriggeredFromLocal(event); domHandlers[nativeEventName].call(instance, event); }); }); // FIXME // Note: MS Gesture require CSS touch-action set. But touch-action is not reliable, // which does not prevent defuault behavior occasionally (which may cause view port // zoomed in but use can not zoom it back). And event.preventDefault() does not work. // So we have to not to use MSGesture and not to support touchmove and pinch on MS // touch screen. And we only support click behavior on MS touch screen now. // MS Gesture Event is only supported on IE11+/Edge and on Windows 8+. // We dont support touch on IE on win7. // See // if (typeof MSGesture === 'function') { // (this._msGesture = new MSGesture()).target = dom; // jshint ignore:line // dom.addEventListener('MSGestureChange', onMSGestureChange); // } } else { if (env.touchEventsSupported) { zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) { mountSingleDOMEventListener(scope, nativeEventName, function (event) { // markTriggeredFromLocal(event); domHandlers[nativeEventName].call(instance, event); setTouchTimer(scope); }); }); // Handler of 'mouseout' event is needed in touch mode, which will be mounted below. // addEventListener(root, 'mouseout', this._mouseoutHandler); } // 1. Considering some devices that both enable touch and mouse event (like on MS Surface // and lenovo X240, @see #2350), we make mouse event be always listened, otherwise // mouse event can not be handle in those devices. // 2. On MS Surface, Chrome will trigger both touch event and mouse event. How to prevent // mouseevent after touch event triggered, see `setTouchTimer`. zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) { mountSingleDOMEventListener(scope, nativeEventName, function (event) { event = getNativeEvent(event); if (!scope.touching) { // markTriggeredFromLocal(event); domHandlers[nativeEventName].call(instance, event); } }); }); } } /** * @param {HandlerProxy} instance * @param {DOMHandlerScope} scope */ function mountGlobalDOMEventListeners(instance, scope) { // Only IE11+/Edge. See the comment in `mountLocalDOMEventListeners`. if (env.pointerEventsSupported) { zrUtil.each(globalNativeListenerNames.pointer, mount); } // Touch event has implemented "drag outside" so we do not mount global listener for touch event. // (see https://www.w3.org/TR/touch-events/#the-touchmove-event) // We do not consider "both-support-touch-and-mouse device" for this feature (see the comment of // `mountLocalDOMEventListeners`) to avoid bugs util some requirements come. else if (!env.touchEventsSupported) { zrUtil.each(globalNativeListenerNames.mouse, mount); } function mount(nativeEventName) { function nativeEventListener(event) { event = getNativeEvent(event); // See the reason in [Drag outside] in `Handler.js` // This checking supports both `useCapture` or not. // PENDING: if there is performance issue in some devices, // we probably can not use `useCapture` and change a easier // to judes whether local (mark). if (!isLocalEl(instance, event.target)) { event = normalizeGlobalEvent(instance, event); scope.domHandlers[nativeEventName].call(instance, event); } } mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true } // See [Drag Outside] in `Handler.js` ); } } function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) { scope.mounted[nativeEventName] = listener; scope.listenerOpts[nativeEventName] = opt; addEventListener(scope.domTarget, eventNameFix(nativeEventName), listener, opt); } function unmountDOMEventListeners(scope) { var mounted = scope.mounted; for (var nativeEventName in mounted) { if (mounted.hasOwnProperty(nativeEventName)) { removeEventListener(scope.domTarget, eventNameFix(nativeEventName), mounted[nativeEventName], scope.listenerOpts[nativeEventName]); } } scope.mounted = {}; } /** * See [Drag Outside] in `Handler.js`. * @implement * @param {boolean} isPointerCapturing Should never be `null`/`undefined`. * `true`: start to capture pointer if it is not capturing. * `false`: end the capture if it is capturing. */ function togglePointerCapture(instance, isPointerCapturing) { instance._mayPointerCapture = null; if (globalEventSupported && instance._pointerCapturing ^ isPointerCapturing) { instance._pointerCapturing = isPointerCapturing; var globalHandlerScope = instance._globalHandlerScope; isPointerCapturing ? mountGlobalDOMEventListeners(instance, globalHandlerScope) : unmountDOMEventListeners(globalHandlerScope); } } /** * @inner * @class */ function DOMHandlerScope(domTarget, domHandlers) { this.domTarget = domTarget; this.domHandlers = domHandlers; // Key: eventName, value: mounted handler funcitons. // Used for unmount. this.mounted = {}; this.listenerOpts = {}; this.touchTimer = null; this.touching = false; } /** * @public * @class */ function HandlerDomProxy(dom, painterRoot) { Eventful.call(this); this.dom = dom; this.painterRoot = painterRoot; this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); if (globalEventSupported) { this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); } /** * @type {boolean} */ this._pointerCapturing = false; /** * @type {Array.} [x, y] or null. */ this._mayPointerCapture = null; mountLocalDOMEventListeners(this, this._localHandlerScope); } var handlerDomProxyProto = HandlerDomProxy.prototype; handlerDomProxyProto.dispose = function () { unmountDOMEventListeners(this._localHandlerScope); if (globalEventSupported) { unmountDOMEventListeners(this._globalHandlerScope); } }; handlerDomProxyProto.setCursor = function (cursorStyle) { this.dom.style && (this.dom.style.cursor = cursorStyle || 'default'); }; zrUtil.mixin(HandlerDomProxy, Eventful); var _default = HandlerDomProxy; module.exports = _default; /***/ }), /* 443 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/Global.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var filter = _util.filter; var map = _util.map; var isArray = _util.isArray; var indexOf = _util.indexOf; var isObject = _util.isObject; var isString = _util.isString; var createHashMap = _util.createHashMap; var assert = _util.assert; var clone = _util.clone; var merge = _util.merge; var extend = _util.extend; var mixin = _util.mixin; var modelUtil = __webpack_require__(/*! ../util/model */ 444); var Model = __webpack_require__(/*! ./Model */ 445); var ComponentModel = __webpack_require__(/*! ./Component */ 486); var globalDefault = __webpack_require__(/*! ./globalDefault */ 492); var colorPaletteMixin = __webpack_require__(/*! ./mixin/colorPalette */ 493); var _sourceHelper = __webpack_require__(/*! ../data/helper/sourceHelper */ 494); var resetSourceDefaulter = _sourceHelper.resetSourceDefaulter; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * ECharts global model * * @module {echarts/model/Global} */ /** * Caution: If the mechanism should be changed some day, these cases * should be considered: * * (1) In `merge option` mode, if using the same option to call `setOption` * many times, the result should be the same (try our best to ensure that). * (2) In `merge option` mode, if a component has no id/name specified, it * will be merged by index, and the result sequence of the components is * consistent to the original sequence. * (3) `reset` feature (in toolbox). Find detailed info in comments about * `mergeOption` in module:echarts/model/OptionManager. */ var OPTION_INNER_KEY = '\0_ec_inner'; /** * @alias module:echarts/model/Global * * @param {Object} option * @param {module:echarts/model/Model} parentModel * @param {Object} theme */ var GlobalModel = Model.extend({ init: function init(option, parentModel, theme, optionManager) { theme = theme || {}; this.option = null; // Mark as not initialized. /** * @type {module:echarts/model/Model} * @private */ this._theme = new Model(theme); /** * @type {module:echarts/model/OptionManager} */ this._optionManager = optionManager; }, setOption: function setOption(option, optionPreprocessorFuncs) { assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()'); this._optionManager.setOption(option, optionPreprocessorFuncs); this.resetOption(null); }, /** * @param {string} type null/undefined: reset all. * 'recreate': force recreate all. * 'timeline': only reset timeline option * 'media': only reset media query option * @return {boolean} Whether option changed. */ resetOption: function resetOption(type) { var optionChanged = false; var optionManager = this._optionManager; if (!type || type === 'recreate') { var baseOption = optionManager.mountOption(type === 'recreate'); if (!this.option || type === 'recreate') { initBase.call(this, baseOption); } else { this.restoreData(); this.mergeOption(baseOption); } optionChanged = true; } if (type === 'timeline' || type === 'media') { this.restoreData(); } if (!type || type === 'recreate' || type === 'timeline') { var timelineOption = optionManager.getTimelineOption(this); timelineOption && (this.mergeOption(timelineOption), optionChanged = true); } if (!type || type === 'recreate' || type === 'media') { var mediaOptions = optionManager.getMediaOption(this, this._api); if (mediaOptions.length) { each(mediaOptions, function (mediaOption) { this.mergeOption(mediaOption, optionChanged = true); }, this); } } return optionChanged; }, /** * @protected */ mergeOption: function mergeOption(newOption) { var option = this.option; var componentsMap = this._componentsMap; var newCptTypes = []; resetSourceDefaulter(this); // If no component class, merge directly. // For example: color, animaiton options, etc. each(newOption, function (componentOption, mainType) { if (componentOption == null) { return; } if (!ComponentModel.hasClass(mainType)) { // globalSettingTask.dirty(); option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true); } else if (mainType) { newCptTypes.push(mainType); } }); ComponentModel.topologicalTravel(newCptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this); function visitComponent(mainType, dependencies) { var newCptOptionList = modelUtil.normalizeToArray(newOption[mainType]); var mapResult = modelUtil.mappingToExists(componentsMap.get(mainType), newCptOptionList); modelUtil.makeIdAndName(mapResult); // Set mainType and complete subType. each(mapResult, function (item, index) { var opt = item.option; if (isObject(opt)) { item.keyInfo.mainType = mainType; item.keyInfo.subType = determineSubType(mainType, opt, item.exist); } }); var dependentModels = getComponentsByTypes(componentsMap, dependencies); option[mainType] = []; componentsMap.set(mainType, []); each(mapResult, function (resultItem, index) { var componentModel = resultItem.exist; var newCptOption = resultItem.option; assert(isObject(newCptOption) || componentModel, 'Empty component definition'); // Consider where is no new option and should be merged using {}, // see removeEdgeAndAdd in topologicalTravel and // ComponentModel.getAllClassMainTypes. if (!newCptOption) { componentModel.mergeOption({}, this); componentModel.optionUpdated({}, false); } else { var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true); if (componentModel && componentModel.constructor === ComponentModelClass) { componentModel.name = resultItem.keyInfo.name; // componentModel.settingTask && componentModel.settingTask.dirty(); componentModel.mergeOption(newCptOption, this); componentModel.optionUpdated(newCptOption, false); } else { // PENDING Global as parent ? var extraOpt = extend({ dependentModels: dependentModels, componentIndex: index }, resultItem.keyInfo); componentModel = new ComponentModelClass(newCptOption, this, this, extraOpt); extend(componentModel, extraOpt); componentModel.init(newCptOption, this, this, extraOpt); // Call optionUpdated after init. // newCptOption has been used as componentModel.option // and may be merged with theme and default, so pass null // to avoid confusion. componentModel.optionUpdated(null, true); } } componentsMap.get(mainType)[index] = componentModel; option[mainType][index] = componentModel.option; }, this); // Backup series for filtering. if (mainType === 'series') { createSeriesIndices(this, componentsMap.get('series')); } } this._seriesIndicesMap = createHashMap(this._seriesIndices = this._seriesIndices || []); }, /** * Get option for output (cloned option and inner info removed) * @public * @return {Object} */ getOption: function getOption() { var option = clone(this.option); each(option, function (opts, mainType) { if (ComponentModel.hasClass(mainType)) { var opts = modelUtil.normalizeToArray(opts); for (var i = opts.length - 1; i >= 0; i--) { // Remove options with inner id. if (modelUtil.isIdInner(opts[i])) { opts.splice(i, 1); } } option[mainType] = opts; } }); delete option[OPTION_INNER_KEY]; return option; }, /** * @return {module:echarts/model/Model} */ getTheme: function getTheme() { return this._theme; }, /** * @param {string} mainType * @param {number} [idx=0] * @return {module:echarts/model/Component} */ getComponent: function getComponent(mainType, idx) { var list = this._componentsMap.get(mainType); if (list) { return list[idx || 0]; } }, /** * If none of index and id and name used, return all components with mainType. * @param {Object} condition * @param {string} condition.mainType * @param {string} [condition.subType] If ignore, only query by mainType * @param {number|Array.} [condition.index] Either input index or id or name. * @param {string|Array.} [condition.id] Either input index or id or name. * @param {string|Array.} [condition.name] Either input index or id or name. * @return {Array.} */ queryComponents: function queryComponents(condition) { var mainType = condition.mainType; if (!mainType) { return []; } var index = condition.index; var id = condition.id; var name = condition.name; var cpts = this._componentsMap.get(mainType); if (!cpts || !cpts.length) { return []; } var result; if (index != null) { if (!isArray(index)) { index = [index]; } result = filter(map(index, function (idx) { return cpts[idx]; }), function (val) { return !!val; }); } else if (id != null) { var isIdArray = isArray(id); result = filter(cpts, function (cpt) { return isIdArray && indexOf(id, cpt.id) >= 0 || !isIdArray && cpt.id === id; }); } else if (name != null) { var isNameArray = isArray(name); result = filter(cpts, function (cpt) { return isNameArray && indexOf(name, cpt.name) >= 0 || !isNameArray && cpt.name === name; }); } else { // Return all components with mainType result = cpts.slice(); } return filterBySubType(result, condition); }, /** * The interface is different from queryComponents, * which is convenient for inner usage. * * @usage * var result = findComponents( * {mainType: 'dataZoom', query: {dataZoomId: 'abc'}} * ); * var result = findComponents( * {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}} * ); * var result = findComponents( * {mainType: 'series', * filter: function (model, index) {...}} * ); * // result like [component0, componnet1, ...] * * @param {Object} condition * @param {string} condition.mainType Mandatory. * @param {string} [condition.subType] Optional. * @param {Object} [condition.query] like {xxxIndex, xxxId, xxxName}, * where xxx is mainType. * If query attribute is null/undefined or has no index/id/name, * do not filtering by query conditions, which is convenient for * no-payload situations or when target of action is global. * @param {Function} [condition.filter] parameter: component, return boolean. * @return {Array.} */ findComponents: function findComponents(condition) { var query = condition.query; var mainType = condition.mainType; var queryCond = getQueryCond(query); var result = queryCond ? this.queryComponents(queryCond) : this._componentsMap.get(mainType); return doFilter(filterBySubType(result, condition)); function getQueryCond(q) { var indexAttr = mainType + 'Index'; var idAttr = mainType + 'Id'; var nameAttr = mainType + 'Name'; return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? { mainType: mainType, // subType will be filtered finally. index: q[indexAttr], id: q[idAttr], name: q[nameAttr] } : null; } function doFilter(res) { return condition.filter ? filter(res, condition.filter) : res; } }, /** * @usage * eachComponent('legend', function (legendModel, index) { * ... * }); * eachComponent(function (componentType, model, index) { * // componentType does not include subType * // (componentType is 'xxx' but not 'xxx.aa') * }); * eachComponent( * {mainType: 'dataZoom', query: {dataZoomId: 'abc'}}, * function (model, index) {...} * ); * eachComponent( * {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}}, * function (model, index) {...} * ); * * @param {string|Object=} mainType When mainType is object, the definition * is the same as the method 'findComponents'. * @param {Function} cb * @param {*} context */ eachComponent: function eachComponent(mainType, cb, context) { var componentsMap = this._componentsMap; if (typeof mainType === 'function') { context = cb; cb = mainType; componentsMap.each(function (components, componentType) { each(components, function (component, index) { cb.call(context, componentType, component, index); }); }); } else if (isString(mainType)) { each(componentsMap.get(mainType), cb, context); } else if (isObject(mainType)) { var queryResult = this.findComponents(mainType); each(queryResult, cb, context); } }, /** * @param {string} name * @return {Array.} */ getSeriesByName: function getSeriesByName(name) { var series = this._componentsMap.get('series'); return filter(series, function (oneSeries) { return oneSeries.name === name; }); }, /** * @param {number} seriesIndex * @return {module:echarts/model/Series} */ getSeriesByIndex: function getSeriesByIndex(seriesIndex) { return this._componentsMap.get('series')[seriesIndex]; }, /** * Get series list before filtered by type. * FIXME: rename to getRawSeriesByType? * * @param {string} subType * @return {Array.} */ getSeriesByType: function getSeriesByType(subType) { var series = this._componentsMap.get('series'); return filter(series, function (oneSeries) { return oneSeries.subType === subType; }); }, /** * @return {Array.} */ getSeries: function getSeries() { return this._componentsMap.get('series').slice(); }, /** * @return {number} */ getSeriesCount: function getSeriesCount() { return this._componentsMap.get('series').length; }, /** * After filtering, series may be different * frome raw series. * * @param {Function} cb * @param {*} context */ eachSeries: function eachSeries(cb, context) { assertSeriesInitialized(this); each(this._seriesIndices, function (rawSeriesIndex) { var series = this._componentsMap.get('series')[rawSeriesIndex]; cb.call(context, series, rawSeriesIndex); }, this); }, /** * Iterate raw series before filtered. * * @param {Function} cb * @param {*} context */ eachRawSeries: function eachRawSeries(cb, context) { each(this._componentsMap.get('series'), cb, context); }, /** * After filtering, series may be different. * frome raw series. * * @param {string} subType. * @param {Function} cb * @param {*} context */ eachSeriesByType: function eachSeriesByType(subType, cb, context) { assertSeriesInitialized(this); each(this._seriesIndices, function (rawSeriesIndex) { var series = this._componentsMap.get('series')[rawSeriesIndex]; if (series.subType === subType) { cb.call(context, series, rawSeriesIndex); } }, this); }, /** * Iterate raw series before filtered of given type. * * @parma {string} subType * @param {Function} cb * @param {*} context */ eachRawSeriesByType: function eachRawSeriesByType(subType, cb, context) { return each(this.getSeriesByType(subType), cb, context); }, /** * @param {module:echarts/model/Series} seriesModel */ isSeriesFiltered: function isSeriesFiltered(seriesModel) { assertSeriesInitialized(this); return this._seriesIndicesMap.get(seriesModel.componentIndex) == null; }, /** * @return {Array.} */ getCurrentSeriesIndices: function getCurrentSeriesIndices() { return (this._seriesIndices || []).slice(); }, /** * @param {Function} cb * @param {*} context */ filterSeries: function filterSeries(cb, context) { assertSeriesInitialized(this); var filteredSeries = filter(this._componentsMap.get('series'), cb, context); createSeriesIndices(this, filteredSeries); }, restoreData: function restoreData(payload) { var componentsMap = this._componentsMap; createSeriesIndices(this, componentsMap.get('series')); var componentTypes = []; componentsMap.each(function (components, componentType) { componentTypes.push(componentType); }); ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType, dependencies) { each(componentsMap.get(componentType), function (component) { (componentType !== 'series' || !isNotTargetSeries(component, payload)) && component.restoreData(); }); }); } }); function isNotTargetSeries(seriesModel, payload) { if (payload) { var index = payload.seiresIndex; var id = payload.seriesId; var name = payload.seriesName; return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name != null && seriesModel.name !== name; } } /** * @inner */ function mergeTheme(option, theme) { // PENDING // NOT use `colorLayer` in theme if option has `color` var notMergeColorLayer = option.color && !option.colorLayer; each(theme, function (themeItem, name) { if (name === 'colorLayer' && notMergeColorLayer) { return; } // 如果有 component model 则把具体的 merge 逻辑交给该 model 处理 if (!ComponentModel.hasClass(name)) { if (_typeof(themeItem) === 'object') { option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false); } else { if (option[name] == null) { option[name] = themeItem; } } } }); } function initBase(baseOption) { baseOption = baseOption; // Using OPTION_INNER_KEY to mark that this option can not be used outside, // i.e. `chart.setOption(chart.getModel().option);` is forbiden. this.option = {}; this.option[OPTION_INNER_KEY] = 1; /** * Init with series: [], in case of calling findSeries method * before series initialized. * @type {Object.>} * @private */ this._componentsMap = createHashMap({ series: [] }); /** * Mapping between filtered series list and raw series list. * key: filtered series indices, value: raw series indices. * @type {Array.} * @private */ this._seriesIndices; this._seriesIndicesMap; mergeTheme(baseOption, this._theme.option); // TODO Needs clone when merging to the unexisted property merge(baseOption, globalDefault, false); this.mergeOption(baseOption); } /** * @inner * @param {Array.|string} types model types * @return {Object} key: {string} type, value: {Array.} models */ function getComponentsByTypes(componentsMap, types) { if (!isArray(types)) { types = types ? [types] : []; } var ret = {}; each(types, function (type) { ret[type] = (componentsMap.get(type) || []).slice(); }); return ret; } /** * @inner */ function determineSubType(mainType, newCptOption, existComponent) { var subType = newCptOption.type ? newCptOption.type : existComponent ? existComponent.subType // Use determineSubType only when there is no existComponent. : ComponentModel.determineSubType(mainType, newCptOption); // tooltip, markline, markpoint may always has no subType return subType; } /** * @inner */ function createSeriesIndices(ecModel, seriesModels) { ecModel._seriesIndicesMap = createHashMap(ecModel._seriesIndices = map(seriesModels, function (series) { return series.componentIndex; }) || []); } /** * @inner */ function filterBySubType(components, condition) { // Using hasOwnProperty for restrict. Consider // subType is undefined in user payload. return condition.hasOwnProperty('subType') ? filter(components, function (cpt) { return cpt.subType === condition.subType; }) : components; } /** * @inner */ function assertSeriesInitialized(ecModel) {} mixin(GlobalModel, colorPaletteMixin); var _default = GlobalModel; module.exports = _default; /***/ }), /* 444 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/model.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var isObject = zrUtil.isObject; var isArray = zrUtil.isArray; /** * Make the name displayable. But we should * make sure it is not duplicated with user * specified name, so use '\0'; */ var DUMMY_COMPONENT_NAME_PREFIX = 'series\0'; /** * If value is not array, then translate it to array. * @param {*} value * @return {Array} [value] or value */ function normalizeToArray(value) { return value instanceof Array ? value : value == null ? [] : [value]; } /** * Sync default option between normal and emphasis like `position` and `show` * In case some one will write code like * label: { * show: false, * position: 'outside', * fontSize: 18 * }, * emphasis: { * label: { show: true } * } * @param {Object} opt * @param {string} key * @param {Array.} subOpts */ function defaultEmphasis(opt, key, subOpts) { // Caution: performance sensitive. if (opt) { opt[key] = opt[key] || {}; opt.emphasis = opt.emphasis || {}; opt.emphasis[key] = opt.emphasis[key] || {}; // Default emphasis option from normal for (var i = 0, len = subOpts.length; i < len; i++) { var subOptName = subOpts[i]; if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) { opt.emphasis[key][subOptName] = opt[key][subOptName]; } } } } var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding']; // modelUtil.LABEL_OPTIONS = modelUtil.TEXT_STYLE_OPTIONS.concat([ // 'position', 'offset', 'rotate', 'origin', 'show', 'distance', 'formatter', // 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', // // FIXME: deprecated, check and remove it. // 'textStyle' // ]); /** * The method do not ensure performance. * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}] * This helper method retieves value from data. * @param {string|number|Date|Array|Object} dataItem * @return {number|string|Date|Array.} */ function getDataItemValue(dataItem) { return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem; } /** * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}] * This helper method determine if dataItem has extra option besides value * @param {string|number|Date|Array|Object} dataItem */ function isDataItemOption(dataItem) { return isObject(dataItem) && !(dataItem instanceof Array); // // markLine data can be array // && !(dataItem[0] && isObject(dataItem[0]) && !(dataItem[0] instanceof Array)); } /** * Mapping to exists for merge. * * @public * @param {Array.|Array.} exists * @param {Object|Array.} newCptOptions * @return {Array.} Result, like [{exist: ..., option: ...}, {}], * index of which is the same as exists. */ function mappingToExists(exists, newCptOptions) { // Mapping by the order by original option (but not order of // new option) in merge mode. Because we should ensure // some specified index (like xAxisIndex) is consistent with // original option, which is easy to understand, espatially in // media query. And in most case, merge option is used to // update partial option but not be expected to change order. newCptOptions = (newCptOptions || []).slice(); var result = zrUtil.map(exists || [], function (obj, index) { return { exist: obj }; }); // Mapping by id or name if specified. each(newCptOptions, function (cptOption, index) { if (!isObject(cptOption)) { return; } // id has highest priority. for (var i = 0; i < result.length; i++) { if (!result[i].option // Consider name: two map to one. && cptOption.id != null && result[i].exist.id === cptOption.id + '') { result[i].option = cptOption; newCptOptions[index] = null; return; } } for (var i = 0; i < result.length; i++) { var exist = result[i].exist; if (!result[i].option // Consider name: two map to one. // Can not match when both ids exist but different. && (exist.id == null || cptOption.id == null) && cptOption.name != null && !isIdInner(cptOption) && !isIdInner(exist) && exist.name === cptOption.name + '') { result[i].option = cptOption; newCptOptions[index] = null; return; } } }); // Otherwise mapping by index. each(newCptOptions, function (cptOption, index) { if (!isObject(cptOption)) { return; } var i = 0; for (; i < result.length; i++) { var exist = result[i].exist; if (!result[i].option // Existing model that already has id should be able to // mapped to (because after mapping performed model may // be assigned with a id, whish should not affect next // mapping), except those has inner id. && !isIdInner(exist) // Caution: // Do not overwrite id. But name can be overwritten, // because axis use name as 'show label text'. // 'exist' always has id and name and we dont // need to check it. && cptOption.id == null) { result[i].option = cptOption; break; } } if (i >= result.length) { result.push({ option: cptOption }); } }); return result; } /** * Make id and name for mapping result (result of mappingToExists) * into `keyInfo` field. * * @public * @param {Array.} Result, like [{exist: ..., option: ...}, {}], * which order is the same as exists. * @return {Array.} The input. */ function makeIdAndName(mapResult) { // We use this id to hash component models and view instances // in echarts. id can be specified by user, or auto generated. // The id generation rule ensures new view instance are able // to mapped to old instance when setOption are called in // no-merge mode. So we generate model id by name and plus // type in view id. // name can be duplicated among components, which is convenient // to specify multi components (like series) by one name. // Ensure that each id is distinct. var idMap = zrUtil.createHashMap(); each(mapResult, function (item, index) { var existCpt = item.exist; existCpt && idMap.set(existCpt.id, item); }); each(mapResult, function (item, index) { var opt = item.option; zrUtil.assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id)); opt && opt.id != null && idMap.set(opt.id, item); !item.keyInfo && (item.keyInfo = {}); }); // Make name and id. each(mapResult, function (item, index) { var existCpt = item.exist; var opt = item.option; var keyInfo = item.keyInfo; if (!isObject(opt)) { return; } // name can be overwitten. Consider case: axis.name = '20km'. // But id generated by name will not be changed, which affect // only in that case: setOption with 'not merge mode' and view // instance will be recreated, which can be accepted. keyInfo.name = opt.name != null ? opt.name + '' : existCpt ? existCpt.name // Avoid diffferent series has the same name, // because name may be used like in color pallet. : DUMMY_COMPONENT_NAME_PREFIX + index; if (existCpt) { keyInfo.id = existCpt.id; } else if (opt.id != null) { keyInfo.id = opt.id + ''; } else { // Consider this situatoin: // optionA: [{name: 'a'}, {name: 'a'}, {..}] // optionB [{..}, {name: 'a'}, {name: 'a'}] // Series with the same name between optionA and optionB // should be mapped. var idNum = 0; do { keyInfo.id = '\0' + keyInfo.name + '\0' + idNum++; } while (idMap.get(keyInfo.id)); } idMap.set(keyInfo.id, item); }); } function isNameSpecified(componentModel) { var name = componentModel.name; // Is specified when `indexOf` get -1 or > 0. return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX)); } /** * @public * @param {Object} cptOption * @return {boolean} */ function isIdInner(cptOption) { return isObject(cptOption) && cptOption.id && (cptOption.id + '').indexOf('\0_ec_\0') === 0; } /** * A helper for removing duplicate items between batchA and batchB, * and in themselves, and categorize by series. * * @param {Array.} batchA Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...] * @param {Array.} batchB Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...] * @return {Array., Array.>} result: [resultBatchA, resultBatchB] */ function compressBatches(batchA, batchB) { var mapA = {}; var mapB = {}; makeMap(batchA || [], mapA); makeMap(batchB || [], mapB, mapA); return [mapToArray(mapA), mapToArray(mapB)]; function makeMap(sourceBatch, map, otherMap) { for (var i = 0, len = sourceBatch.length; i < len; i++) { var seriesId = sourceBatch[i].seriesId; var dataIndices = normalizeToArray(sourceBatch[i].dataIndex); var otherDataIndices = otherMap && otherMap[seriesId]; for (var j = 0, lenj = dataIndices.length; j < lenj; j++) { var dataIndex = dataIndices[j]; if (otherDataIndices && otherDataIndices[dataIndex]) { otherDataIndices[dataIndex] = null; } else { (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1; } } } } function mapToArray(map, isData) { var result = []; for (var i in map) { if (map.hasOwnProperty(i) && map[i] != null) { if (isData) { result.push(+i); } else { var dataIndices = mapToArray(map[i], true); dataIndices.length && result.push({ seriesId: i, dataIndex: dataIndices }); } } } return result; } } /** * @param {module:echarts/data/List} data * @param {Object} payload Contains dataIndex (means rawIndex) / dataIndexInside / name * each of which can be Array or primary type. * @return {number|Array.} dataIndex If not found, return undefined/null. */ function queryDataIndex(data, payload) { if (payload.dataIndexInside != null) { return payload.dataIndexInside; } else if (payload.dataIndex != null) { return zrUtil.isArray(payload.dataIndex) ? zrUtil.map(payload.dataIndex, function (value) { return data.indexOfRawIndex(value); }) : data.indexOfRawIndex(payload.dataIndex); } else if (payload.name != null) { return zrUtil.isArray(payload.name) ? zrUtil.map(payload.name, function (value) { return data.indexOfName(value); }) : data.indexOfName(payload.name); } } /** * Enable property storage to any host object. * Notice: Serialization is not supported. * * For example: * var inner = zrUitl.makeInner(); * * function some1(hostObj) { * inner(hostObj).someProperty = 1212; * ... * } * function some2() { * var fields = inner(this); * fields.someProperty1 = 1212; * fields.someProperty2 = 'xx'; * ... * } * * @return {Function} */ function makeInner() { // Consider different scope by es module import. var key = '__\0ec_inner_' + innerUniqueIndex++ + '_' + Math.random().toFixed(5); return function (hostObj) { return hostObj[key] || (hostObj[key] = {}); }; } var innerUniqueIndex = 0; /** * @param {module:echarts/model/Global} ecModel * @param {string|Object} finder * If string, e.g., 'geo', means {geoIndex: 0}. * If Object, could contain some of these properties below: * { * seriesIndex, seriesId, seriesName, * geoIndex, geoId, geoName, * bmapIndex, bmapId, bmapName, * xAxisIndex, xAxisId, xAxisName, * yAxisIndex, yAxisId, yAxisName, * gridIndex, gridId, gridName, * ... (can be extended) * } * Each properties can be number|string|Array.|Array. * For example, a finder could be * { * seriesIndex: 3, * geoId: ['aa', 'cc'], * gridName: ['xx', 'rr'] * } * xxxIndex can be set as 'all' (means all xxx) or 'none' (means not specify) * If nothing or null/undefined specified, return nothing. * @param {Object} [opt] * @param {string} [opt.defaultMainType] * @param {Array.} [opt.includeMainTypes] * @return {Object} result like: * { * seriesModels: [seriesModel1, seriesModel2], * seriesModel: seriesModel1, // The first model * geoModels: [geoModel1, geoModel2], * geoModel: geoModel1, // The first model * ... * } */ function parseFinder(ecModel, finder, opt) { if (zrUtil.isString(finder)) { var obj = {}; obj[finder + 'Index'] = 0; finder = obj; } var defaultMainType = opt && opt.defaultMainType; if (defaultMainType && !has(finder, defaultMainType + 'Index') && !has(finder, defaultMainType + 'Id') && !has(finder, defaultMainType + 'Name')) { finder[defaultMainType + 'Index'] = 0; } var result = {}; each(finder, function (value, key) { var value = finder[key]; // Exclude 'dataIndex' and other illgal keys. if (key === 'dataIndex' || key === 'dataIndexInside') { result[key] = value; return; } var parsedKey = key.match(/^(\w+)(Index|Id|Name)$/) || []; var mainType = parsedKey[1]; var queryType = (parsedKey[2] || '').toLowerCase(); if (!mainType || !queryType || value == null || queryType === 'index' && value === 'none' || opt && opt.includeMainTypes && zrUtil.indexOf(opt.includeMainTypes, mainType) < 0) { return; } var queryParam = { mainType: mainType }; if (queryType !== 'index' || value !== 'all') { queryParam[queryType] = value; } var models = ecModel.queryComponents(queryParam); result[mainType + 'Models'] = models; result[mainType + 'Model'] = models[0]; }); return result; } function has(obj, prop) { return obj && obj.hasOwnProperty(prop); } function setAttribute(dom, key, value) { dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value; } function getAttribute(dom, key) { return dom.getAttribute ? dom.getAttribute(key) : dom[key]; } function getTooltipRenderMode(renderModeOption) { if (renderModeOption === 'auto') { // Using html when `document` exists, use richText otherwise return env.domSupported ? 'html' : 'richText'; } else { return renderModeOption || 'html'; } } /** * Group a list by key. * * @param {Array} array * @param {Function} getKey * param {*} Array item * return {string} key * @return {Object} Result * {Array}: keys, * {module:zrender/core/util/HashMap} buckets: {key -> Array} */ function groupData(array, getKey) { var buckets = zrUtil.createHashMap(); var keys = []; zrUtil.each(array, function (item) { var key = getKey(item); (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item); }); return { keys: keys, buckets: buckets }; } exports.normalizeToArray = normalizeToArray; exports.defaultEmphasis = defaultEmphasis; exports.TEXT_STYLE_OPTIONS = TEXT_STYLE_OPTIONS; exports.getDataItemValue = getDataItemValue; exports.isDataItemOption = isDataItemOption; exports.mappingToExists = mappingToExists; exports.makeIdAndName = makeIdAndName; exports.isNameSpecified = isNameSpecified; exports.isIdInner = isIdInner; exports.compressBatches = compressBatches; exports.queryDataIndex = queryDataIndex; exports.makeInner = makeInner; exports.parseFinder = parseFinder; exports.setAttribute = setAttribute; exports.getAttribute = getAttribute; exports.getTooltipRenderMode = getTooltipRenderMode; exports.groupData = groupData; /***/ }), /* 445 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/Model.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var _model = __webpack_require__(/*! ../util/model */ 444); var makeInner = _model.makeInner; var _clazz = __webpack_require__(/*! ../util/clazz */ 446); var enableClassExtend = _clazz.enableClassExtend; var enableClassCheck = _clazz.enableClassCheck; var lineStyleMixin = __webpack_require__(/*! ./mixin/lineStyle */ 447); var areaStyleMixin = __webpack_require__(/*! ./mixin/areaStyle */ 449); var textStyleMixin = __webpack_require__(/*! ./mixin/textStyle */ 450); var itemStyleMixin = __webpack_require__(/*! ./mixin/itemStyle */ 485); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/model/Model */ var mixin = zrUtil.mixin; var inner = makeInner(); /** * @alias module:echarts/model/Model * @constructor * @param {Object} [option] * @param {module:echarts/model/Model} [parentModel] * @param {module:echarts/model/Global} [ecModel] */ function Model(option, parentModel, ecModel) { /** * @type {module:echarts/model/Model} * @readOnly */ this.parentModel = parentModel; /** * @type {module:echarts/model/Global} * @readOnly */ this.ecModel = ecModel; /** * @type {Object} * @protected */ this.option = option; // Simple optimization // if (this.init) { // if (arguments.length <= 4) { // this.init(option, parentModel, ecModel, extraOpt); // } // else { // this.init.apply(this, arguments); // } // } } Model.prototype = { constructor: Model, /** * Model 的初始化函数 * @param {Object} option */ init: null, /** * 从新的 Option merge */ mergeOption: function mergeOption(option) { zrUtil.merge(this.option, option, true); }, /** * @param {string|Array.} path * @param {boolean} [ignoreParent=false] * @return {*} */ get: function get(path, ignoreParent) { if (path == null) { return this.option; } return doGet(this.option, this.parsePath(path), !ignoreParent && getParent(this, path)); }, /** * @param {string} key * @param {boolean} [ignoreParent=false] * @return {*} */ getShallow: function getShallow(key, ignoreParent) { var option = this.option; var val = option == null ? option : option[key]; var parentModel = !ignoreParent && getParent(this, key); if (val == null && parentModel) { val = parentModel.getShallow(key); } return val; }, /** * @param {string|Array.} [path] * @param {module:echarts/model/Model} [parentModel] * @return {module:echarts/model/Model} */ getModel: function getModel(path, parentModel) { var obj = path == null ? this.option : doGet(this.option, path = this.parsePath(path)); var thisParentModel; parentModel = parentModel || (thisParentModel = getParent(this, path)) && thisParentModel.getModel(path); return new Model(obj, parentModel, this.ecModel); }, /** * If model has option */ isEmpty: function isEmpty() { return this.option == null; }, restoreData: function restoreData() {}, // Pending clone: function clone() { var Ctor = this.constructor; return new Ctor(zrUtil.clone(this.option)); }, setReadOnly: function setReadOnly(properties) {// clazzUtil.setReadOnly(this, properties); }, // If path is null/undefined, return null/undefined. parsePath: function parsePath(path) { if (typeof path === 'string') { path = path.split('.'); } return path; }, /** * @param {Function} getParentMethod * param {Array.|string} path * return {module:echarts/model/Model} */ customizeGetParent: function customizeGetParent(getParentMethod) { inner(this).getParent = getParentMethod; }, isAnimationEnabled: function isAnimationEnabled() { if (!env.node) { if (this.option.animation != null) { return !!this.option.animation; } else if (this.parentModel) { return this.parentModel.isAnimationEnabled(); } } } }; function doGet(obj, pathArr, parentModel) { for (var i = 0; i < pathArr.length; i++) { // Ignore empty if (!pathArr[i]) { continue; } // obj could be number/string/... (like 0) obj = obj && _typeof(obj) === 'object' ? obj[pathArr[i]] : null; if (obj == null) { break; } } if (obj == null && parentModel) { obj = parentModel.get(pathArr); } return obj; } // `path` can be null/undefined function getParent(model, path) { var getParentMethod = inner(model).getParent; return getParentMethod ? getParentMethod.call(model, path) : model.parentModel; } // Enable Model.extend. enableClassExtend(Model); enableClassCheck(Model); mixin(Model, lineStyleMixin); mixin(Model, areaStyleMixin); mixin(Model, textStyleMixin); mixin(Model, itemStyleMixin); var _default = Model; module.exports = _default; /***/ }), /* 446 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/clazz.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var TYPE_DELIMITER = '.'; var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___'; /** * Notice, parseClassType('') should returns {main: '', sub: ''} * @public */ function parseClassType(componentType) { var ret = { main: '', sub: '' }; if (componentType) { componentType = componentType.split(TYPE_DELIMITER); ret.main = componentType[0] || ''; ret.sub = componentType[1] || ''; } return ret; } /** * @public */ function checkClassType(componentType) { zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType "' + componentType + '" illegal'); } /** * @public */ function enableClassExtend(RootClass, mandatoryMethods) { RootClass.$constructor = RootClass; RootClass.extend = function (proto) { var superClass = this; var ExtendedClass = function ExtendedClass() { if (!proto.$constructor) { superClass.apply(this, arguments); } else { proto.$constructor.apply(this, arguments); } }; zrUtil.extend(ExtendedClass.prototype, proto); ExtendedClass.extend = this.extend; ExtendedClass.superCall = superCall; ExtendedClass.superApply = superApply; zrUtil.inherits(ExtendedClass, this); ExtendedClass.superClass = superClass; return ExtendedClass; }; } var classBase = 0; /** * Can not use instanceof, consider different scope by * cross domain or es module import in ec extensions. * Mount a method "isInstance()" to Clz. */ function enableClassCheck(Clz) { var classAttr = ['__\0is_clz', classBase++, Math.random().toFixed(3)].join('_'); Clz.prototype[classAttr] = true; Clz.isInstance = function (obj) { return !!(obj && obj[classAttr]); }; } // superCall should have class info, which can not be fetch from 'this'. // Consider this case: // class A has method f, // class B inherits class A, overrides method f, f call superApply('f'), // class C inherits class B, do not overrides method f, // then when method of class C is called, dead loop occured. function superCall(context, methodName) { var args = zrUtil.slice(arguments, 2); return this.superClass.prototype[methodName].apply(context, args); } function superApply(context, methodName, args) { return this.superClass.prototype[methodName].apply(context, args); } /** * @param {Object} entity * @param {Object} options * @param {boolean} [options.registerWhenExtend] * @public */ function enableClassManagement(entity, options) { options = options || {}; /** * Component model classes * key: componentType, * value: * componentClass, when componentType is 'xxx' * or Object., when componentType is 'xxx.yy' * @type {Object} */ var storage = {}; entity.registerClass = function (Clazz, componentType) { if (componentType) { checkClassType(componentType); componentType = parseClassType(componentType); if (!componentType.sub) { storage[componentType.main] = Clazz; } else if (componentType.sub !== IS_CONTAINER) { var container = makeContainer(componentType); container[componentType.sub] = Clazz; } } return Clazz; }; entity.getClass = function (componentMainType, subType, throwWhenNotFound) { var Clazz = storage[componentMainType]; if (Clazz && Clazz[IS_CONTAINER]) { Clazz = subType ? Clazz[subType] : null; } if (throwWhenNotFound && !Clazz) { throw new Error(!subType ? componentMainType + '.' + 'type should be specified.' : 'Component ' + componentMainType + '.' + (subType || '') + ' not exists. Load it first.'); } return Clazz; }; entity.getClassesByMainType = function (componentType) { componentType = parseClassType(componentType); var result = []; var obj = storage[componentType.main]; if (obj && obj[IS_CONTAINER]) { zrUtil.each(obj, function (o, type) { type !== IS_CONTAINER && result.push(o); }); } else { result.push(obj); } return result; }; entity.hasClass = function (componentType) { // Just consider componentType.main. componentType = parseClassType(componentType); return !!storage[componentType.main]; }; /** * @return {Array.} Like ['aa', 'bb'], but can not be ['aa.xx'] */ entity.getAllClassMainTypes = function () { var types = []; zrUtil.each(storage, function (obj, type) { types.push(type); }); return types; }; /** * If a main type is container and has sub types * @param {string} mainType * @return {boolean} */ entity.hasSubTypes = function (componentType) { componentType = parseClassType(componentType); var obj = storage[componentType.main]; return obj && obj[IS_CONTAINER]; }; entity.parseClassType = parseClassType; function makeContainer(componentType) { var container = storage[componentType.main]; if (!container || !container[IS_CONTAINER]) { container = storage[componentType.main] = {}; container[IS_CONTAINER] = true; } return container; } if (options.registerWhenExtend) { var originalExtend = entity.extend; if (originalExtend) { entity.extend = function (proto) { var ExtendedClass = originalExtend.call(this, proto); return entity.registerClass(ExtendedClass, proto.type); }; } } return entity; } /** * @param {string|Array.} properties */ function setReadOnly(obj, properties) {// FIXME It seems broken in IE8 simulation of IE11 // if (!zrUtil.isArray(properties)) { // properties = properties != null ? [properties] : []; // } // zrUtil.each(properties, function (prop) { // var value = obj[prop]; // Object.defineProperty // && Object.defineProperty(obj, prop, { // value: value, writable: false // }); // zrUtil.isArray(obj[prop]) // && Object.freeze // && Object.freeze(obj[prop]); // }); } exports.parseClassType = parseClassType; exports.enableClassExtend = enableClassExtend; exports.enableClassCheck = enableClassCheck; exports.enableClassManagement = enableClassManagement; exports.setReadOnly = setReadOnly; /***/ }), /* 447 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/lineStyle.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var makeStyleMapper = __webpack_require__(/*! ./makeStyleMapper */ 448); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _getLineStyle = makeStyleMapper([['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]); var _default = { getLineStyle: function getLineStyle(excludes) { var style = _getLineStyle(this, excludes); // Always set lineDash whether dashed, otherwise we can not // erase the previous style when assigning to el.style. style.lineDash = this.getLineDash(style.lineWidth); return style; }, getLineDash: function getLineDash(lineWidth) { if (lineWidth == null) { lineWidth = 1; } var lineType = this.get('type'); var dotSize = Math.max(lineWidth, 2); var dashSize = lineWidth * 4; return lineType === 'solid' || lineType == null ? // Use `false` but not `null` for the solid line here, because `null` might be // ignored when assigning to `el.style`. e.g., when setting `lineStyle.type` as // `'dashed'` and `emphasis.lineStyle.type` as `'solid'` in graph series, the // `lineDash` gotten form the latter one is not able to erase that from the former // one if using `null` here according to the emhpsis strategy in `util/graphic.js`. false : lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize]; } }; module.exports = _default; /***/ }), /* 448 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/makeStyleMapper.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // TODO Parse shadow style // TODO Only shallow path support function _default(properties) { // Normalize for (var i = 0; i < properties.length; i++) { if (!properties[i][1]) { properties[i][1] = properties[i][0]; } } return function (model, excludes, includes) { var style = {}; for (var i = 0; i < properties.length; i++) { var propName = properties[i][1]; if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) { continue; } var val = model.getShallow(propName); if (val != null) { style[properties[i][0]] = val; } } return style; }; } module.exports = _default; /***/ }), /* 449 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/areaStyle.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var makeStyleMapper = __webpack_require__(/*! ./makeStyleMapper */ 448); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _getAreaStyle = makeStyleMapper([['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']]); var _default = { getAreaStyle: function getAreaStyle(excludes, includes) { return _getAreaStyle(this, excludes, includes); } }; module.exports = _default; /***/ }), /* 450 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/textStyle.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); var graphicUtil = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PATH_COLOR = ['textStyle', 'color']; var _default = { /** * Get color property or get color from option.textStyle.color * @param {boolean} [isEmphasis] * @return {string} */ getTextColor: function getTextColor(isEmphasis) { var ecModel = this.ecModel; return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null); }, /** * Create font string from fontStyle, fontWeight, fontSize, fontFamily * @return {string} */ getFont: function getFont() { return graphicUtil.getFont({ fontStyle: this.getShallow('fontStyle'), fontWeight: this.getShallow('fontWeight'), fontSize: this.getShallow('fontSize'), fontFamily: this.getShallow('fontFamily') }, this.ecModel); }, getTextRect: function getTextRect(text) { return textContain.getBoundingRect(text, this.getFont(), this.getShallow('align'), this.getShallow('verticalAlign') || this.getShallow('baseline'), this.getShallow('padding'), this.getShallow('lineHeight'), this.getShallow('rich'), this.getShallow('truncateText')); } }; module.exports = _default; /***/ }), /* 451 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/graphic.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var pathTool = __webpack_require__(/*! zrender/lib/tool/path */ 452); var colorTool = __webpack_require__(/*! zrender/lib/tool/color */ 421); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var vector = __webpack_require__(/*! zrender/lib/core/vector */ 405); var Path = __webpack_require__(/*! zrender/lib/graphic/Path */ 453); var Transformable = __webpack_require__(/*! zrender/lib/mixin/Transformable */ 415); var ZImage = __webpack_require__(/*! zrender/lib/graphic/Image */ 434); exports.Image = ZImage; var Group = __webpack_require__(/*! zrender/lib/container/Group */ 413); exports.Group = Group; var Text = __webpack_require__(/*! zrender/lib/graphic/Text */ 465); exports.Text = Text; var Circle = __webpack_require__(/*! zrender/lib/graphic/shape/Circle */ 466); exports.Circle = Circle; var Sector = __webpack_require__(/*! zrender/lib/graphic/shape/Sector */ 467); exports.Sector = Sector; var Ring = __webpack_require__(/*! zrender/lib/graphic/shape/Ring */ 469); exports.Ring = Ring; var Polygon = __webpack_require__(/*! zrender/lib/graphic/shape/Polygon */ 470); exports.Polygon = Polygon; var Polyline = __webpack_require__(/*! zrender/lib/graphic/shape/Polyline */ 474); exports.Polyline = Polyline; var Rect = __webpack_require__(/*! zrender/lib/graphic/shape/Rect */ 475); exports.Rect = Rect; var Line = __webpack_require__(/*! zrender/lib/graphic/shape/Line */ 477); exports.Line = Line; var BezierCurve = __webpack_require__(/*! zrender/lib/graphic/shape/BezierCurve */ 478); exports.BezierCurve = BezierCurve; var Arc = __webpack_require__(/*! zrender/lib/graphic/shape/Arc */ 479); exports.Arc = Arc; var CompoundPath = __webpack_require__(/*! zrender/lib/graphic/CompoundPath */ 480); exports.CompoundPath = CompoundPath; var LinearGradient = __webpack_require__(/*! zrender/lib/graphic/LinearGradient */ 481); exports.LinearGradient = LinearGradient; var RadialGradient = __webpack_require__(/*! zrender/lib/graphic/RadialGradient */ 483); exports.RadialGradient = RadialGradient; var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); exports.BoundingRect = BoundingRect; var IncrementalDisplayable = __webpack_require__(/*! zrender/lib/graphic/IncrementalDisplayable */ 484); exports.IncrementalDisplayable = IncrementalDisplayable; var subPixelOptimizeUtil = __webpack_require__(/*! zrender/lib/graphic/helper/subPixelOptimize */ 476); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var mathMax = Math.max; var mathMin = Math.min; var EMPTY_OBJ = {}; var Z2_EMPHASIS_LIFT = 1; // key: label model property nane, value: style property name. var CACHED_LABEL_STYLE_PROPERTIES = { color: 'textFill', textBorderColor: 'textStroke', textBorderWidth: 'textStrokeWidth' }; var EMPHASIS = 'emphasis'; var NORMAL = 'normal'; // Reserve 0 as default. var _highlightNextDigit = 1; var _highlightKeyMap = {}; var _customShapeMap = {}; /** * Extend shape with parameters */ function extendShape(opts) { return Path.extend(opts); } /** * Extend path */ function extendPath(pathData, opts) { return pathTool.extendFromString(pathData, opts); } /** * Register a user defined shape. * The shape class can be fetched by `getShapeClass` * This method will overwrite the registered shapes, including * the registered built-in shapes, if using the same `name`. * The shape can be used in `custom series` and * `graphic component` by declaring `{type: name}`. * * @param {string} name * @param {Object} ShapeClass Can be generated by `extendShape`. */ function registerShape(name, ShapeClass) { _customShapeMap[name] = ShapeClass; } /** * Find shape class registered by `registerShape`. Usually used in * fetching user defined shape. * * [Caution]: * (1) This method **MUST NOT be used inside echarts !!!**, unless it is prepared * to use user registered shapes. * Because the built-in shape (see `getBuiltInShape`) will be registered by * `registerShape` by default. That enables users to get both built-in * shapes as well as the shapes belonging to themsleves. But users can overwrite * the built-in shapes by using names like 'circle', 'rect' via calling * `registerShape`. So the echarts inner featrues should not fetch shapes from here * in case that it is overwritten by users, except that some features, like * `custom series`, `graphic component`, do it deliberately. * * (2) In the features like `custom series`, `graphic component`, the user input * `{tpye: 'xxx'}` does not only specify shapes but also specify other graphic * elements like `'group'`, `'text'`, `'image'` or event `'path'`. Those names * are reserved names, that is, if some user register a shape named `'image'`, * the shape will not be used. If we intending to add some more reserved names * in feature, that might bring break changes (disable some existing user shape * names). But that case probably rearly happen. So we dont make more mechanism * to resolve this issue here. * * @param {string} name * @return {Object} The shape class. If not found, return nothing. */ function getShapeClass(name) { if (_customShapeMap.hasOwnProperty(name)) { return _customShapeMap[name]; } } /** * Create a path element from path data string * @param {string} pathData * @param {Object} opts * @param {module:zrender/core/BoundingRect} rect * @param {string} [layout=cover] 'center' or 'cover' */ function makePath(pathData, opts, rect, layout) { var path = pathTool.createFromString(pathData, opts); if (rect) { if (layout === 'center') { rect = centerGraphic(rect, path.getBoundingRect()); } resizePath(path, rect); } return path; } /** * Create a image element from image url * @param {string} imageUrl image url * @param {Object} opts options * @param {module:zrender/core/BoundingRect} rect constrain rect * @param {string} [layout=cover] 'center' or 'cover' */ function makeImage(imageUrl, rect, layout) { var path = new ZImage({ style: { image: imageUrl, x: rect.x, y: rect.y, width: rect.width, height: rect.height }, onload: function onload(img) { if (layout === 'center') { var boundingRect = { width: img.width, height: img.height }; path.setStyle(centerGraphic(rect, boundingRect)); } } }); return path; } /** * Get position of centered element in bounding box. * * @param {Object} rect element local bounding box * @param {Object} boundingRect constraint bounding box * @return {Object} element position containing x, y, width, and height */ function centerGraphic(rect, boundingRect) { // Set rect to center, keep width / height ratio. var aspect = boundingRect.width / boundingRect.height; var width = rect.height * aspect; var height; if (width <= rect.width) { height = rect.height; } else { width = rect.width; height = width / aspect; } var cx = rect.x + rect.width / 2; var cy = rect.y + rect.height / 2; return { x: cx - width / 2, y: cy - height / 2, width: width, height: height }; } var mergePath = pathTool.mergePath; /** * Resize a path to fit the rect * @param {module:zrender/graphic/Path} path * @param {Object} rect */ function resizePath(path, rect) { if (!path.applyTransform) { return; } var pathRect = path.getBoundingRect(); var m = pathRect.calculateTransform(rect); path.applyTransform(m); } /** * Sub pixel optimize line for canvas * * @param {Object} param * @param {Object} [param.shape] * @param {number} [param.shape.x1] * @param {number} [param.shape.y1] * @param {number} [param.shape.x2] * @param {number} [param.shape.y2] * @param {Object} [param.style] * @param {number} [param.style.lineWidth] * @return {Object} Modified param */ function subPixelOptimizeLine(param) { subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style); return param; } /** * Sub pixel optimize rect for canvas * * @param {Object} param * @param {Object} [param.shape] * @param {number} [param.shape.x] * @param {number} [param.shape.y] * @param {number} [param.shape.width] * @param {number} [param.shape.height] * @param {Object} [param.style] * @param {number} [param.style.lineWidth] * @return {Object} Modified param */ function subPixelOptimizeRect(param) { subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style); return param; } /** * Sub pixel optimize for canvas * * @param {number} position Coordinate, such as x, y * @param {number} lineWidth Should be nonnegative integer. * @param {boolean=} positiveOrNegative Default false (negative). * @return {number} Optimized position. */ var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize; function hasFillOrStroke(fillOrStroke) { return fillOrStroke != null && fillOrStroke !== 'none'; } // Most lifted color are duplicated. var liftedColorMap = zrUtil.createHashMap(); var liftedColorCount = 0; function liftColor(color) { if (typeof color !== 'string') { return color; } var liftedColor = liftedColorMap.get(color); if (!liftedColor) { liftedColor = colorTool.lift(color, -0.1); if (liftedColorCount < 10000) { liftedColorMap.set(color, liftedColor); liftedColorCount++; } } return liftedColor; } function cacheElementStl(el) { if (!el.__hoverStlDirty) { return; } el.__hoverStlDirty = false; var hoverStyle = el.__hoverStl; if (!hoverStyle) { el.__cachedNormalStl = el.__cachedNormalZ2 = null; return; } var normalStyle = el.__cachedNormalStl = {}; el.__cachedNormalZ2 = el.z2; var elStyle = el.style; for (var name in hoverStyle) { // See comment in `singleEnterEmphasis`. if (hoverStyle[name] != null) { normalStyle[name] = elStyle[name]; } } // Always cache fill and stroke to normalStyle for lifting color. normalStyle.fill = elStyle.fill; normalStyle.stroke = elStyle.stroke; } function singleEnterEmphasis(el) { var hoverStl = el.__hoverStl; if (!hoverStl || el.__highlighted) { return; } var zr = el.__zr; var useHoverLayer = el.useHoverLayer && zr && zr.painter.type === 'canvas'; el.__highlighted = useHoverLayer ? 'layer' : 'plain'; if (el.isGroup || !zr && el.useHoverLayer) { return; } var elTarget = el; var targetStyle = el.style; if (useHoverLayer) { elTarget = zr.addHover(el); targetStyle = elTarget.style; } rollbackDefaultTextStyle(targetStyle); if (!useHoverLayer) { cacheElementStl(elTarget); } // styles can be: // { // label: { // show: false, // position: 'outside', // fontSize: 18 // }, // emphasis: { // label: { // show: true // } // } // }, // where properties of `emphasis` may not appear in `normal`. We previously use // module:echarts/util/model#defaultEmphasis to merge `normal` to `emphasis`. // But consider rich text and setOption in merge mode, it is impossible to cover // all properties in merge. So we use merge mode when setting style here. // But we choose the merge strategy that only properties that is not `null/undefined`. // Because when making a textStyle (espacially rich text), it is not easy to distinguish // `hasOwnProperty` and `null/undefined` in code, so we trade them as the same for simplicity. // But this strategy brings a trouble that `null/undefined` can not be used to remove // style any more in `emphasis`. Users can both set properties directly on normal and // emphasis to avoid this issue, or we might support `'none'` for this case if required. targetStyle.extendFrom(hoverStl); setDefaultHoverFillStroke(targetStyle, hoverStl, 'fill'); setDefaultHoverFillStroke(targetStyle, hoverStl, 'stroke'); applyDefaultTextStyle(targetStyle); if (!useHoverLayer) { el.dirty(false); el.z2 += Z2_EMPHASIS_LIFT; } } function setDefaultHoverFillStroke(targetStyle, hoverStyle, prop) { if (!hasFillOrStroke(hoverStyle[prop]) && hasFillOrStroke(targetStyle[prop])) { targetStyle[prop] = liftColor(targetStyle[prop]); } } function singleEnterNormal(el) { var highlighted = el.__highlighted; if (!highlighted) { return; } el.__highlighted = false; if (el.isGroup) { return; } if (highlighted === 'layer') { el.__zr && el.__zr.removeHover(el); } else { var style = el.style; var normalStl = el.__cachedNormalStl; if (normalStl) { rollbackDefaultTextStyle(style); el.setStyle(normalStl); applyDefaultTextStyle(style); } // `__cachedNormalZ2` will not be reset if calling `setElementHoverStyle` // when `el` is on emphasis state. So here by comparing with 1, we try // hard to make the bug case rare. var normalZ2 = el.__cachedNormalZ2; if (normalZ2 != null && el.z2 - normalZ2 === Z2_EMPHASIS_LIFT) { el.z2 = normalZ2; } } } function traverseUpdate(el, updater, commonParam) { // If root is group, also enter updater for `highDownOnUpdate`. var fromState = NORMAL; var toState = NORMAL; var trigger; // See the rule of `highDownOnUpdate` on `graphic.setAsHighDownDispatcher`. el.__highlighted && (fromState = EMPHASIS, trigger = true); updater(el, commonParam); el.__highlighted && (toState = EMPHASIS, trigger = true); el.isGroup && el.traverse(function (child) { !child.isGroup && updater(child, commonParam); }); trigger && el.__highDownOnUpdate && el.__highDownOnUpdate(fromState, toState); } /** * Set hover style (namely "emphasis style") of element, based on the current * style of the given `el`. * This method should be called after all of the normal styles have been adopted * to the `el`. See the reason on `setHoverStyle`. * * @param {module:zrender/Element} el Should not be `zrender/container/Group`. * @param {Object} [el.hoverStyle] Can be set on el or its descendants, * e.g., `el.hoverStyle = ...; graphic.setHoverStyle(el); `. * Often used when item group has a label element and it's hoverStyle is different. * @param {Object|boolean} [hoverStl] The specified hover style. * If set as `false`, disable the hover style. * Similarly, The `el.hoverStyle` can alse be set * as `false` to disable the hover style. * Otherwise, use the default hover style if not provided. */ function setElementHoverStyle(el, hoverStl) { // For performance consideration, it might be better to make the "hover style" only the // difference properties from the "normal style", but not a entire copy of all styles. hoverStl = el.__hoverStl = hoverStl !== false && (el.hoverStyle || hoverStl || {}); el.__hoverStlDirty = true; // FIXME // It is not completely right to save "normal"/"emphasis" flag on elements. // It probably should be saved on `data` of series. Consider the cases: // (1) A highlighted elements are moved out of the view port and re-enter // again by dataZoom. // (2) call `setOption` and replace elements totally when they are highlighted. if (el.__highlighted) { // Consider the case: // The styles of a highlighted `el` is being updated. The new "emphasis style" // should be adapted to the `el`. Notice here new "normal styles" should have // been set outside and the cached "normal style" is out of date. el.__cachedNormalStl = null; // Do not clear `__cachedNormalZ2` here, because setting `z2` is not a constraint // of this method. In most cases, `z2` is not set and hover style should be able // to rollback. Of course, that would bring bug, but only in a rare case, see // `doSingleLeaveHover` for details. singleEnterNormal(el); singleEnterEmphasis(el); } } function onElementMouseOver(e) { !shouldSilent(this, e) // "emphasis" event highlight has higher priority than mouse highlight. && !this.__highByOuter && traverseUpdate(this, singleEnterEmphasis); } function onElementMouseOut(e) { !shouldSilent(this, e) // "emphasis" event highlight has higher priority than mouse highlight. && !this.__highByOuter && traverseUpdate(this, singleEnterNormal); } function onElementEmphasisEvent(highlightDigit) { this.__highByOuter |= 1 << (highlightDigit || 0); traverseUpdate(this, singleEnterEmphasis); } function onElementNormalEvent(highlightDigit) { !(this.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdate(this, singleEnterNormal); } function shouldSilent(el, e) { return el.__highDownSilentOnTouch && e.zrByTouch; } /** * Set hover style (namely "emphasis style") of element, * based on the current style of the given `el`. * * (1) * **CONSTRAINTS** for this method: * This method MUST be called after all of the normal styles having been adopted * to the `el`. * The input `hoverStyle` (that is, "emphasis style") MUST be the subset of the * "normal style" having been set to the el. * `color` MUST be one of the "normal styles" (because color might be lifted as * a default hover style). * * The reason: this method treat the current style of the `el` as the "normal style" * and cache them when enter/update the "emphasis style". Consider the case: the `el` * is in "emphasis" state and `setOption`/`dispatchAction` trigger the style updating * logic, where the el should shift from the original emphasis style to the new * "emphasis style" and should be able to "downplay" back to the new "normal style". * * Indeed, it is error-prone to make a interface has so many constraints, but I have * not found a better solution yet to fit the backward compatibility, performance and * the current programming style. * * (2) * Call the method for a "root" element once. Do not call it for each descendants. * If the descendants elemenets of a group has itself hover style different from the * root group, we can simply mount the style on `el.hoverStyle` for them, but should * not call this method for them. * * (3) These input parameters can be set directly on `el`: * * @param {module:zrender/Element} el * @param {Object} [el.hoverStyle] See `graphic.setElementHoverStyle`. * @param {boolean} [el.highDownSilentOnTouch=false] See `graphic.setAsHighDownDispatcher`. * @param {Function} [el.highDownOnUpdate] See `graphic.setAsHighDownDispatcher`. * @param {Object|boolean} [hoverStyle] See `graphic.setElementHoverStyle`. */ function setHoverStyle(el, hoverStyle) { setAsHighDownDispatcher(el, true); traverseUpdate(el, setElementHoverStyle, hoverStyle); } /** * @param {module:zrender/Element} el * @param {Function} [el.highDownOnUpdate] Called when state updated. * Since `setHoverStyle` has the constraint that it must be called after * all of the normal style updated, `highDownOnUpdate` is not needed to * trigger if both `fromState` and `toState` is 'normal', and needed to * trigger if both `fromState` and `toState` is 'emphasis', which enables * to sync outside style settings to "emphasis" state. * @this {string} This dispatcher `el`. * @param {string} fromState Can be "normal" or "emphasis". * `fromState` might equal to `toState`, * for example, when this method is called when `el` is * on "emphasis" state. * @param {string} toState Can be "normal" or "emphasis". * * FIXME * CAUTION: Do not expose `highDownOnUpdate` outside echarts. * Because it is not a complete solution. The update * listener should not have been mount in element, * and the normal/emphasis state should not have * mantained on elements. * * @param {boolean} [el.highDownSilentOnTouch=false] * In touch device, mouseover event will be trigger on touchstart event * (see module:zrender/dom/HandlerProxy). By this mechanism, we can * conveniently use hoverStyle when tap on touch screen without additional * code for compatibility. * But if the chart/component has select feature, which usually also use * hoverStyle, there might be conflict between 'select-highlight' and * 'hover-highlight' especially when roam is enabled (see geo for example). * In this case, `highDownSilentOnTouch` should be used to disable * hover-highlight on touch device. * @param {boolean} [asDispatcher=true] If `false`, do not set as "highDownDispatcher". */ function setAsHighDownDispatcher(el, asDispatcher) { var disable = asDispatcher === false; // Make `highDownSilentOnTouch` and `highDownOnUpdate` only work after // `setAsHighDownDispatcher` called. Avoid it is modified by user unexpectedly. el.__highDownSilentOnTouch = el.highDownSilentOnTouch; el.__highDownOnUpdate = el.highDownOnUpdate; // Simple optimize, since this method might be // called for each elements of a group in some cases. if (!disable || el.__highDownDispatcher) { var method = disable ? 'off' : 'on'; // Duplicated function will be auto-ignored, see Eventful.js. el[method]('mouseover', onElementMouseOver)[method]('mouseout', onElementMouseOut); // Emphasis, normal can be triggered manually by API or other components like hover link. el[method]('emphasis', onElementEmphasisEvent)[method]('normal', onElementNormalEvent); // Also keep previous record. el.__highByOuter = el.__highByOuter || 0; el.__highDownDispatcher = !disable; } } /** * @param {module:zrender/src/Element} el * @return {boolean} */ function isHighDownDispatcher(el) { return !!(el && el.__highDownDispatcher); } /** * Support hightlight/downplay record on each elements. * For the case: hover highlight/downplay (legend, visualMap, ...) and * user triggerred hightlight/downplay should not conflict. * Only all of the highlightDigit cleared, return to normal. * @param {string} highlightKey * @return {number} highlightDigit */ function getHighlightDigit(highlightKey) { var highlightDigit = _highlightKeyMap[highlightKey]; if (highlightDigit == null && _highlightNextDigit <= 32) { highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++; } return highlightDigit; } /** * See more info in `setTextStyleCommon`. * @param {Object|module:zrender/graphic/Style} normalStyle * @param {Object} emphasisStyle * @param {module:echarts/model/Model} normalModel * @param {module:echarts/model/Model} emphasisModel * @param {Object} opt Check `opt` of `setTextStyleCommon` to find other props. * @param {string|Function} [opt.defaultText] * @param {module:echarts/model/Model} [opt.labelFetcher] Fetch text by * `opt.labelFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)` * @param {number} [opt.labelDataIndex] Fetch text by * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)` * @param {number} [opt.labelDimIndex] Fetch text by * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)` * @param {string} [opt.labelProp] Fetch text by * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)` * @param {Object} [normalSpecified] * @param {Object} [emphasisSpecified] */ function setLabelStyle(normalStyle, emphasisStyle, normalModel, emphasisModel, opt, normalSpecified, emphasisSpecified) { opt = opt || EMPTY_OBJ; var labelFetcher = opt.labelFetcher; var labelDataIndex = opt.labelDataIndex; var labelDimIndex = opt.labelDimIndex; var labelProp = opt.labelProp; // This scenario, `label.normal.show = true; label.emphasis.show = false`, // is not supported util someone requests. var showNormal = normalModel.getShallow('show'); var showEmphasis = emphasisModel.getShallow('show'); // Consider performance, only fetch label when necessary. // If `normal.show` is `false` and `emphasis.show` is `true` and `emphasis.formatter` is not set, // label should be displayed, where text is fetched by `normal.formatter` or `opt.defaultText`. var baseText; if (showNormal || showEmphasis) { if (labelFetcher) { baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, labelProp); } if (baseText == null) { baseText = zrUtil.isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText; } } var normalStyleText = showNormal ? baseText : null; var emphasisStyleText = showEmphasis ? zrUtil.retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, 'emphasis', null, labelDimIndex, labelProp) : null, baseText) : null; // Optimize: If style.text is null, text will not be drawn. if (normalStyleText != null || emphasisStyleText != null) { // Always set `textStyle` even if `normalStyle.text` is null, because default // values have to be set on `normalStyle`. // If we set default values on `emphasisStyle`, consider case: // Firstly, `setOption(... label: {normal: {text: null}, emphasis: {show: true}} ...);` // Secondly, `setOption(... label: {noraml: {show: true, text: 'abc', color: 'red'} ...);` // Then the 'red' will not work on emphasis. setTextStyle(normalStyle, normalModel, normalSpecified, opt); setTextStyle(emphasisStyle, emphasisModel, emphasisSpecified, opt, true); } normalStyle.text = normalStyleText; emphasisStyle.text = emphasisStyleText; } /** * Modify label style manually. * Only works after `setLabelStyle` and `setElementHoverStyle` called. * * @param {module:zrender/src/Element} el * @param {Object} [normalStyleProps] optional * @param {Object} [emphasisStyleProps] optional */ function modifyLabelStyle(el, normalStyleProps, emphasisStyleProps) { var elStyle = el.style; if (normalStyleProps) { rollbackDefaultTextStyle(elStyle); el.setStyle(normalStyleProps); applyDefaultTextStyle(elStyle); } elStyle = el.__hoverStl; if (emphasisStyleProps && elStyle) { rollbackDefaultTextStyle(elStyle); zrUtil.extend(elStyle, emphasisStyleProps); applyDefaultTextStyle(elStyle); } } /** * Set basic textStyle properties. * See more info in `setTextStyleCommon`. * @param {Object|module:zrender/graphic/Style} textStyle * @param {module:echarts/model/Model} model * @param {Object} [specifiedTextStyle] Can be overrided by settings in model. * @param {Object} [opt] See `opt` of `setTextStyleCommon`. * @param {boolean} [isEmphasis] */ function setTextStyle(textStyle, textStyleModel, specifiedTextStyle, opt, isEmphasis) { setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis); specifiedTextStyle && zrUtil.extend(textStyle, specifiedTextStyle); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false); return textStyle; } /** * Set text option in the style. * See more info in `setTextStyleCommon`. * @deprecated * @param {Object} textStyle * @param {module:echarts/model/Model} labelModel * @param {string|boolean} defaultColor Default text color. * If set as false, it will be processed as a emphasis style. */ function setText(textStyle, labelModel, defaultColor) { var opt = { isRectText: true }; var isEmphasis; if (defaultColor === false) { isEmphasis = true; } else { // Support setting color as 'auto' to get visual color. opt.autoColor = defaultColor; } setTextStyleCommon(textStyle, labelModel, opt, isEmphasis); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false); } /** * The uniform entry of set text style, that is, retrieve style definitions * from `model` and set to `textStyle` object. * * Never in merge mode, but in overwrite mode, that is, all of the text style * properties will be set. (Consider the states of normal and emphasis and * default value can be adopted, merge would make the logic too complicated * to manage.) * * The `textStyle` object can either be a plain object or an instance of * `zrender/src/graphic/Style`, and either be the style of normal or emphasis. * After this mothod called, the `textStyle` object can then be used in * `el.setStyle(textStyle)` or `el.hoverStyle = textStyle`. * * Default value will be adopted and `insideRollbackOpt` will be created. * See `applyDefaultTextStyle` `rollbackDefaultTextStyle` for more details. * * opt: { * disableBox: boolean, Whether diable drawing box of block (outer most). * isRectText: boolean, * autoColor: string, specify a color when color is 'auto', * for textFill, textStroke, textBackgroundColor, and textBorderColor. * If autoColor specified, it is used as default textFill. * useInsideStyle: * `true`: Use inside style (textFill, textStroke, textStrokeWidth) * if `textFill` is not specified. * `false`: Do not use inside style. * `null/undefined`: use inside style if `isRectText` is true and * `textFill` is not specified and textPosition contains `'inside'`. * forceRich: boolean * } */ function setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis) { // Consider there will be abnormal when merge hover style to normal style if given default value. opt = opt || EMPTY_OBJ; if (opt.isRectText) { var textPosition; if (opt.getTextPosition) { textPosition = opt.getTextPosition(textStyleModel, isEmphasis); } else { textPosition = textStyleModel.getShallow('position') || (isEmphasis ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used // in bar series, and magric type should be considered. textPosition === 'outside' && (textPosition = 'top'); } textStyle.textPosition = textPosition; textStyle.textOffset = textStyleModel.getShallow('offset'); var labelRotate = textStyleModel.getShallow('rotate'); labelRotate != null && (labelRotate *= Math.PI / 180); textStyle.textRotation = labelRotate; textStyle.textDistance = zrUtil.retrieve2(textStyleModel.getShallow('distance'), isEmphasis ? null : 5); } var ecModel = textStyleModel.ecModel; var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case: // { // data: [{ // value: 12, // label: { // rich: { // // no 'a' here but using parent 'a'. // } // } // }], // rich: { // a: { ... } // } // } var richItemNames = getRichItemNames(textStyleModel); var richResult; if (richItemNames) { richResult = {}; for (var name in richItemNames) { if (richItemNames.hasOwnProperty(name)) { // Cascade is supported in rich. var richTextStyle = textStyleModel.getModel(['rich', name]); // In rich, never `disableBox`. // FIXME: consider `label: {formatter: '{a|xx}', color: 'blue', rich: {a: {}}}`, // the default color `'blue'` will not be adopted if no color declared in `rich`. // That might confuses users. So probably we should put `textStyleModel` as the // root ancestor of the `richTextStyle`. But that would be a break change. setTokenTextStyle(richResult[name] = {}, richTextStyle, globalTextStyle, opt, isEmphasis); } } } textStyle.rich = richResult; setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, true); if (opt.forceRich && !opt.textStyle) { opt.textStyle = {}; } return textStyle; } // Consider case: // { // data: [{ // value: 12, // label: { // rich: { // // no 'a' here but using parent 'a'. // } // } // }], // rich: { // a: { ... } // } // } function getRichItemNames(textStyleModel) { // Use object to remove duplicated names. var richItemNameMap; while (textStyleModel && textStyleModel !== textStyleModel.ecModel) { var rich = (textStyleModel.option || EMPTY_OBJ).rich; if (rich) { richItemNameMap = richItemNameMap || {}; for (var name in rich) { if (rich.hasOwnProperty(name)) { richItemNameMap[name] = 1; } } } textStyleModel = textStyleModel.parentModel; } return richItemNameMap; } function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, isBlock) { // In merge mode, default value should not be given. globalTextStyle = !isEmphasis && globalTextStyle || EMPTY_OBJ; textStyle.textFill = getAutoColor(textStyleModel.getShallow('color'), opt) || globalTextStyle.color; textStyle.textStroke = getAutoColor(textStyleModel.getShallow('textBorderColor'), opt) || globalTextStyle.textBorderColor; textStyle.textStrokeWidth = zrUtil.retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth); if (!isEmphasis) { if (isBlock) { textStyle.insideRollbackOpt = opt; applyDefaultTextStyle(textStyle); } // Set default finally. if (textStyle.textFill == null) { textStyle.textFill = opt.autoColor; } } // Do not use `getFont` here, because merge should be supported, where // part of these properties may be changed in emphasis style, and the // others should remain their original value got from normal style. textStyle.fontStyle = textStyleModel.getShallow('fontStyle') || globalTextStyle.fontStyle; textStyle.fontWeight = textStyleModel.getShallow('fontWeight') || globalTextStyle.fontWeight; textStyle.fontSize = textStyleModel.getShallow('fontSize') || globalTextStyle.fontSize; textStyle.fontFamily = textStyleModel.getShallow('fontFamily') || globalTextStyle.fontFamily; textStyle.textAlign = textStyleModel.getShallow('align'); textStyle.textVerticalAlign = textStyleModel.getShallow('verticalAlign') || textStyleModel.getShallow('baseline'); textStyle.textLineHeight = textStyleModel.getShallow('lineHeight'); textStyle.textWidth = textStyleModel.getShallow('width'); textStyle.textHeight = textStyleModel.getShallow('height'); textStyle.textTag = textStyleModel.getShallow('tag'); if (!isBlock || !opt.disableBox) { textStyle.textBackgroundColor = getAutoColor(textStyleModel.getShallow('backgroundColor'), opt); textStyle.textPadding = textStyleModel.getShallow('padding'); textStyle.textBorderColor = getAutoColor(textStyleModel.getShallow('borderColor'), opt); textStyle.textBorderWidth = textStyleModel.getShallow('borderWidth'); textStyle.textBorderRadius = textStyleModel.getShallow('borderRadius'); textStyle.textBoxShadowColor = textStyleModel.getShallow('shadowColor'); textStyle.textBoxShadowBlur = textStyleModel.getShallow('shadowBlur'); textStyle.textBoxShadowOffsetX = textStyleModel.getShallow('shadowOffsetX'); textStyle.textBoxShadowOffsetY = textStyleModel.getShallow('shadowOffsetY'); } textStyle.textShadowColor = textStyleModel.getShallow('textShadowColor') || globalTextStyle.textShadowColor; textStyle.textShadowBlur = textStyleModel.getShallow('textShadowBlur') || globalTextStyle.textShadowBlur; textStyle.textShadowOffsetX = textStyleModel.getShallow('textShadowOffsetX') || globalTextStyle.textShadowOffsetX; textStyle.textShadowOffsetY = textStyleModel.getShallow('textShadowOffsetY') || globalTextStyle.textShadowOffsetY; } function getAutoColor(color, opt) { return color !== 'auto' ? color : opt && opt.autoColor ? opt.autoColor : null; } /** * Give some default value to the input `textStyle` object, based on the current settings * in this `textStyle` object. * * The Scenario: * when text position is `inside` and `textFill` is not specified, we show * text border by default for better view. But it should be considered that text position * might be changed when hovering or being emphasis, where the `insideRollback` is used to * restore the style. * * Usage (& NOTICE): * When a style object (eithor plain object or instance of `zrender/src/graphic/Style`) is * about to be modified on its text related properties, `rollbackDefaultTextStyle` should * be called before the modification and `applyDefaultTextStyle` should be called after that. * (For the case that all of the text related properties is reset, like `setTextStyleCommon` * does, `rollbackDefaultTextStyle` is not needed to be called). */ function applyDefaultTextStyle(textStyle) { var textPosition = textStyle.textPosition; var opt = textStyle.insideRollbackOpt; var insideRollback; if (opt && textStyle.textFill == null) { var autoColor = opt.autoColor; var isRectText = opt.isRectText; var useInsideStyle = opt.useInsideStyle; var useInsideStyleCache = useInsideStyle !== false && (useInsideStyle === true || isRectText && textPosition // textPosition can be [10, 30] && typeof textPosition === 'string' && textPosition.indexOf('inside') >= 0); var useAutoColorCache = !useInsideStyleCache && autoColor != null; // All of the props declared in `CACHED_LABEL_STYLE_PROPERTIES` are to be cached. if (useInsideStyleCache || useAutoColorCache) { insideRollback = { textFill: textStyle.textFill, textStroke: textStyle.textStroke, textStrokeWidth: textStyle.textStrokeWidth }; } if (useInsideStyleCache) { textStyle.textFill = '#fff'; // Consider text with #fff overflow its container. if (textStyle.textStroke == null) { textStyle.textStroke = autoColor; textStyle.textStrokeWidth == null && (textStyle.textStrokeWidth = 2); } } if (useAutoColorCache) { textStyle.textFill = autoColor; } } // Always set `insideRollback`, so that the previous one can be cleared. textStyle.insideRollback = insideRollback; } /** * Consider the case: in a scatter, * label: { * normal: {position: 'inside'}, * emphasis: {position: 'top'} * } * In the normal state, the `textFill` will be set as '#fff' for pretty view (see * `applyDefaultTextStyle`), but when switching to emphasis state, the `textFill` * should be retured to 'autoColor', but not keep '#fff'. */ function rollbackDefaultTextStyle(style) { var insideRollback = style.insideRollback; if (insideRollback) { // Reset all of the props in `CACHED_LABEL_STYLE_PROPERTIES`. style.textFill = insideRollback.textFill; style.textStroke = insideRollback.textStroke; style.textStrokeWidth = insideRollback.textStrokeWidth; style.insideRollback = null; } } function getFont(opt, ecModel) { var gTextStyleModel = ecModel && ecModel.getModel('textStyle'); return zrUtil.trim([ // FIXME in node-canvas fontWeight is before fontStyle opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' ')); } function animateOrSetProps(isUpdate, el, props, animatableModel, dataIndex, cb) { if (typeof dataIndex === 'function') { cb = dataIndex; dataIndex = null; } // Do not check 'animation' property directly here. Consider this case: // animation model is an `itemModel`, whose does not have `isAnimationEnabled` // but its parent model (`seriesModel`) does. var animationEnabled = animatableModel && animatableModel.isAnimationEnabled(); if (animationEnabled) { var postfix = isUpdate ? 'Update' : ''; var duration = animatableModel.getShallow('animationDuration' + postfix); var animationEasing = animatableModel.getShallow('animationEasing' + postfix); var animationDelay = animatableModel.getShallow('animationDelay' + postfix); if (typeof animationDelay === 'function') { animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null); } if (typeof duration === 'function') { duration = duration(dataIndex); } duration > 0 ? el.animateTo(props, duration, animationDelay || 0, animationEasing, cb, !!cb) : (el.stopAnimation(), el.attr(props), cb && cb()); } else { el.stopAnimation(); el.attr(props); cb && cb(); } } /** * Update graphic element properties with or without animation according to the * configuration in series. * * Caution: this method will stop previous animation. * So do not use this method to one element twice before * animation starts, unless you know what you are doing. * * @param {module:zrender/Element} el * @param {Object} props * @param {module:echarts/model/Model} [animatableModel] * @param {number} [dataIndex] * @param {Function} [cb] * @example * graphic.updateProps(el, { * position: [100, 100] * }, seriesModel, dataIndex, function () { console.log('Animation done!'); }); * // Or * graphic.updateProps(el, { * position: [100, 100] * }, seriesModel, function () { console.log('Animation done!'); }); */ function updateProps(el, props, animatableModel, dataIndex, cb) { animateOrSetProps(true, el, props, animatableModel, dataIndex, cb); } /** * Init graphic element properties with or without animation according to the * configuration in series. * * Caution: this method will stop previous animation. * So do not use this method to one element twice before * animation starts, unless you know what you are doing. * * @param {module:zrender/Element} el * @param {Object} props * @param {module:echarts/model/Model} [animatableModel] * @param {number} [dataIndex] * @param {Function} cb */ function initProps(el, props, animatableModel, dataIndex, cb) { animateOrSetProps(false, el, props, animatableModel, dataIndex, cb); } /** * Get transform matrix of target (param target), * in coordinate of its ancestor (param ancestor) * * @param {module:zrender/mixin/Transformable} target * @param {module:zrender/mixin/Transformable} [ancestor] */ function getTransform(target, ancestor) { var mat = matrix.identity([]); while (target && target !== ancestor) { matrix.mul(mat, target.getLocalTransform(), mat); target = target.parent; } return mat; } /** * Apply transform to an vertex. * @param {Array.} target [x, y] * @param {Array.|TypedArray.|Object} transform Can be: * + Transform matrix: like [1, 0, 0, 1, 0, 0] * + {position, rotation, scale}, the same as `zrender/Transformable`. * @param {boolean=} invert Whether use invert matrix. * @return {Array.} [x, y] */ function applyTransform(target, transform, invert) { if (transform && !zrUtil.isArrayLike(transform)) { transform = Transformable.getLocalTransform(transform); } if (invert) { transform = matrix.invert([], transform); } return vector.applyTransform([], target, transform); } /** * @param {string} direction 'left' 'right' 'top' 'bottom' * @param {Array.} transform Transform matrix: like [1, 0, 0, 1, 0, 0] * @param {boolean=} invert Whether use invert matrix. * @return {string} Transformed direction. 'left' 'right' 'top' 'bottom' */ function transformDirection(direction, transform, invert) { // Pick a base, ensure that transform result will not be (0, 0). var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]); var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]); var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0]; vertex = applyTransform(vertex, transform, invert); return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top'; } /** * Apply group transition animation from g1 to g2. * If no animatableModel, no animation. */ function groupTransition(g1, g2, animatableModel, cb) { if (!g1 || !g2) { return; } function getElMap(g) { var elMap = {}; g.traverse(function (el) { if (!el.isGroup && el.anid) { elMap[el.anid] = el; } }); return elMap; } function getAnimatableProps(el) { var obj = { position: vector.clone(el.position), rotation: el.rotation }; if (el.shape) { obj.shape = zrUtil.extend({}, el.shape); } return obj; } var elMap1 = getElMap(g1); g2.traverse(function (el) { if (!el.isGroup && el.anid) { var oldEl = elMap1[el.anid]; if (oldEl) { var newProp = getAnimatableProps(el); el.attr(getAnimatableProps(oldEl)); updateProps(el, newProp, animatableModel, el.dataIndex); } // else { // if (el.previousProps) { // graphic.updateProps // } // } } }); } /** * @param {Array.>} points Like: [[23, 44], [53, 66], ...] * @param {Object} rect {x, y, width, height} * @return {Array.>} A new clipped points. */ function clipPointsByRect(points, rect) { // FIXME: this way migth be incorrect when grpahic clipped by a corner. // and when element have border. return zrUtil.map(points, function (point) { var x = point[0]; x = mathMax(x, rect.x); x = mathMin(x, rect.x + rect.width); var y = point[1]; y = mathMax(y, rect.y); y = mathMin(y, rect.y + rect.height); return [x, y]; }); } /** * @param {Object} targetRect {x, y, width, height} * @param {Object} rect {x, y, width, height} * @return {Object} A new clipped rect. If rect size are negative, return undefined. */ function clipRectByRect(targetRect, rect) { var x = mathMax(targetRect.x, rect.x); var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width); var y = mathMax(targetRect.y, rect.y); var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height); // If the total rect is cliped, nothing, including the border, // should be painted. So return undefined. if (x2 >= x && y2 >= y) { return { x: x, y: y, width: x2 - x, height: y2 - y }; } } /** * @param {string} iconStr Support 'image://' or 'path://' or direct svg path. * @param {Object} [opt] Properties of `module:zrender/Element`, except `style`. * @param {Object} [rect] {x, y, width, height} * @return {module:zrender/Element} Icon path or image element. */ function createIcon(iconStr, opt, rect) { opt = zrUtil.extend({ rectHover: true }, opt); var style = opt.style = { strokeNoScale: true }; rect = rect || { x: -1, y: -1, width: 2, height: 2 }; if (iconStr) { return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), zrUtil.defaults(style, rect), new ZImage(opt)) : makePath(iconStr.replace('path://', ''), opt, rect, 'center'); } } /** * Return `true` if the given line (line `a`) and the given polygon * are intersect. * Note that we do not count colinear as intersect here because no * requirement for that. We could do that if required in future. * * @param {number} a1x * @param {number} a1y * @param {number} a2x * @param {number} a2y * @param {Array.>} points Points of the polygon. * @return {boolean} */ function linePolygonIntersect(a1x, a1y, a2x, a2y, points) { for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) { var p = points[i]; if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) { return true; } p2 = p; } } /** * Return `true` if the given two lines (line `a` and line `b`) * are intersect. * Note that we do not count colinear as intersect here because no * requirement for that. We could do that if required in future. * * @param {number} a1x * @param {number} a1y * @param {number} a2x * @param {number} a2y * @param {number} b1x * @param {number} b1y * @param {number} b2x * @param {number} b2y * @return {boolean} */ function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) { // let `vec_m` to be `vec_a2 - vec_a1` and `vec_n` to be `vec_b2 - vec_b1`. var mx = a2x - a1x; var my = a2y - a1y; var nx = b2x - b1x; var ny = b2y - b1y; // `vec_m` and `vec_n` are parallel iff // exising `k` such that `vec_m = k · vec_n`, equivalent to `vec_m X vec_n = 0`. var nmCrossProduct = crossProduct2d(nx, ny, mx, my); if (nearZero(nmCrossProduct)) { return false; } // `vec_m` and `vec_n` are intersect iff // existing `p` and `q` in [0, 1] such that `vec_a1 + p * vec_m = vec_b1 + q * vec_n`, // such that `q = ((vec_a1 - vec_b1) X vec_m) / (vec_n X vec_m)` // and `p = ((vec_a1 - vec_b1) X vec_n) / (vec_n X vec_m)`. var b1a1x = a1x - b1x; var b1a1y = a1y - b1y; var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct; if (q < 0 || q > 1) { return false; } var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct; if (p < 0 || p > 1) { return false; } return true; } /** * Cross product of 2-dimension vector. */ function crossProduct2d(x1, y1, x2, y2) { return x1 * y2 - x2 * y1; } function nearZero(val) { return val <= 1e-6 && val >= -1e-6; } // Register built-in shapes. These shapes might be overwirtten // by users, although we do not recommend that. registerShape('circle', Circle); registerShape('sector', Sector); registerShape('ring', Ring); registerShape('polygon', Polygon); registerShape('polyline', Polyline); registerShape('rect', Rect); registerShape('line', Line); registerShape('bezierCurve', BezierCurve); registerShape('arc', Arc); exports.Z2_EMPHASIS_LIFT = Z2_EMPHASIS_LIFT; exports.CACHED_LABEL_STYLE_PROPERTIES = CACHED_LABEL_STYLE_PROPERTIES; exports.extendShape = extendShape; exports.extendPath = extendPath; exports.registerShape = registerShape; exports.getShapeClass = getShapeClass; exports.makePath = makePath; exports.makeImage = makeImage; exports.mergePath = mergePath; exports.resizePath = resizePath; exports.subPixelOptimizeLine = subPixelOptimizeLine; exports.subPixelOptimizeRect = subPixelOptimizeRect; exports.subPixelOptimize = subPixelOptimize; exports.setElementHoverStyle = setElementHoverStyle; exports.setHoverStyle = setHoverStyle; exports.setAsHighDownDispatcher = setAsHighDownDispatcher; exports.isHighDownDispatcher = isHighDownDispatcher; exports.getHighlightDigit = getHighlightDigit; exports.setLabelStyle = setLabelStyle; exports.modifyLabelStyle = modifyLabelStyle; exports.setTextStyle = setTextStyle; exports.setText = setText; exports.getFont = getFont; exports.updateProps = updateProps; exports.initProps = initProps; exports.getTransform = getTransform; exports.applyTransform = applyTransform; exports.transformDirection = transformDirection; exports.groupTransition = groupTransition; exports.clipPointsByRect = clipPointsByRect; exports.clipRectByRect = clipRectByRect; exports.createIcon = createIcon; exports.linePolygonIntersect = linePolygonIntersect; exports.lineLineIntersect = lineLineIntersect; /***/ }), /* 452 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/tool/path.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../graphic/Path */ 453); var PathProxy = __webpack_require__(/*! ../core/PathProxy */ 454); var transformPath = __webpack_require__(/*! ./transformPath */ 464); // command chars // var cc = [ // 'm', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z', // 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A' // ]; var mathSqrt = Math.sqrt; var mathSin = Math.sin; var mathCos = Math.cos; var PI = Math.PI; var vMag = function vMag(v) { return Math.sqrt(v[0] * v[0] + v[1] * v[1]); }; var vRatio = function vRatio(u, v) { return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); }; var vAngle = function vAngle(u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); }; function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) { var psi = psiDeg * (PI / 180.0); var xp = mathCos(psi) * (x1 - x2) / 2.0 + mathSin(psi) * (y1 - y2) / 2.0; var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0; var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); if (lambda > 1) { rx *= mathSqrt(lambda); ry *= mathSqrt(lambda); } var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0; var cxp = f * rx * yp / ry; var cyp = f * -ry * xp / rx; var cx = (x1 + x2) / 2.0 + mathCos(psi) * cxp - mathSin(psi) * cyp; var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + mathCos(psi) * cyp; var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]); var u = [(xp - cxp) / rx, (yp - cyp) / ry]; var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; var dTheta = vAngle(u, v); if (vRatio(u, v) <= -1) { dTheta = PI; } if (vRatio(u, v) >= 1) { dTheta = 0; } if (fs === 0 && dTheta > 0) { dTheta = dTheta - 2 * PI; } if (fs === 1 && dTheta < 0) { dTheta = dTheta + 2 * PI; } path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs); } var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; // Consider case: // (1) delimiter can be comma or space, where continuous commas // or spaces should be seen as one comma. // (2) value can be like: // '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983', // 'l-.5E1,54', '121-23-44-11' (no delimiter) var numberReg = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g; // var valueSplitReg = /[\s,]+/; function createPathProxyFromString(data) { if (!data) { return new PathProxy(); } // var data = data.replace(/-/g, ' -') // .replace(/ /g, ' ') // .replace(/ /g, ',') // .replace(/,,/g, ','); // var n; // create pipes so that we can split the data // for (n = 0; n < cc.length; n++) { // cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]); // } // data = data.replace(/-/g, ',-'); // create array // var arr = cs.split('|'); // init context point var cpx = 0; var cpy = 0; var subpathX = cpx; var subpathY = cpy; var prevCmd; var path = new PathProxy(); var CMD = PathProxy.CMD; // commandReg.lastIndex = 0; // var cmdResult; // while ((cmdResult = commandReg.exec(data)) != null) { // var cmdStr = cmdResult[1]; // var cmdContent = cmdResult[2]; var cmdList = data.match(commandReg); for (var l = 0; l < cmdList.length; l++) { var cmdText = cmdList[l]; var cmdStr = cmdText.charAt(0); var cmd; // String#split is faster a little bit than String#replace or RegExp#exec. // var p = cmdContent.split(valueSplitReg); // var pLen = 0; // for (var i = 0; i < p.length; i++) { // // '' and other invalid str => NaN // var val = parseFloat(p[i]); // !isNaN(val) && (p[pLen++] = val); // } var p = cmdText.match(numberReg) || []; var pLen = p.length; for (var i = 0; i < pLen; i++) { p[i] = parseFloat(p[i]); } var off = 0; while (off < pLen) { var ctlPtx; var ctlPty; var rx; var ry; var psi; var fa; var fs; var x1 = cpx; var y1 = cpy; // convert l, H, h, V, and v to L switch (cmdStr) { case 'l': cpx += p[off++]; cpy += p[off++]; cmd = CMD.L; path.addData(cmd, cpx, cpy); break; case 'L': cpx = p[off++]; cpy = p[off++]; cmd = CMD.L; path.addData(cmd, cpx, cpy); break; case 'm': cpx += p[off++]; cpy += p[off++]; cmd = CMD.M; path.addData(cmd, cpx, cpy); subpathX = cpx; subpathY = cpy; cmdStr = 'l'; break; case 'M': cpx = p[off++]; cpy = p[off++]; cmd = CMD.M; path.addData(cmd, cpx, cpy); subpathX = cpx; subpathY = cpy; cmdStr = 'L'; break; case 'h': cpx += p[off++]; cmd = CMD.L; path.addData(cmd, cpx, cpy); break; case 'H': cpx = p[off++]; cmd = CMD.L; path.addData(cmd, cpx, cpy); break; case 'v': cpy += p[off++]; cmd = CMD.L; path.addData(cmd, cpx, cpy); break; case 'V': cpy = p[off++]; cmd = CMD.L; path.addData(cmd, cpx, cpy); break; case 'C': cmd = CMD.C; path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]); cpx = p[off - 2]; cpy = p[off - 1]; break; case 'c': cmd = CMD.C; path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy); cpx += p[off - 2]; cpy += p[off - 1]; break; case 'S': ctlPtx = cpx; ctlPty = cpy; var len = path.len(); var pathData = path.data; if (prevCmd === CMD.C) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cmd = CMD.C; x1 = p[off++]; y1 = p[off++]; cpx = p[off++]; cpy = p[off++]; path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); break; case 's': ctlPtx = cpx; ctlPty = cpy; var len = path.len(); var pathData = path.data; if (prevCmd === CMD.C) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cmd = CMD.C; x1 = cpx + p[off++]; y1 = cpy + p[off++]; cpx += p[off++]; cpy += p[off++]; path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); break; case 'Q': x1 = p[off++]; y1 = p[off++]; cpx = p[off++]; cpy = p[off++]; cmd = CMD.Q; path.addData(cmd, x1, y1, cpx, cpy); break; case 'q': x1 = p[off++] + cpx; y1 = p[off++] + cpy; cpx += p[off++]; cpy += p[off++]; cmd = CMD.Q; path.addData(cmd, x1, y1, cpx, cpy); break; case 'T': ctlPtx = cpx; ctlPty = cpy; var len = path.len(); var pathData = path.data; if (prevCmd === CMD.Q) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cpx = p[off++]; cpy = p[off++]; cmd = CMD.Q; path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); break; case 't': ctlPtx = cpx; ctlPty = cpy; var len = path.len(); var pathData = path.data; if (prevCmd === CMD.Q) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cpx += p[off++]; cpy += p[off++]; cmd = CMD.Q; path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); break; case 'A': rx = p[off++]; ry = p[off++]; psi = p[off++]; fa = p[off++]; fs = p[off++]; x1 = cpx, y1 = cpy; cpx = p[off++]; cpy = p[off++]; cmd = CMD.A; processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); break; case 'a': rx = p[off++]; ry = p[off++]; psi = p[off++]; fa = p[off++]; fs = p[off++]; x1 = cpx, y1 = cpy; cpx += p[off++]; cpy += p[off++]; cmd = CMD.A; processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); break; } } if (cmdStr === 'z' || cmdStr === 'Z') { cmd = CMD.Z; path.addData(cmd); // z may be in the middle of the path. cpx = subpathX; cpy = subpathY; } prevCmd = cmd; } path.toStatic(); return path; } // TODO Optimize double memory cost problem function createPathOptions(str, opts) { var pathProxy = createPathProxyFromString(str); opts = opts || {}; opts.buildPath = function (path) { if (path.setData) { path.setData(pathProxy.data); // Svg and vml renderer don't have context var ctx = path.getContext(); if (ctx) { path.rebuildPath(ctx); } } else { var ctx = path; pathProxy.rebuildPath(ctx); } }; opts.applyTransform = function (m) { transformPath(pathProxy, m); this.dirty(true); }; return opts; } /** * Create a Path object from path string data * http://www.w3.org/TR/SVG/paths.html#PathData * @param {Object} opts Other options */ function createFromString(str, opts) { return new Path(createPathOptions(str, opts)); } /** * Create a Path class from path string data * @param {string} str * @param {Object} opts Other options */ function extendFromString(str, opts) { return Path.extend(createPathOptions(str, opts)); } /** * Merge multiple paths */ // TODO Apply transform // TODO stroke dash // TODO Optimize double memory cost problem function mergePath(pathEls, opts) { var pathList = []; var len = pathEls.length; for (var i = 0; i < len; i++) { var pathEl = pathEls[i]; if (!pathEl.path) { pathEl.createPathProxy(); } if (pathEl.__dirtyPath) { pathEl.buildPath(pathEl.path, pathEl.shape, true); } pathList.push(pathEl.path); } var pathBundle = new Path(opts); // Need path proxy. pathBundle.createPathProxy(); pathBundle.buildPath = function (path) { path.appendPath(pathList); // Svg and vml renderer don't have context var ctx = path.getContext(); if (ctx) { path.rebuildPath(ctx); } }; return pathBundle; } exports.createFromString = createFromString; exports.extendFromString = extendFromString; exports.mergePath = mergePath; /***/ }), /* 453 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/Path.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Displayable = __webpack_require__(/*! ./Displayable */ 435); var zrUtil = __webpack_require__(/*! ../core/util */ 403); var PathProxy = __webpack_require__(/*! ../core/PathProxy */ 454); var pathContain = __webpack_require__(/*! ../contain/path */ 457); var Pattern = __webpack_require__(/*! ./Pattern */ 432); var getCanvasPattern = Pattern.prototype.getCanvasPattern; var abs = Math.abs; var pathProxyForDraw = new PathProxy(true); /** * @alias module:zrender/graphic/Path * @extends module:zrender/graphic/Displayable * @constructor * @param {Object} opts */ function Path(opts) { Displayable.call(this, opts); /** * @type {module:zrender/core/PathProxy} * @readOnly */ this.path = null; } Path.prototype = { constructor: Path, type: 'path', __dirtyPath: true, strokeContainThreshold: 5, // This item default to be false. But in map series in echarts, // in order to improve performance, it should be set to true, // so the shorty segment won't draw. segmentIgnoreThreshold: 0, /** * See `module:zrender/src/graphic/helper/subPixelOptimize`. * @type {boolean} */ subPixelOptimize: false, brush: function brush(ctx, prevEl) { var style = this.style; var path = this.path || pathProxyForDraw; var hasStroke = style.hasStroke(); var hasFill = style.hasFill(); var fill = style.fill; var stroke = style.stroke; var hasFillGradient = hasFill && !!fill.colorStops; var hasStrokeGradient = hasStroke && !!stroke.colorStops; var hasFillPattern = hasFill && !!fill.image; var hasStrokePattern = hasStroke && !!stroke.image; style.bind(ctx, this, prevEl); this.setTransform(ctx); if (this.__dirty) { var rect; // Update gradient because bounding rect may changed if (hasFillGradient) { rect = rect || this.getBoundingRect(); this._fillGradient = style.getGradient(ctx, fill, rect); } if (hasStrokeGradient) { rect = rect || this.getBoundingRect(); this._strokeGradient = style.getGradient(ctx, stroke, rect); } } // Use the gradient or pattern if (hasFillGradient) { // PENDING If may have affect the state ctx.fillStyle = this._fillGradient; } else if (hasFillPattern) { ctx.fillStyle = getCanvasPattern.call(fill, ctx); } if (hasStrokeGradient) { ctx.strokeStyle = this._strokeGradient; } else if (hasStrokePattern) { ctx.strokeStyle = getCanvasPattern.call(stroke, ctx); } var lineDash = style.lineDash; var lineDashOffset = style.lineDashOffset; var ctxLineDash = !!ctx.setLineDash; // Update path sx, sy var scale = this.getGlobalScale(); path.setScale(scale[0], scale[1], this.segmentIgnoreThreshold); // Proxy context // Rebuild path in following 2 cases // 1. Path is dirty // 2. Path needs javascript implemented lineDash stroking. // In this case, lineDash information will not be saved in PathProxy if (this.__dirtyPath || lineDash && !ctxLineDash && hasStroke) { path.beginPath(ctx); // Setting line dash before build path if (lineDash && !ctxLineDash) { path.setLineDash(lineDash); path.setLineDashOffset(lineDashOffset); } this.buildPath(path, this.shape, false); // Clear path dirty flag if (this.path) { this.__dirtyPath = false; } } else { // Replay path building ctx.beginPath(); this.path.rebuildPath(ctx); } if (hasFill) { if (style.fillOpacity != null) { var originalGlobalAlpha = ctx.globalAlpha; ctx.globalAlpha = style.fillOpacity * style.opacity; path.fill(ctx); ctx.globalAlpha = originalGlobalAlpha; } else { path.fill(ctx); } } if (lineDash && ctxLineDash) { ctx.setLineDash(lineDash); ctx.lineDashOffset = lineDashOffset; } if (hasStroke) { if (style.strokeOpacity != null) { var originalGlobalAlpha = ctx.globalAlpha; ctx.globalAlpha = style.strokeOpacity * style.opacity; path.stroke(ctx); ctx.globalAlpha = originalGlobalAlpha; } else { path.stroke(ctx); } } if (lineDash && ctxLineDash) { // PENDING // Remove lineDash ctx.setLineDash([]); } // Draw rect text if (style.text != null) { // Only restore transform when needs draw text. this.restoreTransform(ctx); this.drawRectText(ctx, this.getBoundingRect()); } }, // When bundling path, some shape may decide if use moveTo to begin a new subpath or closePath // Like in circle buildPath: function buildPath(ctx, shapeCfg, inBundle) {}, createPathProxy: function createPathProxy() { this.path = new PathProxy(); }, getBoundingRect: function getBoundingRect() { var rect = this._rect; var style = this.style; var needsUpdateRect = !rect; if (needsUpdateRect) { var path = this.path; if (!path) { // Create path on demand. path = this.path = new PathProxy(); } if (this.__dirtyPath) { path.beginPath(); this.buildPath(path, this.shape, false); } rect = path.getBoundingRect(); } this._rect = rect; if (style.hasStroke()) { // Needs update rect with stroke lineWidth when // 1. Element changes scale or lineWidth // 2. Shape is changed var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone()); if (this.__dirty || needsUpdateRect) { rectWithStroke.copy(rect); // FIXME Must after updateTransform var w = style.lineWidth; // PENDING, Min line width is needed when line is horizontal or vertical var lineScale = style.strokeNoScale ? this.getLineScale() : 1; // Only add extra hover lineWidth when there are no fill if (!style.hasFill()) { w = Math.max(w, this.strokeContainThreshold || 4); } // Consider line width // Line scale can't be 0; if (lineScale > 1e-10) { rectWithStroke.width += w / lineScale; rectWithStroke.height += w / lineScale; rectWithStroke.x -= w / lineScale / 2; rectWithStroke.y -= w / lineScale / 2; } } // Return rect with stroke return rectWithStroke; } return rect; }, contain: function contain(x, y) { var localPos = this.transformCoordToLocal(x, y); var rect = this.getBoundingRect(); var style = this.style; x = localPos[0]; y = localPos[1]; if (rect.contain(x, y)) { var pathData = this.path.data; if (style.hasStroke()) { var lineWidth = style.lineWidth; var lineScale = style.strokeNoScale ? this.getLineScale() : 1; // Line scale can't be 0; if (lineScale > 1e-10) { // Only add extra hover lineWidth when there are no fill if (!style.hasFill()) { lineWidth = Math.max(lineWidth, this.strokeContainThreshold); } if (pathContain.containStroke(pathData, lineWidth / lineScale, x, y)) { return true; } } } if (style.hasFill()) { return pathContain.contain(pathData, x, y); } } return false; }, /** * @param {boolean} dirtyPath */ dirty: function dirty(dirtyPath) { if (dirtyPath == null) { dirtyPath = true; } // Only mark dirty, not mark clean if (dirtyPath) { this.__dirtyPath = dirtyPath; this._rect = null; } this.__dirty = this.__dirtyText = true; this.__zr && this.__zr.refresh(); // Used as a clipping path if (this.__clipTarget) { this.__clipTarget.dirty(); } }, /** * Alias for animate('shape') * @param {boolean} loop */ animateShape: function animateShape(loop) { return this.animate('shape', loop); }, // Overwrite attrKV attrKV: function attrKV(key, value) { // FIXME if (key === 'shape') { this.setShape(value); this.__dirtyPath = true; this._rect = null; } else { Displayable.prototype.attrKV.call(this, key, value); } }, /** * @param {Object|string} key * @param {*} value */ setShape: function setShape(key, value) { var shape = this.shape; // Path from string may not have shape if (shape) { if (zrUtil.isObject(key)) { for (var name in key) { if (key.hasOwnProperty(name)) { shape[name] = key[name]; } } } else { shape[key] = value; } this.dirty(true); } return this; }, getLineScale: function getLineScale() { var m = this.transform; // Get the line scale. // Determinant of `m` means how much the area is enlarged by the // transformation. So its square root can be used as a scale factor // for width. return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10 ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1])) : 1; } }; /** * 扩展一个 Path element, 比如星形,圆等。 * Extend a path element * @param {Object} props * @param {string} props.type Path type * @param {Function} props.init Initialize * @param {Function} props.buildPath Overwrite buildPath method * @param {Object} [props.style] Extended default style config * @param {Object} [props.shape] Extended default shape config */ Path.extend = function (defaults) { var Sub = function Sub(opts) { Path.call(this, opts); if (defaults.style) { // Extend default style this.style.extendFrom(defaults.style, false); } // Extend default shape var defaultShape = defaults.shape; if (defaultShape) { this.shape = this.shape || {}; var thisShape = this.shape; for (var name in defaultShape) { if (!thisShape.hasOwnProperty(name) && defaultShape.hasOwnProperty(name)) { thisShape[name] = defaultShape[name]; } } } defaults.init && defaults.init.call(this, opts); }; zrUtil.inherits(Sub, Path); // FIXME 不能 extend position, rotation 等引用对象 for (var name in defaults) { // Extending prototype values and methods if (name !== 'style' && name !== 'shape') { Sub.prototype[name] = defaults[name]; } } return Sub; }; zrUtil.inherits(Path, Displayable); var _default = Path; module.exports = _default; /***/ }), /* 454 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/PathProxy.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var curve = __webpack_require__(/*! ./curve */ 455); var vec2 = __webpack_require__(/*! ./vector */ 405); var bbox = __webpack_require__(/*! ./bbox */ 456); var BoundingRect = __webpack_require__(/*! ./BoundingRect */ 425); var _config = __webpack_require__(/*! ../config */ 424); var dpr = _config.devicePixelRatio; /** * Path 代理,可以在`buildPath`中用于替代`ctx`, 会保存每个path操作的命令到pathCommands属性中 * 可以用于 isInsidePath 判断以及获取boundingRect * * @module zrender/core/PathProxy * @author Yi Shen (http://www.github.com/pissang) */ // TODO getTotalLength, getPointAtLength /* global Float32Array */ var CMD = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, // Rect R: 7 }; // var CMD_MEM_SIZE = { // M: 3, // L: 3, // C: 7, // Q: 5, // A: 9, // R: 5, // Z: 1 // }; var min = []; var max = []; var min2 = []; var max2 = []; var mathMin = Math.min; var mathMax = Math.max; var mathCos = Math.cos; var mathSin = Math.sin; var mathSqrt = Math.sqrt; var mathAbs = Math.abs; var hasTypedArray = typeof Float32Array !== 'undefined'; /** * @alias module:zrender/core/PathProxy * @constructor */ var PathProxy = function PathProxy(notSaveData) { this._saveData = !(notSaveData || false); if (this._saveData) { /** * Path data. Stored as flat array * @type {Array.} */ this.data = []; } this._ctx = null; }; /** * 快速计算Path包围盒(并不是最小包围盒) * @return {Object} */ PathProxy.prototype = { constructor: PathProxy, _xi: 0, _yi: 0, _x0: 0, _y0: 0, // Unit x, Unit y. Provide for avoiding drawing that too short line segment _ux: 0, _uy: 0, _len: 0, _lineDash: null, _dashOffset: 0, _dashIdx: 0, _dashSum: 0, /** * @readOnly */ setScale: function setScale(sx, sy, segmentIgnoreThreshold) { // Compat. Previously there is no segmentIgnoreThreshold. segmentIgnoreThreshold = segmentIgnoreThreshold || 0; this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0; this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0; }, getContext: function getContext() { return this._ctx; }, /** * @param {CanvasRenderingContext2D} ctx * @return {module:zrender/core/PathProxy} */ beginPath: function beginPath(ctx) { this._ctx = ctx; ctx && ctx.beginPath(); ctx && (this.dpr = ctx.dpr); // Reset if (this._saveData) { this._len = 0; } if (this._lineDash) { this._lineDash = null; this._dashOffset = 0; } return this; }, /** * @param {number} x * @param {number} y * @return {module:zrender/core/PathProxy} */ moveTo: function moveTo(x, y) { this.addData(CMD.M, x, y); this._ctx && this._ctx.moveTo(x, y); // x0, y0, xi, yi 是记录在 _dashedXXXXTo 方法中使用 // xi, yi 记录当前点, x0, y0 在 closePath 的时候回到起始点。 // 有可能在 beginPath 之后直接调用 lineTo,这时候 x0, y0 需要 // 在 lineTo 方法中记录,这里先不考虑这种情况,dashed line 也只在 IE10- 中不支持 this._x0 = x; this._y0 = y; this._xi = x; this._yi = y; return this; }, /** * @param {number} x * @param {number} y * @return {module:zrender/core/PathProxy} */ lineTo: function lineTo(x, y) { var exceedUnit = mathAbs(x - this._xi) > this._ux || mathAbs(y - this._yi) > this._uy // Force draw the first segment || this._len < 5; this.addData(CMD.L, x, y); if (this._ctx && exceedUnit) { this._needsDash() ? this._dashedLineTo(x, y) : this._ctx.lineTo(x, y); } if (exceedUnit) { this._xi = x; this._yi = y; } return this; }, /** * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {number} x3 * @param {number} y3 * @return {module:zrender/core/PathProxy} */ bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x3, y3) { this.addData(CMD.C, x1, y1, x2, y2, x3, y3); if (this._ctx) { this._needsDash() ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3) : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); } this._xi = x3; this._yi = y3; return this; }, /** * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @return {module:zrender/core/PathProxy} */ quadraticCurveTo: function quadraticCurveTo(x1, y1, x2, y2) { this.addData(CMD.Q, x1, y1, x2, y2); if (this._ctx) { this._needsDash() ? this._dashedQuadraticTo(x1, y1, x2, y2) : this._ctx.quadraticCurveTo(x1, y1, x2, y2); } this._xi = x2; this._yi = y2; return this; }, /** * @param {number} cx * @param {number} cy * @param {number} r * @param {number} startAngle * @param {number} endAngle * @param {boolean} anticlockwise * @return {module:zrender/core/PathProxy} */ arc: function arc(cx, cy, r, startAngle, endAngle, anticlockwise) { this.addData(CMD.A, cx, cy, r, r, startAngle, endAngle - startAngle, 0, anticlockwise ? 0 : 1); this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); this._xi = mathCos(endAngle) * r + cx; this._yi = mathSin(endAngle) * r + cy; return this; }, // TODO arcTo: function arcTo(x1, y1, x2, y2, radius) { if (this._ctx) { this._ctx.arcTo(x1, y1, x2, y2, radius); } return this; }, // TODO rect: function rect(x, y, w, h) { this._ctx && this._ctx.rect(x, y, w, h); this.addData(CMD.R, x, y, w, h); return this; }, /** * @return {module:zrender/core/PathProxy} */ closePath: function closePath() { this.addData(CMD.Z); var ctx = this._ctx; var x0 = this._x0; var y0 = this._y0; if (ctx) { this._needsDash() && this._dashedLineTo(x0, y0); ctx.closePath(); } this._xi = x0; this._yi = y0; return this; }, /** * Context 从外部传入,因为有可能是 rebuildPath 完之后再 fill。 * stroke 同样 * @param {CanvasRenderingContext2D} ctx * @return {module:zrender/core/PathProxy} */ fill: function fill(ctx) { ctx && ctx.fill(); this.toStatic(); }, /** * @param {CanvasRenderingContext2D} ctx * @return {module:zrender/core/PathProxy} */ stroke: function stroke(ctx) { ctx && ctx.stroke(); this.toStatic(); }, /** * 必须在其它绘制命令前调用 * Must be invoked before all other path drawing methods * @return {module:zrender/core/PathProxy} */ setLineDash: function setLineDash(lineDash) { if (lineDash instanceof Array) { this._lineDash = lineDash; this._dashIdx = 0; var lineDashSum = 0; for (var i = 0; i < lineDash.length; i++) { lineDashSum += lineDash[i]; } this._dashSum = lineDashSum; } return this; }, /** * 必须在其它绘制命令前调用 * Must be invoked before all other path drawing methods * @return {module:zrender/core/PathProxy} */ setLineDashOffset: function setLineDashOffset(offset) { this._dashOffset = offset; return this; }, /** * * @return {boolean} */ len: function len() { return this._len; }, /** * 直接设置 Path 数据 */ setData: function setData(data) { var len = data.length; if (!(this.data && this.data.length === len) && hasTypedArray) { this.data = new Float32Array(len); } for (var i = 0; i < len; i++) { this.data[i] = data[i]; } this._len = len; }, /** * 添加子路径 * @param {module:zrender/core/PathProxy|Array.} path */ appendPath: function appendPath(path) { if (!(path instanceof Array)) { path = [path]; } var len = path.length; var appendSize = 0; var offset = this._len; for (var i = 0; i < len; i++) { appendSize += path[i].len(); } if (hasTypedArray && this.data instanceof Float32Array) { this.data = new Float32Array(offset + appendSize); } for (var i = 0; i < len; i++) { var appendPathData = path[i].data; for (var k = 0; k < appendPathData.length; k++) { this.data[offset++] = appendPathData[k]; } } this._len = offset; }, /** * 填充 Path 数据。 * 尽量复用而不申明新的数组。大部分图形重绘的指令数据长度都是不变的。 */ addData: function addData(cmd) { if (!this._saveData) { return; } var data = this.data; if (this._len + arguments.length > data.length) { // 因为之前的数组已经转换成静态的 Float32Array // 所以不够用时需要扩展一个新的动态数组 this._expandData(); data = this.data; } for (var i = 0; i < arguments.length; i++) { data[this._len++] = arguments[i]; } this._prevCmd = cmd; }, _expandData: function _expandData() { // Only if data is Float32Array if (!(this.data instanceof Array)) { var newData = []; for (var i = 0; i < this._len; i++) { newData[i] = this.data[i]; } this.data = newData; } }, /** * If needs js implemented dashed line * @return {boolean} * @private */ _needsDash: function _needsDash() { return this._lineDash; }, _dashedLineTo: function _dashedLineTo(x1, y1) { var dashSum = this._dashSum; var offset = this._dashOffset; var lineDash = this._lineDash; var ctx = this._ctx; var x0 = this._xi; var y0 = this._yi; var dx = x1 - x0; var dy = y1 - y0; var dist = mathSqrt(dx * dx + dy * dy); var x = x0; var y = y0; var dash; var nDash = lineDash.length; var idx; dx /= dist; dy /= dist; if (offset < 0) { // Convert to positive offset offset = dashSum + offset; } offset %= dashSum; x -= offset * dx; y -= offset * dy; while (dx > 0 && x <= x1 || dx < 0 && x >= x1 || dx === 0 && (dy > 0 && y <= y1 || dy < 0 && y >= y1)) { idx = this._dashIdx; dash = lineDash[idx]; x += dx * dash; y += dy * dash; this._dashIdx = (idx + 1) % nDash; // Skip positive offset if (dx > 0 && x < x0 || dx < 0 && x > x0 || dy > 0 && y < y0 || dy < 0 && y > y0) { continue; } ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1)); } // Offset for next lineTo dx = x - x1; dy = y - y1; this._dashOffset = -mathSqrt(dx * dx + dy * dy); }, // Not accurate dashed line to _dashedBezierTo: function _dashedBezierTo(x1, y1, x2, y2, x3, y3) { var dashSum = this._dashSum; var offset = this._dashOffset; var lineDash = this._lineDash; var ctx = this._ctx; var x0 = this._xi; var y0 = this._yi; var t; var dx; var dy; var cubicAt = curve.cubicAt; var bezierLen = 0; var idx = this._dashIdx; var nDash = lineDash.length; var x; var y; var tmpLen = 0; if (offset < 0) { // Convert to positive offset offset = dashSum + offset; } offset %= dashSum; // Bezier approx length for (t = 0; t < 1; t += 0.1) { dx = cubicAt(x0, x1, x2, x3, t + 0.1) - cubicAt(x0, x1, x2, x3, t); dy = cubicAt(y0, y1, y2, y3, t + 0.1) - cubicAt(y0, y1, y2, y3, t); bezierLen += mathSqrt(dx * dx + dy * dy); } // Find idx after add offset for (; idx < nDash; idx++) { tmpLen += lineDash[idx]; if (tmpLen > offset) { break; } } t = (tmpLen - offset) / bezierLen; while (t <= 1) { x = cubicAt(x0, x1, x2, x3, t); y = cubicAt(y0, y1, y2, y3, t); // Use line to approximate dashed bezier // Bad result if dash is long idx % 2 ? ctx.moveTo(x, y) : ctx.lineTo(x, y); t += lineDash[idx] / bezierLen; idx = (idx + 1) % nDash; } // Finish the last segment and calculate the new offset idx % 2 !== 0 && ctx.lineTo(x3, y3); dx = x3 - x; dy = y3 - y; this._dashOffset = -mathSqrt(dx * dx + dy * dy); }, _dashedQuadraticTo: function _dashedQuadraticTo(x1, y1, x2, y2) { // Convert quadratic to cubic using degree elevation var x3 = x2; var y3 = y2; x2 = (x2 + 2 * x1) / 3; y2 = (y2 + 2 * y1) / 3; x1 = (this._xi + 2 * x1) / 3; y1 = (this._yi + 2 * y1) / 3; this._dashedBezierTo(x1, y1, x2, y2, x3, y3); }, /** * 转成静态的 Float32Array 减少堆内存占用 * Convert dynamic array to static Float32Array */ toStatic: function toStatic() { var data = this.data; if (data instanceof Array) { data.length = this._len; if (hasTypedArray) { this.data = new Float32Array(data); } } }, /** * @return {module:zrender/core/BoundingRect} */ getBoundingRect: function getBoundingRect() { min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE; max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE; var data = this.data; var xi = 0; var yi = 0; var x0 = 0; var y0 = 0; for (var i = 0; i < data.length;) { var cmd = data[i++]; if (i === 1) { // 如果第一个命令是 L, C, Q // 则 previous point 同绘制命令的第一个 point // // 第一个命令为 Arc 的情况下会在后面特殊处理 xi = data[i]; yi = data[i + 1]; x0 = xi; y0 = yi; } switch (cmd) { case CMD.M: // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点 // 在 closePath 的时候使用 x0 = data[i++]; y0 = data[i++]; xi = x0; yi = y0; min2[0] = x0; min2[1] = y0; max2[0] = x0; max2[1] = y0; break; case CMD.L: bbox.fromLine(xi, yi, data[i], data[i + 1], min2, max2); xi = data[i++]; yi = data[i++]; break; case CMD.C: bbox.fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2); xi = data[i++]; yi = data[i++]; break; case CMD.Q: bbox.fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2); xi = data[i++]; yi = data[i++]; break; case CMD.A: // TODO Arc 判断的开销比较大 var cx = data[i++]; var cy = data[i++]; var rx = data[i++]; var ry = data[i++]; var startAngle = data[i++]; var endAngle = data[i++] + startAngle; // TODO Arc 旋转 i += 1; var anticlockwise = 1 - data[i++]; if (i === 1) { // 直接使用 arc 命令 // 第一个命令起点还未定义 x0 = mathCos(startAngle) * rx + cx; y0 = mathSin(startAngle) * ry + cy; } bbox.fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2); xi = mathCos(endAngle) * rx + cx; yi = mathSin(endAngle) * ry + cy; break; case CMD.R: x0 = xi = data[i++]; y0 = yi = data[i++]; var width = data[i++]; var height = data[i++]; // Use fromLine bbox.fromLine(x0, y0, x0 + width, y0 + height, min2, max2); break; case CMD.Z: xi = x0; yi = y0; break; } // Union vec2.min(min, min, min2); vec2.max(max, max, max2); } // No data if (i === 0) { min[0] = min[1] = max[0] = max[1] = 0; } return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]); }, /** * Rebuild path from current data * Rebuild path will not consider javascript implemented line dash. * @param {CanvasRenderingContext2D} ctx */ rebuildPath: function rebuildPath(ctx) { var d = this.data; var x0; var y0; var xi; var yi; var x; var y; var ux = this._ux; var uy = this._uy; var len = this._len; for (var i = 0; i < len;) { var cmd = d[i++]; if (i === 1) { // 如果第一个命令是 L, C, Q // 则 previous point 同绘制命令的第一个 point // // 第一个命令为 Arc 的情况下会在后面特殊处理 xi = d[i]; yi = d[i + 1]; x0 = xi; y0 = yi; } switch (cmd) { case CMD.M: x0 = xi = d[i++]; y0 = yi = d[i++]; ctx.moveTo(xi, yi); break; case CMD.L: x = d[i++]; y = d[i++]; // Not draw too small seg between if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) { ctx.lineTo(x, y); xi = x; yi = y; } break; case CMD.C: ctx.bezierCurveTo(d[i++], d[i++], d[i++], d[i++], d[i++], d[i++]); xi = d[i - 2]; yi = d[i - 1]; break; case CMD.Q: ctx.quadraticCurveTo(d[i++], d[i++], d[i++], d[i++]); xi = d[i - 2]; yi = d[i - 1]; break; case CMD.A: var cx = d[i++]; var cy = d[i++]; var rx = d[i++]; var ry = d[i++]; var theta = d[i++]; var dTheta = d[i++]; var psi = d[i++]; var fs = d[i++]; var r = rx > ry ? rx : ry; var scaleX = rx > ry ? 1 : rx / ry; var scaleY = rx > ry ? ry / rx : 1; var isEllipse = Math.abs(rx - ry) > 1e-3; var endAngle = theta + dTheta; if (isEllipse) { ctx.translate(cx, cy); ctx.rotate(psi); ctx.scale(scaleX, scaleY); ctx.arc(0, 0, r, theta, endAngle, 1 - fs); ctx.scale(1 / scaleX, 1 / scaleY); ctx.rotate(-psi); ctx.translate(-cx, -cy); } else { ctx.arc(cx, cy, r, theta, endAngle, 1 - fs); } if (i === 1) { // 直接使用 arc 命令 // 第一个命令起点还未定义 x0 = mathCos(theta) * rx + cx; y0 = mathSin(theta) * ry + cy; } xi = mathCos(endAngle) * rx + cx; yi = mathSin(endAngle) * ry + cy; break; case CMD.R: x0 = xi = d[i]; y0 = yi = d[i + 1]; ctx.rect(d[i++], d[i++], d[i++], d[i++]); break; case CMD.Z: ctx.closePath(); xi = x0; yi = y0; } } } }; PathProxy.CMD = CMD; var _default = PathProxy; module.exports = _default; /***/ }), /* 455 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/curve.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _vector = __webpack_require__(/*! ./vector */ 405); var v2Create = _vector.create; var v2DistSquare = _vector.distSquare; /** * 曲线辅助模块 * @module zrender/core/curve * @author pissang(https://www.github.com/pissang) */ var mathPow = Math.pow; var mathSqrt = Math.sqrt; var EPSILON = 1e-8; var EPSILON_NUMERIC = 1e-4; var THREE_SQRT = mathSqrt(3); var ONE_THIRD = 1 / 3; // 临时变量 var _v0 = v2Create(); var _v1 = v2Create(); var _v2 = v2Create(); function isAroundZero(val) { return val > -EPSILON && val < EPSILON; } function isNotAroundZero(val) { return val > EPSILON || val < -EPSILON; } /** * 计算三次贝塞尔值 * @memberOf module:zrender/core/curve * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} p3 * @param {number} t * @return {number} */ function cubicAt(p0, p1, p2, p3, t) { var onet = 1 - t; return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2); } /** * 计算三次贝塞尔导数值 * @memberOf module:zrender/core/curve * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} p3 * @param {number} t * @return {number} */ function cubicDerivativeAt(p0, p1, p2, p3, t) { var onet = 1 - t; return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t); } /** * 计算三次贝塞尔方程根,使用盛金公式 * @memberOf module:zrender/core/curve * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} p3 * @param {number} val * @param {Array.} roots * @return {number} 有效根数目 */ function cubicRootAt(p0, p1, p2, p3, val, roots) { // Evaluate roots of cubic functions var a = p3 + 3 * (p1 - p2) - p0; var b = 3 * (p2 - p1 * 2 + p0); var c = 3 * (p1 - p0); var d = p0 - val; var A = b * b - 3 * a * c; var B = b * c - 9 * a * d; var C = c * c - 3 * b * d; var n = 0; if (isAroundZero(A) && isAroundZero(B)) { if (isAroundZero(b)) { roots[0] = 0; } else { var t1 = -c / b; //t1, t2, t3, b is not zero if (t1 >= 0 && t1 <= 1) { roots[n++] = t1; } } } else { var disc = B * B - 4 * A * C; if (isAroundZero(disc)) { var K = B / A; var t1 = -b / a + K; // t1, a is not zero var t2 = -K / 2; // t2, t3 if (t1 >= 0 && t1 <= 1) { roots[n++] = t1; } if (t2 >= 0 && t2 <= 1) { roots[n++] = t2; } } else if (disc > 0) { var discSqrt = mathSqrt(disc); var Y1 = A * b + 1.5 * a * (-B + discSqrt); var Y2 = A * b + 1.5 * a * (-B - discSqrt); if (Y1 < 0) { Y1 = -mathPow(-Y1, ONE_THIRD); } else { Y1 = mathPow(Y1, ONE_THIRD); } if (Y2 < 0) { Y2 = -mathPow(-Y2, ONE_THIRD); } else { Y2 = mathPow(Y2, ONE_THIRD); } var t1 = (-b - (Y1 + Y2)) / (3 * a); if (t1 >= 0 && t1 <= 1) { roots[n++] = t1; } } else { var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A)); var theta = Math.acos(T) / 3; var ASqrt = mathSqrt(A); var tmp = Math.cos(theta); var t1 = (-b - 2 * ASqrt * tmp) / (3 * a); var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a); var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a); if (t1 >= 0 && t1 <= 1) { roots[n++] = t1; } if (t2 >= 0 && t2 <= 1) { roots[n++] = t2; } if (t3 >= 0 && t3 <= 1) { roots[n++] = t3; } } } return n; } /** * 计算三次贝塞尔方程极限值的位置 * @memberOf module:zrender/core/curve * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} p3 * @param {Array.} extrema * @return {number} 有效数目 */ function cubicExtrema(p0, p1, p2, p3, extrema) { var b = 6 * p2 - 12 * p1 + 6 * p0; var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2; var c = 3 * p1 - 3 * p0; var n = 0; if (isAroundZero(a)) { if (isNotAroundZero(b)) { var t1 = -c / b; if (t1 >= 0 && t1 <= 1) { extrema[n++] = t1; } } } else { var disc = b * b - 4 * a * c; if (isAroundZero(disc)) { extrema[0] = -b / (2 * a); } else if (disc > 0) { var discSqrt = mathSqrt(disc); var t1 = (-b + discSqrt) / (2 * a); var t2 = (-b - discSqrt) / (2 * a); if (t1 >= 0 && t1 <= 1) { extrema[n++] = t1; } if (t2 >= 0 && t2 <= 1) { extrema[n++] = t2; } } } return n; } /** * 细分三次贝塞尔曲线 * @memberOf module:zrender/core/curve * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} p3 * @param {number} t * @param {Array.} out */ function cubicSubdivide(p0, p1, p2, p3, t, out) { var p01 = (p1 - p0) * t + p0; var p12 = (p2 - p1) * t + p1; var p23 = (p3 - p2) * t + p2; var p012 = (p12 - p01) * t + p01; var p123 = (p23 - p12) * t + p12; var p0123 = (p123 - p012) * t + p012; // Seg0 out[0] = p0; out[1] = p01; out[2] = p012; out[3] = p0123; // Seg1 out[4] = p0123; out[5] = p123; out[6] = p23; out[7] = p3; } /** * 投射点到三次贝塞尔曲线上,返回投射距离。 * 投射点有可能会有一个或者多个,这里只返回其中距离最短的一个。 * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {number} x3 * @param {number} y3 * @param {number} x * @param {number} y * @param {Array.} [out] 投射点 * @return {number} */ function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) { // http://pomax.github.io/bezierinfo/#projections var t; var interval = 0.005; var d = Infinity; var prev; var next; var d1; var d2; _v0[0] = x; _v0[1] = y; // 先粗略估计一下可能的最小距离的 t 值 // PENDING for (var _t = 0; _t < 1; _t += 0.05) { _v1[0] = cubicAt(x0, x1, x2, x3, _t); _v1[1] = cubicAt(y0, y1, y2, y3, _t); d1 = v2DistSquare(_v0, _v1); if (d1 < d) { t = _t; d = d1; } } d = Infinity; // At most 32 iteration for (var i = 0; i < 32; i++) { if (interval < EPSILON_NUMERIC) { break; } prev = t - interval; next = t + interval; // t - interval _v1[0] = cubicAt(x0, x1, x2, x3, prev); _v1[1] = cubicAt(y0, y1, y2, y3, prev); d1 = v2DistSquare(_v1, _v0); if (prev >= 0 && d1 < d) { t = prev; d = d1; } else { // t + interval _v2[0] = cubicAt(x0, x1, x2, x3, next); _v2[1] = cubicAt(y0, y1, y2, y3, next); d2 = v2DistSquare(_v2, _v0); if (next <= 1 && d2 < d) { t = next; d = d2; } else { interval *= 0.5; } } } // t if (out) { out[0] = cubicAt(x0, x1, x2, x3, t); out[1] = cubicAt(y0, y1, y2, y3, t); } // console.log(interval, i); return mathSqrt(d); } /** * 计算二次方贝塞尔值 * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} t * @return {number} */ function quadraticAt(p0, p1, p2, t) { var onet = 1 - t; return onet * (onet * p0 + 2 * t * p1) + t * t * p2; } /** * 计算二次方贝塞尔导数值 * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} t * @return {number} */ function quadraticDerivativeAt(p0, p1, p2, t) { return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1)); } /** * 计算二次方贝塞尔方程根 * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} t * @param {Array.} roots * @return {number} 有效根数目 */ function quadraticRootAt(p0, p1, p2, val, roots) { var a = p0 - 2 * p1 + p2; var b = 2 * (p1 - p0); var c = p0 - val; var n = 0; if (isAroundZero(a)) { if (isNotAroundZero(b)) { var t1 = -c / b; if (t1 >= 0 && t1 <= 1) { roots[n++] = t1; } } } else { var disc = b * b - 4 * a * c; if (isAroundZero(disc)) { var t1 = -b / (2 * a); if (t1 >= 0 && t1 <= 1) { roots[n++] = t1; } } else if (disc > 0) { var discSqrt = mathSqrt(disc); var t1 = (-b + discSqrt) / (2 * a); var t2 = (-b - discSqrt) / (2 * a); if (t1 >= 0 && t1 <= 1) { roots[n++] = t1; } if (t2 >= 0 && t2 <= 1) { roots[n++] = t2; } } } return n; } /** * 计算二次贝塞尔方程极限值 * @memberOf module:zrender/core/curve * @param {number} p0 * @param {number} p1 * @param {number} p2 * @return {number} */ function quadraticExtremum(p0, p1, p2) { var divider = p0 + p2 - 2 * p1; if (divider === 0) { // p1 is center of p0 and p2 return 0.5; } else { return (p0 - p1) / divider; } } /** * 细分二次贝塞尔曲线 * @memberOf module:zrender/core/curve * @param {number} p0 * @param {number} p1 * @param {number} p2 * @param {number} t * @param {Array.} out */ function quadraticSubdivide(p0, p1, p2, t, out) { var p01 = (p1 - p0) * t + p0; var p12 = (p2 - p1) * t + p1; var p012 = (p12 - p01) * t + p01; // Seg0 out[0] = p0; out[1] = p01; out[2] = p012; // Seg1 out[3] = p012; out[4] = p12; out[5] = p2; } /** * 投射点到二次贝塞尔曲线上,返回投射距离。 * 投射点有可能会有一个或者多个,这里只返回其中距离最短的一个。 * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {number} x * @param {number} y * @param {Array.} out 投射点 * @return {number} */ function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) { // http://pomax.github.io/bezierinfo/#projections var t; var interval = 0.005; var d = Infinity; _v0[0] = x; _v0[1] = y; // 先粗略估计一下可能的最小距离的 t 值 // PENDING for (var _t = 0; _t < 1; _t += 0.05) { _v1[0] = quadraticAt(x0, x1, x2, _t); _v1[1] = quadraticAt(y0, y1, y2, _t); var d1 = v2DistSquare(_v0, _v1); if (d1 < d) { t = _t; d = d1; } } d = Infinity; // At most 32 iteration for (var i = 0; i < 32; i++) { if (interval < EPSILON_NUMERIC) { break; } var prev = t - interval; var next = t + interval; // t - interval _v1[0] = quadraticAt(x0, x1, x2, prev); _v1[1] = quadraticAt(y0, y1, y2, prev); var d1 = v2DistSquare(_v1, _v0); if (prev >= 0 && d1 < d) { t = prev; d = d1; } else { // t + interval _v2[0] = quadraticAt(x0, x1, x2, next); _v2[1] = quadraticAt(y0, y1, y2, next); var d2 = v2DistSquare(_v2, _v0); if (next <= 1 && d2 < d) { t = next; d = d2; } else { interval *= 0.5; } } } // t if (out) { out[0] = quadraticAt(x0, x1, x2, t); out[1] = quadraticAt(y0, y1, y2, t); } // console.log(interval, i); return mathSqrt(d); } exports.cubicAt = cubicAt; exports.cubicDerivativeAt = cubicDerivativeAt; exports.cubicRootAt = cubicRootAt; exports.cubicExtrema = cubicExtrema; exports.cubicSubdivide = cubicSubdivide; exports.cubicProjectPoint = cubicProjectPoint; exports.quadraticAt = quadraticAt; exports.quadraticDerivativeAt = quadraticDerivativeAt; exports.quadraticRootAt = quadraticRootAt; exports.quadraticExtremum = quadraticExtremum; exports.quadraticSubdivide = quadraticSubdivide; exports.quadraticProjectPoint = quadraticProjectPoint; /***/ }), /* 456 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/core/bbox.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var vec2 = __webpack_require__(/*! ./vector */ 405); var curve = __webpack_require__(/*! ./curve */ 455); /** * @author Yi Shen(https://github.com/pissang) */ var mathMin = Math.min; var mathMax = Math.max; var mathSin = Math.sin; var mathCos = Math.cos; var PI2 = Math.PI * 2; var start = vec2.create(); var end = vec2.create(); var extremity = vec2.create(); /** * 从顶点数组中计算出最小包围盒,写入`min`和`max`中 * @module zrender/core/bbox * @param {Array} points 顶点数组 * @param {number} min * @param {number} max */ function fromPoints(points, min, max) { if (points.length === 0) { return; } var p = points[0]; var left = p[0]; var right = p[0]; var top = p[1]; var bottom = p[1]; var i; for (i = 1; i < points.length; i++) { p = points[i]; left = mathMin(left, p[0]); right = mathMax(right, p[0]); top = mathMin(top, p[1]); bottom = mathMax(bottom, p[1]); } min[0] = left; min[1] = top; max[0] = right; max[1] = bottom; } /** * @memberOf module:zrender/core/bbox * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {Array.} min * @param {Array.} max */ function fromLine(x0, y0, x1, y1, min, max) { min[0] = mathMin(x0, x1); min[1] = mathMin(y0, y1); max[0] = mathMax(x0, x1); max[1] = mathMax(y0, y1); } var xDim = []; var yDim = []; /** * 从三阶贝塞尔曲线(p0, p1, p2, p3)中计算出最小包围盒,写入`min`和`max`中 * @memberOf module:zrender/core/bbox * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {number} x3 * @param {number} y3 * @param {Array.} min * @param {Array.} max */ function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) { var cubicExtrema = curve.cubicExtrema; var cubicAt = curve.cubicAt; var i; var n = cubicExtrema(x0, x1, x2, x3, xDim); min[0] = Infinity; min[1] = Infinity; max[0] = -Infinity; max[1] = -Infinity; for (i = 0; i < n; i++) { var x = cubicAt(x0, x1, x2, x3, xDim[i]); min[0] = mathMin(x, min[0]); max[0] = mathMax(x, max[0]); } n = cubicExtrema(y0, y1, y2, y3, yDim); for (i = 0; i < n; i++) { var y = cubicAt(y0, y1, y2, y3, yDim[i]); min[1] = mathMin(y, min[1]); max[1] = mathMax(y, max[1]); } min[0] = mathMin(x0, min[0]); max[0] = mathMax(x0, max[0]); min[0] = mathMin(x3, min[0]); max[0] = mathMax(x3, max[0]); min[1] = mathMin(y0, min[1]); max[1] = mathMax(y0, max[1]); min[1] = mathMin(y3, min[1]); max[1] = mathMax(y3, max[1]); } /** * 从二阶贝塞尔曲线(p0, p1, p2)中计算出最小包围盒,写入`min`和`max`中 * @memberOf module:zrender/core/bbox * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {Array.} min * @param {Array.} max */ function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) { var quadraticExtremum = curve.quadraticExtremum; var quadraticAt = curve.quadraticAt; // Find extremities, where derivative in x dim or y dim is zero var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0); var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0); var x = quadraticAt(x0, x1, x2, tx); var y = quadraticAt(y0, y1, y2, ty); min[0] = mathMin(x0, x2, x); min[1] = mathMin(y0, y2, y); max[0] = mathMax(x0, x2, x); max[1] = mathMax(y0, y2, y); } /** * 从圆弧中计算出最小包围盒,写入`min`和`max`中 * @method * @memberOf module:zrender/core/bbox * @param {number} x * @param {number} y * @param {number} rx * @param {number} ry * @param {number} startAngle * @param {number} endAngle * @param {number} anticlockwise * @param {Array.} min * @param {Array.} max */ function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) { var vec2Min = vec2.min; var vec2Max = vec2.max; var diff = Math.abs(startAngle - endAngle); if (diff % PI2 < 1e-4 && diff > 1e-4) { // Is a circle min[0] = x - rx; min[1] = y - ry; max[0] = x + rx; max[1] = y + ry; return; } start[0] = mathCos(startAngle) * rx + x; start[1] = mathSin(startAngle) * ry + y; end[0] = mathCos(endAngle) * rx + x; end[1] = mathSin(endAngle) * ry + y; vec2Min(min, start, end); vec2Max(max, start, end); // Thresh to [0, Math.PI * 2] startAngle = startAngle % PI2; if (startAngle < 0) { startAngle = startAngle + PI2; } endAngle = endAngle % PI2; if (endAngle < 0) { endAngle = endAngle + PI2; } if (startAngle > endAngle && !anticlockwise) { endAngle += PI2; } else if (startAngle < endAngle && anticlockwise) { startAngle += PI2; } if (anticlockwise) { var tmp = endAngle; endAngle = startAngle; startAngle = tmp; } // var number = 0; // var step = (anticlockwise ? -Math.PI : Math.PI) / 2; for (var angle = 0; angle < endAngle; angle += Math.PI / 2) { if (angle > startAngle) { extremity[0] = mathCos(angle) * rx + x; extremity[1] = mathSin(angle) * ry + y; vec2Min(min, extremity, min); vec2Max(max, extremity, max); } } } exports.fromPoints = fromPoints; exports.fromLine = fromLine; exports.fromCubic = fromCubic; exports.fromQuadratic = fromQuadratic; exports.fromArc = fromArc; /***/ }), /* 457 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/path.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var PathProxy = __webpack_require__(/*! ../core/PathProxy */ 454); var line = __webpack_require__(/*! ./line */ 458); var cubic = __webpack_require__(/*! ./cubic */ 459); var quadratic = __webpack_require__(/*! ./quadratic */ 460); var arc = __webpack_require__(/*! ./arc */ 461); var _util = __webpack_require__(/*! ./util */ 462); var normalizeRadian = _util.normalizeRadian; var curve = __webpack_require__(/*! ../core/curve */ 455); var windingLine = __webpack_require__(/*! ./windingLine */ 463); var CMD = PathProxy.CMD; var PI2 = Math.PI * 2; var EPSILON = 1e-4; function isAroundEqual(a, b) { return Math.abs(a - b) < EPSILON; } // 临时数组 var roots = [-1, -1, -1]; var extrema = [-1, -1]; function swapExtrema() { var tmp = extrema[0]; extrema[0] = extrema[1]; extrema[1] = tmp; } function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { // Quick reject if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) { return 0; } var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots); if (nRoots === 0) { return 0; } else { var w = 0; var nExtrema = -1; var y0_; var y1_; for (var i = 0; i < nRoots; i++) { var t = roots[i]; // Avoid winding error when intersection point is the connect point of two line of polygon var unit = t === 0 || t === 1 ? 0.5 : 1; var x_ = curve.cubicAt(x0, x1, x2, x3, t); if (x_ < x) { // Quick reject continue; } if (nExtrema < 0) { nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema); if (extrema[1] < extrema[0] && nExtrema > 1) { swapExtrema(); } y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]); if (nExtrema > 1) { y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]); } } if (nExtrema === 2) { // 分成三段单调函数 if (t < extrema[0]) { w += y0_ < y0 ? unit : -unit; } else if (t < extrema[1]) { w += y1_ < y0_ ? unit : -unit; } else { w += y3 < y1_ ? unit : -unit; } } else { // 分成两段单调函数 if (t < extrema[0]) { w += y0_ < y0 ? unit : -unit; } else { w += y3 < y0_ ? unit : -unit; } } } return w; } } function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) { // Quick reject if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) { return 0; } var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots); if (nRoots === 0) { return 0; } else { var t = curve.quadraticExtremum(y0, y1, y2); if (t >= 0 && t <= 1) { var w = 0; var y_ = curve.quadraticAt(y0, y1, y2, t); for (var i = 0; i < nRoots; i++) { // Remove one endpoint. var unit = roots[i] === 0 || roots[i] === 1 ? 0.5 : 1; var x_ = curve.quadraticAt(x0, x1, x2, roots[i]); if (x_ < x) { // Quick reject continue; } if (roots[i] < t) { w += y_ < y0 ? unit : -unit; } else { w += y2 < y_ ? unit : -unit; } } return w; } else { // Remove one endpoint. var unit = roots[0] === 0 || roots[0] === 1 ? 0.5 : 1; var x_ = curve.quadraticAt(x0, x1, x2, roots[0]); if (x_ < x) { // Quick reject return 0; } return y2 < y0 ? unit : -unit; } } } // TODO // Arc 旋转 function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) { y -= cy; if (y > r || y < -r) { return 0; } var tmp = Math.sqrt(r * r - y * y); roots[0] = -tmp; roots[1] = tmp; var diff = Math.abs(startAngle - endAngle); if (diff < 1e-4) { return 0; } if (diff % PI2 < 1e-4) { // Is a circle startAngle = 0; endAngle = PI2; var dir = anticlockwise ? 1 : -1; if (x >= roots[0] + cx && x <= roots[1] + cx) { return dir; } else { return 0; } } if (anticlockwise) { var tmp = startAngle; startAngle = normalizeRadian(endAngle); endAngle = normalizeRadian(tmp); } else { startAngle = normalizeRadian(startAngle); endAngle = normalizeRadian(endAngle); } if (startAngle > endAngle) { endAngle += PI2; } var w = 0; for (var i = 0; i < 2; i++) { var x_ = roots[i]; if (x_ + cx > x) { var angle = Math.atan2(y, x_); var dir = anticlockwise ? 1 : -1; if (angle < 0) { angle = PI2 + angle; } if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) { if (angle > Math.PI / 2 && angle < Math.PI * 1.5) { dir = -dir; } w += dir; } } } return w; } function containPath(data, lineWidth, isStroke, x, y) { var w = 0; var xi = 0; var yi = 0; var x0 = 0; var y0 = 0; for (var i = 0; i < data.length;) { var cmd = data[i++]; // Begin a new subpath if (cmd === CMD.M && i > 1) { // Close previous subpath if (!isStroke) { w += windingLine(xi, yi, x0, y0, x, y); } // 如果被任何一个 subpath 包含 // if (w !== 0) { // return true; // } } if (i === 1) { // 如果第一个命令是 L, C, Q // 则 previous point 同绘制命令的第一个 point // // 第一个命令为 Arc 的情况下会在后面特殊处理 xi = data[i]; yi = data[i + 1]; x0 = xi; y0 = yi; } switch (cmd) { case CMD.M: // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点 // 在 closePath 的时候使用 x0 = data[i++]; y0 = data[i++]; xi = x0; yi = y0; break; case CMD.L: if (isStroke) { if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) { return true; } } else { // NOTE 在第一个命令为 L, C, Q 的时候会计算出 NaN w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0; } xi = data[i++]; yi = data[i++]; break; case CMD.C: if (isStroke) { if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { return true; } } else { w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0; } xi = data[i++]; yi = data[i++]; break; case CMD.Q: if (isStroke) { if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { return true; } } else { w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0; } xi = data[i++]; yi = data[i++]; break; case CMD.A: // TODO Arc 判断的开销比较大 var cx = data[i++]; var cy = data[i++]; var rx = data[i++]; var ry = data[i++]; var theta = data[i++]; var dTheta = data[i++]; // TODO Arc 旋转 i += 1; var anticlockwise = 1 - data[i++]; var x1 = Math.cos(theta) * rx + cx; var y1 = Math.sin(theta) * ry + cy; // 不是直接使用 arc 命令 if (i > 1) { w += windingLine(xi, yi, x1, y1, x, y); } else { // 第一个命令起点还未定义 x0 = x1; y0 = y1; } // zr 使用scale来模拟椭圆, 这里也对x做一定的缩放 var _x = (x - cx) * ry / rx + cx; if (isStroke) { if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) { return true; } } else { w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y); } xi = Math.cos(theta + dTheta) * rx + cx; yi = Math.sin(theta + dTheta) * ry + cy; break; case CMD.R: x0 = xi = data[i++]; y0 = yi = data[i++]; var width = data[i++]; var height = data[i++]; var x1 = x0 + width; var y1 = y0 + height; if (isStroke) { if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y) || line.containStroke(x1, y0, x1, y1, lineWidth, x, y) || line.containStroke(x1, y1, x0, y1, lineWidth, x, y) || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) { return true; } } else { // FIXME Clockwise ? w += windingLine(x1, y0, x1, y1, x, y); w += windingLine(x0, y1, x0, y0, x, y); } break; case CMD.Z: if (isStroke) { if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) { return true; } } else { // Close a subpath w += windingLine(xi, yi, x0, y0, x, y); // 如果被任何一个 subpath 包含 // FIXME subpaths may overlap // if (w !== 0) { // return true; // } } xi = x0; yi = y0; break; } } if (!isStroke && !isAroundEqual(yi, y0)) { w += windingLine(xi, yi, x0, y0, x, y) || 0; } return w !== 0; } function contain(pathData, x, y) { return containPath(pathData, 0, false, x, y); } function containStroke(pathData, lineWidth, x, y) { return containPath(pathData, lineWidth, true, x, y); } exports.contain = contain; exports.containStroke = containStroke; /***/ }), /* 458 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/line.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * 线段包含判断 * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} lineWidth * @param {number} x * @param {number} y * @return {boolean} */ function containStroke(x0, y0, x1, y1, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; var _a = 0; var _b = x0; // Quick reject if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) { return false; } if (x0 !== x1) { _a = (y0 - y1) / (x0 - x1); _b = (x0 * y1 - x1 * y0) / (x0 - x1); } else { return Math.abs(x - x0) <= _l / 2; } var tmp = _a * x - y + _b; var _s = tmp * tmp / (_a * _a + 1); return _s <= _l / 2 * _l / 2; } exports.containStroke = containStroke; /***/ }), /* 459 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/cubic.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var curve = __webpack_require__(/*! ../core/curve */ 455); /** * 三次贝塞尔曲线描边包含判断 * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {number} x3 * @param {number} y3 * @param {number} lineWidth * @param {number} x * @param {number} y * @return {boolean} */ function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; // Quick reject if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) { return false; } var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null); return d <= _l / 2; } exports.containStroke = containStroke; /***/ }), /* 460 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/quadratic.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _curve = __webpack_require__(/*! ../core/curve */ 455); var quadraticProjectPoint = _curve.quadraticProjectPoint; /** * 二次贝塞尔曲线描边包含判断 * @param {number} x0 * @param {number} y0 * @param {number} x1 * @param {number} y1 * @param {number} x2 * @param {number} y2 * @param {number} lineWidth * @param {number} x * @param {number} y * @return {boolean} */ function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; // Quick reject if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) { return false; } var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null); return d <= _l / 2; } exports.containStroke = containStroke; /***/ }), /* 461 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/arc.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _util = __webpack_require__(/*! ./util */ 462); var normalizeRadian = _util.normalizeRadian; var PI2 = Math.PI * 2; /** * 圆弧描边包含判断 * @param {number} cx * @param {number} cy * @param {number} r * @param {number} startAngle * @param {number} endAngle * @param {boolean} anticlockwise * @param {number} lineWidth * @param {number} x * @param {number} y * @return {Boolean} */ function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; x -= cx; y -= cy; var d = Math.sqrt(x * x + y * y); if (d - _l > r || d + _l < r) { return false; } if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) { // Is a circle return true; } if (anticlockwise) { var tmp = startAngle; startAngle = normalizeRadian(endAngle); endAngle = normalizeRadian(tmp); } else { startAngle = normalizeRadian(startAngle); endAngle = normalizeRadian(endAngle); } if (startAngle > endAngle) { endAngle += PI2; } var angle = Math.atan2(y, x); if (angle < 0) { angle += PI2; } return angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle; } exports.containStroke = containStroke; /***/ }), /* 462 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/util.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { var PI2 = Math.PI * 2; function normalizeRadian(angle) { angle %= PI2; if (angle < 0) { angle += PI2; } return angle; } exports.normalizeRadian = normalizeRadian; /***/ }), /* 463 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/windingLine.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function windingLine(x0, y0, x1, y1, x, y) { if (y > y0 && y > y1 || y < y0 && y < y1) { return 0; } // Ignore horizontal line if (y1 === y0) { return 0; } var dir = y1 < y0 ? 1 : -1; var t = (y - y0) / (y1 - y0); // Avoid winding error when intersection point is the connect point of two line of polygon if (t === 1 || t === 0) { dir = y1 < y0 ? 0.5 : -0.5; } var x_ = t * (x1 - x0) + x0; // If (x, y) on the line, considered as "contain". return x_ === x ? Infinity : x_ > x ? dir : 0; } module.exports = windingLine; /***/ }), /* 464 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/tool/transformPath.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var PathProxy = __webpack_require__(/*! ../core/PathProxy */ 454); var _vector = __webpack_require__(/*! ../core/vector */ 405); var v2ApplyTransform = _vector.applyTransform; var CMD = PathProxy.CMD; var points = [[], [], []]; var mathSqrt = Math.sqrt; var mathAtan2 = Math.atan2; function _default(path, m) { var data = path.data; var cmd; var nPoint; var i; var j; var k; var p; var M = CMD.M; var C = CMD.C; var L = CMD.L; var R = CMD.R; var A = CMD.A; var Q = CMD.Q; for (i = 0, j = 0; i < data.length;) { cmd = data[i++]; j = i; nPoint = 0; switch (cmd) { case M: nPoint = 1; break; case L: nPoint = 1; break; case C: nPoint = 3; break; case Q: nPoint = 2; break; case A: var x = m[4]; var y = m[5]; var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]); var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]); var angle = mathAtan2(-m[1] / sy, m[0] / sx); // cx data[i] *= sx; data[i++] += x; // cy data[i] *= sy; data[i++] += y; // Scale rx and ry // FIXME Assume psi is 0 here data[i++] *= sx; data[i++] *= sy; // Start angle data[i++] += angle; // end angle data[i++] += angle; // FIXME psi i += 2; j = i; break; case R: // x0, y0 p[0] = data[i++]; p[1] = data[i++]; v2ApplyTransform(p, p, m); data[j++] = p[0]; data[j++] = p[1]; // x1, y1 p[0] += data[i++]; p[1] += data[i++]; v2ApplyTransform(p, p, m); data[j++] = p[0]; data[j++] = p[1]; } for (k = 0; k < nPoint; k++) { var p = points[k]; p[0] = data[i++]; p[1] = data[i++]; v2ApplyTransform(p, p, m); // Write back data[j++] = p[0]; data[j++] = p[1]; } } } module.exports = _default; /***/ }), /* 465 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/Text.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Displayable = __webpack_require__(/*! ./Displayable */ 435); var zrUtil = __webpack_require__(/*! ../core/util */ 403); var textContain = __webpack_require__(/*! ../contain/text */ 438); var textHelper = __webpack_require__(/*! ./helper/text */ 437); var _constant = __webpack_require__(/*! ./constant */ 431); var ContextCachedBy = _constant.ContextCachedBy; /** * @alias zrender/graphic/Text * @extends module:zrender/graphic/Displayable * @constructor * @param {Object} opts */ var Text = function Text(opts) { // jshint ignore:line Displayable.call(this, opts); }; Text.prototype = { constructor: Text, type: 'text', brush: function brush(ctx, prevEl) { var style = this.style; // Optimize, avoid normalize every time. this.__dirty && textHelper.normalizeTextStyle(style, true); // Use props with prefix 'text'. style.fill = style.stroke = style.shadowBlur = style.shadowColor = style.shadowOffsetX = style.shadowOffsetY = null; var text = style.text; // Convert to string text != null && (text += ''); // Do not apply style.bind in Text node. Because the real bind job // is in textHelper.renderText, and performance of text render should // be considered. // style.bind(ctx, this, prevEl); if (!textHelper.needDrawText(text, style)) { // The current el.style is not applied // and should not be used as cache. ctx.__attrCachedBy = ContextCachedBy.NONE; return; } this.setTransform(ctx); textHelper.renderText(this, ctx, text, style, null, prevEl); this.restoreTransform(ctx); }, getBoundingRect: function getBoundingRect() { var style = this.style; // Optimize, avoid normalize every time. this.__dirty && textHelper.normalizeTextStyle(style, true); if (!this._rect) { var text = style.text; text != null ? text += '' : text = ''; var rect = textContain.getBoundingRect(style.text + '', style.font, style.textAlign, style.textVerticalAlign, style.textPadding, style.textLineHeight, style.rich); rect.x += style.x || 0; rect.y += style.y || 0; if (textHelper.getStroke(style.textStroke, style.textStrokeWidth)) { var w = style.textStrokeWidth; rect.x -= w / 2; rect.y -= w / 2; rect.width += w; rect.height += w; } this._rect = rect; } return this._rect; } }; zrUtil.inherits(Text, Displayable); var _default = Text; module.exports = _default; /***/ }), /* 466 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Circle.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); /** * 圆形 * @module zrender/shape/Circle */ var _default = Path.extend({ type: 'circle', shape: { cx: 0, cy: 0, r: 0 }, buildPath: function buildPath(ctx, shape, inBundle) { // Better stroking in ShapeBundle // Always do it may have performence issue ( fill may be 2x more cost) if (inBundle) { ctx.moveTo(shape.cx + shape.r, shape.cy); } // else { // if (ctx.allocate && !ctx.data.length) { // ctx.allocate(ctx.CMD_MEM_SIZE.A); // } // } // Better stroking in ShapeBundle // ctx.moveTo(shape.cx + shape.r, shape.cy); ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2, true); } }); module.exports = _default; /***/ }), /* 467 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Sector.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); var fixClipWithShadow = __webpack_require__(/*! ../helper/fixClipWithShadow */ 468); /** * 扇形 * @module zrender/graphic/shape/Sector */ var _default = Path.extend({ type: 'sector', shape: { cx: 0, cy: 0, r0: 0, r: 0, startAngle: 0, endAngle: Math.PI * 2, clockwise: true }, brush: fixClipWithShadow(Path.prototype.brush), buildPath: function buildPath(ctx, shape) { var x = shape.cx; var y = shape.cy; var r0 = Math.max(shape.r0 || 0, 0); var r = Math.max(shape.r, 0); var startAngle = shape.startAngle; var endAngle = shape.endAngle; var clockwise = shape.clockwise; var unitX = Math.cos(startAngle); var unitY = Math.sin(startAngle); ctx.moveTo(unitX * r0 + x, unitY * r0 + y); ctx.lineTo(unitX * r + x, unitY * r + y); ctx.arc(x, y, r, startAngle, endAngle, !clockwise); ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y); if (r0 !== 0) { ctx.arc(x, y, r0, endAngle, startAngle, clockwise); } ctx.closePath(); } }); module.exports = _default; /***/ }), /* 468 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/fixClipWithShadow.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var env = __webpack_require__(/*! ../../core/env */ 402); // Fix weird bug in some version of IE11 (like 11.0.9600.178**), // where exception "unexpected call to method or property access" // might be thrown when calling ctx.fill or ctx.stroke after a path // whose area size is zero is drawn and ctx.clip() is called and // shadowBlur is set. See #4572, #3112, #5777. // (e.g., // ctx.moveTo(10, 10); // ctx.lineTo(20, 10); // ctx.closePath(); // ctx.clip(); // ctx.shadowBlur = 10; // ... // ctx.fill(); // ) var shadowTemp = [['shadowBlur', 0], ['shadowColor', '#000'], ['shadowOffsetX', 0], ['shadowOffsetY', 0]]; function _default(orignalBrush) { // version string can be: '11.0' return env.browser.ie && env.browser.version >= 11 ? function () { var clipPaths = this.__clipPaths; var style = this.style; var modified; if (clipPaths) { for (var i = 0; i < clipPaths.length; i++) { var clipPath = clipPaths[i]; var shape = clipPath && clipPath.shape; var type = clipPath && clipPath.type; if (shape && (type === 'sector' && shape.startAngle === shape.endAngle || type === 'rect' && (!shape.width || !shape.height))) { for (var j = 0; j < shadowTemp.length; j++) { // It is save to put shadowTemp static, because shadowTemp // will be all modified each item brush called. shadowTemp[j][2] = style[shadowTemp[j][0]]; style[shadowTemp[j][0]] = shadowTemp[j][1]; } modified = true; break; } } } orignalBrush.apply(this, arguments); if (modified) { for (var j = 0; j < shadowTemp.length; j++) { style[shadowTemp[j][0]] = shadowTemp[j][2]; } } } : orignalBrush; } module.exports = _default; /***/ }), /* 469 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Ring.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); /** * 圆环 * @module zrender/graphic/shape/Ring */ var _default = Path.extend({ type: 'ring', shape: { cx: 0, cy: 0, r: 0, r0: 0 }, buildPath: function buildPath(ctx, shape) { var x = shape.cx; var y = shape.cy; var PI2 = Math.PI * 2; ctx.moveTo(x + shape.r, y); ctx.arc(x, y, shape.r, 0, PI2, false); ctx.moveTo(x + shape.r0, y); ctx.arc(x, y, shape.r0, 0, PI2, true); } }); module.exports = _default; /***/ }), /* 470 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Polygon.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); var polyHelper = __webpack_require__(/*! ../helper/poly */ 471); /** * 多边形 * @module zrender/shape/Polygon */ var _default = Path.extend({ type: 'polygon', shape: { points: null, smooth: false, smoothConstraint: null }, buildPath: function buildPath(ctx, shape) { polyHelper.buildPath(ctx, shape, true); } }); module.exports = _default; /***/ }), /* 471 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/poly.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var smoothSpline = __webpack_require__(/*! ./smoothSpline */ 472); var smoothBezier = __webpack_require__(/*! ./smoothBezier */ 473); function buildPath(ctx, shape, closePath) { var points = shape.points; var smooth = shape.smooth; if (points && points.length >= 2) { if (smooth && smooth !== 'spline') { var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint); ctx.moveTo(points[0][0], points[0][1]); var len = points.length; for (var i = 0; i < (closePath ? len : len - 1); i++) { var cp1 = controlPoints[i * 2]; var cp2 = controlPoints[i * 2 + 1]; var p = points[(i + 1) % len]; ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); } } else { if (smooth === 'spline') { points = smoothSpline(points, closePath); } ctx.moveTo(points[0][0], points[0][1]); for (var i = 1, l = points.length; i < l; i++) { ctx.lineTo(points[i][0], points[i][1]); } } closePath && ctx.closePath(); } } exports.buildPath = buildPath; /***/ }), /* 472 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/smoothSpline.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _vector = __webpack_require__(/*! ../../core/vector */ 405); var v2Distance = _vector.distance; /** * Catmull-Rom spline 插值折线 * @module zrender/shape/util/smoothSpline * @author pissang (https://www.github.com/pissang) * Kener (@Kener-林峰, kener.linfeng@gmail.com) * errorrik (errorrik@gmail.com) */ /** * @inner */ function interpolate(p0, p1, p2, p3, t, t2, t3) { var v0 = (p2 - p0) * 0.5; var v1 = (p3 - p1) * 0.5; return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; } /** * @alias module:zrender/shape/util/smoothSpline * @param {Array} points 线段顶点数组 * @param {boolean} isLoop * @return {Array} */ function _default(points, isLoop) { var len = points.length; var ret = []; var distance = 0; for (var i = 1; i < len; i++) { distance += v2Distance(points[i - 1], points[i]); } var segs = distance / 2; segs = segs < len ? len : segs; for (var i = 0; i < segs; i++) { var pos = i / (segs - 1) * (isLoop ? len : len - 1); var idx = Math.floor(pos); var w = pos - idx; var p0; var p1 = points[idx % len]; var p2; var p3; if (!isLoop) { p0 = points[idx === 0 ? idx : idx - 1]; p2 = points[idx > len - 2 ? len - 1 : idx + 1]; p3 = points[idx > len - 3 ? len - 1 : idx + 2]; } else { p0 = points[(idx - 1 + len) % len]; p2 = points[(idx + 1) % len]; p3 = points[(idx + 2) % len]; } var w2 = w * w; var w3 = w * w2; ret.push([interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3), interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)]); } return ret; } module.exports = _default; /***/ }), /* 473 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/smoothBezier.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _vector = __webpack_require__(/*! ../../core/vector */ 405); var v2Min = _vector.min; var v2Max = _vector.max; var v2Scale = _vector.scale; var v2Distance = _vector.distance; var v2Add = _vector.add; var v2Clone = _vector.clone; var v2Sub = _vector.sub; /** * 贝塞尔平滑曲线 * @module zrender/shape/util/smoothBezier * @author pissang (https://www.github.com/pissang) * Kener (@Kener-林峰, kener.linfeng@gmail.com) * errorrik (errorrik@gmail.com) */ /** * 贝塞尔平滑曲线 * @alias module:zrender/shape/util/smoothBezier * @param {Array} points 线段顶点数组 * @param {number} smooth 平滑等级, 0-1 * @param {boolean} isLoop * @param {Array} constraint 将计算出来的控制点约束在一个包围盒内 * 比如 [[0, 0], [100, 100]], 这个包围盒会与 * 整个折线的包围盒做一个并集用来约束控制点。 * @param {Array} 计算出来的控制点数组 */ function _default(points, smooth, isLoop, constraint) { var cps = []; var v = []; var v1 = []; var v2 = []; var prevPoint; var nextPoint; var min; var max; if (constraint) { min = [Infinity, Infinity]; max = [-Infinity, -Infinity]; for (var i = 0, len = points.length; i < len; i++) { v2Min(min, min, points[i]); v2Max(max, max, points[i]); } // 与指定的包围盒做并集 v2Min(min, min, constraint[0]); v2Max(max, max, constraint[1]); } for (var i = 0, len = points.length; i < len; i++) { var point = points[i]; if (isLoop) { prevPoint = points[i ? i - 1 : len - 1]; nextPoint = points[(i + 1) % len]; } else { if (i === 0 || i === len - 1) { cps.push(v2Clone(points[i])); continue; } else { prevPoint = points[i - 1]; nextPoint = points[i + 1]; } } v2Sub(v, nextPoint, prevPoint); // use degree to scale the handle length v2Scale(v, v, smooth); var d0 = v2Distance(point, prevPoint); var d1 = v2Distance(point, nextPoint); var sum = d0 + d1; if (sum !== 0) { d0 /= sum; d1 /= sum; } v2Scale(v1, v, -d0); v2Scale(v2, v, d1); var cp0 = v2Add([], point, v1); var cp1 = v2Add([], point, v2); if (constraint) { v2Max(cp0, cp0, min); v2Min(cp0, cp0, max); v2Max(cp1, cp1, min); v2Min(cp1, cp1, max); } cps.push(cp0); cps.push(cp1); } if (isLoop) { cps.push(cps.shift()); } return cps; } module.exports = _default; /***/ }), /* 474 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Polyline.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); var polyHelper = __webpack_require__(/*! ../helper/poly */ 471); /** * @module zrender/graphic/shape/Polyline */ var _default = Path.extend({ type: 'polyline', shape: { points: null, smooth: false, smoothConstraint: null }, style: { stroke: '#000', fill: null }, buildPath: function buildPath(ctx, shape) { polyHelper.buildPath(ctx, shape, false); } }); module.exports = _default; /***/ }), /* 475 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Rect.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); var roundRectHelper = __webpack_require__(/*! ../helper/roundRect */ 440); var _subPixelOptimize = __webpack_require__(/*! ../helper/subPixelOptimize */ 476); var subPixelOptimizeRect = _subPixelOptimize.subPixelOptimizeRect; /** * 矩形 * @module zrender/graphic/shape/Rect */ // Avoid create repeatly. var subPixelOptimizeOutputShape = {}; var _default = Path.extend({ type: 'rect', shape: { // 左上、右上、右下、左下角的半径依次为r1、r2、r3、r4 // r缩写为1 相当于 [1, 1, 1, 1] // r缩写为[1] 相当于 [1, 1, 1, 1] // r缩写为[1, 2] 相当于 [1, 2, 1, 2] // r缩写为[1, 2, 3] 相当于 [1, 2, 3, 2] r: 0, x: 0, y: 0, width: 0, height: 0 }, buildPath: function buildPath(ctx, shape) { var x; var y; var width; var height; if (this.subPixelOptimize) { subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style); x = subPixelOptimizeOutputShape.x; y = subPixelOptimizeOutputShape.y; width = subPixelOptimizeOutputShape.width; height = subPixelOptimizeOutputShape.height; subPixelOptimizeOutputShape.r = shape.r; shape = subPixelOptimizeOutputShape; } else { x = shape.x; y = shape.y; width = shape.width; height = shape.height; } if (!shape.r) { ctx.rect(x, y, width, height); } else { roundRectHelper.buildPath(ctx, shape); } ctx.closePath(); return; } }); module.exports = _default; /***/ }), /* 476 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * Sub-pixel optimize for canvas rendering, prevent from blur * when rendering a thin vertical/horizontal line. */ var round = Math.round; /** * Sub pixel optimize line for canvas * * @param {Object} outputShape The modification will be performed on `outputShape`. * `outputShape` and `inputShape` can be the same object. * `outputShape` object can be used repeatly, because all of * the `x1`, `x2`, `y1`, `y2` will be assigned in this method. * @param {Object} [inputShape] * @param {number} [inputShape.x1] * @param {number} [inputShape.y1] * @param {number} [inputShape.x2] * @param {number} [inputShape.y2] * @param {Object} [style] * @param {number} [style.lineWidth] If `null`/`undefined`/`0`, do not optimize. */ function subPixelOptimizeLine(outputShape, inputShape, style) { if (!inputShape) { return; } var x1 = inputShape.x1; var x2 = inputShape.x2; var y1 = inputShape.y1; var y2 = inputShape.y2; outputShape.x1 = x1; outputShape.x2 = x2; outputShape.y1 = y1; outputShape.y2 = y2; var lineWidth = style && style.lineWidth; if (!lineWidth) { return; } if (round(x1 * 2) === round(x2 * 2)) { outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true); } if (round(y1 * 2) === round(y2 * 2)) { outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true); } } /** * Sub pixel optimize rect for canvas * * @param {Object} outputShape The modification will be performed on `outputShape`. * `outputShape` and `inputShape` can be the same object. * `outputShape` object can be used repeatly, because all of * the `x`, `y`, `width`, `height` will be assigned in this method. * @param {Object} [inputShape] * @param {number} [inputShape.x] * @param {number} [inputShape.y] * @param {number} [inputShape.width] * @param {number} [inputShape.height] * @param {Object} [style] * @param {number} [style.lineWidth] If `null`/`undefined`/`0`, do not optimize. */ function subPixelOptimizeRect(outputShape, inputShape, style) { if (!inputShape) { return; } var originX = inputShape.x; var originY = inputShape.y; var originWidth = inputShape.width; var originHeight = inputShape.height; outputShape.x = originX; outputShape.y = originY; outputShape.width = originWidth; outputShape.height = originHeight; var lineWidth = style && style.lineWidth; if (!lineWidth) { return; } outputShape.x = subPixelOptimize(originX, lineWidth, true); outputShape.y = subPixelOptimize(originY, lineWidth, true); outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1); outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1); } /** * Sub pixel optimize for canvas * * @param {number} position Coordinate, such as x, y * @param {number} lineWidth If `null`/`undefined`/`0`, do not optimize. * @param {boolean=} positiveOrNegative Default false (negative). * @return {number} Optimized position. */ function subPixelOptimize(position, lineWidth, positiveOrNegative) { if (!lineWidth) { return position; } // Assure that (position + lineWidth / 2) is near integer edge, // otherwise line will be fuzzy in canvas. var doubledPosition = round(position * 2); return (doubledPosition + round(lineWidth)) % 2 === 0 ? doubledPosition / 2 : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2; } exports.subPixelOptimizeLine = subPixelOptimizeLine; exports.subPixelOptimizeRect = subPixelOptimizeRect; exports.subPixelOptimize = subPixelOptimize; /***/ }), /* 477 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Line.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); var _subPixelOptimize = __webpack_require__(/*! ../helper/subPixelOptimize */ 476); var subPixelOptimizeLine = _subPixelOptimize.subPixelOptimizeLine; /** * 直线 * @module zrender/graphic/shape/Line */ // Avoid create repeatly. var subPixelOptimizeOutputShape = {}; var _default = Path.extend({ type: 'line', shape: { // Start point x1: 0, y1: 0, // End point x2: 0, y2: 0, percent: 1 }, style: { stroke: '#000', fill: null }, buildPath: function buildPath(ctx, shape) { var x1; var y1; var x2; var y2; if (this.subPixelOptimize) { subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style); x1 = subPixelOptimizeOutputShape.x1; y1 = subPixelOptimizeOutputShape.y1; x2 = subPixelOptimizeOutputShape.x2; y2 = subPixelOptimizeOutputShape.y2; } else { x1 = shape.x1; y1 = shape.y1; x2 = shape.x2; y2 = shape.y2; } var percent = shape.percent; if (percent === 0) { return; } ctx.moveTo(x1, y1); if (percent < 1) { x2 = x1 * (1 - percent) + x2 * percent; y2 = y1 * (1 - percent) + y2 * percent; } ctx.lineTo(x2, y2); }, /** * Get point at percent * @param {number} percent * @return {Array.} */ pointAt: function pointAt(p) { var shape = this.shape; return [shape.x1 * (1 - p) + shape.x2 * p, shape.y1 * (1 - p) + shape.y2 * p]; } }); module.exports = _default; /***/ }), /* 478 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/BezierCurve.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); var vec2 = __webpack_require__(/*! ../../core/vector */ 405); var _curve = __webpack_require__(/*! ../../core/curve */ 455); var quadraticSubdivide = _curve.quadraticSubdivide; var cubicSubdivide = _curve.cubicSubdivide; var quadraticAt = _curve.quadraticAt; var cubicAt = _curve.cubicAt; var quadraticDerivativeAt = _curve.quadraticDerivativeAt; var cubicDerivativeAt = _curve.cubicDerivativeAt; /** * 贝塞尔曲线 * @module zrender/shape/BezierCurve */ var out = []; function someVectorAt(shape, t, isTangent) { var cpx2 = shape.cpx2; var cpy2 = shape.cpy2; if (cpx2 === null || cpy2 === null) { return [(isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t), (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)]; } else { return [(isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t), (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)]; } } var _default = Path.extend({ type: 'bezier-curve', shape: { x1: 0, y1: 0, x2: 0, y2: 0, cpx1: 0, cpy1: 0, // cpx2: 0, // cpy2: 0 // Curve show percent, for animating percent: 1 }, style: { stroke: '#000', fill: null }, buildPath: function buildPath(ctx, shape) { var x1 = shape.x1; var y1 = shape.y1; var x2 = shape.x2; var y2 = shape.y2; var cpx1 = shape.cpx1; var cpy1 = shape.cpy1; var cpx2 = shape.cpx2; var cpy2 = shape.cpy2; var percent = shape.percent; if (percent === 0) { return; } ctx.moveTo(x1, y1); if (cpx2 == null || cpy2 == null) { if (percent < 1) { quadraticSubdivide(x1, cpx1, x2, percent, out); cpx1 = out[1]; x2 = out[2]; quadraticSubdivide(y1, cpy1, y2, percent, out); cpy1 = out[1]; y2 = out[2]; } ctx.quadraticCurveTo(cpx1, cpy1, x2, y2); } else { if (percent < 1) { cubicSubdivide(x1, cpx1, cpx2, x2, percent, out); cpx1 = out[1]; cpx2 = out[2]; x2 = out[3]; cubicSubdivide(y1, cpy1, cpy2, y2, percent, out); cpy1 = out[1]; cpy2 = out[2]; y2 = out[3]; } ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2); } }, /** * Get point at percent * @param {number} t * @return {Array.} */ pointAt: function pointAt(t) { return someVectorAt(this.shape, t, false); }, /** * Get tangent at percent * @param {number} t * @return {Array.} */ tangentAt: function tangentAt(t) { var p = someVectorAt(this.shape, t, true); return vec2.normalize(p, p); } }); module.exports = _default; /***/ }), /* 479 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Arc.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); /** * 圆弧 * @module zrender/graphic/shape/Arc */ var _default = Path.extend({ type: 'arc', shape: { cx: 0, cy: 0, r: 0, startAngle: 0, endAngle: Math.PI * 2, clockwise: true }, style: { stroke: '#000', fill: null }, buildPath: function buildPath(ctx, shape) { var x = shape.cx; var y = shape.cy; var r = Math.max(shape.r, 0); var startAngle = shape.startAngle; var endAngle = shape.endAngle; var clockwise = shape.clockwise; var unitX = Math.cos(startAngle); var unitY = Math.sin(startAngle); ctx.moveTo(unitX * r + x, unitY * r + y); ctx.arc(x, y, r, startAngle, endAngle, !clockwise); } }); module.exports = _default; /***/ }), /* 480 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/CompoundPath.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ./Path */ 453); // CompoundPath to improve performance var _default = Path.extend({ type: 'compound', shape: { paths: null }, _updatePathDirty: function _updatePathDirty() { var dirtyPath = this.__dirtyPath; var paths = this.shape.paths; for (var i = 0; i < paths.length; i++) { // Mark as dirty if any subpath is dirty dirtyPath = dirtyPath || paths[i].__dirtyPath; } this.__dirtyPath = dirtyPath; this.__dirty = this.__dirty || dirtyPath; }, beforeBrush: function beforeBrush() { this._updatePathDirty(); var paths = this.shape.paths || []; var scale = this.getGlobalScale(); // Update path scale for (var i = 0; i < paths.length; i++) { if (!paths[i].path) { paths[i].createPathProxy(); } paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold); } }, buildPath: function buildPath(ctx, shape) { var paths = shape.paths || []; for (var i = 0; i < paths.length; i++) { paths[i].buildPath(ctx, paths[i].shape, true); } }, afterBrush: function afterBrush() { var paths = this.shape.paths || []; for (var i = 0; i < paths.length; i++) { paths[i].__dirtyPath = false; } }, getBoundingRect: function getBoundingRect() { this._updatePathDirty(); return Path.prototype.getBoundingRect.call(this); } }); module.exports = _default; /***/ }), /* 481 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/LinearGradient.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var zrUtil = __webpack_require__(/*! ../core/util */ 403); var Gradient = __webpack_require__(/*! ./Gradient */ 482); /** * x, y, x2, y2 are all percent from 0 to 1 * @param {number} [x=0] * @param {number} [y=0] * @param {number} [x2=1] * @param {number} [y2=0] * @param {Array.} colorStops * @param {boolean} [globalCoord=false] */ var LinearGradient = function LinearGradient(x, y, x2, y2, colorStops, globalCoord) { // Should do nothing more in this constructor. Because gradient can be // declard by `color: {type: 'linear', colorStops: ...}`, where // this constructor will not be called. this.x = x == null ? 0 : x; this.y = y == null ? 0 : y; this.x2 = x2 == null ? 1 : x2; this.y2 = y2 == null ? 0 : y2; // Can be cloned this.type = 'linear'; // If use global coord this.global = globalCoord || false; Gradient.call(this, colorStops); }; LinearGradient.prototype = { constructor: LinearGradient }; zrUtil.inherits(LinearGradient, Gradient); var _default = LinearGradient; module.exports = _default; /***/ }), /* 482 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/Gradient.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /** * @param {Array.} colorStops */ var Gradient = function Gradient(colorStops) { this.colorStops = colorStops || []; }; Gradient.prototype = { constructor: Gradient, addColorStop: function addColorStop(offset, color) { this.colorStops.push({ offset: offset, color: color }); } }; var _default = Gradient; module.exports = _default; /***/ }), /* 483 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/RadialGradient.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var zrUtil = __webpack_require__(/*! ../core/util */ 403); var Gradient = __webpack_require__(/*! ./Gradient */ 482); /** * x, y, r are all percent from 0 to 1 * @param {number} [x=0.5] * @param {number} [y=0.5] * @param {number} [r=0.5] * @param {Array.} [colorStops] * @param {boolean} [globalCoord=false] */ var RadialGradient = function RadialGradient(x, y, r, colorStops, globalCoord) { // Should do nothing more in this constructor. Because gradient can be // declard by `color: {type: 'radial', colorStops: ...}`, where // this constructor will not be called. this.x = x == null ? 0.5 : x; this.y = y == null ? 0.5 : y; this.r = r == null ? 0.5 : r; // Can be cloned this.type = 'radial'; // If use global coord this.global = globalCoord || false; Gradient.call(this, colorStops); }; RadialGradient.prototype = { constructor: RadialGradient }; zrUtil.inherits(RadialGradient, Gradient); var _default = RadialGradient; module.exports = _default; /***/ }), /* 484 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/IncrementalDisplayable.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _util = __webpack_require__(/*! ../core/util */ 403); var inherits = _util.inherits; var Displayble = __webpack_require__(/*! ./Displayable */ 435); var BoundingRect = __webpack_require__(/*! ../core/BoundingRect */ 425); /** * Displayable for incremental rendering. It will be rendered in a separate layer * IncrementalDisplay have two main methods. `clearDisplayables` and `addDisplayables` * addDisplayables will render the added displayables incremetally. * * It use a not clearFlag to tell the painter don't clear the layer if it's the first element. */ // TODO Style override ? function IncrementalDisplayble(opts) { Displayble.call(this, opts); this._displayables = []; this._temporaryDisplayables = []; this._cursor = 0; this.notClear = true; } IncrementalDisplayble.prototype.incremental = true; IncrementalDisplayble.prototype.clearDisplaybles = function () { this._displayables = []; this._temporaryDisplayables = []; this._cursor = 0; this.dirty(); this.notClear = false; }; IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) { if (notPersistent) { this._temporaryDisplayables.push(displayable); } else { this._displayables.push(displayable); } this.dirty(); }; IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) { notPersistent = notPersistent || false; for (var i = 0; i < displayables.length; i++) { this.addDisplayable(displayables[i], notPersistent); } }; IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) { for (var i = this._cursor; i < this._displayables.length; i++) { cb && cb(this._displayables[i]); } for (var i = 0; i < this._temporaryDisplayables.length; i++) { cb && cb(this._temporaryDisplayables[i]); } }; IncrementalDisplayble.prototype.update = function () { this.updateTransform(); for (var i = this._cursor; i < this._displayables.length; i++) { var displayable = this._displayables[i]; // PENDING displayable.parent = this; displayable.update(); displayable.parent = null; } for (var i = 0; i < this._temporaryDisplayables.length; i++) { var displayable = this._temporaryDisplayables[i]; // PENDING displayable.parent = this; displayable.update(); displayable.parent = null; } }; IncrementalDisplayble.prototype.brush = function (ctx, prevEl) { // Render persistant displayables. for (var i = this._cursor; i < this._displayables.length; i++) { var displayable = this._displayables[i]; displayable.beforeBrush && displayable.beforeBrush(ctx); displayable.brush(ctx, i === this._cursor ? null : this._displayables[i - 1]); displayable.afterBrush && displayable.afterBrush(ctx); } this._cursor = i; // Render temporary displayables. for (var i = 0; i < this._temporaryDisplayables.length; i++) { var displayable = this._temporaryDisplayables[i]; displayable.beforeBrush && displayable.beforeBrush(ctx); displayable.brush(ctx, i === 0 ? null : this._temporaryDisplayables[i - 1]); displayable.afterBrush && displayable.afterBrush(ctx); } this._temporaryDisplayables = []; this.notClear = true; }; var m = []; IncrementalDisplayble.prototype.getBoundingRect = function () { if (!this._rect) { var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity); for (var i = 0; i < this._displayables.length; i++) { var displayable = this._displayables[i]; var childRect = displayable.getBoundingRect().clone(); if (displayable.needLocalTransform()) { childRect.applyTransform(displayable.getLocalTransform(m)); } rect.union(childRect); } this._rect = rect; } return this._rect; }; IncrementalDisplayble.prototype.contain = function (x, y) { var localPos = this.transformCoordToLocal(x, y); var rect = this.getBoundingRect(); if (rect.contain(localPos[0], localPos[1])) { for (var i = 0; i < this._displayables.length; i++) { var displayable = this._displayables[i]; if (displayable.contain(x, y)) { return true; } } } return false; }; inherits(IncrementalDisplayble, Displayble); var _default = IncrementalDisplayble; module.exports = _default; /***/ }), /* 485 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/itemStyle.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var makeStyleMapper = __webpack_require__(/*! ./makeStyleMapper */ 448); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _getItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['textPosition'], ['textAlign']]); var _default = { getItemStyle: function getItemStyle(excludes, includes) { var style = _getItemStyle(this, excludes, includes); var lineDash = this.getBorderLineDash(); lineDash && (style.lineDash = lineDash); return style; }, getBorderLineDash: function getBorderLineDash() { var lineType = this.get('borderType'); return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [5, 5] : [1, 1]; } }; module.exports = _default; /***/ }), /* 486 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/Component.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Model = __webpack_require__(/*! ./Model */ 445); var componentUtil = __webpack_require__(/*! ../util/component */ 487); var _clazz = __webpack_require__(/*! ../util/clazz */ 446); var enableClassManagement = _clazz.enableClassManagement; var parseClassType = _clazz.parseClassType; var _model = __webpack_require__(/*! ../util/model */ 444); var makeInner = _model.makeInner; var layout = __webpack_require__(/*! ../util/layout */ 488); var boxLayoutMixin = __webpack_require__(/*! ./mixin/boxLayout */ 491); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Component model * * @module echarts/model/Component */ var inner = makeInner(); /** * @alias module:echarts/model/Component * @constructor * @param {Object} option * @param {module:echarts/model/Model} parentModel * @param {module:echarts/model/Model} ecModel */ var ComponentModel = Model.extend({ type: 'component', /** * @readOnly * @type {string} */ id: '', /** * Because simplified concept is probably better, series.name (or component.name) * has been having too many resposibilities: * (1) Generating id (which requires name in option should not be modified). * (2) As an index to mapping series when merging option or calling API (a name * can refer to more then one components, which is convinient is some case). * (3) Display. * @readOnly */ name: '', /** * @readOnly * @type {string} */ mainType: '', /** * @readOnly * @type {string} */ subType: '', /** * @readOnly * @type {number} */ componentIndex: 0, /** * @type {Object} * @protected */ defaultOption: null, /** * @type {module:echarts/model/Global} * @readOnly */ ecModel: null, /** * key: componentType * value: Component model list, can not be null. * @type {Object.>} * @readOnly */ dependentModels: [], /** * @type {string} * @readOnly */ uid: null, /** * Support merge layout params. * Only support 'box' now (left/right/top/bottom/width/height). * @type {string|Object} Object can be {ignoreSize: true} * @readOnly */ layoutMode: null, $constructor: function $constructor(option, parentModel, ecModel, extraOpt) { Model.call(this, option, parentModel, ecModel, extraOpt); this.uid = componentUtil.getUID('ec_cpt_model'); }, init: function init(option, parentModel, ecModel, extraOpt) { this.mergeDefaultAndTheme(option, ecModel); }, mergeDefaultAndTheme: function mergeDefaultAndTheme(option, ecModel) { var layoutMode = this.layoutMode; var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {}; var themeModel = ecModel.getTheme(); zrUtil.merge(option, themeModel.get(this.mainType)); zrUtil.merge(option, this.getDefaultOption()); if (layoutMode) { layout.mergeLayoutParam(option, inputPositionParams, layoutMode); } }, mergeOption: function mergeOption(option, extraOpt) { zrUtil.merge(this.option, option, true); var layoutMode = this.layoutMode; if (layoutMode) { layout.mergeLayoutParam(this.option, option, layoutMode); } }, // Hooker after init or mergeOption optionUpdated: function optionUpdated(newCptOption, isInit) {}, getDefaultOption: function getDefaultOption() { var fields = inner(this); if (!fields.defaultOption) { var optList = []; var Class = this.constructor; while (Class) { var opt = Class.prototype.defaultOption; opt && optList.push(opt); Class = Class.superClass; } var defaultOption = {}; for (var i = optList.length - 1; i >= 0; i--) { defaultOption = zrUtil.merge(defaultOption, optList[i], true); } fields.defaultOption = defaultOption; } return fields.defaultOption; }, getReferringComponents: function getReferringComponents(mainType) { return this.ecModel.queryComponents({ mainType: mainType, index: this.get(mainType + 'Index', true), id: this.get(mainType + 'Id', true) }); } }); // Reset ComponentModel.extend, add preConstruct. // clazzUtil.enableClassExtend( // ComponentModel, // function (option, parentModel, ecModel, extraOpt) { // // Set dependentModels, componentIndex, name, id, mainType, subType. // zrUtil.extend(this, extraOpt); // this.uid = componentUtil.getUID('componentModel'); // // this.setReadOnly([ // // 'type', 'id', 'uid', 'name', 'mainType', 'subType', // // 'dependentModels', 'componentIndex' // // ]); // } // ); // Add capability of registerClass, getClass, hasClass, registerSubTypeDefaulter and so on. enableClassManagement(ComponentModel, { registerWhenExtend: true }); componentUtil.enableSubTypeDefaulter(ComponentModel); // Add capability of ComponentModel.topologicalTravel. componentUtil.enableTopologicalTravel(ComponentModel, getDependencies); function getDependencies(componentType) { var deps = []; zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (Clazz) { deps = deps.concat(Clazz.prototype.dependencies || []); }); // Ensure main type. deps = zrUtil.map(deps, function (type) { return parseClassType(type).main; }); // Hack dataset for convenience. if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) { deps.unshift('dataset'); } return deps; } zrUtil.mixin(ComponentModel, boxLayoutMixin); var _default = ComponentModel; module.exports = _default; /***/ }), /* 487 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/component.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _clazz = __webpack_require__(/*! ./clazz */ 446); var parseClassType = _clazz.parseClassType; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var base = 0; /** * @public * @param {string} type * @return {string} */ function getUID(type) { // Considering the case of crossing js context, // use Math.random to make id as unique as possible. return [type || '', base++, Math.random().toFixed(5)].join('_'); } /** * @inner */ function enableSubTypeDefaulter(entity) { var subTypeDefaulters = {}; entity.registerSubTypeDefaulter = function (componentType, defaulter) { componentType = parseClassType(componentType); subTypeDefaulters[componentType.main] = defaulter; }; entity.determineSubType = function (componentType, option) { var type = option.type; if (!type) { var componentTypeMain = parseClassType(componentType).main; if (entity.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) { type = subTypeDefaulters[componentTypeMain](option); } } return type; }; return entity; } /** * Topological travel on Activity Network (Activity On Vertices). * Dependencies is defined in Model.prototype.dependencies, like ['xAxis', 'yAxis']. * * If 'xAxis' or 'yAxis' is absent in componentTypeList, just ignore it in topology. * * If there is circle dependencey, Error will be thrown. * */ function enableTopologicalTravel(entity, dependencyGetter) { /** * @public * @param {Array.} targetNameList Target Component type list. * Can be ['aa', 'bb', 'aa.xx'] * @param {Array.} fullNameList By which we can build dependency graph. * @param {Function} callback Params: componentType, dependencies. * @param {Object} context Scope of callback. */ entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) { if (!targetNameList.length) { return; } var result = makeDepndencyGraph(fullNameList); var graph = result.graph; var stack = result.noEntryList; var targetNameSet = {}; zrUtil.each(targetNameList, function (name) { targetNameSet[name] = true; }); while (stack.length) { var currComponentType = stack.pop(); var currVertex = graph[currComponentType]; var isInTargetNameSet = !!targetNameSet[currComponentType]; if (isInTargetNameSet) { callback.call(context, currComponentType, currVertex.originalDeps.slice()); delete targetNameSet[currComponentType]; } zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge); } zrUtil.each(targetNameSet, function () { throw new Error('Circle dependency may exists'); }); function removeEdge(succComponentType) { graph[succComponentType].entryCount--; if (graph[succComponentType].entryCount === 0) { stack.push(succComponentType); } } // Consider this case: legend depends on series, and we call // chart.setOption({series: [...]}), where only series is in option. // If we do not have 'removeEdgeAndAdd', legendModel.mergeOption will // not be called, but only sereis.mergeOption is called. Thus legend // have no chance to update its local record about series (like which // name of series is available in legend). function removeEdgeAndAdd(succComponentType) { targetNameSet[succComponentType] = true; removeEdge(succComponentType); } }; /** * DepndencyGraph: {Object} * key: conponentType, * value: { * successor: [conponentTypes...], * originalDeps: [conponentTypes...], * entryCount: {number} * } */ function makeDepndencyGraph(fullNameList) { var graph = {}; var noEntryList = []; zrUtil.each(fullNameList, function (name) { var thisItem = createDependencyGraphItem(graph, name); var originalDeps = thisItem.originalDeps = dependencyGetter(name); var availableDeps = getAvailableDependencies(originalDeps, fullNameList); thisItem.entryCount = availableDeps.length; if (thisItem.entryCount === 0) { noEntryList.push(name); } zrUtil.each(availableDeps, function (dependentName) { if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) { thisItem.predecessor.push(dependentName); } var thatItem = createDependencyGraphItem(graph, dependentName); if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) { thatItem.successor.push(name); } }); }); return { graph: graph, noEntryList: noEntryList }; } function createDependencyGraphItem(graph, name) { if (!graph[name]) { graph[name] = { predecessor: [], successor: [] }; } return graph[name]; } function getAvailableDependencies(originalDeps, fullNameList) { var availableDeps = []; zrUtil.each(originalDeps, function (dep) { zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep); }); return availableDeps; } } exports.getUID = getUID; exports.enableSubTypeDefaulter = enableSubTypeDefaulter; exports.enableTopologicalTravel = enableTopologicalTravel; /***/ }), /* 488 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/layout.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var _number = __webpack_require__(/*! ./number */ 489); var parsePercent = _number.parsePercent; var formatUtil = __webpack_require__(/*! ./format */ 490); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Layout helpers for each component positioning var each = zrUtil.each; /** * @public */ var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height']; /** * @public */ var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']]; function boxLayout(orient, group, gap, maxWidth, maxHeight) { var x = 0; var y = 0; if (maxWidth == null) { maxWidth = Infinity; } if (maxHeight == null) { maxHeight = Infinity; } var currentLineMaxSize = 0; group.eachChild(function (child, idx) { var position = child.position; var rect = child.getBoundingRect(); var nextChild = group.childAt(idx + 1); var nextChildRect = nextChild && nextChild.getBoundingRect(); var nextX; var nextY; if (orient === 'horizontal') { var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0); nextX = x + moveX; // Wrap when width exceeds maxWidth or meet a `newline` group // FIXME compare before adding gap? if (nextX > maxWidth || child.newline) { x = 0; nextX = moveX; y += currentLineMaxSize + gap; currentLineMaxSize = rect.height; } else { // FIXME: consider rect.y is not `0`? currentLineMaxSize = Math.max(currentLineMaxSize, rect.height); } } else { var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0); nextY = y + moveY; // Wrap when width exceeds maxHeight or meet a `newline` group if (nextY > maxHeight || child.newline) { x += currentLineMaxSize + gap; y = 0; nextY = moveY; currentLineMaxSize = rect.width; } else { currentLineMaxSize = Math.max(currentLineMaxSize, rect.width); } } if (child.newline) { return; } position[0] = x; position[1] = y; orient === 'horizontal' ? x = nextX + gap : y = nextY + gap; }); } /** * VBox or HBox layouting * @param {string} orient * @param {module:zrender/container/Group} group * @param {number} gap * @param {number} [width=Infinity] * @param {number} [height=Infinity] */ var box = boxLayout; /** * VBox layouting * @param {module:zrender/container/Group} group * @param {number} gap * @param {number} [width=Infinity] * @param {number} [height=Infinity] */ var vbox = zrUtil.curry(boxLayout, 'vertical'); /** * HBox layouting * @param {module:zrender/container/Group} group * @param {number} gap * @param {number} [width=Infinity] * @param {number} [height=Infinity] */ var hbox = zrUtil.curry(boxLayout, 'horizontal'); /** * If x or x2 is not specified or 'center' 'left' 'right', * the width would be as long as possible. * If y or y2 is not specified or 'middle' 'top' 'bottom', * the height would be as long as possible. * * @param {Object} positionInfo * @param {number|string} [positionInfo.x] * @param {number|string} [positionInfo.y] * @param {number|string} [positionInfo.x2] * @param {number|string} [positionInfo.y2] * @param {Object} containerRect {width, height} * @param {string|number} margin * @return {Object} {width, height} */ function getAvailableSize(positionInfo, containerRect, margin) { var containerWidth = containerRect.width; var containerHeight = containerRect.height; var x = parsePercent(positionInfo.x, containerWidth); var y = parsePercent(positionInfo.y, containerHeight); var x2 = parsePercent(positionInfo.x2, containerWidth); var y2 = parsePercent(positionInfo.y2, containerHeight); (isNaN(x) || isNaN(parseFloat(positionInfo.x))) && (x = 0); (isNaN(x2) || isNaN(parseFloat(positionInfo.x2))) && (x2 = containerWidth); (isNaN(y) || isNaN(parseFloat(positionInfo.y))) && (y = 0); (isNaN(y2) || isNaN(parseFloat(positionInfo.y2))) && (y2 = containerHeight); margin = formatUtil.normalizeCssArray(margin || 0); return { width: Math.max(x2 - x - margin[1] - margin[3], 0), height: Math.max(y2 - y - margin[0] - margin[2], 0) }; } /** * Parse position info. * * @param {Object} positionInfo * @param {number|string} [positionInfo.left] * @param {number|string} [positionInfo.top] * @param {number|string} [positionInfo.right] * @param {number|string} [positionInfo.bottom] * @param {number|string} [positionInfo.width] * @param {number|string} [positionInfo.height] * @param {number|string} [positionInfo.aspect] Aspect is width / height * @param {Object} containerRect * @param {string|number} [margin] * * @return {module:zrender/core/BoundingRect} */ function getLayoutRect(positionInfo, containerRect, margin) { margin = formatUtil.normalizeCssArray(margin || 0); var containerWidth = containerRect.width; var containerHeight = containerRect.height; var left = parsePercent(positionInfo.left, containerWidth); var top = parsePercent(positionInfo.top, containerHeight); var right = parsePercent(positionInfo.right, containerWidth); var bottom = parsePercent(positionInfo.bottom, containerHeight); var width = parsePercent(positionInfo.width, containerWidth); var height = parsePercent(positionInfo.height, containerHeight); var verticalMargin = margin[2] + margin[0]; var horizontalMargin = margin[1] + margin[3]; var aspect = positionInfo.aspect; // If width is not specified, calculate width from left and right if (isNaN(width)) { width = containerWidth - right - horizontalMargin - left; } if (isNaN(height)) { height = containerHeight - bottom - verticalMargin - top; } if (aspect != null) { // If width and height are not given // 1. Graph should not exceeds the container // 2. Aspect must be keeped // 3. Graph should take the space as more as possible // FIXME // Margin is not considered, because there is no case that both // using margin and aspect so far. if (isNaN(width) && isNaN(height)) { if (aspect > containerWidth / containerHeight) { width = containerWidth * 0.8; } else { height = containerHeight * 0.8; } } // Calculate width or height with given aspect if (isNaN(width)) { width = aspect * height; } if (isNaN(height)) { height = width / aspect; } } // If left is not specified, calculate left from right and width if (isNaN(left)) { left = containerWidth - right - width - horizontalMargin; } if (isNaN(top)) { top = containerHeight - bottom - height - verticalMargin; } // Align left and top switch (positionInfo.left || positionInfo.right) { case 'center': left = containerWidth / 2 - width / 2 - margin[3]; break; case 'right': left = containerWidth - width - horizontalMargin; break; } switch (positionInfo.top || positionInfo.bottom) { case 'middle': case 'center': top = containerHeight / 2 - height / 2 - margin[0]; break; case 'bottom': top = containerHeight - height - verticalMargin; break; } // If something is wrong and left, top, width, height are calculated as NaN left = left || 0; top = top || 0; if (isNaN(width)) { // Width may be NaN if only one value is given except width width = containerWidth - horizontalMargin - left - (right || 0); } if (isNaN(height)) { // Height may be NaN if only one value is given except height height = containerHeight - verticalMargin - top - (bottom || 0); } var rect = new BoundingRect(left + margin[3], top + margin[0], width, height); rect.margin = margin; return rect; } /** * Position a zr element in viewport * Group position is specified by either * {left, top}, {right, bottom} * If all properties exists, right and bottom will be igonred. * * Logic: * 1. Scale (against origin point in parent coord) * 2. Rotate (against origin point in parent coord) * 3. Traslate (with el.position by this method) * So this method only fixes the last step 'Traslate', which does not affect * scaling and rotating. * * If be called repeatly with the same input el, the same result will be gotten. * * @param {module:zrender/Element} el Should have `getBoundingRect` method. * @param {Object} positionInfo * @param {number|string} [positionInfo.left] * @param {number|string} [positionInfo.top] * @param {number|string} [positionInfo.right] * @param {number|string} [positionInfo.bottom] * @param {number|string} [positionInfo.width] Only for opt.boundingModel: 'raw' * @param {number|string} [positionInfo.height] Only for opt.boundingModel: 'raw' * @param {Object} containerRect * @param {string|number} margin * @param {Object} [opt] * @param {Array.} [opt.hv=[1,1]] Only horizontal or only vertical. * @param {Array.} [opt.boundingMode='all'] * Specify how to calculate boundingRect when locating. * 'all': Position the boundingRect that is transformed and uioned * both itself and its descendants. * This mode simplies confine the elements in the bounding * of their container (e.g., using 'right: 0'). * 'raw': Position the boundingRect that is not transformed and only itself. * This mode is useful when you want a element can overflow its * container. (Consider a rotated circle needs to be located in a corner.) * In this mode positionInfo.width/height can only be number. */ function positionElement(el, positionInfo, containerRect, margin, opt) { var h = !opt || !opt.hv || opt.hv[0]; var v = !opt || !opt.hv || opt.hv[1]; var boundingMode = opt && opt.boundingMode || 'all'; if (!h && !v) { return; } var rect; if (boundingMode === 'raw') { rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect(); } else { rect = el.getBoundingRect(); if (el.needLocalTransform()) { var transform = el.getLocalTransform(); // Notice: raw rect may be inner object of el, // which should not be modified. rect = rect.clone(); rect.applyTransform(transform); } } // The real width and height can not be specified but calculated by the given el. positionInfo = getLayoutRect(zrUtil.defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin); // Because 'tranlate' is the last step in transform // (see zrender/core/Transformable#getLocalTransform), // we can just only modify el.position to get final result. var elPos = el.position; var dx = h ? positionInfo.x - rect.x : 0; var dy = v ? positionInfo.y - rect.y : 0; el.attr('position', boundingMode === 'raw' ? [dx, dy] : [elPos[0] + dx, elPos[1] + dy]); } /** * @param {Object} option Contains some of the properties in HV_NAMES. * @param {number} hvIdx 0: horizontal; 1: vertical. */ function sizeCalculable(option, hvIdx) { return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null; } /** * Consider Case: * When defulat option has {left: 0, width: 100}, and we set {right: 0} * through setOption or media query, using normal zrUtil.merge will cause * {right: 0} does not take effect. * * @example * ComponentModel.extend({ * init: function () { * ... * var inputPositionParams = layout.getLayoutParams(option); * this.mergeOption(inputPositionParams); * }, * mergeOption: function (newOption) { * newOption && zrUtil.merge(thisOption, newOption, true); * layout.mergeLayoutParam(thisOption, newOption); * } * }); * * @param {Object} targetOption * @param {Object} newOption * @param {Object|string} [opt] * @param {boolean|Array.} [opt.ignoreSize=false] Used for the components * that width (or height) should not be calculated by left and right (or top and bottom). */ function mergeLayoutParam(targetOption, newOption, opt) { !zrUtil.isObject(opt) && (opt = {}); var ignoreSize = opt.ignoreSize; !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]); var hResult = merge(HV_NAMES[0], 0); var vResult = merge(HV_NAMES[1], 1); copy(HV_NAMES[0], targetOption, hResult); copy(HV_NAMES[1], targetOption, vResult); function merge(names, hvIdx) { var newParams = {}; var newValueCount = 0; var merged = {}; var mergedValueCount = 0; var enoughParamNumber = 2; each(names, function (name) { merged[name] = targetOption[name]; }); each(names, function (name) { // Consider case: newOption.width is null, which is // set by user for removing width setting. hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]); hasValue(newParams, name) && newValueCount++; hasValue(merged, name) && mergedValueCount++; }); if (ignoreSize[hvIdx]) { // Only one of left/right is premitted to exist. if (hasValue(newOption, names[1])) { merged[names[2]] = null; } else if (hasValue(newOption, names[2])) { merged[names[1]] = null; } return merged; } // Case: newOption: {width: ..., right: ...}, // or targetOption: {right: ...} and newOption: {width: ...}, // There is no conflict when merged only has params count // little than enoughParamNumber. if (mergedValueCount === enoughParamNumber || !newValueCount) { return merged; } // Case: newOption: {width: ..., right: ...}, // Than we can make sure user only want those two, and ignore // all origin params in targetOption. else if (newValueCount >= enoughParamNumber) { return newParams; } else { // Chose another param from targetOption by priority. for (var i = 0; i < names.length; i++) { var name = names[i]; if (!hasProp(newParams, name) && hasProp(targetOption, name)) { newParams[name] = targetOption[name]; break; } } return newParams; } } function hasProp(obj, name) { return obj.hasOwnProperty(name); } function hasValue(obj, name) { return obj[name] != null && obj[name] !== 'auto'; } function copy(names, target, source) { each(names, function (name) { target[name] = source[name]; }); } } /** * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object. * @param {Object} source * @return {Object} Result contains those props. */ function getLayoutParams(source) { return copyLayoutParams({}, source); } /** * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object. * @param {Object} source * @return {Object} Result contains those props. */ function copyLayoutParams(target, source) { source && target && each(LOCATION_PARAMS, function (name) { source.hasOwnProperty(name) && (target[name] = source[name]); }); return target; } exports.LOCATION_PARAMS = LOCATION_PARAMS; exports.HV_NAMES = HV_NAMES; exports.box = box; exports.vbox = vbox; exports.hbox = hbox; exports.getAvailableSize = getAvailableSize; exports.getLayoutRect = getLayoutRect; exports.positionElement = positionElement; exports.sizeCalculable = sizeCalculable; exports.mergeLayoutParam = mergeLayoutParam; exports.getLayoutParams = getLayoutParams; exports.copyLayoutParams = copyLayoutParams; /***/ }), /* 489 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/number.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * A third-party license is embeded for some of the code in this file: * The method "quantile" was copied from "d3.js". * (See more details in the comment of the method below.) * The use of the source code of this file is also subject to the terms * and consitions of the license of "d3.js" (BSD-3Clause, see * ). */ var RADIAN_EPSILON = 1e-4; function _trim(str) { return str.replace(/^\s+|\s+$/g, ''); } /** * Linear mapping a value from domain to range * @memberOf module:echarts/util/number * @param {(number|Array.)} val * @param {Array.} domain Domain extent domain[0] can be bigger than domain[1] * @param {Array.} range Range extent range[0] can be bigger than range[1] * @param {boolean} clamp * @return {(number|Array.} */ function linearMap(val, domain, range, clamp) { var subDomain = domain[1] - domain[0]; var subRange = range[1] - range[0]; if (subDomain === 0) { return subRange === 0 ? range[0] : (range[0] + range[1]) / 2; } // Avoid accuracy problem in edge, such as // 146.39 - 62.83 === 83.55999999999999. // See echarts/test/ut/spec/util/number.js#linearMap#accuracyError // It is a little verbose for efficiency considering this method // is a hotspot. if (clamp) { if (subDomain > 0) { if (val <= domain[0]) { return range[0]; } else if (val >= domain[1]) { return range[1]; } } else { if (val >= domain[0]) { return range[0]; } else if (val <= domain[1]) { return range[1]; } } } else { if (val === domain[0]) { return range[0]; } if (val === domain[1]) { return range[1]; } } return (val - domain[0]) / subDomain * subRange + range[0]; } /** * Convert a percent string to absolute number. * Returns NaN if percent is not a valid string or number * @memberOf module:echarts/util/number * @param {string|number} percent * @param {number} all * @return {number} */ function parsePercent(percent, all) { switch (percent) { case 'center': case 'middle': percent = '50%'; break; case 'left': case 'top': percent = '0%'; break; case 'right': case 'bottom': percent = '100%'; break; } if (typeof percent === 'string') { if (_trim(percent).match(/%$/)) { return parseFloat(percent) / 100 * all; } return parseFloat(percent); } return percent == null ? NaN : +percent; } /** * (1) Fix rounding error of float numbers. * (2) Support return string to avoid scientific notation like '3.5e-7'. * * @param {number} x * @param {number} [precision] * @param {boolean} [returnStr] * @return {number|string} */ function round(x, precision, returnStr) { if (precision == null) { precision = 10; } // Avoid range error precision = Math.min(Math.max(0, precision), 20); x = (+x).toFixed(precision); return returnStr ? x : +x; } /** * asc sort arr. * The input arr will be modified. * * @param {Array} arr * @return {Array} The input arr. */ function asc(arr) { arr.sort(function (a, b) { return a - b; }); return arr; } /** * Get precision * @param {number} val */ function getPrecision(val) { val = +val; if (isNaN(val)) { return 0; } // It is much faster than methods converting number to string as follows // var tmp = val.toString(); // return tmp.length - 1 - tmp.indexOf('.'); // especially when precision is low var e = 1; var count = 0; while (Math.round(val * e) / e !== val) { e *= 10; count++; } return count; } /** * @param {string|number} val * @return {number} */ function getPrecisionSafe(val) { var str = val.toString(); // Consider scientific notation: '3.4e-12' '3.4e+12' var eIndex = str.indexOf('e'); if (eIndex > 0) { var precision = +str.slice(eIndex + 1); return precision < 0 ? -precision : 0; } else { var dotIndex = str.indexOf('.'); return dotIndex < 0 ? 0 : str.length - 1 - dotIndex; } } /** * Minimal dicernible data precisioin according to a single pixel. * * @param {Array.} dataExtent * @param {Array.} pixelExtent * @return {number} precision */ function getPixelPrecision(dataExtent, pixelExtent) { var log = Math.log; var LN10 = Math.LN10; var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10); var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10); // toFixed() digits argument must be between 0 and 20. var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20); return !isFinite(precision) ? 20 : precision; } /** * Get a data of given precision, assuring the sum of percentages * in valueList is 1. * The largest remainer method is used. * https://en.wikipedia.org/wiki/Largest_remainder_method * * @param {Array.} valueList a list of all data * @param {number} idx index of the data to be processed in valueList * @param {number} precision integer number showing digits of precision * @return {number} percent ranging from 0 to 100 */ function getPercentWithPrecision(valueList, idx, precision) { if (!valueList[idx]) { return 0; } var sum = zrUtil.reduce(valueList, function (acc, val) { return acc + (isNaN(val) ? 0 : val); }, 0); if (sum === 0) { return 0; } var digits = Math.pow(10, precision); var votesPerQuota = zrUtil.map(valueList, function (val) { return (isNaN(val) ? 0 : val) / sum * digits * 100; }); var targetSeats = digits * 100; var seats = zrUtil.map(votesPerQuota, function (votes) { // Assign automatic seats. return Math.floor(votes); }); var currentSum = zrUtil.reduce(seats, function (acc, val) { return acc + val; }, 0); var remainder = zrUtil.map(votesPerQuota, function (votes, idx) { return votes - seats[idx]; }); // Has remainding votes. while (currentSum < targetSeats) { // Find next largest remainder. var max = Number.NEGATIVE_INFINITY; var maxId = null; for (var i = 0, len = remainder.length; i < len; ++i) { if (remainder[i] > max) { max = remainder[i]; maxId = i; } } // Add a vote to max remainder. ++seats[maxId]; remainder[maxId] = 0; ++currentSum; } return seats[idx] / digits; } // Number.MAX_SAFE_INTEGER, ie do not support. var MAX_SAFE_INTEGER = 9007199254740991; /** * To 0 - 2 * PI, considering negative radian. * @param {number} radian * @return {number} */ function remRadian(radian) { var pi2 = Math.PI * 2; return (radian % pi2 + pi2) % pi2; } /** * @param {type} radian * @return {boolean} */ function isRadianAroundZero(val) { return val > -RADIAN_EPSILON && val < RADIAN_EPSILON; } /* eslint-disable */ var TIME_REG = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/; // jshint ignore:line /* eslint-enable */ /** * @param {string|Date|number} value These values can be accepted: * + An instance of Date, represent a time in its own time zone. * + Or string in a subset of ISO 8601, only including: * + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06', * + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123', * + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00', * all of which will be treated as local time if time zone is not specified * (see ). * + Or other string format, including (all of which will be treated as loacal time): * '2012', '2012-3-1', '2012/3/1', '2012/03/01', * '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123' * + a timestamp, which represent a time in UTC. * @return {Date} date */ function parseDate(value) { if (value instanceof Date) { return value; } else if (typeof value === 'string') { // Different browsers parse date in different way, so we parse it manually. // Some other issues: // new Date('1970-01-01') is UTC, // new Date('1970/01/01') and new Date('1970-1-01') is local. // See issue #3623 var match = TIME_REG.exec(value); if (!match) { // return Invalid Date. return new Date(NaN); } // Use local time when no timezone offset specifed. if (!match[8]) { // match[n] can only be string or undefined. // But take care of '12' + 1 => '121'. return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0); } // Timezoneoffset of Javascript Date has considered DST (Daylight Saving Time, // https://tc39.github.io/ecma262/#sec-daylight-saving-time-adjustment). // For example, system timezone is set as "Time Zone: America/Toronto", // then these code will get different result: // `new Date(1478411999999).getTimezoneOffset(); // get 240` // `new Date(1478412000000).getTimezoneOffset(); // get 300` // So we should not use `new Date`, but use `Date.UTC`. else { var hour = +match[4] || 0; if (match[8].toUpperCase() !== 'Z') { hour -= match[8].slice(0, 3); } return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0)); } } else if (value == null) { return new Date(NaN); } return new Date(Math.round(value)); } /** * Quantity of a number. e.g. 0.1, 1, 10, 100 * * @param {number} val * @return {number} */ function quantity(val) { return Math.pow(10, quantityExponent(val)); } /** * Exponent of the quantity of a number * e.g., 1234 equals to 1.234*10^3, so quantityExponent(1234) is 3 * * @param {number} val non-negative value * @return {number} */ function quantityExponent(val) { if (val === 0) { return 0; } var exp = Math.floor(Math.log(val) / Math.LN10); /** * exp is expected to be the rounded-down result of the base-10 log of val. * But due to the precision loss with Math.log(val), we need to restore it * using 10^exp to make sure we can get val back from exp. #11249 */ if (val / Math.pow(10, exp) >= 10) { exp++; } return exp; } /** * find a “nice” number approximately equal to x. Round the number if round = true, * take ceiling if round = false. The primary observation is that the “nicest” * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers. * * See "Nice Numbers for Graph Labels" of Graphic Gems. * * @param {number} val Non-negative value. * @param {boolean} round * @return {number} */ function nice(val, round) { var exponent = quantityExponent(val); var exp10 = Math.pow(10, exponent); var f = val / exp10; // 1 <= f < 10 var nf; if (round) { if (f < 1.5) { nf = 1; } else if (f < 2.5) { nf = 2; } else if (f < 4) { nf = 3; } else if (f < 7) { nf = 5; } else { nf = 10; } } else { if (f < 1) { nf = 1; } else if (f < 2) { nf = 2; } else if (f < 3) { nf = 3; } else if (f < 5) { nf = 5; } else { nf = 10; } } val = nf * exp10; // Fix 3 * 0.1 === 0.30000000000000004 issue (see IEEE 754). // 20 is the uppper bound of toFixed. return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val; } /** * This code was copied from "d3.js" * . * See the license statement at the head of this file. * @param {Array.} ascArr */ function quantile(ascArr, p) { var H = (ascArr.length - 1) * p + 1; var h = Math.floor(H); var v = +ascArr[h - 1]; var e = H - h; return e ? v + e * (ascArr[h] - v) : v; } /** * Order intervals asc, and split them when overlap. * expect(numberUtil.reformIntervals([ * {interval: [18, 62], close: [1, 1]}, * {interval: [-Infinity, -70], close: [0, 0]}, * {interval: [-70, -26], close: [1, 1]}, * {interval: [-26, 18], close: [1, 1]}, * {interval: [62, 150], close: [1, 1]}, * {interval: [106, 150], close: [1, 1]}, * {interval: [150, Infinity], close: [0, 0]} * ])).toEqual([ * {interval: [-Infinity, -70], close: [0, 0]}, * {interval: [-70, -26], close: [1, 1]}, * {interval: [-26, 18], close: [0, 1]}, * {interval: [18, 62], close: [0, 1]}, * {interval: [62, 150], close: [0, 1]}, * {interval: [150, Infinity], close: [0, 0]} * ]); * @param {Array.} list, where `close` mean open or close * of the interval, and Infinity can be used. * @return {Array.} The origin list, which has been reformed. */ function reformIntervals(list) { list.sort(function (a, b) { return littleThan(a, b, 0) ? -1 : 1; }); var curr = -Infinity; var currClose = 1; for (var i = 0; i < list.length;) { var interval = list[i].interval; var close = list[i].close; for (var lg = 0; lg < 2; lg++) { if (interval[lg] <= curr) { interval[lg] = curr; close[lg] = !lg ? 1 - currClose : 1; } curr = interval[lg]; currClose = close[lg]; } if (interval[0] === interval[1] && close[0] * close[1] !== 1) { list.splice(i, 1); } else { i++; } } return list; function littleThan(a, b, lg) { return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1)); } } /** * parseFloat NaNs numeric-cast false positives (null|true|false|"") * ...but misinterprets leading-number strings, particularly hex literals ("0x...") * subtraction forces infinities to NaN * * @param {*} v * @return {boolean} */ function isNumeric(v) { return v - parseFloat(v) >= 0; } exports.linearMap = linearMap; exports.parsePercent = parsePercent; exports.round = round; exports.asc = asc; exports.getPrecision = getPrecision; exports.getPrecisionSafe = getPrecisionSafe; exports.getPixelPrecision = getPixelPrecision; exports.getPercentWithPrecision = getPercentWithPrecision; exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER; exports.remRadian = remRadian; exports.isRadianAroundZero = isRadianAroundZero; exports.parseDate = parseDate; exports.quantity = quantity; exports.quantityExponent = quantityExponent; exports.nice = nice; exports.quantile = quantile; exports.reformIntervals = reformIntervals; exports.isNumeric = isNumeric; /***/ }), /* 490 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/format.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); var numberUtil = __webpack_require__(/*! ./number */ 489); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // import Text from 'zrender/src/graphic/Text'; /** * add commas after every three numbers * @param {string|number} x * @return {string} */ function addCommas(x) { if (isNaN(x)) { return '-'; } x = (x + '').split('.'); return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + (x.length > 1 ? '.' + x[1] : ''); } /** * @param {string} str * @param {boolean} [upperCaseFirst=false] * @return {string} str */ function toCamelCase(str, upperCaseFirst) { str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) { return group1.toUpperCase(); }); if (upperCaseFirst && str) { str = str.charAt(0).toUpperCase() + str.slice(1); } return str; } var normalizeCssArray = zrUtil.normalizeCssArray; var replaceReg = /([&<>"'])/g; var replaceMap = { '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''' }; function encodeHTML(source) { return source == null ? '' : (source + '').replace(replaceReg, function (str, c) { return replaceMap[c]; }); } var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; var wrapVar = function wrapVar(varName, seriesIdx) { return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}'; }; /** * Template formatter * @param {string} tpl * @param {Array.|Object} paramsList * @param {boolean} [encode=false] * @return {string} */ function formatTpl(tpl, paramsList, encode) { if (!zrUtil.isArray(paramsList)) { paramsList = [paramsList]; } var seriesLen = paramsList.length; if (!seriesLen) { return ''; } var $vars = paramsList[0].$vars || []; for (var i = 0; i < $vars.length; i++) { var alias = TPL_VAR_ALIAS[i]; tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0)); } for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) { for (var k = 0; k < $vars.length; k++) { var val = paramsList[seriesIdx][$vars[k]]; tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val); } } return tpl; } /** * simple Template formatter * * @param {string} tpl * @param {Object} param * @param {boolean} [encode=false] * @return {string} */ function formatTplSimple(tpl, param, encode) { zrUtil.each(param, function (value, key) { tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value); }); return tpl; } /** * @param {Object|string} [opt] If string, means color. * @param {string} [opt.color] * @param {string} [opt.extraCssText] * @param {string} [opt.type='item'] 'item' or 'subItem' * @param {string} [opt.renderMode='html'] render mode of tooltip, 'html' or 'richText' * @param {string} [opt.markerId='X'] id name for marker. If only one marker is in a rich text, this can be omitted. * @return {string} */ function getTooltipMarker(opt, extraCssText) { opt = zrUtil.isString(opt) ? { color: opt, extraCssText: extraCssText } : opt || {}; var color = opt.color; var type = opt.type; var extraCssText = opt.extraCssText; var renderMode = opt.renderMode || 'html'; var markerId = opt.markerId || 'X'; if (!color) { return ''; } if (renderMode === 'html') { return type === 'subItem' ? '' : ''; } else { // Space for rich element marker return { renderMode: renderMode, content: '{marker' + markerId + '|} ', style: { color: color } }; } } function pad(str, len) { str += ''; return '0000'.substr(0, len - str.length) + str; } /** * ISO Date format * @param {string} tpl * @param {number} value * @param {boolean} [isUTC=false] Default in local time. * see `module:echarts/scale/Time` * and `module:echarts/util/number#parseDate`. * @inner */ function formatTime(tpl, value, isUTC) { if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') { tpl = 'MM-dd\nyyyy'; } var date = numberUtil.parseDate(value); var utc = isUTC ? 'UTC' : ''; var y = date['get' + utc + 'FullYear'](); var M = date['get' + utc + 'Month']() + 1; var d = date['get' + utc + 'Date'](); var h = date['get' + utc + 'Hours'](); var m = date['get' + utc + 'Minutes'](); var s = date['get' + utc + 'Seconds'](); var S = date['get' + utc + 'Milliseconds'](); tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100).replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3)); return tpl; } /** * Capital first * @param {string} str * @return {string} */ function capitalFirst(str) { return str ? str.charAt(0).toUpperCase() + str.substr(1) : str; } var truncateText = textContain.truncateText; /** * @public * @param {Object} opt * @param {string} opt.text * @param {string} opt.font * @param {string} [opt.textAlign='left'] * @param {string} [opt.textVerticalAlign='top'] * @param {Array.} [opt.textPadding] * @param {number} [opt.textLineHeight] * @param {Object} [opt.rich] * @param {Object} [opt.truncate] * @return {Object} {x, y, width, height, lineHeight} */ function getTextBoundingRect(opt) { return textContain.getBoundingRect(opt.text, opt.font, opt.textAlign, opt.textVerticalAlign, opt.textPadding, opt.textLineHeight, opt.rich, opt.truncate); } /** * @deprecated * the `textLineHeight` was added later. * For backward compatiblility, put it as the last parameter. * But deprecated this interface. Please use `getTextBoundingRect` instead. */ function getTextRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate, textLineHeight) { return textContain.getBoundingRect(text, font, textAlign, textVerticalAlign, textPadding, textLineHeight, rich, truncate); } /** * open new tab * @param {string} link url * @param {string} target blank or self */ function windowOpen(link, target) { if (target === '_blank' || target === 'blank') { var blank = window.open(); blank.opener = null; blank.location = link; } else { window.open(link, target); } } exports.addCommas = addCommas; exports.toCamelCase = toCamelCase; exports.normalizeCssArray = normalizeCssArray; exports.encodeHTML = encodeHTML; exports.formatTpl = formatTpl; exports.formatTplSimple = formatTplSimple; exports.getTooltipMarker = getTooltipMarker; exports.formatTime = formatTime; exports.capitalFirst = capitalFirst; exports.truncateText = truncateText; exports.getTextBoundingRect = getTextBoundingRect; exports.getTextRect = getTextRect; exports.windowOpen = windowOpen; /***/ }), /* 491 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/boxLayout.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = { getBoxLayoutParams: function getBoxLayoutParams() { return { left: this.get('left'), top: this.get('top'), right: this.get('right'), bottom: this.get('bottom'), width: this.get('width'), height: this.get('height') }; } }; module.exports = _default; /***/ }), /* 492 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/globalDefault.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var platform = ''; // Navigator not exists in node if (typeof navigator !== 'undefined') { platform = navigator.platform || ''; } var _default = { // backgroundColor: 'rgba(0,0,0,0)', // https://dribbble.com/shots/1065960-Infographic-Pie-chart-visualization // color: ['#5793f3', '#d14a61', '#fd9c35', '#675bba', '#fec42c', '#dd4444', '#d4df5a', '#cd4870'], // Light colors: // color: ['#bcd3bb', '#e88f70', '#edc1a5', '#9dc5c8', '#e1e8c8', '#7b7c68', '#e5b5b5', '#f0b489', '#928ea8', '#bda29a'], // color: ['#cc5664', '#9bd6ec', '#ea946e', '#8acaaa', '#f1ec64', '#ee8686', '#a48dc1', '#5da6bc', '#b9dcae'], // Dark colors: color: ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570', '#c4ccd3'], gradientColor: ['#f6efa6', '#d88273', '#bf444c'], // If xAxis and yAxis declared, grid is created by default. // grid: {}, textStyle: { // color: '#000', // decoration: 'none', // PENDING fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif', // fontFamily: 'Arial, Verdana, sans-serif', fontSize: 12, fontStyle: 'normal', fontWeight: 'normal' }, // http://blogs.adobe.com/webplatform/2014/02/24/using-blend-modes-in-html-canvas/ // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation // Default is source-over blendMode: null, animation: 'auto', animationDuration: 1000, animationDurationUpdate: 300, animationEasing: 'exponentialOut', animationEasingUpdate: 'cubicOut', animationThreshold: 2000, // Configuration for progressive/incremental rendering progressiveThreshold: 3000, progressive: 400, // Threshold of if use single hover layer to optimize. // It is recommended that `hoverLayerThreshold` is equivalent to or less than // `progressiveThreshold`, otherwise hover will cause restart of progressive, // which is unexpected. // see example . hoverLayerThreshold: 3000, // See: module:echarts/scale/Time useUTC: false }; module.exports = _default; /***/ }), /* 493 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/colorPalette.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; var normalizeToArray = _model.normalizeToArray; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = makeInner(); function getNearestColorPalette(colors, requestColorNum) { var paletteNum = colors.length; // TODO colors must be in order for (var i = 0; i < paletteNum; i++) { if (colors[i].length > requestColorNum) { return colors[i]; } } return colors[paletteNum - 1]; } var _default = { clearColorPalette: function clearColorPalette() { inner(this).colorIdx = 0; inner(this).colorNameMap = {}; }, /** * @param {string} name MUST NOT be null/undefined. Otherwise call this function * twise with the same parameters will get different result. * @param {Object} [scope=this] * @param {Object} [requestColorNum] * @return {string} color string. */ getColorFromPalette: function getColorFromPalette(name, scope, requestColorNum) { scope = scope || this; var scopeFields = inner(scope); var colorIdx = scopeFields.colorIdx || 0; var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {}; // Use `hasOwnProperty` to avoid conflict with Object.prototype. if (colorNameMap.hasOwnProperty(name)) { return colorNameMap[name]; } var defaultColorPalette = normalizeToArray(this.get('color', true)); var layeredColorPalette = this.get('colorLayer', true); var colorPalette = requestColorNum == null || !layeredColorPalette ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum); // In case can't find in layered color palette. colorPalette = colorPalette || defaultColorPalette; if (!colorPalette || !colorPalette.length) { return; } var color = colorPalette[colorIdx]; if (name) { colorNameMap[name] = color; } scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length; return color; } }; module.exports = _default; /***/ }), /* 494 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/helper/sourceHelper.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; var getDataItemValue = _model.getDataItemValue; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var each = _util.each; var map = _util.map; var isArray = _util.isArray; var isString = _util.isString; var isObject = _util.isObject; var isTypedArray = _util.isTypedArray; var isArrayLike = _util.isArrayLike; var extend = _util.extend; var assert = _util.assert; var Source = __webpack_require__(/*! ../Source */ 495); var _sourceType = __webpack_require__(/*! ./sourceType */ 496); var SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL; var SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS; var SOURCE_FORMAT_OBJECT_ROWS = _sourceType.SOURCE_FORMAT_OBJECT_ROWS; var SOURCE_FORMAT_KEYED_COLUMNS = _sourceType.SOURCE_FORMAT_KEYED_COLUMNS; var SOURCE_FORMAT_UNKNOWN = _sourceType.SOURCE_FORMAT_UNKNOWN; var SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY; var SERIES_LAYOUT_BY_ROW = _sourceType.SERIES_LAYOUT_BY_ROW; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // The result of `guessOrdinal`. var BE_ORDINAL = { Must: 1, // Encounter string but not '-' and not number-like. Might: 2, // Encounter string but number-like. Not: 3 // Other cases }; var inner = makeInner(); /** * @see {module:echarts/data/Source} * @param {module:echarts/component/dataset/DatasetModel} datasetModel * @return {string} sourceFormat */ function detectSourceFormat(datasetModel) { var data = datasetModel.option.source; var sourceFormat = SOURCE_FORMAT_UNKNOWN; if (isTypedArray(data)) { sourceFormat = SOURCE_FORMAT_TYPED_ARRAY; } else if (isArray(data)) { // FIXME Whether tolerate null in top level array? if (data.length === 0) { sourceFormat = SOURCE_FORMAT_ARRAY_ROWS; } for (var i = 0, len = data.length; i < len; i++) { var item = data[i]; if (item == null) { continue; } else if (isArray(item)) { sourceFormat = SOURCE_FORMAT_ARRAY_ROWS; break; } else if (isObject(item)) { sourceFormat = SOURCE_FORMAT_OBJECT_ROWS; break; } } } else if (isObject(data)) { for (var key in data) { if (data.hasOwnProperty(key) && isArrayLike(data[key])) { sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS; break; } } } else if (data != null) { throw new Error('Invalid data'); } inner(datasetModel).sourceFormat = sourceFormat; } /** * [Scenarios]: * (1) Provide source data directly: * series: { * encode: {...}, * dimensions: [...] * seriesLayoutBy: 'row', * data: [[...]] * } * (2) Refer to datasetModel. * series: [{ * encode: {...} * // Ignore datasetIndex means `datasetIndex: 0` * // and the dimensions defination in dataset is used * }, { * encode: {...}, * seriesLayoutBy: 'column', * datasetIndex: 1 * }] * * Get data from series itself or datset. * @return {module:echarts/data/Source} source */ function getSource(seriesModel) { return inner(seriesModel).source; } /** * MUST be called before mergeOption of all series. * @param {module:echarts/model/Global} ecModel */ function resetSourceDefaulter(ecModel) { // `datasetMap` is used to make default encode. inner(ecModel).datasetMap = createHashMap(); } /** * [Caution]: * MUST be called after series option merged and * before "series.getInitailData()" called. * * [The rule of making default encode]: * Category axis (if exists) alway map to the first dimension. * Each other axis occupies a subsequent dimension. * * [Why make default encode]: * Simplify the typing of encode in option, avoiding the case like that: * series: [{encode: {x: 0, y: 1}}, {encode: {x: 0, y: 2}}, {encode: {x: 0, y: 3}}], * where the "y" have to be manually typed as "1, 2, 3, ...". * * @param {module:echarts/model/Series} seriesModel */ function prepareSource(seriesModel) { var seriesOption = seriesModel.option; var data = seriesOption.data; var sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL; var fromDataset = false; var seriesLayoutBy = seriesOption.seriesLayoutBy; var sourceHeader = seriesOption.sourceHeader; var dimensionsDefine = seriesOption.dimensions; var datasetModel = getDatasetModel(seriesModel); if (datasetModel) { var datasetOption = datasetModel.option; data = datasetOption.source; sourceFormat = inner(datasetModel).sourceFormat; fromDataset = true; // These settings from series has higher priority. seriesLayoutBy = seriesLayoutBy || datasetOption.seriesLayoutBy; sourceHeader == null && (sourceHeader = datasetOption.sourceHeader); dimensionsDefine = dimensionsDefine || datasetOption.dimensions; } var completeResult = completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine); inner(seriesModel).source = new Source({ data: data, fromDataset: fromDataset, seriesLayoutBy: seriesLayoutBy, sourceFormat: sourceFormat, dimensionsDefine: completeResult.dimensionsDefine, startIndex: completeResult.startIndex, dimensionsDetectCount: completeResult.dimensionsDetectCount, // Note: dataset option does not have `encode`. encodeDefine: seriesOption.encode }); } // return {startIndex, dimensionsDefine, dimensionsCount} function completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) { if (!data) { return { dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine) }; } var dimensionsDetectCount; var startIndex; if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { // Rule: Most of the first line are string: it is header. // Caution: consider a line with 5 string and 1 number, // it still can not be sure it is a head, because the // 5 string may be 5 values of category columns. if (sourceHeader === 'auto' || sourceHeader == null) { arrayRowsTravelFirst(function (val) { // '-' is regarded as null/undefined. if (val != null && val !== '-') { if (isString(val)) { startIndex == null && (startIndex = 1); } else { startIndex = 0; } } // 10 is an experience number, avoid long loop. }, seriesLayoutBy, data, 10); } else { startIndex = sourceHeader ? 1 : 0; } if (!dimensionsDefine && startIndex === 1) { dimensionsDefine = []; arrayRowsTravelFirst(function (val, index) { dimensionsDefine[index] = val != null ? val : ''; }, seriesLayoutBy, data); } dimensionsDetectCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? data.length : data[0] ? data[0].length : null; } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { if (!dimensionsDefine) { dimensionsDefine = objectRowsCollectDimensions(data); } } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { if (!dimensionsDefine) { dimensionsDefine = []; each(data, function (colArr, key) { dimensionsDefine.push(key); }); } } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { var value0 = getDataItemValue(data[0]); dimensionsDetectCount = isArray(value0) && value0.length || 1; } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {} return { startIndex: startIndex, dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine), dimensionsDetectCount: dimensionsDetectCount }; } // Consider dimensions defined like ['A', 'price', 'B', 'price', 'C', 'price'], // which is reasonable. But dimension name is duplicated. // Returns undefined or an array contains only object without null/undefiend or string. function normalizeDimensionsDefine(dimensionsDefine) { if (!dimensionsDefine) { // The meaning of null/undefined is different from empty array. return; } var nameMap = createHashMap(); return map(dimensionsDefine, function (item, index) { item = extend({}, isObject(item) ? item : { name: item }); // User can set null in dimensions. // We dont auto specify name, othewise a given name may // cause it be refered unexpectedly. if (item.name == null) { return item; } // Also consider number form like 2012. item.name += ''; // User may also specify displayName. // displayName will always exists except user not // specified or dim name is not specified or detected. // (A auto generated dim name will not be used as // displayName). if (item.displayName == null) { item.displayName = item.name; } var exist = nameMap.get(item.name); if (!exist) { nameMap.set(item.name, { count: 1 }); } else { item.name += '-' + exist.count++; } return item; }); } function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) { maxLoop == null && (maxLoop = Infinity); if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) { for (var i = 0; i < data.length && i < maxLoop; i++) { cb(data[i] ? data[i][0] : null, i); } } else { var value0 = data[0] || []; for (var i = 0; i < value0.length && i < maxLoop; i++) { cb(value0[i], i); } } } function objectRowsCollectDimensions(data) { var firstIndex = 0; var obj; while (firstIndex < data.length && !(obj = data[firstIndex++])) {} // jshint ignore: line if (obj) { var dimensions = []; each(obj, function (value, key) { dimensions.push(key); }); return dimensions; } } /** * [The strategy of the arrengment of data dimensions for dataset]: * "value way": all axes are non-category axes. So series one by one take * several (the number is coordSysDims.length) dimensions from dataset. * The result of data arrengment of data dimensions like: * | ser0_x | ser0_y | ser1_x | ser1_y | ser2_x | ser2_y | * "category way": at least one axis is category axis. So the the first data * dimension is always mapped to the first category axis and shared by * all of the series. The other data dimensions are taken by series like * "value way" does. * The result of data arrengment of data dimensions like: * | ser_shared_x | ser0_y | ser1_y | ser2_y | * * @param {Array.} coordDimensions [{name: , type: , dimsDef: }, ...] * @param {module:model/Series} seriesModel * @param {module:data/Source} source * @return {Object} encode Never be `null/undefined`. */ function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) { var encode = {}; var datasetModel = getDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur. if (!datasetModel || !coordDimensions) { return encode; } var encodeItemName = []; var encodeSeriesName = []; var ecModel = seriesModel.ecModel; var datasetMap = inner(ecModel).datasetMap; var key = datasetModel.uid + '_' + source.seriesLayoutBy; var baseCategoryDimIndex; var categoryWayValueDimStart; coordDimensions = coordDimensions.slice(); each(coordDimensions, function (coordDimInfo, coordDimIdx) { !isObject(coordDimInfo) && (coordDimensions[coordDimIdx] = { name: coordDimInfo }); if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) { baseCategoryDimIndex = coordDimIdx; categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimensions[coordDimIdx]); } encode[coordDimInfo.name] = []; }); var datasetRecord = datasetMap.get(key) || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 }); // TODO // Auto detect first time axis and do arrangement. each(coordDimensions, function (coordDimInfo, coordDimIdx) { var coordDimName = coordDimInfo.name; var count = getDataDimCountOnCoordDim(coordDimInfo); // In value way. if (baseCategoryDimIndex == null) { var start = datasetRecord.valueWayDim; pushDim(encode[coordDimName], start, count); pushDim(encodeSeriesName, start, count); datasetRecord.valueWayDim += count; // ??? TODO give a better default series name rule? // especially when encode x y specified. // consider: when mutiple series share one dimension // category axis, series name should better use // the other dimsion name. On the other hand, use // both dimensions name. } // In category way, the first category axis. else if (baseCategoryDimIndex === coordDimIdx) { pushDim(encode[coordDimName], 0, count); pushDim(encodeItemName, 0, count); } // In category way, the other axis. else { var start = datasetRecord.categoryWayDim; pushDim(encode[coordDimName], start, count); pushDim(encodeSeriesName, start, count); datasetRecord.categoryWayDim += count; } }); function pushDim(dimIdxArr, idxFrom, idxCount) { for (var i = 0; i < idxCount; i++) { dimIdxArr.push(idxFrom + i); } } function getDataDimCountOnCoordDim(coordDimInfo) { var dimsDef = coordDimInfo.dimsDef; return dimsDef ? dimsDef.length : 1; } encodeItemName.length && (encode.itemName = encodeItemName); encodeSeriesName.length && (encode.seriesName = encodeSeriesName); return encode; } /** * Work for data like [{name: ..., value: ...}, ...]. * * @param {module:model/Series} seriesModel * @param {module:data/Source} source * @return {Object} encode Never be `null/undefined`. */ function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) { var encode = {}; var datasetModel = getDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur. if (!datasetModel) { return encode; } var sourceFormat = source.sourceFormat; var dimensionsDefine = source.dimensionsDefine; var potentialNameDimIndex; if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { each(dimensionsDefine, function (dim, idx) { if ((isObject(dim) ? dim.name : dim) === 'name') { potentialNameDimIndex = idx; } }); } // idxResult: {v, n}. var idxResult = function () { var idxRes0 = {}; var idxRes1 = {}; var guessRecords = []; // 5 is an experience value. for (var i = 0, len = Math.min(5, dimCount); i < len; i++) { var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i); guessRecords.push(guessResult); var isPureNumber = guessResult === BE_ORDINAL.Not; // [Strategy of idxRes0]: find the first BE_ORDINAL.Not as the value dim, // and then find a name dim with the priority: // "BE_ORDINAL.Might|BE_ORDINAL.Must" > "other dim" > "the value dim itself". if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) { idxRes0.v = i; } if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) { idxRes0.n = i; } if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) { return idxRes0; } // [Strategy of idxRes1]: if idxRes0 not satisfied (that is, no BE_ORDINAL.Not), // find the first BE_ORDINAL.Might as the value dim, // and then find a name dim with the priority: // "other dim" > "the value dim itself". // That is for backward compat: number-like (e.g., `'3'`, `'55'`) can be // treated as number. if (!isPureNumber) { if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) { idxRes1.v = i; } if (idxRes1.n == null || idxRes1.n === idxRes1.v) { idxRes1.n = i; } } } function fulfilled(idxResult) { return idxResult.v != null && idxResult.n != null; } return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null; }(); if (idxResult) { encode.value = idxResult.v; // `potentialNameDimIndex` has highest priority. var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n; // By default, label use itemName in charts. // So we dont set encodeLabel here. encode.itemName = [nameDimIndex]; encode.seriesName = [nameDimIndex]; } return encode; } /** * If return null/undefined, indicate that should not use datasetModel. */ function getDatasetModel(seriesModel) { var option = seriesModel.option; // Caution: consider the scenario: // A dataset is declared and a series is not expected to use the dataset, // and at the beginning `setOption({series: { noData })` (just prepare other // option but no data), then `setOption({series: {data: [...]}); In this case, // the user should set an empty array to avoid that dataset is used by default. var thisData = option.data; if (!thisData) { return seriesModel.ecModel.getComponent('dataset', option.datasetIndex || 0); } } /** * The rule should not be complex, otherwise user might not * be able to known where the data is wrong. * The code is ugly, but how to make it neat? * * @param {module:echars/data/Source} source * @param {number} dimIndex * @return {BE_ORDINAL} guess result. */ function guessOrdinal(source, dimIndex) { return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex); } // dimIndex may be overflow source data. // return {BE_ORDINAL} function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) { var result; // Experience value. var maxLoop = 5; if (isTypedArray(data)) { return BE_ORDINAL.Not; } // When sourceType is 'objectRows' or 'keyedColumns', dimensionsDefine // always exists in source. var dimName; var dimType; if (dimensionsDefine) { var dimDefItem = dimensionsDefine[dimIndex]; if (isObject(dimDefItem)) { dimName = dimDefItem.name; dimType = dimDefItem.type; } else if (isString(dimDefItem)) { dimName = dimDefItem; } } if (dimType != null) { return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not; } if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) { var sample = data[dimIndex]; for (var i = 0; i < (sample || []).length && i < maxLoop; i++) { if ((result = detectValue(sample[startIndex + i])) != null) { return result; } } } else { for (var i = 0; i < data.length && i < maxLoop; i++) { var row = data[startIndex + i]; if (row && (result = detectValue(row[dimIndex])) != null) { return result; } } } } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { if (!dimName) { return BE_ORDINAL.Not; } for (var i = 0; i < data.length && i < maxLoop; i++) { var item = data[i]; if (item && (result = detectValue(item[dimName])) != null) { return result; } } } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { if (!dimName) { return BE_ORDINAL.Not; } var sample = data[dimName]; if (!sample || isTypedArray(sample)) { return BE_ORDINAL.Not; } for (var i = 0; i < sample.length && i < maxLoop; i++) { if ((result = detectValue(sample[i])) != null) { return result; } } } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { for (var i = 0; i < data.length && i < maxLoop; i++) { var item = data[i]; var val = getDataItemValue(item); if (!isArray(val)) { return BE_ORDINAL.Not; } if ((result = detectValue(val[dimIndex])) != null) { return result; } } } function detectValue(val) { var beStr = isString(val); // Consider usage convenience, '1', '2' will be treated as "number". // `isFinit('')` get `true`. if (val != null && isFinite(val) && val !== '') { return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not; } else if (beStr && val !== '-') { return BE_ORDINAL.Must; } } return BE_ORDINAL.Not; } exports.BE_ORDINAL = BE_ORDINAL; exports.detectSourceFormat = detectSourceFormat; exports.getSource = getSource; exports.resetSourceDefaulter = resetSourceDefaulter; exports.prepareSource = prepareSource; exports.makeSeriesEncodeForAxisCoordSys = makeSeriesEncodeForAxisCoordSys; exports.makeSeriesEncodeForNameBased = makeSeriesEncodeForNameBased; exports.guessOrdinal = guessOrdinal; /***/ }), /* 495 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/Source.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var isTypedArray = _util.isTypedArray; var _clazz = __webpack_require__(/*! ../util/clazz */ 446); var enableClassCheck = _clazz.enableClassCheck; var _sourceType = __webpack_require__(/*! ./helper/sourceType */ 496); var SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL; var SERIES_LAYOUT_BY_COLUMN = _sourceType.SERIES_LAYOUT_BY_COLUMN; var SOURCE_FORMAT_UNKNOWN = _sourceType.SOURCE_FORMAT_UNKNOWN; var SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY; var SOURCE_FORMAT_KEYED_COLUMNS = _sourceType.SOURCE_FORMAT_KEYED_COLUMNS; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * [sourceFormat] * * + "original": * This format is only used in series.data, where * itemStyle can be specified in data item. * * + "arrayRows": * [ * ['product', 'score', 'amount'], * ['Matcha Latte', 89.3, 95.8], * ['Milk Tea', 92.1, 89.4], * ['Cheese Cocoa', 94.4, 91.2], * ['Walnut Brownie', 85.4, 76.9] * ] * * + "objectRows": * [ * {product: 'Matcha Latte', score: 89.3, amount: 95.8}, * {product: 'Milk Tea', score: 92.1, amount: 89.4}, * {product: 'Cheese Cocoa', score: 94.4, amount: 91.2}, * {product: 'Walnut Brownie', score: 85.4, amount: 76.9} * ] * * + "keyedColumns": * { * 'product': ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'], * 'count': [823, 235, 1042, 988], * 'score': [95.8, 81.4, 91.2, 76.9] * } * * + "typedArray" * * + "unknown" */ /** * @constructor * @param {Object} fields * @param {string} fields.sourceFormat * @param {Array|Object} fields.fromDataset * @param {Array|Object} [fields.data] * @param {string} [seriesLayoutBy='column'] * @param {Array.} [dimensionsDefine] * @param {Objet|HashMap} [encodeDefine] * @param {number} [startIndex=0] * @param {number} [dimensionsDetectCount] */ function Source(fields) { /** * @type {boolean} */ this.fromDataset = fields.fromDataset; /** * Not null/undefined. * @type {Array|Object} */ this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []); /** * See also "detectSourceFormat". * Not null/undefined. * @type {string} */ this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN; /** * 'row' or 'column' * Not null/undefined. * @type {string} seriesLayoutBy */ this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN; /** * dimensions definition in option. * can be null/undefined. * @type {Array.} */ this.dimensionsDefine = fields.dimensionsDefine; /** * encode definition in option. * can be null/undefined. * @type {Objet|HashMap} */ this.encodeDefine = fields.encodeDefine && createHashMap(fields.encodeDefine); /** * Not null/undefined, uint. * @type {number} */ this.startIndex = fields.startIndex || 0; /** * Can be null/undefined (when unknown), uint. * @type {number} */ this.dimensionsDetectCount = fields.dimensionsDetectCount; } /** * Wrap original series data for some compatibility cases. */ Source.seriesDataToSource = function (data) { return new Source({ data: data, sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL, fromDataset: false }); }; enableClassCheck(Source); var _default = Source; module.exports = _default; /***/ }), /* 496 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/helper/sourceType.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Avoid typo. var SOURCE_FORMAT_ORIGINAL = 'original'; var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows'; var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows'; var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns'; var SOURCE_FORMAT_UNKNOWN = 'unknown'; // ??? CHANGE A NAME var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray'; var SERIES_LAYOUT_BY_COLUMN = 'column'; var SERIES_LAYOUT_BY_ROW = 'row'; exports.SOURCE_FORMAT_ORIGINAL = SOURCE_FORMAT_ORIGINAL; exports.SOURCE_FORMAT_ARRAY_ROWS = SOURCE_FORMAT_ARRAY_ROWS; exports.SOURCE_FORMAT_OBJECT_ROWS = SOURCE_FORMAT_OBJECT_ROWS; exports.SOURCE_FORMAT_KEYED_COLUMNS = SOURCE_FORMAT_KEYED_COLUMNS; exports.SOURCE_FORMAT_UNKNOWN = SOURCE_FORMAT_UNKNOWN; exports.SOURCE_FORMAT_TYPED_ARRAY = SOURCE_FORMAT_TYPED_ARRAY; exports.SERIES_LAYOUT_BY_COLUMN = SERIES_LAYOUT_BY_COLUMN; exports.SERIES_LAYOUT_BY_ROW = SERIES_LAYOUT_BY_ROW; /***/ }), /* 497 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/ExtensionAPI.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echartsAPIList = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getModel', 'getOption', 'getViewOfComponentModel', 'getViewOfSeriesModel']; // And `getCoordinateSystems` and `getComponentByElement` will be injected in echarts.js function ExtensionAPI(chartInstance) { zrUtil.each(echartsAPIList, function (name) { this[name] = zrUtil.bind(chartInstance[name], chartInstance); }, this); } var _default = ExtensionAPI; module.exports = _default; /***/ }), /* 498 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/CoordinateSystem.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var coordinateSystemCreators = {}; function CoordinateSystemManager() { this._coordinateSystems = []; } CoordinateSystemManager.prototype = { constructor: CoordinateSystemManager, create: function create(ecModel, api) { var coordinateSystems = []; zrUtil.each(coordinateSystemCreators, function (creater, type) { var list = creater.create(ecModel, api); coordinateSystems = coordinateSystems.concat(list || []); }); this._coordinateSystems = coordinateSystems; }, update: function update(ecModel, api) { zrUtil.each(this._coordinateSystems, function (coordSys) { coordSys.update && coordSys.update(ecModel, api); }); }, getCoordinateSystems: function getCoordinateSystems() { return this._coordinateSystems.slice(); } }; CoordinateSystemManager.register = function (type, coordinateSystemCreator) { coordinateSystemCreators[type] = coordinateSystemCreator; }; CoordinateSystemManager.get = function (type) { return coordinateSystemCreators[type]; }; var _default = CoordinateSystemManager; module.exports = _default; /***/ }), /* 499 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/OptionManager.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var modelUtil = __webpack_require__(/*! ../util/model */ 444); var ComponentModel = __webpack_require__(/*! ./Component */ 486); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * ECharts option manager * * @module {echarts/model/OptionManager} */ var each = zrUtil.each; var clone = zrUtil.clone; var map = zrUtil.map; var merge = zrUtil.merge; var QUERY_REG = /^(min|max)?(.+)$/; /** * TERM EXPLANATIONS: * * [option]: * * An object that contains definitions of components. For example: * var option = { * title: {...}, * legend: {...}, * visualMap: {...}, * series: [ * {data: [...]}, * {data: [...]}, * ... * ] * }; * * [rawOption]: * * An object input to echarts.setOption. 'rawOption' may be an * 'option', or may be an object contains multi-options. For example: * var option = { * baseOption: { * title: {...}, * legend: {...}, * series: [ * {data: [...]}, * {data: [...]}, * ... * ] * }, * timeline: {...}, * options: [ * {title: {...}, series: {data: [...]}}, * {title: {...}, series: {data: [...]}}, * ... * ], * media: [ * { * query: {maxWidth: 320}, * option: {series: {x: 20}, visualMap: {show: false}} * }, * { * query: {minWidth: 320, maxWidth: 720}, * option: {series: {x: 500}, visualMap: {show: true}} * }, * { * option: {series: {x: 1200}, visualMap: {show: true}} * } * ] * }; * * @alias module:echarts/model/OptionManager * @param {module:echarts/ExtensionAPI} api */ function OptionManager(api) { /** * @private * @type {module:echarts/ExtensionAPI} */ this._api = api; /** * @private * @type {Array.} */ this._timelineOptions = []; /** * @private * @type {Array.} */ this._mediaList = []; /** * @private * @type {Object} */ this._mediaDefault; /** * -1, means default. * empty means no media. * @private * @type {Array.} */ this._currentMediaIndices = []; /** * @private * @type {Object} */ this._optionBackup; /** * @private * @type {Object} */ this._newBaseOption; } // timeline.notMerge is not supported in ec3. Firstly there is rearly // case that notMerge is needed. Secondly supporting 'notMerge' requires // rawOption cloned and backuped when timeline changed, which does no // good to performance. What's more, that both timeline and setOption // method supply 'notMerge' brings complex and some problems. // Consider this case: // (step1) chart.setOption({timeline: {notMerge: false}, ...}, false); // (step2) chart.setOption({timeline: {notMerge: true}, ...}, false); OptionManager.prototype = { constructor: OptionManager, /** * @public * @param {Object} rawOption Raw option. * @param {module:echarts/model/Global} ecModel * @param {Array.} optionPreprocessorFuncs * @return {Object} Init option */ setOption: function setOption(rawOption, optionPreprocessorFuncs) { if (rawOption) { // That set dat primitive is dangerous if user reuse the data when setOption again. zrUtil.each(modelUtil.normalizeToArray(rawOption.series), function (series) { series && series.data && zrUtil.isTypedArray(series.data) && zrUtil.setAsPrimitive(series.data); }); } // Caution: some series modify option data, if do not clone, // it should ensure that the repeat modify correctly // (create a new object when modify itself). rawOption = clone(rawOption); // FIXME // 如果 timeline options 或者 media 中设置了某个属性,而baseOption中没有设置,则进行警告。 var oldOptionBackup = this._optionBackup; var newParsedOption = parseRawOption.call(this, rawOption, optionPreprocessorFuncs, !oldOptionBackup); this._newBaseOption = newParsedOption.baseOption; // For setOption at second time (using merge mode); if (oldOptionBackup) { // Only baseOption can be merged. mergeOption(oldOptionBackup.baseOption, newParsedOption.baseOption); // For simplicity, timeline options and media options do not support merge, // that is, if you `setOption` twice and both has timeline options, the latter // timeline opitons will not be merged to the formers, but just substitude them. if (newParsedOption.timelineOptions.length) { oldOptionBackup.timelineOptions = newParsedOption.timelineOptions; } if (newParsedOption.mediaList.length) { oldOptionBackup.mediaList = newParsedOption.mediaList; } if (newParsedOption.mediaDefault) { oldOptionBackup.mediaDefault = newParsedOption.mediaDefault; } } else { this._optionBackup = newParsedOption; } }, /** * @param {boolean} isRecreate * @return {Object} */ mountOption: function mountOption(isRecreate) { var optionBackup = this._optionBackup; // TODO // 如果没有reset功能则不clone。 this._timelineOptions = map(optionBackup.timelineOptions, clone); this._mediaList = map(optionBackup.mediaList, clone); this._mediaDefault = clone(optionBackup.mediaDefault); this._currentMediaIndices = []; return clone(isRecreate // this._optionBackup.baseOption, which is created at the first `setOption` // called, and is merged into every new option by inner method `mergeOption` // each time `setOption` called, can be only used in `isRecreate`, because // its reliability is under suspicion. In other cases option merge is // performed by `model.mergeOption`. ? optionBackup.baseOption : this._newBaseOption); }, /** * @param {module:echarts/model/Global} ecModel * @return {Object} */ getTimelineOption: function getTimelineOption(ecModel) { var option; var timelineOptions = this._timelineOptions; if (timelineOptions.length) { // getTimelineOption can only be called after ecModel inited, // so we can get currentIndex from timelineModel. var timelineModel = ecModel.getComponent('timeline'); if (timelineModel) { option = clone(timelineOptions[timelineModel.getCurrentIndex()], true); } } return option; }, /** * @param {module:echarts/model/Global} ecModel * @return {Array.} */ getMediaOption: function getMediaOption(ecModel) { var ecWidth = this._api.getWidth(); var ecHeight = this._api.getHeight(); var mediaList = this._mediaList; var mediaDefault = this._mediaDefault; var indices = []; var result = []; // No media defined. if (!mediaList.length && !mediaDefault) { return result; } // Multi media may be applied, the latter defined media has higher priority. for (var i = 0, len = mediaList.length; i < len; i++) { if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) { indices.push(i); } } // FIXME // 是否mediaDefault应该强制用户设置,否则可能修改不能回归。 if (!indices.length && mediaDefault) { indices = [-1]; } if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) { result = map(indices, function (index) { return clone(index === -1 ? mediaDefault.option : mediaList[index].option); }); } // Otherwise return nothing. this._currentMediaIndices = indices; return result; } }; function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) { var timelineOptions = []; var mediaList = []; var mediaDefault; var baseOption; // Compatible with ec2. var timelineOpt = rawOption.timeline; if (rawOption.baseOption) { baseOption = rawOption.baseOption; } // For timeline if (timelineOpt || rawOption.options) { baseOption = baseOption || {}; timelineOptions = (rawOption.options || []).slice(); } // For media query if (rawOption.media) { baseOption = baseOption || {}; var media = rawOption.media; each(media, function (singleMedia) { if (singleMedia && singleMedia.option) { if (singleMedia.query) { mediaList.push(singleMedia); } else if (!mediaDefault) { // Use the first media default. mediaDefault = singleMedia; } } }); } // For normal option if (!baseOption) { baseOption = rawOption; } // Set timelineOpt to baseOption in ec3, // which is convenient for merge option. if (!baseOption.timeline) { baseOption.timeline = timelineOpt; } // Preprocess. each([baseOption].concat(timelineOptions).concat(zrUtil.map(mediaList, function (media) { return media.option; })), function (option) { each(optionPreprocessorFuncs, function (preProcess) { preProcess(option, isNew); }); }); return { baseOption: baseOption, timelineOptions: timelineOptions, mediaDefault: mediaDefault, mediaList: mediaList }; } /** * @see * Support: width, height, aspectRatio * Can use max or min as prefix. */ function applyMediaQuery(query, ecWidth, ecHeight) { var realMap = { width: ecWidth, height: ecHeight, aspectratio: ecWidth / ecHeight // lowser case for convenientce. }; var applicatable = true; zrUtil.each(query, function (value, attr) { var matched = attr.match(QUERY_REG); if (!matched || !matched[1] || !matched[2]) { return; } var operator = matched[1]; var realAttr = matched[2].toLowerCase(); if (!compare(realMap[realAttr], value, operator)) { applicatable = false; } }); return applicatable; } function compare(real, expect, operator) { if (operator === 'min') { return real >= expect; } else if (operator === 'max') { return real <= expect; } else { // Equals return real === expect; } } function indicesEquals(indices1, indices2) { // indices is always order by asc and has only finite number. return indices1.join(',') === indices2.join(','); } /** * Consider case: * `chart.setOption(opt1);` * Then user do some interaction like dataZoom, dataView changing. * `chart.setOption(opt2);` * Then user press 'reset button' in toolbox. * * After doing that all of the interaction effects should be reset, the * chart should be the same as the result of invoke * `chart.setOption(opt1); chart.setOption(opt2);`. * * Although it is not able ensure that * `chart.setOption(opt1); chart.setOption(opt2);` is equivalents to * `chart.setOption(merge(opt1, opt2));` exactly, * this might be the only simple way to implement that feature. * * MEMO: We've considered some other approaches: * 1. Each model handle its self restoration but not uniform treatment. * (Too complex in logic and error-prone) * 2. Use a shadow ecModel. (Performace expensive) */ function mergeOption(oldOption, newOption) { newOption = newOption || {}; each(newOption, function (newCptOpt, mainType) { if (newCptOpt == null) { return; } var oldCptOpt = oldOption[mainType]; if (!ComponentModel.hasClass(mainType)) { oldOption[mainType] = merge(oldCptOpt, newCptOpt, true); } else { newCptOpt = modelUtil.normalizeToArray(newCptOpt); oldCptOpt = modelUtil.normalizeToArray(oldCptOpt); var mapResult = modelUtil.mappingToExists(oldCptOpt, newCptOpt); oldOption[mainType] = map(mapResult, function (item) { return item.option && item.exist ? merge(item.exist, item.option, true) : item.exist || item.option; }); } }); } var _default = OptionManager; module.exports = _default; /***/ }), /* 500 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/preprocessor/backwardCompat.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var isArray = _util.isArray; var isObject = _util.isObject; var compatStyle = __webpack_require__(/*! ./helper/compatStyle */ 501); var _model = __webpack_require__(/*! ../util/model */ 444); var normalizeToArray = _model.normalizeToArray; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Compatitable with 2.0 function get(opt, path) { path = path.split(','); var obj = opt; for (var i = 0; i < path.length; i++) { obj = obj && obj[path[i]]; if (obj == null) { break; } } return obj; } function set(opt, path, val, overwrite) { path = path.split(','); var obj = opt; var key; for (var i = 0; i < path.length - 1; i++) { key = path[i]; if (obj[key] == null) { obj[key] = {}; } obj = obj[key]; } if (overwrite || obj[path[i]] == null) { obj[path[i]] = val; } } function compatLayoutProperties(option) { each(LAYOUT_PROPERTIES, function (prop) { if (prop[0] in option && !(prop[1] in option)) { option[prop[1]] = option[prop[0]]; } }); } var LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']]; var COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline']; function _default(option, isTheme) { compatStyle(option, isTheme); // Make sure series array for model initialization. option.series = normalizeToArray(option.series); each(option.series, function (seriesOpt) { if (!isObject(seriesOpt)) { return; } var seriesType = seriesOpt.type; if (seriesType === 'line') { if (seriesOpt.clipOverflow != null) { seriesOpt.clip = seriesOpt.clipOverflow; } } else if (seriesType === 'pie' || seriesType === 'gauge') { if (seriesOpt.clockWise != null) { seriesOpt.clockwise = seriesOpt.clockWise; } } else if (seriesType === 'gauge') { var pointerColor = get(seriesOpt, 'pointer.color'); pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor); } compatLayoutProperties(seriesOpt); }); // dataRange has changed to visualMap if (option.dataRange) { option.visualMap = option.dataRange; } each(COMPATITABLE_COMPONENTS, function (componentName) { var options = option[componentName]; if (options) { if (!isArray(options)) { options = [options]; } each(options, function (option) { compatLayoutProperties(option); }); } }); } module.exports = _default; /***/ }), /* 501 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/preprocessor/helper/compatStyle.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var isObject = zrUtil.isObject; var POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine']; function compatEC2ItemStyle(opt) { var itemStyleOpt = opt && opt.itemStyle; if (!itemStyleOpt) { return; } for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) { var styleName = POSSIBLE_STYLES[i]; var normalItemStyleOpt = itemStyleOpt.normal; var emphasisItemStyleOpt = itemStyleOpt.emphasis; if (normalItemStyleOpt && normalItemStyleOpt[styleName]) { opt[styleName] = opt[styleName] || {}; if (!opt[styleName].normal) { opt[styleName].normal = normalItemStyleOpt[styleName]; } else { zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]); } normalItemStyleOpt[styleName] = null; } if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) { opt[styleName] = opt[styleName] || {}; if (!opt[styleName].emphasis) { opt[styleName].emphasis = emphasisItemStyleOpt[styleName]; } else { zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]); } emphasisItemStyleOpt[styleName] = null; } } } function convertNormalEmphasis(opt, optType, useExtend) { if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) { var normalOpt = opt[optType].normal; var emphasisOpt = opt[optType].emphasis; if (normalOpt) { // Timeline controlStyle has other properties besides normal and emphasis if (useExtend) { opt[optType].normal = opt[optType].emphasis = null; zrUtil.defaults(opt[optType], normalOpt); } else { opt[optType] = normalOpt; } } if (emphasisOpt) { opt.emphasis = opt.emphasis || {}; opt.emphasis[optType] = emphasisOpt; } } } function removeEC3NormalStatus(opt) { convertNormalEmphasis(opt, 'itemStyle'); convertNormalEmphasis(opt, 'lineStyle'); convertNormalEmphasis(opt, 'areaStyle'); convertNormalEmphasis(opt, 'label'); convertNormalEmphasis(opt, 'labelLine'); // treemap convertNormalEmphasis(opt, 'upperLabel'); // graph convertNormalEmphasis(opt, 'edgeLabel'); } function compatTextStyle(opt, propName) { // Check whether is not object (string\null\undefined ...) var labelOptSingle = isObject(opt) && opt[propName]; var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle; if (textStyle) { for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) { var propName = modelUtil.TEXT_STYLE_OPTIONS[i]; if (textStyle.hasOwnProperty(propName)) { labelOptSingle[propName] = textStyle[propName]; } } } } function compatEC3CommonStyles(opt) { if (opt) { removeEC3NormalStatus(opt); compatTextStyle(opt, 'label'); opt.emphasis && compatTextStyle(opt.emphasis, 'label'); } } function processSeries(seriesOpt) { if (!isObject(seriesOpt)) { return; } compatEC2ItemStyle(seriesOpt); removeEC3NormalStatus(seriesOpt); compatTextStyle(seriesOpt, 'label'); // treemap compatTextStyle(seriesOpt, 'upperLabel'); // graph compatTextStyle(seriesOpt, 'edgeLabel'); if (seriesOpt.emphasis) { compatTextStyle(seriesOpt.emphasis, 'label'); // treemap compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph compatTextStyle(seriesOpt.emphasis, 'edgeLabel'); } var markPoint = seriesOpt.markPoint; if (markPoint) { compatEC2ItemStyle(markPoint); compatEC3CommonStyles(markPoint); } var markLine = seriesOpt.markLine; if (markLine) { compatEC2ItemStyle(markLine); compatEC3CommonStyles(markLine); } var markArea = seriesOpt.markArea; if (markArea) { compatEC3CommonStyles(markArea); } var data = seriesOpt.data; // Break with ec3: if `setOption` again, there may be no `type` in option, // then the backward compat based on option type will not be performed. if (seriesOpt.type === 'graph') { data = data || seriesOpt.nodes; var edgeData = seriesOpt.links || seriesOpt.edges; if (edgeData && !zrUtil.isTypedArray(edgeData)) { for (var i = 0; i < edgeData.length; i++) { compatEC3CommonStyles(edgeData[i]); } } zrUtil.each(seriesOpt.categories, function (opt) { removeEC3NormalStatus(opt); }); } if (data && !zrUtil.isTypedArray(data)) { for (var i = 0; i < data.length; i++) { compatEC3CommonStyles(data[i]); } } // mark point data var markPoint = seriesOpt.markPoint; if (markPoint && markPoint.data) { var mpData = markPoint.data; for (var i = 0; i < mpData.length; i++) { compatEC3CommonStyles(mpData[i]); } } // mark line data var markLine = seriesOpt.markLine; if (markLine && markLine.data) { var mlData = markLine.data; for (var i = 0; i < mlData.length; i++) { if (zrUtil.isArray(mlData[i])) { compatEC3CommonStyles(mlData[i][0]); compatEC3CommonStyles(mlData[i][1]); } else { compatEC3CommonStyles(mlData[i]); } } } // Series if (seriesOpt.type === 'gauge') { compatTextStyle(seriesOpt, 'axisLabel'); compatTextStyle(seriesOpt, 'title'); compatTextStyle(seriesOpt, 'detail'); } else if (seriesOpt.type === 'treemap') { convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle'); zrUtil.each(seriesOpt.levels, function (opt) { removeEC3NormalStatus(opt); }); } else if (seriesOpt.type === 'tree') { removeEC3NormalStatus(seriesOpt.leaves); } // sunburst starts from ec4, so it does not need to compat levels. } function toArr(o) { return zrUtil.isArray(o) ? o : o ? [o] : []; } function toObj(o) { return (zrUtil.isArray(o) ? o[0] : o) || {}; } function _default(option, isTheme) { each(toArr(option.series), function (seriesOpt) { isObject(seriesOpt) && processSeries(seriesOpt); }); var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar']; isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis'); each(axes, function (axisName) { each(toArr(option[axisName]), function (axisOpt) { if (axisOpt) { compatTextStyle(axisOpt, 'axisLabel'); compatTextStyle(axisOpt.axisPointer, 'label'); } }); }); each(toArr(option.parallel), function (parallelOpt) { var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault; compatTextStyle(parallelAxisDefault, 'axisLabel'); compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label'); }); each(toArr(option.calendar), function (calendarOpt) { convertNormalEmphasis(calendarOpt, 'itemStyle'); compatTextStyle(calendarOpt, 'dayLabel'); compatTextStyle(calendarOpt, 'monthLabel'); compatTextStyle(calendarOpt, 'yearLabel'); }); // radar.name.textStyle each(toArr(option.radar), function (radarOpt) { compatTextStyle(radarOpt, 'name'); }); each(toArr(option.geo), function (geoOpt) { if (isObject(geoOpt)) { compatEC3CommonStyles(geoOpt); each(toArr(geoOpt.regions), function (regionObj) { compatEC3CommonStyles(regionObj); }); } }); each(toArr(option.timeline), function (timelineOpt) { compatEC3CommonStyles(timelineOpt); convertNormalEmphasis(timelineOpt, 'label'); convertNormalEmphasis(timelineOpt, 'itemStyle'); convertNormalEmphasis(timelineOpt, 'controlStyle', true); var data = timelineOpt.data; zrUtil.isArray(data) && zrUtil.each(data, function (item) { if (zrUtil.isObject(item)) { convertNormalEmphasis(item, 'label'); convertNormalEmphasis(item, 'itemStyle'); } }); }); each(toArr(option.toolbox), function (toolboxOpt) { convertNormalEmphasis(toolboxOpt, 'iconStyle'); each(toolboxOpt.feature, function (featureOpt) { convertNormalEmphasis(featureOpt, 'iconStyle'); }); }); compatTextStyle(toObj(option.axisPointer), 'label'); compatTextStyle(toObj(option.tooltip).axisPointer, 'label'); } module.exports = _default; /***/ }), /* 502 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/processor/dataStack.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var each = _util.each; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // (1) [Caution]: the logic is correct based on the premises: // data processing stage is blocked in stream. // See // (2) Only register once when import repeatly. // Should be executed after series filtered and before stack calculation. function _default(ecModel) { var stackInfoMap = createHashMap(); ecModel.eachSeries(function (seriesModel) { var stack = seriesModel.get('stack'); // Compatibal: when `stack` is set as '', do not stack. if (stack) { var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []); var data = seriesModel.getData(); var stackInfo = { // Used for calculate axis extent automatically. stackResultDimension: data.getCalculationInfo('stackResultDimension'), stackedOverDimension: data.getCalculationInfo('stackedOverDimension'), stackedDimension: data.getCalculationInfo('stackedDimension'), stackedByDimension: data.getCalculationInfo('stackedByDimension'), isStackedByIndex: data.getCalculationInfo('isStackedByIndex'), data: data, seriesModel: seriesModel }; // If stacked on axis that do not support data stack. if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) { return; } stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel); stackInfoList.push(stackInfo); } }); stackInfoMap.each(calculateStack); } function calculateStack(stackInfoList) { each(stackInfoList, function (targetStackInfo, idxInStack) { var resultVal = []; var resultNaN = [NaN, NaN]; var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension]; var targetData = targetStackInfo.data; var isStackedByIndex = targetStackInfo.isStackedByIndex; // Should not write on raw data, because stack series model list changes // depending on legend selection. var newData = targetData.map(dims, function (v0, v1, dataIndex) { var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); // Consider `connectNulls` of line area, if value is NaN, stackedOver // should also be NaN, to draw a appropriate belt area. if (isNaN(sum)) { return resultNaN; } var byValue; var stackedDataRawIndex; if (isStackedByIndex) { stackedDataRawIndex = targetData.getRawIndex(dataIndex); } else { byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex); } // If stackOver is NaN, chart view will render point on value start. var stackedOver = NaN; for (var j = idxInStack - 1; j >= 0; j--) { var stackInfo = stackInfoList[j]; // Has been optimized by inverted indices on `stackedByDimension`. if (!isStackedByIndex) { stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue); } if (stackedDataRawIndex >= 0) { var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); // Considering positive stack, negative stack and empty data if (sum >= 0 && val > 0 || // Positive stack sum <= 0 && val < 0 // Negative stack ) { sum += val; stackedOver = val; break; } } } resultVal[0] = sum; resultVal[1] = stackedOver; return resultVal; }); targetData.hostModel.setData(newData); // Update for consequent calculation targetStackInfo.data = newData; }); } module.exports = _default; /***/ }), /* 503 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/Series.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var _format = __webpack_require__(/*! ../util/format */ 490); var formatTime = _format.formatTime; var encodeHTML = _format.encodeHTML; var addCommas = _format.addCommas; var getTooltipMarker = _format.getTooltipMarker; var modelUtil = __webpack_require__(/*! ../util/model */ 444); var ComponentModel = __webpack_require__(/*! ./Component */ 486); var colorPaletteMixin = __webpack_require__(/*! ./mixin/colorPalette */ 493); var dataFormatMixin = __webpack_require__(/*! ../model/mixin/dataFormat */ 504); var _layout = __webpack_require__(/*! ../util/layout */ 488); var getLayoutParams = _layout.getLayoutParams; var mergeLayoutParam = _layout.mergeLayoutParam; var _task = __webpack_require__(/*! ../stream/task */ 506); var createTask = _task.createTask; var _sourceHelper = __webpack_require__(/*! ../data/helper/sourceHelper */ 494); var prepareSource = _sourceHelper.prepareSource; var _getSource = _sourceHelper.getSource; var _dataProvider = __webpack_require__(/*! ../data/helper/dataProvider */ 505); var retrieveRawValue = _dataProvider.retrieveRawValue; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = modelUtil.makeInner(); var SeriesModel = ComponentModel.extend({ type: 'series.__base__', /** * @readOnly */ seriesIndex: 0, // coodinateSystem will be injected in the echarts/CoordinateSystem coordinateSystem: null, /** * @type {Object} * @protected */ defaultOption: null, /** * legend visual provider to the legend component * @type {Object} */ // PENDING legendVisualProvider: null, /** * Access path of color for visual */ visualColorAccessPath: 'itemStyle.color', /** * Access path of borderColor for visual */ visualBorderColorAccessPath: 'itemStyle.borderColor', /** * Support merge layout params. * Only support 'box' now (left/right/top/bottom/width/height). * @type {string|Object} Object can be {ignoreSize: true} * @readOnly */ layoutMode: null, init: function init(option, parentModel, ecModel, extraOpt) { /** * @type {number} * @readOnly */ this.seriesIndex = this.componentIndex; this.dataTask = createTask({ count: dataTaskCount, reset: dataTaskReset }); this.dataTask.context = { model: this }; this.mergeDefaultAndTheme(option, ecModel); prepareSource(this); var data = this.getInitialData(option, ecModel); wrapData(data, this); this.dataTask.context.data = data; /** * @type {module:echarts/data/List|module:echarts/data/Tree|module:echarts/data/Graph} * @private */ inner(this).dataBeforeProcessed = data; // If we reverse the order (make data firstly, and then make // dataBeforeProcessed by cloneShallow), cloneShallow will // cause data.graph.data !== data when using // module:echarts/data/Graph or module:echarts/data/Tree. // See module:echarts/data/helper/linkList // Theoretically, it is unreasonable to call `seriesModel.getData()` in the model // init or merge stage, because the data can be restored. So we do not `restoreData` // and `setData` here, which forbids calling `seriesModel.getData()` in this stage. // Call `seriesModel.getRawData()` instead. // this.restoreData(); autoSeriesName(this); }, /** * Util for merge default and theme to option * @param {Object} option * @param {module:echarts/model/Global} ecModel */ mergeDefaultAndTheme: function mergeDefaultAndTheme(option, ecModel) { var layoutMode = this.layoutMode; var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; // Backward compat: using subType on theme. // But if name duplicate between series subType // (for example: parallel) add component mainType, // add suffix 'Series'. var themeSubType = this.subType; if (ComponentModel.hasClass(themeSubType)) { themeSubType += 'Series'; } zrUtil.merge(option, ecModel.getTheme().get(this.subType)); zrUtil.merge(option, this.getDefaultOption()); // Default label emphasis `show` modelUtil.defaultEmphasis(option, 'label', ['show']); this.fillDataTextStyle(option.data); if (layoutMode) { mergeLayoutParam(option, inputPositionParams, layoutMode); } }, mergeOption: function mergeOption(newSeriesOption, ecModel) { // this.settingTask.dirty(); newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true); this.fillDataTextStyle(newSeriesOption.data); var layoutMode = this.layoutMode; if (layoutMode) { mergeLayoutParam(this.option, newSeriesOption, layoutMode); } prepareSource(this); var data = this.getInitialData(newSeriesOption, ecModel); wrapData(data, this); this.dataTask.dirty(); this.dataTask.context.data = data; inner(this).dataBeforeProcessed = data; autoSeriesName(this); }, fillDataTextStyle: function fillDataTextStyle(data) { // Default data label emphasis `show` // FIXME Tree structure data ? // FIXME Performance ? if (data && !zrUtil.isTypedArray(data)) { var props = ['show']; for (var i = 0; i < data.length; i++) { if (data[i] && data[i].label) { modelUtil.defaultEmphasis(data[i], 'label', props); } } } }, /** * Init a data structure from data related option in series * Must be overwritten */ getInitialData: function getInitialData() {}, /** * Append data to list * @param {Object} params * @param {Array|TypedArray} params.data */ appendData: function appendData(params) { // FIXME ??? // (1) If data from dataset, forbidden append. // (2) support append data of dataset. var data = this.getRawData(); data.appendData(params.data); }, /** * Consider some method like `filter`, `map` need make new data, * We should make sure that `seriesModel.getData()` get correct * data in the stream procedure. So we fetch data from upstream * each time `task.perform` called. * @param {string} [dataType] * @return {module:echarts/data/List} */ getData: function getData(dataType) { var task = getCurrentTask(this); if (task) { var data = task.context.data; return dataType == null ? data : data.getLinkedData(dataType); } else { // When series is not alive (that may happen when click toolbox // restore or setOption with not merge mode), series data may // be still need to judge animation or something when graphic // elements want to know whether fade out. return inner(this).data; } }, /** * @param {module:echarts/data/List} data */ setData: function setData(data) { var task = getCurrentTask(this); if (task) { var context = task.context; // Consider case: filter, data sample. if (context.data !== data && task.modifyOutputEnd) { task.setOutputEnd(data.count()); } context.outputData = data; // Caution: setData should update context.data, // Because getData may be called multiply in a // single stage and expect to get the data just // set. (For example, AxisProxy, x y both call // getData and setDate sequentially). // So the context.data should be fetched from // upstream each time when a stage starts to be // performed. if (task !== this.dataTask) { context.data = data; } } inner(this).data = data; }, /** * @see {module:echarts/data/helper/sourceHelper#getSource} * @return {module:echarts/data/Source} source */ getSource: function getSource() { return _getSource(this); }, /** * Get data before processed * @return {module:echarts/data/List} */ getRawData: function getRawData() { return inner(this).dataBeforeProcessed; }, /** * Get base axis if has coordinate system and has axis. * By default use coordSys.getBaseAxis(); * Can be overrided for some chart. * @return {type} description */ getBaseAxis: function getBaseAxis() { var coordSys = this.coordinateSystem; return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis(); }, // FIXME /** * Default tooltip formatter * * @param {number} dataIndex * @param {boolean} [multipleSeries=false] * @param {number} [dataType] * @param {string} [renderMode='html'] valid values: 'html' and 'richText'. * 'html' is used for rendering tooltip in extra DOM form, and the result * string is used as DOM HTML content. * 'richText' is used for rendering tooltip in rich text form, for those where * DOM operation is not supported. * @return {Object} formatted tooltip with `html` and `markers` */ formatTooltip: function formatTooltip(dataIndex, multipleSeries, dataType, renderMode) { var series = this; renderMode = renderMode || 'html'; var newLine = renderMode === 'html' ? '
' : '\n'; var isRichText = renderMode === 'richText'; var markers = {}; var markerId = 0; function formatArrayValue(value) { // ??? TODO refactor these logic. // check: category-no-encode-has-axis-data in dataset.html var vertially = zrUtil.reduce(value, function (vertially, val, idx) { var dimItem = data.getDimensionInfo(idx); return vertially |= dimItem && dimItem.tooltip !== false && dimItem.displayName != null; }, 0); var result = []; tooltipDims.length ? zrUtil.each(tooltipDims, function (dim) { setEachItem(retrieveRawValue(data, dataIndex, dim), dim); }) // By default, all dims is used on tooltip. : zrUtil.each(value, setEachItem); function setEachItem(val, dim) { var dimInfo = data.getDimensionInfo(dim); // If `dimInfo.tooltip` is not set, show tooltip. if (!dimInfo || dimInfo.otherDims.tooltip === false) { return; } var dimType = dimInfo.type; var markName = 'sub' + series.seriesIndex + 'at' + markerId; var dimHead = getTooltipMarker({ color: color, type: 'subItem', renderMode: renderMode, markerId: markName }); var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content; var valStr = (vertially ? dimHeadStr + encodeHTML(dimInfo.displayName || '-') + ': ' : '') + // FIXME should not format time for raw data? encodeHTML(dimType === 'ordinal' ? val + '' : dimType === 'time' ? multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val) : addCommas(val)); valStr && result.push(valStr); if (isRichText) { markers[markName] = color; ++markerId; } } var newLine = vertially ? isRichText ? '\n' : '
' : ''; var content = newLine + result.join(newLine || ', '); return { renderMode: renderMode, content: content, style: markers }; } function formatSingleValue(val) { // return encodeHTML(addCommas(val)); return { renderMode: renderMode, content: encodeHTML(addCommas(val)), style: markers }; } var data = this.getData(); var tooltipDims = data.mapDimension('defaultedTooltip', true); var tooltipDimLen = tooltipDims.length; var value = this.getRawValue(dataIndex); var isValueArr = zrUtil.isArray(value); var color = data.getItemVisual(dataIndex, 'color'); if (zrUtil.isObject(color) && color.colorStops) { color = (color.colorStops[0] || {}).color; } color = color || 'transparent'; // Complicated rule for pretty tooltip. var formattedValue = tooltipDimLen > 1 || isValueArr && !tooltipDimLen ? formatArrayValue(value) : tooltipDimLen ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0])) : formatSingleValue(isValueArr ? value[0] : value); var content = formattedValue.content; var markName = series.seriesIndex + 'at' + markerId; var colorEl = getTooltipMarker({ color: color, type: 'item', renderMode: renderMode, markerId: markName }); markers[markName] = color; ++markerId; var name = data.getName(dataIndex); var seriesName = this.name; if (!modelUtil.isNameSpecified(this)) { seriesName = ''; } seriesName = seriesName ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ': ') : ''; var colorStr = typeof colorEl === 'string' ? colorEl : colorEl.content; var html = !multipleSeries ? seriesName + colorStr + (name ? encodeHTML(name) + ': ' + content : content) : colorStr + seriesName + content; return { html: html, markers: markers }; }, /** * @return {boolean} */ isAnimationEnabled: function isAnimationEnabled() { if (env.node) { return false; } var animationEnabled = this.getShallow('animation'); if (animationEnabled) { if (this.getData().count() > this.getShallow('animationThreshold')) { animationEnabled = false; } } return animationEnabled; }, restoreData: function restoreData() { this.dataTask.dirty(); }, getColorFromPalette: function getColorFromPalette(name, scope, requestColorNum) { var ecModel = this.ecModel; // PENDING var color = colorPaletteMixin.getColorFromPalette.call(this, name, scope, requestColorNum); if (!color) { color = ecModel.getColorFromPalette(name, scope, requestColorNum); } return color; }, /** * Use `data.mapDimension(coordDim, true)` instead. * @deprecated */ coordDimToDataDim: function coordDimToDataDim(coordDim) { return this.getRawData().mapDimension(coordDim, true); }, /** * Get progressive rendering count each step * @return {number} */ getProgressive: function getProgressive() { return this.get('progressive'); }, /** * Get progressive rendering count each step * @return {number} */ getProgressiveThreshold: function getProgressiveThreshold() { return this.get('progressiveThreshold'); }, /** * Get data indices for show tooltip content. See tooltip. * @abstract * @param {Array.|string} dim * @param {Array.} value * @param {module:echarts/coord/single/SingleAxis} baseAxis * @return {Object} {dataIndices, nestestValue}. */ getAxisTooltipData: null, /** * See tooltip. * @abstract * @param {number} dataIndex * @return {Array.} Point of tooltip. null/undefined can be returned. */ getTooltipPosition: null, /** * @see {module:echarts/stream/Scheduler} */ pipeTask: null, /** * Convinient for override in extended class. * @protected * @type {Function} */ preventIncremental: null, /** * @public * @readOnly * @type {Object} */ pipelineContext: null }); zrUtil.mixin(SeriesModel, dataFormatMixin); zrUtil.mixin(SeriesModel, colorPaletteMixin); /** * MUST be called after `prepareSource` called * Here we need to make auto series, especially for auto legend. But we * do not modify series.name in option to avoid side effects. */ function autoSeriesName(seriesModel) { // User specified name has higher priority, otherwise it may cause // series can not be queried unexpectedly. var name = seriesModel.name; if (!modelUtil.isNameSpecified(seriesModel)) { seriesModel.name = getSeriesAutoName(seriesModel) || name; } } function getSeriesAutoName(seriesModel) { var data = seriesModel.getRawData(); var dataDims = data.mapDimension('seriesName', true); var nameArr = []; zrUtil.each(dataDims, function (dataDim) { var dimInfo = data.getDimensionInfo(dataDim); dimInfo.displayName && nameArr.push(dimInfo.displayName); }); return nameArr.join(' '); } function dataTaskCount(context) { return context.model.getRawData().count(); } function dataTaskReset(context) { var seriesModel = context.model; seriesModel.setData(seriesModel.getRawData().cloneShallow()); return dataTaskProgress; } function dataTaskProgress(param, context) { // Avoid repead cloneShallow when data just created in reset. if (context.outputData && param.end > context.outputData.count()) { context.model.getRawData().cloneShallow(context.outputData); } } // TODO refactor function wrapData(data, seriesModel) { zrUtil.each(data.CHANGABLE_METHODS, function (methodName) { data.wrapMethod(methodName, zrUtil.curry(onDataSelfChange, seriesModel)); }); } function onDataSelfChange(seriesModel) { var task = getCurrentTask(seriesModel); if (task) { // Consider case: filter, selectRange task.setOutputEnd(this.count()); } } function getCurrentTask(seriesModel) { var scheduler = (seriesModel.ecModel || {}).scheduler; var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid); if (pipeline) { // When pipline finished, the currrentTask keep the last // task (renderTask). var task = pipeline.currentTask; if (task) { var agentStubMap = task.agentStubMap; if (agentStubMap) { task = agentStubMap.get(seriesModel.uid); } } return task; } } var _default = SeriesModel; module.exports = _default; /***/ }), /* 504 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/mixin/dataFormat.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _dataProvider = __webpack_require__(/*! ../../data/helper/dataProvider */ 505); var retrieveRawValue = _dataProvider.retrieveRawValue; var _format = __webpack_require__(/*! ../../util/format */ 490); var getTooltipMarker = _format.getTooltipMarker; var formatTpl = _format.formatTpl; var _model = __webpack_require__(/*! ../../util/model */ 444); var getTooltipRenderMode = _model.getTooltipRenderMode; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DIMENSION_LABEL_REG = /\{@(.+?)\}/g; // PENDING A little ugly var _default = { /** * Get params for formatter * @param {number} dataIndex * @param {string} [dataType] * @return {Object} */ getDataParams: function getDataParams(dataIndex, dataType) { var data = this.getData(dataType); var rawValue = this.getRawValue(dataIndex, dataType); var rawDataIndex = data.getRawIndex(dataIndex); var name = data.getName(dataIndex); var itemOpt = data.getRawDataItem(dataIndex); var color = data.getItemVisual(dataIndex, 'color'); var borderColor = data.getItemVisual(dataIndex, 'borderColor'); var tooltipModel = this.ecModel.getComponent('tooltip'); var renderModeOption = tooltipModel && tooltipModel.get('renderMode'); var renderMode = getTooltipRenderMode(renderModeOption); var mainType = this.mainType; var isSeries = mainType === 'series'; var userOutput = data.userOutput; return { componentType: mainType, componentSubType: this.subType, componentIndex: this.componentIndex, seriesType: isSeries ? this.subType : null, seriesIndex: this.seriesIndex, seriesId: isSeries ? this.id : null, seriesName: isSeries ? this.name : null, name: name, dataIndex: rawDataIndex, data: itemOpt, dataType: dataType, value: rawValue, color: color, borderColor: borderColor, dimensionNames: userOutput ? userOutput.dimensionNames : null, encode: userOutput ? userOutput.encode : null, marker: getTooltipMarker({ color: color, renderMode: renderMode }), // Param name list for mapping `a`, `b`, `c`, `d`, `e` $vars: ['seriesName', 'name', 'value'] }; }, /** * Format label * @param {number} dataIndex * @param {string} [status='normal'] 'normal' or 'emphasis' * @param {string} [dataType] * @param {number} [dimIndex] Only used in some chart that * use formatter in different dimensions, like radar. * @param {string} [labelProp='label'] * @return {string} If not formatter, return null/undefined */ getFormattedLabel: function getFormattedLabel(dataIndex, status, dataType, dimIndex, labelProp) { status = status || 'normal'; var data = this.getData(dataType); var itemModel = data.getItemModel(dataIndex); var params = this.getDataParams(dataIndex, dataType); if (dimIndex != null && params.value instanceof Array) { params.value = params.value[dimIndex]; } var formatter = itemModel.get(status === 'normal' ? [labelProp || 'label', 'formatter'] : [status, labelProp || 'label', 'formatter']); if (typeof formatter === 'function') { params.status = status; params.dimensionIndex = dimIndex; return formatter(params); } else if (typeof formatter === 'string') { var str = formatTpl(formatter, params); // Support 'aaa{@[3]}bbb{@product}ccc'. // Do not support '}' in dim name util have to. return str.replace(DIMENSION_LABEL_REG, function (origin, dim) { var len = dim.length; if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') { dim = +dim.slice(1, len - 1); // Also: '[]' => 0 } return retrieveRawValue(data, dataIndex, dim); }); } }, /** * Get raw value in option * @param {number} idx * @param {string} [dataType] * @return {Array|number|string} */ getRawValue: function getRawValue(idx, dataType) { return retrieveRawValue(this.getData(dataType), idx); }, /** * Should be implemented. * @param {number} dataIndex * @param {boolean} [multipleSeries=false] * @param {number} [dataType] * @return {string} tooltip string */ formatTooltip: function formatTooltip() {// Empty function } }; module.exports = _default; /***/ }), /* 505 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/helper/dataProvider.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var isTypedArray = _util.isTypedArray; var extend = _util.extend; var assert = _util.assert; var each = _util.each; var isObject = _util.isObject; var _model = __webpack_require__(/*! ../../util/model */ 444); var getDataItemValue = _model.getDataItemValue; var isDataItemOption = _model.isDataItemOption; var _number = __webpack_require__(/*! ../../util/number */ 489); var parseDate = _number.parseDate; var Source = __webpack_require__(/*! ../Source */ 495); var _sourceType = __webpack_require__(/*! ./sourceType */ 496); var SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY; var SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS; var SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL; var SOURCE_FORMAT_OBJECT_ROWS = _sourceType.SOURCE_FORMAT_OBJECT_ROWS; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // TODO // ??? refactor? check the outer usage of data provider. // merge with defaultDimValueGetter? /** * If normal array used, mutable chunk size is supported. * If typed array used, chunk size must be fixed. */ function DefaultDataProvider(source, dimSize) { if (!Source.isInstance(source)) { source = Source.seriesDataToSource(source); } this._source = source; var data = this._data = source.data; var sourceFormat = source.sourceFormat; // Typed array. TODO IE10+? if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) { this._offset = 0; this._dimSize = dimSize; this._data = data; } var methods = providerMethods[sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + source.seriesLayoutBy : sourceFormat]; extend(this, methods); } var providerProto = DefaultDataProvider.prototype; // If data is pure without style configuration providerProto.pure = false; // If data is persistent and will not be released after use. providerProto.persistent = true; // ???! FIXME legacy data provider do not has method getSource providerProto.getSource = function () { return this._source; }; var providerMethods = { 'arrayRows_column': { pure: true, count: function count() { return Math.max(0, this._data.length - this._source.startIndex); }, getItem: function getItem(idx) { return this._data[idx + this._source.startIndex]; }, appendData: appendDataSimply }, 'arrayRows_row': { pure: true, count: function count() { var row = this._data[0]; return row ? Math.max(0, row.length - this._source.startIndex) : 0; }, getItem: function getItem(idx) { idx += this._source.startIndex; var item = []; var data = this._data; for (var i = 0; i < data.length; i++) { var row = data[i]; item.push(row ? row[idx] : null); } return item; }, appendData: function appendData() { throw new Error('Do not support appendData when set seriesLayoutBy: "row".'); } }, 'objectRows': { pure: true, count: countSimply, getItem: getItemSimply, appendData: appendDataSimply }, 'keyedColumns': { pure: true, count: function count() { var dimName = this._source.dimensionsDefine[0].name; var col = this._data[dimName]; return col ? col.length : 0; }, getItem: function getItem(idx) { var item = []; var dims = this._source.dimensionsDefine; for (var i = 0; i < dims.length; i++) { var col = this._data[dims[i].name]; item.push(col ? col[idx] : null); } return item; }, appendData: function appendData(newData) { var data = this._data; each(newData, function (newCol, key) { var oldCol = data[key] || (data[key] = []); for (var i = 0; i < (newCol || []).length; i++) { oldCol.push(newCol[i]); } }); } }, 'original': { count: countSimply, getItem: getItemSimply, appendData: appendDataSimply }, 'typedArray': { persistent: false, pure: true, count: function count() { return this._data ? this._data.length / this._dimSize : 0; }, getItem: function getItem(idx, out) { idx = idx - this._offset; out = out || []; var offset = this._dimSize * idx; for (var i = 0; i < this._dimSize; i++) { out[i] = this._data[offset + i]; } return out; }, appendData: function appendData(newData) { this._data = newData; }, // Clean self if data is already used. clean: function clean() { // PENDING this._offset += this.count(); this._data = null; } } }; function countSimply() { return this._data.length; } function getItemSimply(idx) { return this._data[idx]; } function appendDataSimply(newData) { for (var i = 0; i < newData.length; i++) { this._data.push(newData[i]); } } var rawValueGetters = { arrayRows: getRawValueSimply, objectRows: function objectRows(dataItem, dataIndex, dimIndex, dimName) { return dimIndex != null ? dataItem[dimName] : dataItem; }, keyedColumns: getRawValueSimply, original: function original(dataItem, dataIndex, dimIndex, dimName) { // FIXME // In some case (markpoint in geo (geo-map.html)), dataItem // is {coord: [...]} var value = getDataItemValue(dataItem); return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex]; }, typedArray: getRawValueSimply }; function getRawValueSimply(dataItem, dataIndex, dimIndex, dimName) { return dimIndex != null ? dataItem[dimIndex] : dataItem; } var defaultDimValueGetters = { arrayRows: getDimValueSimply, objectRows: function objectRows(dataItem, dimName, dataIndex, dimIndex) { return converDataValue(dataItem[dimName], this._dimensionInfos[dimName]); }, keyedColumns: getDimValueSimply, original: function original(dataItem, dimName, dataIndex, dimIndex) { // Performance sensitive, do not use modelUtil.getDataItemValue. // If dataItem is an plain object with no value field, the var `value` // will be assigned with the object, but it will be tread correctly // in the `convertDataValue`. var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value); // If any dataItem is like { value: 10 } if (!this._rawData.pure && isDataItemOption(dataItem)) { this.hasItemOption = true; } return converDataValue(value instanceof Array ? value[dimIndex] // If value is a single number or something else not array. : value, this._dimensionInfos[dimName]); }, typedArray: function typedArray(dataItem, dimName, dataIndex, dimIndex) { return dataItem[dimIndex]; } }; function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) { return converDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]); } /** * This helper method convert value in data. * @param {string|number|Date} value * @param {Object|string} [dimInfo] If string (like 'x'), dimType defaults 'number'. * If "dimInfo.ordinalParseAndSave", ordinal value can be parsed. */ function converDataValue(value, dimInfo) { // Performance sensitive. var dimType = dimInfo && dimInfo.type; if (dimType === 'ordinal') { // If given value is a category string var ordinalMeta = dimInfo && dimInfo.ordinalMeta; return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value; } if (dimType === 'time' // spead up when using timestamp && typeof value !== 'number' && value != null && value !== '-') { value = +parseDate(value); } // dimType defaults 'number'. // If dimType is not ordinal and value is null or undefined or NaN or '-', // parse to NaN. return value == null || value === '' ? NaN // If string (like '-'), using '+' parse to NaN // If object, also parse to NaN : +value; } // ??? FIXME can these logic be more neat: getRawValue, getRawDataItem, // Consider persistent. // Caution: why use raw value to display on label or tooltip? // A reason is to avoid format. For example time value we do not know // how to format is expected. More over, if stack is used, calculated // value may be 0.91000000001, which have brings trouble to display. // TODO: consider how to treat null/undefined/NaN when display? /** * @param {module:echarts/data/List} data * @param {number} dataIndex * @param {string|number} [dim] dimName or dimIndex * @return {Array.|string|number} can be null/undefined. */ function retrieveRawValue(data, dataIndex, dim) { if (!data) { return; } // Consider data may be not persistent. var dataItem = data.getRawDataItem(dataIndex); if (dataItem == null) { return; } var sourceFormat = data.getProvider().getSource().sourceFormat; var dimName; var dimIndex; var dimInfo = data.getDimensionInfo(dim); if (dimInfo) { dimName = dimInfo.name; dimIndex = dimInfo.index; } return rawValueGetters[sourceFormat](dataItem, dataIndex, dimIndex, dimName); } /** * Compatible with some cases (in pie, map) like: * data: [{name: 'xx', value: 5, selected: true}, ...] * where only sourceFormat is 'original' and 'objectRows' supported. * * ??? TODO * Supported detail options in data item when using 'arrayRows'. * * @param {module:echarts/data/List} data * @param {number} dataIndex * @param {string} attr like 'selected' */ function retrieveRawAttr(data, dataIndex, attr) { if (!data) { return; } var sourceFormat = data.getProvider().getSource().sourceFormat; if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) { return; } var dataItem = data.getRawDataItem(dataIndex); if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) { dataItem = null; } if (dataItem) { return dataItem[attr]; } } exports.DefaultDataProvider = DefaultDataProvider; exports.defaultDimValueGetters = defaultDimValueGetters; exports.retrieveRawValue = retrieveRawValue; exports.retrieveRawAttr = retrieveRawAttr; /***/ }), /* 506 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/stream/task.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var assert = _util.assert; var isArray = _util.isArray; var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {Object} define * @return See the return of `createTask`. */ function createTask(define) { return new Task(define); } /** * @constructor * @param {Object} define * @param {Function} define.reset Custom reset * @param {Function} [define.plan] Returns 'reset' indicate reset immediately. * @param {Function} [define.count] count is used to determin data task. * @param {Function} [define.onDirty] count is used to determin data task. */ function Task(define) { define = define || {}; this._reset = define.reset; this._plan = define.plan; this._count = define.count; this._onDirty = define.onDirty; this._dirty = true; // Context must be specified implicitly, to // avoid miss update context when model changed. this.context; } var taskProto = Task.prototype; /** * @param {Object} performArgs * @param {number} [performArgs.step] Specified step. * @param {number} [performArgs.skip] Skip customer perform call. * @param {number} [performArgs.modBy] Sampling window size. * @param {number} [performArgs.modDataCount] Sampling count. */ taskProto.perform = function (performArgs) { var upTask = this._upstream; var skip = performArgs && performArgs.skip; // TODO some refactor. // Pull data. Must pull data each time, because context.data // may be updated by Series.setData. if (this._dirty && upTask) { var context = this.context; context.data = context.outputData = upTask.context.outputData; } if (this.__pipeline) { this.__pipeline.currentTask = this; } var planResult; if (this._plan && !skip) { planResult = this._plan(this.context); } // Support sharding by mod, which changes the render sequence and makes the rendered graphic // elements uniformed distributed when progress, especially when moving or zooming. var lastModBy = normalizeModBy(this._modBy); var lastModDataCount = this._modDataCount || 0; var modBy = normalizeModBy(performArgs && performArgs.modBy); var modDataCount = performArgs && performArgs.modDataCount || 0; if (lastModBy !== modBy || lastModDataCount !== modDataCount) { planResult = 'reset'; } function normalizeModBy(val) { !(val >= 1) && (val = 1); // jshint ignore:line return val; } var forceFirstProgress; if (this._dirty || planResult === 'reset') { this._dirty = false; forceFirstProgress = reset(this, skip); } this._modBy = modBy; this._modDataCount = modDataCount; var step = performArgs && performArgs.step; if (upTask) { this._dueEnd = upTask._outputDueEnd; } // DataTask or overallTask else { this._dueEnd = this._count ? this._count(this.context) : Infinity; } // Note: Stubs, that its host overall task let it has progress, has progress. // If no progress, pass index from upstream to downstream each time plan called. if (this._progress) { var start = this._dueIndex; var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd); if (!skip && (forceFirstProgress || start < end)) { var progress = this._progress; if (isArray(progress)) { for (var i = 0; i < progress.length; i++) { doProgress(this, progress[i], start, end, modBy, modDataCount); } } else { doProgress(this, progress, start, end, modBy, modDataCount); } } this._dueIndex = end; // If no `outputDueEnd`, assume that output data and // input data is the same, so use `dueIndex` as `outputDueEnd`. var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end; this._outputDueEnd = outputDueEnd; } else { // (1) Some overall task has no progress. // (2) Stubs, that its host overall task do not let it has progress, has no progress. // This should always be performed so it can be passed to downstream. this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd; } return this.unfinished(); }; var iterator = function () { var end; var current; var modBy; var modDataCount; var winCount; var it = { reset: function reset(s, e, sStep, sCount) { current = s; end = e; modBy = sStep; modDataCount = sCount; winCount = Math.ceil(modDataCount / modBy); it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext; } }; return it; function sequentialNext() { return current < end ? current++ : null; } function modNext() { var dataIndex = current % winCount * modBy + Math.ceil(current / winCount); var result = current >= end ? null : dataIndex < modDataCount ? dataIndex // If modDataCount is smaller than data.count() (consider `appendData` case), // Use normal linear rendering mode. : current; current++; return result; } }(); taskProto.dirty = function () { this._dirty = true; this._onDirty && this._onDirty(this.context); }; function doProgress(taskIns, progress, start, end, modBy, modDataCount) { iterator.reset(start, end, modBy, modDataCount); taskIns._callingProgress = progress; taskIns._callingProgress({ start: start, end: end, count: end - start, next: iterator.next }, taskIns.context); } function reset(taskIns, skip) { taskIns._dueIndex = taskIns._outputDueEnd = taskIns._dueEnd = 0; taskIns._settedOutputEnd = null; var progress; var forceFirstProgress; if (!skip && taskIns._reset) { progress = taskIns._reset(taskIns.context); if (progress && progress.progress) { forceFirstProgress = progress.forceFirstProgress; progress = progress.progress; } // To simplify no progress checking, array must has item. if (isArray(progress) && !progress.length) { progress = null; } } taskIns._progress = progress; taskIns._modBy = taskIns._modDataCount = null; var downstream = taskIns._downstream; downstream && downstream.dirty(); return forceFirstProgress; } /** * @return {boolean} */ taskProto.unfinished = function () { return this._progress && this._dueIndex < this._dueEnd; }; /** * @param {Object} downTask The downstream task. * @return {Object} The downstream task. */ taskProto.pipe = function (downTask) { // If already downstream, do not dirty downTask. if (this._downstream !== downTask || this._dirty) { this._downstream = downTask; downTask._upstream = this; downTask.dirty(); } }; taskProto.dispose = function () { if (this._disposed) { return; } this._upstream && (this._upstream._downstream = null); this._downstream && (this._downstream._upstream = null); this._dirty = false; this._disposed = true; }; taskProto.getUpstream = function () { return this._upstream; }; taskProto.getDownstream = function () { return this._downstream; }; taskProto.setOutputEnd = function (end) { // This only happend in dataTask, dataZoom, map, currently. // where dataZoom do not set end each time, but only set // when reset. So we should record the setted end, in case // that the stub of dataZoom perform again and earse the // setted end by upstream. this._outputDueEnd = this._settedOutputEnd = end; }; /////////////////////////////////////////////////////////// // For stream debug (Should be commented out after used!) // Usage: printTask(this, 'begin'); // Usage: printTask(this, null, {someExtraProp}); // function printTask(task, prefix, extra) { // window.ecTaskUID == null && (window.ecTaskUID = 0); // task.uidDebug == null && (task.uidDebug = `task_${window.ecTaskUID++}`); // task.agent && task.agent.uidDebug == null && (task.agent.uidDebug = `task_${window.ecTaskUID++}`); // var props = []; // if (task.__pipeline) { // var val = `${task.__idxInPipeline}/${task.__pipeline.tail.__idxInPipeline} ${task.agent ? '(stub)' : ''}`; // props.push({text: 'idx', value: val}); // } else { // var stubCount = 0; // task.agentStubMap.each(() => stubCount++); // props.push({text: 'idx', value: `overall (stubs: ${stubCount})`}); // } // props.push({text: 'uid', value: task.uidDebug}); // if (task.__pipeline) { // props.push({text: 'pid', value: task.__pipeline.id}); // task.agent && props.push( // {text: 'stubFor', value: task.agent.uidDebug} // ); // } // props.push( // {text: 'dirty', value: task._dirty}, // {text: 'dueIndex', value: task._dueIndex}, // {text: 'dueEnd', value: task._dueEnd}, // {text: 'outputDueEnd', value: task._outputDueEnd} // ); // if (extra) { // Object.keys(extra).forEach(key => { // props.push({text: key, value: extra[key]}); // }); // } // var args = ['color: blue']; // var msg = `%c[${prefix || 'T'}] %c` + props.map(item => ( // args.push('color: black', 'color: red'), // `${item.text}: %c${item.value}` // )).join('%c, '); // console.log.apply(console, [msg].concat(args)); // // console.log(this); // } exports.createTask = createTask; /***/ }), /* 507 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/view/Component.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Group = __webpack_require__(/*! zrender/lib/container/Group */ 413); var componentUtil = __webpack_require__(/*! ../util/component */ 487); var clazzUtil = __webpack_require__(/*! ../util/clazz */ 446); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Component = function Component() { /** * @type {module:zrender/container/Group} * @readOnly */ this.group = new Group(); /** * @type {string} * @readOnly */ this.uid = componentUtil.getUID('viewComponent'); }; Component.prototype = { constructor: Component, init: function init(ecModel, api) {}, render: function render(componentModel, ecModel, api, payload) {}, dispose: function dispose() {}, /** * @param {string} eventType * @param {Object} query * @param {module:zrender/Element} targetEl * @param {Object} packedEvent * @return {boolen} Pass only when return `true`. */ filterForExposedEvent: null }; var componentProto = Component.prototype; componentProto.updateView = componentProto.updateLayout = componentProto.updateVisual = function (seriesModel, ecModel, api, payload) {// Do nothing; }; // Enable Component.extend. clazzUtil.enableClassExtend(Component); // Enable capability of registerClass, getClass, hasClass, registerSubTypeDefaulter and so on. clazzUtil.enableClassManagement(Component, { registerWhenExtend: true }); var _default = Component; module.exports = _default; /***/ }), /* 508 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/view/Chart.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var Group = __webpack_require__(/*! zrender/lib/container/Group */ 413); var componentUtil = __webpack_require__(/*! ../util/component */ 487); var clazzUtil = __webpack_require__(/*! ../util/clazz */ 446); var modelUtil = __webpack_require__(/*! ../util/model */ 444); var graphicUtil = __webpack_require__(/*! ../util/graphic */ 451); var _task = __webpack_require__(/*! ../stream/task */ 506); var createTask = _task.createTask; var createRenderPlanner = __webpack_require__(/*! ../chart/helper/createRenderPlanner */ 509); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = modelUtil.makeInner(); var renderPlanner = createRenderPlanner(); function Chart() { /** * @type {module:zrender/container/Group} * @readOnly */ this.group = new Group(); /** * @type {string} * @readOnly */ this.uid = componentUtil.getUID('viewChart'); this.renderTask = createTask({ plan: renderTaskPlan, reset: renderTaskReset }); this.renderTask.context = { view: this }; } Chart.prototype = { type: 'chart', /** * Init the chart. * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api */ init: function init(ecModel, api) {}, /** * Render the chart. * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @param {Object} payload */ render: function render(seriesModel, ecModel, api, payload) {}, /** * Highlight series or specified data item. * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @param {Object} payload */ highlight: function highlight(seriesModel, ecModel, api, payload) { toggleHighlight(seriesModel.getData(), payload, 'emphasis'); }, /** * Downplay series or specified data item. * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @param {Object} payload */ downplay: function downplay(seriesModel, ecModel, api, payload) { toggleHighlight(seriesModel.getData(), payload, 'normal'); }, /** * Remove self. * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api */ remove: function remove(ecModel, api) { this.group.removeAll(); }, /** * Dispose self. * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api */ dispose: function dispose() {}, /** * Rendering preparation in progressive mode. * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @param {Object} payload */ incrementalPrepareRender: null, /** * Render in progressive mode. * @param {Object} params See taskParams in `stream/task.js` * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @param {Object} payload */ incrementalRender: null, /** * Update transform directly. * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @param {Object} payload * @return {Object} {update: true} */ updateTransform: null, /** * The view contains the given point. * @interface * @param {Array.} point * @return {boolean} */ // containPoint: function () {} /** * @param {string} eventType * @param {Object} query * @param {module:zrender/Element} targetEl * @param {Object} packedEvent * @return {boolen} Pass only when return `true`. */ filterForExposedEvent: null }; var chartProto = Chart.prototype; chartProto.updateView = chartProto.updateLayout = chartProto.updateVisual = function (seriesModel, ecModel, api, payload) { this.render(seriesModel, ecModel, api, payload); }; /** * Set state of single element * @param {module:zrender/Element} el * @param {string} state 'normal'|'emphasis' * @param {number} highlightDigit */ function elSetState(el, state, highlightDigit) { if (el) { el.trigger(state, highlightDigit); if (el.isGroup // Simple optimize. && !graphicUtil.isHighDownDispatcher(el)) { for (var i = 0, len = el.childCount(); i < len; i++) { elSetState(el.childAt(i), state, highlightDigit); } } } } /** * @param {module:echarts/data/List} data * @param {Object} payload * @param {string} state 'normal'|'emphasis' */ function toggleHighlight(data, payload, state) { var dataIndex = modelUtil.queryDataIndex(data, payload); var highlightDigit = payload && payload.highlightKey != null ? graphicUtil.getHighlightDigit(payload.highlightKey) : null; if (dataIndex != null) { each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) { elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit); }); } else { data.eachItemGraphicEl(function (el) { elSetState(el, state, highlightDigit); }); } } // Enable Chart.extend. clazzUtil.enableClassExtend(Chart, ['dispose']); // Add capability of registerClass, getClass, hasClass, registerSubTypeDefaulter and so on. clazzUtil.enableClassManagement(Chart, { registerWhenExtend: true }); Chart.markUpdateMethod = function (payload, methodName) { inner(payload).updateMethod = methodName; }; function renderTaskPlan(context) { return renderPlanner(context.model); } function renderTaskReset(context) { var seriesModel = context.model; var ecModel = context.ecModel; var api = context.api; var payload = context.payload; // ???! remove updateView updateVisual var progressiveRender = seriesModel.pipelineContext.progressiveRender; var view = context.view; var updateMethod = payload && inner(payload).updateMethod; var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod // `appendData` is also supported when data amount // is less than progressive threshold. : 'render'; if (methodName !== 'render') { view[methodName](seriesModel, ecModel, api, payload); } return progressMethodMap[methodName]; } var progressMethodMap = { incrementalPrepareRender: { progress: function progress(params, context) { context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload); } }, render: { // Put view.render in `progress` to support appendData. But in this case // view.render should not be called in reset, otherwise it will be called // twise. Use `forceFirstProgress` to make sure that view.render is called // in any cases. forceFirstProgress: true, progress: function progress(params, context) { context.view.render(context.model, context.ecModel, context.api, context.payload); } } }; var _default = Chart; module.exports = _default; /***/ }), /* 509 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/createRenderPlanner.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @return {string} If large mode changed, return string 'reset'; */ function _default() { var inner = makeInner(); return function (seriesModel) { var fields = inner(seriesModel); var pipelineContext = seriesModel.pipelineContext; var originalLarge = fields.large; var originalProgressive = fields.progressiveRender; // FIXME: if the planner works on a filtered series, `pipelineContext` does not // exists. See #11611 . Probably we need to modify this structure, see the comment // on `performRawSeries` in `Schedular.js`. var large = fields.large = pipelineContext && pipelineContext.large; var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender; return !!(originalLarge ^ large || originalProgressive ^ progressive) && 'reset'; }; } module.exports = _default; /***/ }), /* 510 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/throttle.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ORIGIN_METHOD = '\0__throttleOriginMethod'; var RATE = '\0__throttleRate'; var THROTTLE_TYPE = '\0__throttleType'; /** * @public * @param {(Function)} fn * @param {number} [delay=0] Unit: ms. * @param {boolean} [debounce=false] * true: If call interval less than `delay`, only the last call works. * false: If call interval less than `delay, call works on fixed rate. * @return {(Function)} throttled fn. */ function throttle(fn, delay, debounce) { var currCall; var lastCall = 0; var lastExec = 0; var timer = null; var diff; var scope; var args; var debounceNextCall; delay = delay || 0; function exec() { lastExec = new Date().getTime(); timer = null; fn.apply(scope, args || []); } var cb = function cb() { currCall = new Date().getTime(); scope = this; args = arguments; var thisDelay = debounceNextCall || delay; var thisDebounce = debounceNextCall || debounce; debounceNextCall = null; diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay; clearTimeout(timer); // Here we should make sure that: the `exec` SHOULD NOT be called later // than a new call of `cb`, that is, preserving the command order. Consider // calculating "scale rate" when roaming as an example. When a call of `cb` // happens, either the `exec` is called dierectly, or the call is delayed. // But the delayed call should never be later than next call of `cb`. Under // this assurance, we can simply update view state each time `dispatchAction` // triggered by user roaming, but not need to add extra code to avoid the // state being "rolled-back". if (thisDebounce) { timer = setTimeout(exec, thisDelay); } else { if (diff >= 0) { exec(); } else { timer = setTimeout(exec, -diff); } } lastCall = currCall; }; /** * Clear throttle. * @public */ cb.clear = function () { if (timer) { clearTimeout(timer); timer = null; } }; /** * Enable debounce once. */ cb.debounceNextCall = function (debounceDelay) { debounceNextCall = debounceDelay; }; return cb; } /** * Create throttle method or update throttle rate. * * @example * ComponentView.prototype.render = function () { * ... * throttle.createOrUpdate( * this, * '_dispatchAction', * this.model.get('throttle'), * 'fixRate' * ); * }; * ComponentView.prototype.remove = function () { * throttle.clear(this, '_dispatchAction'); * }; * ComponentView.prototype.dispose = function () { * throttle.clear(this, '_dispatchAction'); * }; * * @public * @param {Object} obj * @param {string} fnAttr * @param {number} [rate] * @param {string} [throttleType='fixRate'] 'fixRate' or 'debounce' * @return {Function} throttled function. */ function createOrUpdate(obj, fnAttr, rate, throttleType) { var fn = obj[fnAttr]; if (!fn) { return; } var originFn = fn[ORIGIN_METHOD] || fn; var lastThrottleType = fn[THROTTLE_TYPE]; var lastRate = fn[RATE]; if (lastRate !== rate || lastThrottleType !== throttleType) { if (rate == null || !throttleType) { return obj[fnAttr] = originFn; } fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce'); fn[ORIGIN_METHOD] = originFn; fn[THROTTLE_TYPE] = throttleType; fn[RATE] = rate; } return fn; } /** * Clear throttle. Example see throttle.createOrUpdate. * * @public * @param {Object} obj * @param {string} fnAttr */ function clear(obj, fnAttr) { var fn = obj[fnAttr]; if (fn && fn[ORIGIN_METHOD]) { obj[fnAttr] = fn[ORIGIN_METHOD]; } } exports.throttle = throttle; exports.createOrUpdate = createOrUpdate; exports.clear = clear; /***/ }), /* 511 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/seriesColor.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Gradient = __webpack_require__(/*! zrender/lib/graphic/Gradient */ 482); var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var isFunction = _util.isFunction; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = { createOnAllSeries: true, performRawSeries: true, reset: function reset(seriesModel, ecModel) { var data = seriesModel.getData(); var colorAccessPath = (seriesModel.visualColorAccessPath || 'itemStyle.color').split('.'); // Set in itemStyle var color = seriesModel.get(colorAccessPath); var colorCallback = isFunction(color) && !(color instanceof Gradient) ? color : null; // Default color if (!color || colorCallback) { color = seriesModel.getColorFromPalette( // TODO series count changed. seriesModel.name, null, ecModel.getSeriesCount()); } data.setVisual('color', color); var borderColorAccessPath = (seriesModel.visualBorderColorAccessPath || 'itemStyle.borderColor').split('.'); var borderColor = seriesModel.get(borderColorAccessPath); data.setVisual('borderColor', borderColor); // Only visible series has each data be visual encoded if (!ecModel.isSeriesFiltered(seriesModel)) { if (colorCallback) { data.each(function (idx) { data.setItemVisual(idx, 'color', colorCallback(seriesModel.getDataParams(idx))); }); } // itemStyle in each data item var dataEach = function dataEach(data, idx) { var itemModel = data.getItemModel(idx); var color = itemModel.get(colorAccessPath, true); var borderColor = itemModel.get(borderColorAccessPath, true); if (color != null) { data.setItemVisual(idx, 'color', color); } if (borderColor != null) { data.setItemVisual(idx, 'borderColor', borderColor); } }; return { dataEach: data.hasItemOption ? dataEach : null }; } } }; module.exports = _default; /***/ }), /* 512 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/aria.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var lang = __webpack_require__(/*! ../lang */ 513); var _dataProvider = __webpack_require__(/*! ../data/helper/dataProvider */ 505); var retrieveRawValue = _dataProvider.retrieveRawValue; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(dom, ecModel) { var ariaModel = ecModel.getModel('aria'); if (!ariaModel.get('show')) { return; } else if (ariaModel.get('description')) { dom.setAttribute('aria-label', ariaModel.get('description')); return; } var seriesCnt = 0; ecModel.eachSeries(function (seriesModel, idx) { ++seriesCnt; }, this); var maxDataCnt = ariaModel.get('data.maxCount') || 10; var maxSeriesCnt = ariaModel.get('series.maxCount') || 10; var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt); var ariaLabel; if (seriesCnt < 1) { // No series, no aria label return; } else { var title = getTitle(); if (title) { ariaLabel = replace(getConfig('general.withTitle'), { title: title }); } else { ariaLabel = getConfig('general.withoutTitle'); } var seriesLabels = []; var prefix = seriesCnt > 1 ? 'series.multiple.prefix' : 'series.single.prefix'; ariaLabel += replace(getConfig(prefix), { seriesCount: seriesCnt }); ecModel.eachSeries(function (seriesModel, idx) { if (idx < displaySeriesCnt) { var seriesLabel; var seriesName = seriesModel.get('name'); var seriesTpl = 'series.' + (seriesCnt > 1 ? 'multiple' : 'single') + '.'; seriesLabel = getConfig(seriesName ? seriesTpl + 'withName' : seriesTpl + 'withoutName'); seriesLabel = replace(seriesLabel, { seriesId: seriesModel.seriesIndex, seriesName: seriesModel.get('name'), seriesType: getSeriesTypeName(seriesModel.subType) }); var data = seriesModel.getData(); window.data = data; if (data.count() > maxDataCnt) { // Show part of data seriesLabel += replace(getConfig('data.partialData'), { displayCnt: maxDataCnt }); } else { seriesLabel += getConfig('data.allData'); } var dataLabels = []; for (var i = 0; i < data.count(); i++) { if (i < maxDataCnt) { var name = data.getName(i); var value = retrieveRawValue(data, i); dataLabels.push(replace(name ? getConfig('data.withName') : getConfig('data.withoutName'), { name: name, value: value })); } } seriesLabel += dataLabels.join(getConfig('data.separator.middle')) + getConfig('data.separator.end'); seriesLabels.push(seriesLabel); } }); ariaLabel += seriesLabels.join(getConfig('series.multiple.separator.middle')) + getConfig('series.multiple.separator.end'); dom.setAttribute('aria-label', ariaLabel); } function replace(str, keyValues) { if (typeof str !== 'string') { return str; } var result = str; zrUtil.each(keyValues, function (value, key) { result = result.replace(new RegExp('\\{\\s*' + key + '\\s*\\}', 'g'), value); }); return result; } function getConfig(path) { var userConfig = ariaModel.get(path); if (userConfig == null) { var pathArr = path.split('.'); var result = lang.aria; for (var i = 0; i < pathArr.length; ++i) { result = result[pathArr[i]]; } return result; } else { return userConfig; } } function getTitle() { var title = ecModel.getModel('title').option; if (title && title.length) { title = title[0]; } return title && title.text; } function getSeriesTypeName(type) { return lang.series.typeNames[type] || '自定义图'; } } module.exports = _default; /***/ }), /* 513 */ /*!*****************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/lang.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Language: (Simplified) Chinese. */ var _default = { legend: { selector: { all: '全选', inverse: '反选' } }, toolbox: { brush: { title: { rect: '矩形选择', polygon: '圈选', lineX: '横向选择', lineY: '纵向选择', keep: '保持选择', clear: '清除选择' } }, dataView: { title: '数据视图', lang: ['数据视图', '关闭', '刷新'] }, dataZoom: { title: { zoom: '区域缩放', back: '区域缩放还原' } }, magicType: { title: { line: '切换为折线图', bar: '切换为柱状图', stack: '切换为堆叠', tiled: '切换为平铺' } }, restore: { title: '还原' }, saveAsImage: { title: '保存为图片', lang: ['右键另存为图片'] } }, series: { typeNames: { pie: '饼图', bar: '柱状图', line: '折线图', scatter: '散点图', effectScatter: '涟漪散点图', radar: '雷达图', tree: '树图', treemap: '矩形树图', boxplot: '箱型图', candlestick: 'K线图', k: 'K线图', heatmap: '热力图', map: '地图', parallel: '平行坐标图', lines: '线图', graph: '关系图', sankey: '桑基图', funnel: '漏斗图', gauge: '仪表盘图', pictorialBar: '象形柱图', themeRiver: '主题河流图', sunburst: '旭日图' } }, aria: { general: { withTitle: '这是一个关于“{title}”的图表。', withoutTitle: '这是一个图表,' }, series: { single: { prefix: '', withName: '图表类型是{seriesType},表示{seriesName}。', withoutName: '图表类型是{seriesType}。' }, multiple: { prefix: '它由{seriesCount}个图表系列组成。', withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},', withoutName: '第{seriesId}个系列是一个{seriesType},', separator: { middle: ';', end: '。' } } }, data: { allData: '其数据是——', partialData: '其中,前{displayCnt}项是——', withName: '{name}的数据是{value}', withoutName: '{value}', separator: { middle: ',', end: '' } } } }; module.exports = _default; /***/ }), /* 514 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/loading/default.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../util/graphic */ 451); var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PI = Math.PI; /** * @param {module:echarts/ExtensionAPI} api * @param {Object} [opts] * @param {string} [opts.text] * @param {string} [opts.color] * @param {string} [opts.textColor] * @return {module:zrender/Element} */ function _default(api, opts) { opts = opts || {}; zrUtil.defaults(opts, { text: 'loading', textColor: '#000', fontSize: '12px', maskColor: 'rgba(255, 255, 255, 0.8)', showSpinner: true, color: '#c23531', spinnerRadius: 10, lineWidth: 5, zlevel: 0 }); var group = new graphic.Group(); var mask = new graphic.Rect({ style: { fill: opts.maskColor }, zlevel: opts.zlevel, z: 10000 }); group.add(mask); var font = opts.fontSize + ' sans-serif'; var labelRect = new graphic.Rect({ style: { fill: 'none', text: opts.text, font: font, textPosition: 'right', textDistance: 10, textFill: opts.textColor }, zlevel: opts.zlevel, z: 10001 }); group.add(labelRect); if (opts.showSpinner) { var arc = new graphic.Arc({ shape: { startAngle: -PI / 2, endAngle: -PI / 2 + 0.1, r: opts.spinnerRadius }, style: { stroke: opts.color, lineCap: 'round', lineWidth: opts.lineWidth }, zlevel: opts.zlevel, z: 10001 }); arc.animateShape(true).when(1000, { endAngle: PI * 3 / 2 }).start('circularInOut'); arc.animateShape(true).when(1000, { startAngle: PI * 3 / 2 }).delay(300).start('circularInOut'); group.add(arc); } // Inject resize group.resize = function () { var textWidth = textContain.getWidth(opts.text, font); var r = opts.showSpinner ? opts.spinnerRadius : 0; // cx = (containerWidth - arcDiameter - textDistance - textWidth) / 2 // textDistance needs to be calculated when both animation and text exist var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 // only show the text - (opts.showSpinner ? 0 : textWidth / 2); var cy = api.getHeight() / 2; opts.showSpinner && arc.setShape({ cx: cx, cy: cy }); labelRect.setShape({ x: cx - r, y: cy - r, width: r * 2, height: r * 2 }); mask.setShape({ x: 0, y: 0, width: api.getWidth(), height: api.getHeight() }); }; group.resize(); return group; } module.exports = _default; /***/ }), /* 515 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/stream/Scheduler.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var map = _util.map; var isFunction = _util.isFunction; var createHashMap = _util.createHashMap; var noop = _util.noop; var _task = __webpack_require__(/*! ./task */ 506); var createTask = _task.createTask; var _component = __webpack_require__(/*! ../util/component */ 487); var getUID = _component.getUID; var GlobalModel = __webpack_require__(/*! ../model/Global */ 443); var ExtensionAPI = __webpack_require__(/*! ../ExtensionAPI */ 497); var _model = __webpack_require__(/*! ../util/model */ 444); var normalizeToArray = _model.normalizeToArray; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/stream/Scheduler */ /** * @constructor */ function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) { this.ecInstance = ecInstance; this.api = api; this.unfinished; // Fix current processors in case that in some rear cases that // processors might be registered after echarts instance created. // Register processors incrementally for a echarts instance is // not supported by this stream architecture. var dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice(); var visualHandlers = this._visualHandlers = visualHandlers.slice(); this._allHandlers = dataProcessorHandlers.concat(visualHandlers); /** * @private * @type { * [handlerUID: string]: { * seriesTaskMap?: { * [seriesUID: string]: Task * }, * overallTask?: Task * } * } */ this._stageTaskMap = createHashMap(); } var proto = Scheduler.prototype; /** * @param {module:echarts/model/Global} ecModel * @param {Object} payload */ proto.restoreData = function (ecModel, payload) { // TODO: Only restore needed series and components, but not all components. // Currently `restoreData` of all of the series and component will be called. // But some independent components like `title`, `legend`, `graphic`, `toolbox`, // `tooltip`, `axisPointer`, etc, do not need series refresh when `setOption`, // and some components like coordinate system, axes, dataZoom, visualMap only // need their target series refresh. // (1) If we are implementing this feature some day, we should consider these cases: // if a data processor depends on a component (e.g., dataZoomProcessor depends // on the settings of `dataZoom`), it should be re-performed if the component // is modified by `setOption`. // (2) If a processor depends on sevral series, speicified by its `getTargetSeries`, // it should be re-performed when the result array of `getTargetSeries` changed. // We use `dependencies` to cover these issues. // (3) How to update target series when coordinate system related components modified. // TODO: simply the dirty mechanism? Check whether only the case here can set tasks dirty, // and this case all of the tasks will be set as dirty. ecModel.restoreData(payload); // Theoretically an overall task not only depends on each of its target series, but also // depends on all of the series. // The overall task is not in pipeline, and `ecModel.restoreData` only set pipeline tasks // dirty. If `getTargetSeries` of an overall task returns nothing, we should also ensure // that the overall task is set as dirty and to be performed, otherwise it probably cause // state chaos. So we have to set dirty of all of the overall tasks manually, otherwise it // probably cause state chaos (consider `dataZoomProcessor`). this._stageTaskMap.each(function (taskRecord) { var overallTask = taskRecord.overallTask; overallTask && overallTask.dirty(); }); }; // If seriesModel provided, incremental threshold is check by series data. proto.getPerformArgs = function (task, isBlock) { // For overall task if (!task.__pipeline) { return; } var pipeline = this._pipelineMap.get(task.__pipeline.id); var pCtx = pipeline.context; var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex; var step = incremental ? pipeline.step : null; var modDataCount = pCtx && pCtx.modDataCount; var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null; return { step: step, modBy: modBy, modDataCount: modDataCount }; }; proto.getPipeline = function (pipelineId) { return this._pipelineMap.get(pipelineId); }; /** * Current, progressive rendering starts from visual and layout. * Always detect render mode in the same stage, avoiding that incorrect * detection caused by data filtering. * Caution: * `updateStreamModes` use `seriesModel.getData()`. */ proto.updateStreamModes = function (seriesModel, view) { var pipeline = this._pipelineMap.get(seriesModel.uid); var data = seriesModel.getData(); var dataLen = data.count(); // `progressiveRender` means that can render progressively in each // animation frame. Note that some types of series do not provide // `view.incrementalPrepareRender` but support `chart.appendData`. We // use the term `incremental` but not `progressive` to describe the // case that `chart.appendData`. var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold; var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold'); // TODO: modDataCount should not updated if `appendData`, otherwise cause whole repaint. // see `test/candlestick-large3.html` var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null; seriesModel.pipelineContext = pipeline.context = { progressiveRender: progressiveRender, modDataCount: modDataCount, large: large }; }; proto.restorePipelines = function (ecModel) { var scheduler = this; var pipelineMap = scheduler._pipelineMap = createHashMap(); ecModel.eachSeries(function (seriesModel) { var progressive = seriesModel.getProgressive(); var pipelineId = seriesModel.uid; pipelineMap.set(pipelineId, { id: pipelineId, head: null, tail: null, threshold: seriesModel.getProgressiveThreshold(), progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()), blockIndex: -1, step: Math.round(progressive || 700), count: 0 }); pipe(scheduler, seriesModel, seriesModel.dataTask); }); }; proto.prepareStageTasks = function () { var stageTaskMap = this._stageTaskMap; var ecModel = this.ecInstance.getModel(); var api = this.api; each(this._allHandlers, function (handler) { var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, []); handler.reset && createSeriesStageTask(this, handler, record, ecModel, api); handler.overallReset && createOverallStageTask(this, handler, record, ecModel, api); }, this); }; proto.prepareView = function (view, model, ecModel, api) { var renderTask = view.renderTask; var context = renderTask.context; context.model = model; context.ecModel = ecModel; context.api = api; renderTask.__block = !view.incrementalPrepareRender; pipe(this, model, renderTask); }; proto.performDataProcessorTasks = function (ecModel, payload) { // If we do not use `block` here, it should be considered when to update modes. performStageTasks(this, this._dataProcessorHandlers, ecModel, payload, { block: true }); }; // opt // opt.visualType: 'visual' or 'layout' // opt.setDirty proto.performVisualTasks = function (ecModel, payload, opt) { performStageTasks(this, this._visualHandlers, ecModel, payload, opt); }; function performStageTasks(scheduler, stageHandlers, ecModel, payload, opt) { opt = opt || {}; var unfinished; each(stageHandlers, function (stageHandler, idx) { if (opt.visualType && opt.visualType !== stageHandler.visualType) { return; } var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid); var seriesTaskMap = stageHandlerRecord.seriesTaskMap; var overallTask = stageHandlerRecord.overallTask; if (overallTask) { var overallNeedDirty; var agentStubMap = overallTask.agentStubMap; agentStubMap.each(function (stub) { if (needSetDirty(opt, stub)) { stub.dirty(); overallNeedDirty = true; } }); overallNeedDirty && overallTask.dirty(); updatePayload(overallTask, payload); var performArgs = scheduler.getPerformArgs(overallTask, opt.block); // Execute stubs firstly, which may set the overall task dirty, // then execute the overall task. And stub will call seriesModel.setData, // which ensures that in the overallTask seriesModel.getData() will not // return incorrect data. agentStubMap.each(function (stub) { stub.perform(performArgs); }); unfinished |= overallTask.perform(performArgs); } else if (seriesTaskMap) { seriesTaskMap.each(function (task, pipelineId) { if (needSetDirty(opt, task)) { task.dirty(); } var performArgs = scheduler.getPerformArgs(task, opt.block); // FIXME // if intending to decalare `performRawSeries` in handlers, only // stream-independent (specifically, data item independent) operations can be // performed. Because is a series is filtered, most of the tasks will not // be performed. A stream-dependent operation probably cause wrong biz logic. // Perhaps we should not provide a separate callback for this case instead // of providing the config `performRawSeries`. The stream-dependent operaions // and stream-independent operations should better not be mixed. performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model); updatePayload(task, payload); unfinished |= task.perform(performArgs); }); } }); function needSetDirty(opt, task) { return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id)); } scheduler.unfinished |= unfinished; } proto.performSeriesTasks = function (ecModel) { var unfinished; ecModel.eachSeries(function (seriesModel) { // Progress to the end for dataInit and dataRestore. unfinished |= seriesModel.dataTask.perform(); }); this.unfinished |= unfinished; }; proto.plan = function () { // Travel pipelines, check block. this._pipelineMap.each(function (pipeline) { var task = pipeline.tail; do { if (task.__block) { pipeline.blockIndex = task.__idxInPipeline; break; } task = task.getUpstream(); } while (task); }); }; var updatePayload = proto.updatePayload = function (task, payload) { payload !== 'remain' && (task.context.payload = payload); }; function createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) { var seriesTaskMap = stageHandlerRecord.seriesTaskMap || (stageHandlerRecord.seriesTaskMap = createHashMap()); var seriesType = stageHandler.seriesType; var getTargetSeries = stageHandler.getTargetSeries; // If a stageHandler should cover all series, `createOnAllSeries` should be declared mandatorily, // to avoid some typo or abuse. Otherwise if an extension do not specify a `seriesType`, // it works but it may cause other irrelevant charts blocked. if (stageHandler.createOnAllSeries) { ecModel.eachRawSeries(create); } else if (seriesType) { ecModel.eachRawSeriesByType(seriesType, create); } else if (getTargetSeries) { getTargetSeries(ecModel, api).each(create); } function create(seriesModel) { var pipelineId = seriesModel.uid; // Init tasks for each seriesModel only once. // Reuse original task instance. var task = seriesTaskMap.get(pipelineId) || seriesTaskMap.set(pipelineId, createTask({ plan: seriesTaskPlan, reset: seriesTaskReset, count: seriesTaskCount })); task.context = { model: seriesModel, ecModel: ecModel, api: api, useClearVisual: stageHandler.isVisual && !stageHandler.isLayout, plan: stageHandler.plan, reset: stageHandler.reset, scheduler: scheduler }; pipe(scheduler, seriesModel, task); } // Clear unused series tasks. var pipelineMap = scheduler._pipelineMap; seriesTaskMap.each(function (task, pipelineId) { if (!pipelineMap.get(pipelineId)) { task.dispose(); seriesTaskMap.removeKey(pipelineId); } }); } function createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) { var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask // For overall task, the function only be called on reset stage. || createTask({ reset: overallTaskReset }); overallTask.context = { ecModel: ecModel, api: api, overallReset: stageHandler.overallReset, scheduler: scheduler }; // Reuse orignal stubs. var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap || createHashMap(); var seriesType = stageHandler.seriesType; var getTargetSeries = stageHandler.getTargetSeries; var overallProgress = true; var modifyOutputEnd = stageHandler.modifyOutputEnd; // An overall task with seriesType detected or has `getTargetSeries`, we add // stub in each pipelines, it will set the overall task dirty when the pipeline // progress. Moreover, to avoid call the overall task each frame (too frequent), // we set the pipeline block. if (seriesType) { ecModel.eachRawSeriesByType(seriesType, createStub); } else if (getTargetSeries) { getTargetSeries(ecModel, api).each(createStub); } // Otherwise, (usually it is legancy case), the overall task will only be // executed when upstream dirty. Otherwise the progressive rendering of all // pipelines will be disabled unexpectedly. But it still needs stubs to receive // dirty info from upsteam. else { overallProgress = false; each(ecModel.getSeries(), createStub); } function createStub(seriesModel) { var pipelineId = seriesModel.uid; var stub = agentStubMap.get(pipelineId); if (!stub) { stub = agentStubMap.set(pipelineId, createTask({ reset: stubReset, onDirty: stubOnDirty })); // When the result of `getTargetSeries` changed, the overallTask // should be set as dirty and re-performed. overallTask.dirty(); } stub.context = { model: seriesModel, overallProgress: overallProgress, modifyOutputEnd: modifyOutputEnd }; stub.agent = overallTask; stub.__block = overallProgress; pipe(scheduler, seriesModel, stub); } // Clear unused stubs. var pipelineMap = scheduler._pipelineMap; agentStubMap.each(function (stub, pipelineId) { if (!pipelineMap.get(pipelineId)) { stub.dispose(); // When the result of `getTargetSeries` changed, the overallTask // should be set as dirty and re-performed. overallTask.dirty(); agentStubMap.removeKey(pipelineId); } }); } function overallTaskReset(context) { context.overallReset(context.ecModel, context.api, context.payload); } function stubReset(context, upstreamContext) { return context.overallProgress && stubProgress; } function stubProgress() { this.agent.dirty(); this.getDownstream().dirty(); } function stubOnDirty() { this.agent && this.agent.dirty(); } function seriesTaskPlan(context) { return context.plan && context.plan(context.model, context.ecModel, context.api, context.payload); } function seriesTaskReset(context) { if (context.useClearVisual) { context.data.clearAllVisual(); } var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload)); return resetDefines.length > 1 ? map(resetDefines, function (v, idx) { return makeSeriesTaskProgress(idx); }) : singleSeriesTaskProgress; } var singleSeriesTaskProgress = makeSeriesTaskProgress(0); function makeSeriesTaskProgress(resetDefineIdx) { return function (params, context) { var data = context.data; var resetDefine = context.resetDefines[resetDefineIdx]; if (resetDefine && resetDefine.dataEach) { for (var i = params.start; i < params.end; i++) { resetDefine.dataEach(data, i); } } else if (resetDefine && resetDefine.progress) { resetDefine.progress(params, data); } }; } function seriesTaskCount(context) { return context.data.count(); } function pipe(scheduler, seriesModel, task) { var pipelineId = seriesModel.uid; var pipeline = scheduler._pipelineMap.get(pipelineId); !pipeline.head && (pipeline.head = task); pipeline.tail && pipeline.tail.pipe(task); pipeline.tail = task; task.__idxInPipeline = pipeline.count++; task.__pipeline = pipeline; } Scheduler.wrapStageHandler = function (stageHandler, visualType) { if (isFunction(stageHandler)) { stageHandler = { overallReset: stageHandler, seriesType: detectSeriseType(stageHandler) }; } stageHandler.uid = getUID('stageHandler'); visualType && (stageHandler.visualType = visualType); return stageHandler; }; /** * Only some legacy stage handlers (usually in echarts extensions) are pure function. * To ensure that they can work normally, they should work in block mode, that is, * they should not be started util the previous tasks finished. So they cause the * progressive rendering disabled. We try to detect the series type, to narrow down * the block range to only the series type they concern, but not all series. */ function detectSeriseType(legacyFunc) { seriesType = null; try { // Assume there is no async when calling `eachSeriesByType`. legacyFunc(ecModelMock, apiMock); } catch (e) {} return seriesType; } var ecModelMock = {}; var apiMock = {}; var seriesType; mockMethods(ecModelMock, GlobalModel); mockMethods(apiMock, ExtensionAPI); ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) { seriesType = type; }; ecModelMock.eachComponent = function (cond) { if (cond.mainType === 'series' && cond.subType) { seriesType = cond.subType; } }; function mockMethods(target, Clz) { /* eslint-disable */ for (var name in Clz.prototype) { // Do not use hasOwnProperty target[name] = noop; } /* eslint-enable */ } var _default = Scheduler; module.exports = _default; /***/ }), /* 516 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/theme/light.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF']; var _default = { color: colorAll, colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll] }; module.exports = _default; /***/ }), /* 517 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/theme/dark.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var contrastColor = '#eee'; var axisCommon = function axisCommon() { return { axisLine: { lineStyle: { color: contrastColor } }, axisTick: { lineStyle: { color: contrastColor } }, axisLabel: { textStyle: { color: contrastColor } }, splitLine: { lineStyle: { type: 'dashed', color: '#aaa' } }, splitArea: { areaStyle: { color: contrastColor } } }; }; var colorPalette = ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53', '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42']; var theme = { color: colorPalette, backgroundColor: '#333', tooltip: { axisPointer: { lineStyle: { color: contrastColor }, crossStyle: { color: contrastColor }, label: { color: '#000' } } }, legend: { textStyle: { color: contrastColor } }, textStyle: { color: contrastColor }, title: { textStyle: { color: contrastColor } }, toolbox: { iconStyle: { normal: { borderColor: contrastColor } } }, dataZoom: { textStyle: { color: contrastColor } }, visualMap: { textStyle: { color: contrastColor } }, timeline: { lineStyle: { color: contrastColor }, itemStyle: { normal: { color: colorPalette[1] } }, label: { normal: { textStyle: { color: contrastColor } } }, controlStyle: { normal: { color: contrastColor, borderColor: contrastColor } } }, timeAxis: axisCommon(), logAxis: axisCommon(), valueAxis: axisCommon(), categoryAxis: axisCommon(), line: { symbol: 'circle' }, graph: { color: colorPalette }, gauge: { title: { textStyle: { color: contrastColor } } }, candlestick: { itemStyle: { normal: { color: '#FD1050', color0: '#0CF49B', borderColor: '#FD1050', borderColor0: '#0CF49B' } } } }; theme.categoryAxis.splitLine.show = false; var _default = theme; module.exports = _default; /***/ }), /* 518 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataset.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ComponentModel = __webpack_require__(/*! ../model/Component */ 486); var ComponentView = __webpack_require__(/*! ../view/Component */ 507); var _sourceHelper = __webpack_require__(/*! ../data/helper/sourceHelper */ 494); var detectSourceFormat = _sourceHelper.detectSourceFormat; var _sourceType = __webpack_require__(/*! ../data/helper/sourceType */ 496); var SERIES_LAYOUT_BY_COLUMN = _sourceType.SERIES_LAYOUT_BY_COLUMN; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * This module is imported by echarts directly. * * Notice: * Always keep this file exists for backward compatibility. * Because before 4.1.0, dataset is an optional component, * some users may import this module manually. */ ComponentModel.extend({ type: 'dataset', /** * @protected */ defaultOption: { // 'row', 'column' seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN, // null/'auto': auto detect header, see "module:echarts/data/helper/sourceHelper" sourceHeader: null, dimensions: null, source: null }, optionUpdated: function optionUpdated() { detectSourceFormat(this); } }); ComponentView.extend({ type: 'dataset' }); /***/ }), /* 519 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/mapDataStorage.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var isString = _util.isString; var isArray = _util.isArray; var each = _util.each; var assert = _util.assert; var _parseSVG = __webpack_require__(/*! zrender/lib/tool/parseSVG */ 520); var parseXML = _parseSVG.parseXML; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var storage = createHashMap(); // For minimize the code size of common echarts package, // do not put too much logic in this module. var _default = { // The format of record: see `echarts.registerMap`. // Compatible with previous `echarts.registerMap`. registerMap: function registerMap(mapName, rawGeoJson, rawSpecialAreas) { var records; if (isArray(rawGeoJson)) { records = rawGeoJson; } else if (rawGeoJson.svg) { records = [{ type: 'svg', source: rawGeoJson.svg, specialAreas: rawGeoJson.specialAreas }]; } else { // Backward compatibility. if (rawGeoJson.geoJson && !rawGeoJson.features) { rawSpecialAreas = rawGeoJson.specialAreas; rawGeoJson = rawGeoJson.geoJson; } records = [{ type: 'geoJSON', source: rawGeoJson, specialAreas: rawSpecialAreas }]; } each(records, function (record) { var type = record.type; type === 'geoJson' && (type = record.type = 'geoJSON'); var parse = parsers[type]; parse(record); }); return storage.set(mapName, records); }, retrieveMap: function retrieveMap(mapName) { return storage.get(mapName); } }; var parsers = { geoJSON: function geoJSON(record) { var source = record.source; record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')(); }, // Only perform parse to XML object here, which might be time // consiming for large SVG. // Although convert XML to zrender element is also time consiming, // if we do it here, the clone of zrender elements has to be // required. So we do it once for each geo instance, util real // performance issues call for optimizing it. svg: function svg(record) { record.svgXML = parseXML(record.source); } }; module.exports = _default; /***/ }), /* 520 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/tool/parseSVG.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(__f__) {var Group = __webpack_require__(/*! ../container/Group */ 413); var ZImage = __webpack_require__(/*! ../graphic/Image */ 434); var Text = __webpack_require__(/*! ../graphic/Text */ 465); var Circle = __webpack_require__(/*! ../graphic/shape/Circle */ 466); var Rect = __webpack_require__(/*! ../graphic/shape/Rect */ 475); var Ellipse = __webpack_require__(/*! ../graphic/shape/Ellipse */ 521); var Line = __webpack_require__(/*! ../graphic/shape/Line */ 477); var Path = __webpack_require__(/*! ../graphic/Path */ 453); var Polygon = __webpack_require__(/*! ../graphic/shape/Polygon */ 470); var Polyline = __webpack_require__(/*! ../graphic/shape/Polyline */ 474); var LinearGradient = __webpack_require__(/*! ../graphic/LinearGradient */ 481); var Style = __webpack_require__(/*! ../graphic/Style */ 429); var matrix = __webpack_require__(/*! ../core/matrix */ 416); var _path = __webpack_require__(/*! ./path */ 452); var createFromString = _path.createFromString; var _util = __webpack_require__(/*! ../core/util */ 403); var isString = _util.isString; var extend = _util.extend; var defaults = _util.defaults; var trim = _util.trim; var each = _util.each; // import RadialGradient from '../graphic/RadialGradient'; // import Pattern from '../graphic/Pattern'; // import * as vector from '../core/vector'; // Most of the values can be separated by comma and/or white space. var DILIMITER_REG = /[\s,]+/; /** * For big svg string, this method might be time consuming. * * @param {string} svg xml string * @return {Object} xml root. */ function parseXML(svg) { if (isString(svg)) { var parser = new DOMParser(); svg = parser.parseFromString(svg, 'text/xml'); } // Document node. If using $.get, doc node may be input. if (svg.nodeType === 9) { svg = svg.firstChild; } // nodeName of is also 'svg'. while (svg.nodeName.toLowerCase() !== 'svg' || svg.nodeType !== 1) { svg = svg.nextSibling; } return svg; } function SVGParser() { this._defs = {}; this._root = null; this._isDefine = false; this._isText = false; } SVGParser.prototype.parse = function (xml, opt) { opt = opt || {}; var svg = parseXML(xml); if (!svg) { throw new Error('Illegal svg'); } var root = new Group(); this._root = root; // parse view port var viewBox = svg.getAttribute('viewBox') || ''; // If width/height not specified, means "100%" of `opt.width/height`. // TODO: Other percent value not supported yet. var width = parseFloat(svg.getAttribute('width') || opt.width); var height = parseFloat(svg.getAttribute('height') || opt.height); // If width/height not specified, set as null for output. isNaN(width) && (width = null); isNaN(height) && (height = null); // Apply inline style on svg element. parseAttributes(svg, root, null, true); var child = svg.firstChild; while (child) { this._parseNode(child, root); child = child.nextSibling; } var viewBoxRect; var viewBoxTransform; if (viewBox) { var viewBoxArr = trim(viewBox).split(DILIMITER_REG); // Some invalid case like viewBox: 'none'. if (viewBoxArr.length >= 4) { viewBoxRect = { x: parseFloat(viewBoxArr[0] || 0), y: parseFloat(viewBoxArr[1] || 0), width: parseFloat(viewBoxArr[2]), height: parseFloat(viewBoxArr[3]) }; } } if (viewBoxRect && width != null && height != null) { viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height); if (!opt.ignoreViewBox) { // If set transform on the output group, it probably bring trouble when // some users only intend to show the clipped content inside the viewBox, // but not intend to transform the output group. So we keep the output // group no transform. If the user intend to use the viewBox as a // camera, just set `opt.ignoreViewBox` as `true` and set transfrom // manually according to the viewBox info in the output of this method. var elRoot = root; root = new Group(); root.add(elRoot); elRoot.scale = viewBoxTransform.scale.slice(); elRoot.position = viewBoxTransform.position.slice(); } } // Some shapes might be overflow the viewport, which should be // clipped despite whether the viewBox is used, as the SVG does. if (!opt.ignoreRootClip && width != null && height != null) { root.setClipPath(new Rect({ shape: { x: 0, y: 0, width: width, height: height } })); } // Set width/height on group just for output the viewport size. return { root: root, width: width, height: height, viewBoxRect: viewBoxRect, viewBoxTransform: viewBoxTransform }; }; SVGParser.prototype._parseNode = function (xmlNode, parentGroup) { var nodeName = xmlNode.nodeName.toLowerCase(); // TODO // support in svg, where nodeName is 'style', // CSS classes is defined globally wherever the style tags are declared. if (nodeName === 'defs') { // define flag this._isDefine = true; } else if (nodeName === 'text') { this._isText = true; } var el; if (this._isDefine) { var parser = defineParsers[nodeName]; if (parser) { var def = parser.call(this, xmlNode); var id = xmlNode.getAttribute('id'); if (id) { this._defs[id] = def; } } } else { var parser = nodeParsers[nodeName]; if (parser) { el = parser.call(this, xmlNode, parentGroup); parentGroup.add(el); } } var child = xmlNode.firstChild; while (child) { if (child.nodeType === 1) { this._parseNode(child, el); } // Is text if (child.nodeType === 3 && this._isText) { this._parseText(child, el); } child = child.nextSibling; } // Quit define if (nodeName === 'defs') { this._isDefine = false; } else if (nodeName === 'text') { this._isText = false; } }; SVGParser.prototype._parseText = function (xmlNode, parentGroup) { if (xmlNode.nodeType === 1) { var dx = xmlNode.getAttribute('dx') || 0; var dy = xmlNode.getAttribute('dy') || 0; this._textX += parseFloat(dx); this._textY += parseFloat(dy); } var text = new Text({ style: { text: xmlNode.textContent, transformText: true }, position: [this._textX || 0, this._textY || 0] }); inheritStyle(parentGroup, text); parseAttributes(xmlNode, text, this._defs); var fontSize = text.style.fontSize; if (fontSize && fontSize < 9) { // PENDING text.style.fontSize = 9; text.scale = text.scale || [1, 1]; text.scale[0] *= fontSize / 9; text.scale[1] *= fontSize / 9; } var rect = text.getBoundingRect(); this._textX += rect.width; parentGroup.add(text); return text; }; var nodeParsers = { 'g': function g(xmlNode, parentGroup) { var g = new Group(); inheritStyle(parentGroup, g); parseAttributes(xmlNode, g, this._defs); return g; }, 'rect': function rect(xmlNode, parentGroup) { var rect = new Rect(); inheritStyle(parentGroup, rect); parseAttributes(xmlNode, rect, this._defs); rect.setShape({ x: parseFloat(xmlNode.getAttribute('x') || 0), y: parseFloat(xmlNode.getAttribute('y') || 0), width: parseFloat(xmlNode.getAttribute('width') || 0), height: parseFloat(xmlNode.getAttribute('height') || 0) }); // console.log(xmlNode.getAttribute('transform')); // console.log(rect.transform); return rect; }, 'circle': function circle(xmlNode, parentGroup) { var circle = new Circle(); inheritStyle(parentGroup, circle); parseAttributes(xmlNode, circle, this._defs); circle.setShape({ cx: parseFloat(xmlNode.getAttribute('cx') || 0), cy: parseFloat(xmlNode.getAttribute('cy') || 0), r: parseFloat(xmlNode.getAttribute('r') || 0) }); return circle; }, 'line': function line(xmlNode, parentGroup) { var line = new Line(); inheritStyle(parentGroup, line); parseAttributes(xmlNode, line, this._defs); line.setShape({ x1: parseFloat(xmlNode.getAttribute('x1') || 0), y1: parseFloat(xmlNode.getAttribute('y1') || 0), x2: parseFloat(xmlNode.getAttribute('x2') || 0), y2: parseFloat(xmlNode.getAttribute('y2') || 0) }); return line; }, 'ellipse': function ellipse(xmlNode, parentGroup) { var ellipse = new Ellipse(); inheritStyle(parentGroup, ellipse); parseAttributes(xmlNode, ellipse, this._defs); ellipse.setShape({ cx: parseFloat(xmlNode.getAttribute('cx') || 0), cy: parseFloat(xmlNode.getAttribute('cy') || 0), rx: parseFloat(xmlNode.getAttribute('rx') || 0), ry: parseFloat(xmlNode.getAttribute('ry') || 0) }); return ellipse; }, 'polygon': function polygon(xmlNode, parentGroup) { var points = xmlNode.getAttribute('points'); if (points) { points = parsePoints(points); } var polygon = new Polygon({ shape: { points: points || [] } }); inheritStyle(parentGroup, polygon); parseAttributes(xmlNode, polygon, this._defs); return polygon; }, 'polyline': function polyline(xmlNode, parentGroup) { var path = new Path(); inheritStyle(parentGroup, path); parseAttributes(xmlNode, path, this._defs); var points = xmlNode.getAttribute('points'); if (points) { points = parsePoints(points); } var polyline = new Polyline({ shape: { points: points || [] } }); return polyline; }, 'image': function image(xmlNode, parentGroup) { var img = new ZImage(); inheritStyle(parentGroup, img); parseAttributes(xmlNode, img, this._defs); img.setStyle({ image: xmlNode.getAttribute('xlink:href'), x: xmlNode.getAttribute('x'), y: xmlNode.getAttribute('y'), width: xmlNode.getAttribute('width'), height: xmlNode.getAttribute('height') }); return img; }, 'text': function text(xmlNode, parentGroup) { var x = xmlNode.getAttribute('x') || 0; var y = xmlNode.getAttribute('y') || 0; var dx = xmlNode.getAttribute('dx') || 0; var dy = xmlNode.getAttribute('dy') || 0; this._textX = parseFloat(x) + parseFloat(dx); this._textY = parseFloat(y) + parseFloat(dy); var g = new Group(); inheritStyle(parentGroup, g); parseAttributes(xmlNode, g, this._defs); return g; }, 'tspan': function tspan(xmlNode, parentGroup) { var x = xmlNode.getAttribute('x'); var y = xmlNode.getAttribute('y'); if (x != null) { // new offset x this._textX = parseFloat(x); } if (y != null) { // new offset y this._textY = parseFloat(y); } var dx = xmlNode.getAttribute('dx') || 0; var dy = xmlNode.getAttribute('dy') || 0; var g = new Group(); inheritStyle(parentGroup, g); parseAttributes(xmlNode, g, this._defs); this._textX += dx; this._textY += dy; return g; }, 'path': function path(xmlNode, parentGroup) { // TODO svg fill rule // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule // path.style.globalCompositeOperation = 'xor'; var d = xmlNode.getAttribute('d') || ''; // Performance sensitive. var path = createFromString(d); inheritStyle(parentGroup, path); parseAttributes(xmlNode, path, this._defs); return path; } }; var defineParsers = { 'lineargradient': function lineargradient(xmlNode) { var x1 = parseInt(xmlNode.getAttribute('x1') || 0, 10); var y1 = parseInt(xmlNode.getAttribute('y1') || 0, 10); var x2 = parseInt(xmlNode.getAttribute('x2') || 10, 10); var y2 = parseInt(xmlNode.getAttribute('y2') || 0, 10); var gradient = new LinearGradient(x1, y1, x2, y2); _parseGradientColorStops(xmlNode, gradient); return gradient; }, 'radialgradient': function radialgradient(xmlNode) {} }; function _parseGradientColorStops(xmlNode, gradient) { var stop = xmlNode.firstChild; while (stop) { if (stop.nodeType === 1) { var offset = stop.getAttribute('offset'); if (offset.indexOf('%') > 0) { // percentage offset = parseInt(offset, 10) / 100; } else if (offset) { // number from 0 to 1 offset = parseFloat(offset); } else { offset = 0; } var stopColor = stop.getAttribute('stop-color') || '#000000'; gradient.addColorStop(offset, stopColor); } stop = stop.nextSibling; } } function inheritStyle(parent, child) { if (parent && parent.__inheritedStyle) { if (!child.__inheritedStyle) { child.__inheritedStyle = {}; } defaults(child.__inheritedStyle, parent.__inheritedStyle); } } function parsePoints(pointsString) { var list = trim(pointsString).split(DILIMITER_REG); var points = []; for (var i = 0; i < list.length; i += 2) { var x = parseFloat(list[i]); var y = parseFloat(list[i + 1]); points.push([x, y]); } return points; } var attributesMap = { 'fill': 'fill', 'stroke': 'stroke', 'stroke-width': 'lineWidth', 'opacity': 'opacity', 'fill-opacity': 'fillOpacity', 'stroke-opacity': 'strokeOpacity', 'stroke-dasharray': 'lineDash', 'stroke-dashoffset': 'lineDashOffset', 'stroke-linecap': 'lineCap', 'stroke-linejoin': 'lineJoin', 'stroke-miterlimit': 'miterLimit', 'font-family': 'fontFamily', 'font-size': 'fontSize', 'font-style': 'fontStyle', 'font-weight': 'fontWeight', 'text-align': 'textAlign', 'alignment-baseline': 'textBaseline' }; function parseAttributes(xmlNode, el, defs, onlyInlineStyle) { var zrStyle = el.__inheritedStyle || {}; var isTextEl = el.type === 'text'; // TODO Shadow if (xmlNode.nodeType === 1) { parseTransformAttribute(xmlNode, el); extend(zrStyle, parseStyleAttribute(xmlNode)); if (!onlyInlineStyle) { for (var svgAttrName in attributesMap) { if (attributesMap.hasOwnProperty(svgAttrName)) { var attrValue = xmlNode.getAttribute(svgAttrName); if (attrValue != null) { zrStyle[attributesMap[svgAttrName]] = attrValue; } } } } } var elFillProp = isTextEl ? 'textFill' : 'fill'; var elStrokeProp = isTextEl ? 'textStroke' : 'stroke'; el.style = el.style || new Style(); var elStyle = el.style; zrStyle.fill != null && elStyle.set(elFillProp, getPaint(zrStyle.fill, defs)); zrStyle.stroke != null && elStyle.set(elStrokeProp, getPaint(zrStyle.stroke, defs)); each(['lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'], function (propName) { var elPropName = propName === 'lineWidth' && isTextEl ? 'textStrokeWidth' : propName; zrStyle[propName] != null && elStyle.set(elPropName, parseFloat(zrStyle[propName])); }); if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') { zrStyle.textBaseline = 'alphabetic'; } if (zrStyle.textBaseline === 'alphabetic') { zrStyle.textBaseline = 'bottom'; } if (zrStyle.textAlign === 'start') { zrStyle.textAlign = 'left'; } if (zrStyle.textAlign === 'end') { zrStyle.textAlign = 'right'; } each(['lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'], function (propName) { zrStyle[propName] != null && elStyle.set(propName, zrStyle[propName]); }); if (zrStyle.lineDash) { el.style.lineDash = trim(zrStyle.lineDash).split(DILIMITER_REG); } if (elStyle[elStrokeProp] && elStyle[elStrokeProp] !== 'none') { // enable stroke el[elStrokeProp] = true; } el.__inheritedStyle = zrStyle; } var urlRegex = /url\(\s*#(.*?)\)/; function getPaint(str, defs) { // if (str === 'none') { // return; // } var urlMatch = defs && str && str.match(urlRegex); if (urlMatch) { var url = trim(urlMatch[1]); var def = defs[url]; return def; } return str; } var transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g; function parseTransformAttribute(xmlNode, node) { var transform = xmlNode.getAttribute('transform'); if (transform) { transform = transform.replace(/,/g, ' '); var m = null; var transformOps = []; transform.replace(transformRegex, function (str, type, value) { transformOps.push(type, value); }); for (var i = transformOps.length - 1; i > 0; i -= 2) { var value = transformOps[i]; var type = transformOps[i - 1]; m = m || matrix.create(); switch (type) { case 'translate': value = trim(value).split(DILIMITER_REG); matrix.translate(m, m, [parseFloat(value[0]), parseFloat(value[1] || 0)]); break; case 'scale': value = trim(value).split(DILIMITER_REG); matrix.scale(m, m, [parseFloat(value[0]), parseFloat(value[1] || value[0])]); break; case 'rotate': value = trim(value).split(DILIMITER_REG); matrix.rotate(m, m, parseFloat(value[0])); break; case 'skew': value = trim(value).split(DILIMITER_REG); __f__("warn", 'Skew transform is not supported yet', " at node_modules/zrender/lib/tool/parseSVG.js:601"); break; case 'matrix': var value = trim(value).split(DILIMITER_REG); m[0] = parseFloat(value[0]); m[1] = parseFloat(value[1]); m[2] = parseFloat(value[2]); m[3] = parseFloat(value[3]); m[4] = parseFloat(value[4]); m[5] = parseFloat(value[5]); break; } } node.setLocalTransform(m); } } // Value may contain space. var styleRegex = /([^\s:;]+)\s*:\s*([^:;]+)/g; function parseStyleAttribute(xmlNode) { var style = xmlNode.getAttribute('style'); var result = {}; if (!style) { return result; } var styleList = {}; styleRegex.lastIndex = 0; var styleRegResult; while ((styleRegResult = styleRegex.exec(style)) != null) { styleList[styleRegResult[1]] = styleRegResult[2]; } for (var svgAttrName in attributesMap) { if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) { result[attributesMap[svgAttrName]] = styleList[svgAttrName]; } } return result; } /** * @param {Array.} viewBoxRect * @param {number} width * @param {number} height * @return {Object} {scale, position} */ function makeViewBoxTransform(viewBoxRect, width, height) { var scaleX = width / viewBoxRect.width; var scaleY = height / viewBoxRect.height; var scale = Math.min(scaleX, scaleY); // preserveAspectRatio 'xMidYMid' var viewBoxScale = [scale, scale]; var viewBoxPosition = [-(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2, -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2]; return { scale: viewBoxScale, position: viewBoxPosition }; } /** * @param {string|XMLElement} xml * @param {Object} [opt] * @param {number} [opt.width] Default width if svg width not specified or is a percent value. * @param {number} [opt.height] Default height if svg height not specified or is a percent value. * @param {boolean} [opt.ignoreViewBox] * @param {boolean} [opt.ignoreRootClip] * @return {Object} result: * { * root: Group, The root of the the result tree of zrender shapes, * width: number, the viewport width of the SVG, * height: number, the viewport height of the SVG, * viewBoxRect: {x, y, width, height}, the declared viewBox rect of the SVG, if exists, * viewBoxTransform: the {scale, position} calculated by viewBox and viewport, is exists. * } */ function parseSVG(xml, opt) { var parser = new SVGParser(); return parser.parse(xml, opt); } exports.parseXML = parseXML; exports.makeViewBoxTransform = makeViewBoxTransform; exports.parseSVG = parseSVG; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)["default"])) /***/ }), /* 521 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/graphic/shape/Ellipse.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var Path = __webpack_require__(/*! ../Path */ 453); /** * 椭圆形状 * @module zrender/graphic/shape/Ellipse */ var _default = Path.extend({ type: 'ellipse', shape: { cx: 0, cy: 0, rx: 0, ry: 0 }, buildPath: function buildPath(ctx, shape) { var k = 0.5522848; var x = shape.cx; var y = shape.cy; var a = shape.rx; var b = shape.ry; var ox = a * k; // 水平控制点偏移量 var oy = b * k; // 垂直控制点偏移量 // 从椭圆的左端点开始顺时针绘制四条三次贝塞尔曲线 ctx.moveTo(x - a, y); ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b); ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y); ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b); ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y); ctx.closePath(); } }); module.exports = _default; /***/ }), /* 522 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/export.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrender = __webpack_require__(/*! zrender/lib/zrender */ 400); exports.zrender = zrender; var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); exports.matrix = matrix; var vector = __webpack_require__(/*! zrender/lib/core/vector */ 405); exports.vector = vector; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var colorTool = __webpack_require__(/*! zrender/lib/tool/color */ 421); exports.color = colorTool; var graphicUtil = __webpack_require__(/*! ./util/graphic */ 451); var numberUtil = __webpack_require__(/*! ./util/number */ 489); exports.number = numberUtil; var formatUtil = __webpack_require__(/*! ./util/format */ 490); exports.format = formatUtil; var _throttle = __webpack_require__(/*! ./util/throttle */ 510); var throttle = _throttle.throttle; exports.throttle = _throttle.throttle; var ecHelper = __webpack_require__(/*! ./helper */ 523); exports.helper = ecHelper; var parseGeoJSON = __webpack_require__(/*! ./coord/geo/parseGeoJson */ 544); exports.parseGeoJSON = parseGeoJSON; var _List = __webpack_require__(/*! ./data/List */ 525); exports.List = _List; var _Model = __webpack_require__(/*! ./model/Model */ 445); exports.Model = _Model; var _Axis = __webpack_require__(/*! ./coord/Axis */ 547); exports.Axis = _Axis; var _env = __webpack_require__(/*! zrender/lib/core/env */ 402); exports.env = _env; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Do not mount those modules on 'src/echarts' for better tree shaking. */ var parseGeoJson = parseGeoJSON; var ecUtil = {}; zrUtil.each(['map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter', 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction', 'extend', 'defaults', 'clone', 'merge'], function (name) { ecUtil[name] = zrUtil[name]; }); var graphic = {}; zrUtil.each(['extendShape', 'extendPath', 'makePath', 'makeImage', 'mergePath', 'resizePath', 'createIcon', 'setHoverStyle', 'setLabelStyle', 'setTextStyle', 'setText', 'getFont', 'updateProps', 'initProps', 'getTransform', 'clipPointsByRect', 'clipRectByRect', 'registerShape', 'getShapeClass', 'Group', 'Image', 'Text', 'Circle', 'Sector', 'Ring', 'Polygon', 'Polyline', 'Rect', 'Line', 'BezierCurve', 'Arc', 'IncrementalDisplayable', 'CompoundPath', 'LinearGradient', 'RadialGradient', 'BoundingRect'], function (name) { graphic[name] = graphicUtil[name]; }); exports.parseGeoJson = parseGeoJson; exports.util = ecUtil; exports.graphic = graphic; /***/ }), /* 523 */ /*!*******************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/helper.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var createListFromArray = __webpack_require__(/*! ./chart/helper/createListFromArray */ 524); var axisHelper = __webpack_require__(/*! ./coord/axisHelper */ 533); var axisModelCommonMixin = __webpack_require__(/*! ./coord/axisModelCommonMixin */ 542); var Model = __webpack_require__(/*! ./model/Model */ 445); var _layout = __webpack_require__(/*! ./util/layout */ 488); var getLayoutRect = _layout.getLayoutRect; exports.getLayoutRect = _layout.getLayoutRect; var _dataStackHelper = __webpack_require__(/*! ./data/helper/dataStackHelper */ 532); var enableDataStack = _dataStackHelper.enableDataStack; var isDimensionStacked = _dataStackHelper.isDimensionStacked; var getStackedDimension = _dataStackHelper.getStackedDimension; var _completeDimensions = __webpack_require__(/*! ./data/helper/completeDimensions */ 530); exports.completeDimensions = _completeDimensions; var _createDimensions = __webpack_require__(/*! ./data/helper/createDimensions */ 529); exports.createDimensions = _createDimensions; var _symbol = __webpack_require__(/*! ./util/symbol */ 543); exports.createSymbol = _symbol.createSymbol; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge'; /** * Create a muti dimension List structure from seriesModel. * @param {module:echarts/model/Model} seriesModel * @return {module:echarts/data/List} list */ function createList(seriesModel) { return createListFromArray(seriesModel.getSource(), seriesModel); } // export function createGraph(seriesModel) { // var nodes = seriesModel.get('data'); // var links = seriesModel.get('links'); // return createGraphFromNodeEdge(nodes, links, seriesModel); // } var dataStack = { isDimensionStacked: isDimensionStacked, enableDataStack: enableDataStack, getStackedDimension: getStackedDimension }; /** * Create a symbol element with given symbol configuration: shape, x, y, width, height, color * @param {string} symbolDesc * @param {number} x * @param {number} y * @param {number} w * @param {number} h * @param {string} color */ /** * Create scale * @param {Array.} dataExtent * @param {Object|module:echarts/Model} option */ function createScale(dataExtent, option) { var axisModel = option; if (!Model.isInstance(option)) { axisModel = new Model(option); zrUtil.mixin(axisModel, axisModelCommonMixin); } var scale = axisHelper.createScaleByModel(axisModel); scale.setExtent(dataExtent[0], dataExtent[1]); axisHelper.niceScaleExtent(scale, axisModel); return scale; } /** * Mixin common methods to axis model, * * Inlcude methods * `getFormattedLabels() => Array.` * `getCategories() => Array.` * `getMin(origin: boolean) => number` * `getMax(origin: boolean) => number` * `getNeedCrossZero() => boolean` * `setRange(start: number, end: number)` * `resetRange()` */ function mixinAxisModelCommonMethods(Model) { zrUtil.mixin(Model, axisModelCommonMixin); } exports.createList = createList; exports.dataStack = dataStack; exports.createScale = createScale; exports.mixinAxisModelCommonMethods = mixinAxisModelCommonMethods; /***/ }), /* 524 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/createListFromArray.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var List = __webpack_require__(/*! ../../data/List */ 525); var createDimensions = __webpack_require__(/*! ../../data/helper/createDimensions */ 529); var _sourceType = __webpack_require__(/*! ../../data/helper/sourceType */ 496); var SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL; var _dimensionHelper = __webpack_require__(/*! ../../data/helper/dimensionHelper */ 527); var getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis; var _model = __webpack_require__(/*! ../../util/model */ 444); var getDataItemValue = _model.getDataItemValue; var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); var _referHelper = __webpack_require__(/*! ../../model/referHelper */ 531); var getCoordSysInfoBySeries = _referHelper.getCoordSysInfoBySeries; var Source = __webpack_require__(/*! ../../data/Source */ 495); var _dataStackHelper = __webpack_require__(/*! ../../data/helper/dataStackHelper */ 532); var enableDataStack = _dataStackHelper.enableDataStack; var _sourceHelper = __webpack_require__(/*! ../../data/helper/sourceHelper */ 494); var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {module:echarts/data/Source|Array} source Or raw data. * @param {module:echarts/model/Series} seriesModel * @param {Object} [opt] * @param {string} [opt.generateCoord] * @param {boolean} [opt.useEncodeDefaulter] */ function createListFromArray(source, seriesModel, opt) { opt = opt || {}; if (!Source.isInstance(source)) { source = Source.seriesDataToSource(source); } var coordSysName = seriesModel.get('coordinateSystem'); var registeredCoordSys = CoordinateSystem.get(coordSysName); var coordSysInfo = getCoordSysInfoBySeries(seriesModel); var coordSysDimDefs; if (coordSysInfo) { coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) { var dimInfo = { name: dim }; var axisModel = coordSysInfo.axisMap.get(dim); if (axisModel) { var axisType = axisModel.get('type'); dimInfo.type = getDimensionTypeByAxis(axisType); // dimInfo.stackable = isStackable(axisType); } return dimInfo; }); } if (!coordSysDimDefs) { // Get dimensions from registered coordinate system coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y']; } var dimInfoList = createDimensions(source, { coordDimensions: coordSysDimDefs, generateCoord: opt.generateCoord, encodeDefaulter: opt.useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null }); var firstCategoryDimIndex; var hasNameEncode; coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) { var coordDim = dimInfo.coordDim; var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim); if (categoryAxisModel) { if (firstCategoryDimIndex == null) { firstCategoryDimIndex = dimIndex; } dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta(); } if (dimInfo.otherDims.itemName != null) { hasNameEncode = true; } }); if (!hasNameEncode && firstCategoryDimIndex != null) { dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0; } var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList); var list = new List(dimInfoList, seriesModel); list.setCalculationInfo(stackCalculationInfo); var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) { // Use dataIndex as ordinal value in categoryAxis return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex); } : null; list.hasItemOption = false; list.initData(source, null, dimValueGetter); return list; } function isNeedCompleteOrdinalData(source) { if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) { var sampleItem = firstDataNotNull(source.data || []); return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem)); } } function firstDataNotNull(data) { var i = 0; while (i < data.length && data[i] == null) { i++; } return data[i]; } var _default = createListFromArray; module.exports = _default; /***/ }), /* 525 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/List.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(__f__) {var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Model = __webpack_require__(/*! ../model/Model */ 445); var DataDiffer = __webpack_require__(/*! ./DataDiffer */ 526); var Source = __webpack_require__(/*! ./Source */ 495); var _dataProvider = __webpack_require__(/*! ./helper/dataProvider */ 505); var defaultDimValueGetters = _dataProvider.defaultDimValueGetters; var DefaultDataProvider = _dataProvider.DefaultDataProvider; var _dimensionHelper = __webpack_require__(/*! ./helper/dimensionHelper */ 527); var summarizeDimensions = _dimensionHelper.summarizeDimensions; var DataDimensionInfo = __webpack_require__(/*! ./DataDimensionInfo */ 528); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Float64Array, Int32Array, Uint32Array, Uint16Array */ /** * List for data storage * @module echarts/data/List */ var isObject = zrUtil.isObject; var UNDEFINED = 'undefined'; var INDEX_NOT_FOUND = -1; // Use prefix to avoid index to be the same as otherIdList[idx], // which will cause weird udpate animation. var ID_PREFIX = 'e\0\0'; var dataCtors = { 'float': (typeof Float64Array === "undefined" ? "undefined" : _typeof(Float64Array)) === UNDEFINED ? Array : Float64Array, 'int': (typeof Int32Array === "undefined" ? "undefined" : _typeof(Int32Array)) === UNDEFINED ? Array : Int32Array, // Ordinal data type can be string or int 'ordinal': Array, 'number': Array, 'time': Array }; // Caution: MUST not use `new CtorUint32Array(arr, 0, len)`, because the Ctor of array is // different from the Ctor of typed array. var CtorUint32Array = (typeof Uint32Array === "undefined" ? "undefined" : _typeof(Uint32Array)) === UNDEFINED ? Array : Uint32Array; var CtorInt32Array = (typeof Int32Array === "undefined" ? "undefined" : _typeof(Int32Array)) === UNDEFINED ? Array : Int32Array; var CtorUint16Array = (typeof Uint16Array === "undefined" ? "undefined" : _typeof(Uint16Array)) === UNDEFINED ? Array : Uint16Array; function getIndicesCtor(list) { // The possible max value in this._indicies is always this._rawCount despite of filtering. return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array; } function cloneChunk(originalChunk) { var Ctor = originalChunk.constructor; // Only shallow clone is enough when Array. return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk); } var TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx']; var CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent']; function transferProperties(target, source) { zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) { if (source.hasOwnProperty(propName)) { target[propName] = source[propName]; } }); target.__wrappedMethods = source.__wrappedMethods; zrUtil.each(CLONE_PROPERTIES, function (propName) { target[propName] = zrUtil.clone(source[propName]); }); target._calculationInfo = zrUtil.extend(source._calculationInfo); } /** * @constructor * @alias module:echarts/data/List * * @param {Array.} dimensions * For example, ['someDimName', {name: 'someDimName', type: 'someDimType'}, ...]. * Dimensions should be concrete names like x, y, z, lng, lat, angle, radius * @param {module:echarts/model/Model} hostModel */ var List = function List(dimensions, hostModel) { dimensions = dimensions || ['x', 'y']; var dimensionInfos = {}; var dimensionNames = []; var invertedIndicesMap = {}; for (var i = 0; i < dimensions.length; i++) { // Use the original dimensions[i], where other flag props may exists. var dimensionInfo = dimensions[i]; if (zrUtil.isString(dimensionInfo)) { dimensionInfo = new DataDimensionInfo({ name: dimensionInfo }); } else if (!(dimensionInfo instanceof DataDimensionInfo)) { dimensionInfo = new DataDimensionInfo(dimensionInfo); } var dimensionName = dimensionInfo.name; dimensionInfo.type = dimensionInfo.type || 'float'; if (!dimensionInfo.coordDim) { dimensionInfo.coordDim = dimensionName; dimensionInfo.coordDimIndex = 0; } dimensionInfo.otherDims = dimensionInfo.otherDims || {}; dimensionNames.push(dimensionName); dimensionInfos[dimensionName] = dimensionInfo; dimensionInfo.index = i; if (dimensionInfo.createInvertedIndices) { invertedIndicesMap[dimensionName] = []; } } /** * @readOnly * @type {Array.} */ this.dimensions = dimensionNames; /** * Infomation of each data dimension, like data type. * @type {Object} */ this._dimensionInfos = dimensionInfos; /** * @type {module:echarts/model/Model} */ this.hostModel = hostModel; /** * @type {module:echarts/model/Model} */ this.dataType; /** * Indices stores the indices of data subset after filtered. * This data subset will be used in chart. * @type {Array.} * @readOnly */ this._indices = null; this._count = 0; this._rawCount = 0; /** * Data storage * @type {Object.>} * @private */ this._storage = {}; /** * @type {Array.} */ this._nameList = []; /** * @type {Array.} */ this._idList = []; /** * Models of data option is stored sparse for optimizing memory cost * @type {Array.} * @private */ this._optionModels = []; /** * Global visual properties after visual coding * @type {Object} * @private */ this._visual = {}; /** * Globel layout properties. * @type {Object} * @private */ this._layout = {}; /** * Item visual properties after visual coding * @type {Array.} * @private */ this._itemVisuals = []; /** * Key: visual type, Value: boolean * @type {Object} * @readOnly */ this.hasItemVisual = {}; /** * Item layout properties after layout * @type {Array.} * @private */ this._itemLayouts = []; /** * Graphic elemnents * @type {Array.} * @private */ this._graphicEls = []; /** * Max size of each chunk. * @type {number} * @private */ this._chunkSize = 1e5; /** * @type {number} * @private */ this._chunkCount = 0; /** * @type {Array.} * @private */ this._rawData; /** * Raw extent will not be cloned, but only transfered. * It will not be calculated util needed. * key: dim, * value: {end: number, extent: Array.} * @type {Object} * @private */ this._rawExtent = {}; /** * @type {Object} * @private */ this._extent = {}; /** * key: dim * value: extent * @type {Object} * @private */ this._approximateExtent = {}; /** * Cache summary info for fast visit. See "dimensionHelper". * @type {Object} * @private */ this._dimensionsSummary = summarizeDimensions(this); /** * @type {Object.} * @private */ this._invertedIndicesMap = invertedIndicesMap; /** * @type {Object} * @private */ this._calculationInfo = {}; /** * User output info of this data. * DO NOT use it in other places! * * When preparing user params for user callbacks, we have * to clone these inner data structures to prevent users * from modifying them to effect built-in logic. And for * performance consideration we make this `userOutput` to * avoid clone them too many times. * * @type {Object} * @readOnly */ this.userOutput = this._dimensionsSummary.userOutput; }; var listProto = List.prototype; listProto.type = 'list'; /** * If each data item has it's own option * @type {boolean} */ listProto.hasItemOption = true; /** * The meanings of the input parameter `dim`: * * + If dim is a number (e.g., `1`), it means the index of the dimension. * For example, `getDimension(0)` will return 'x' or 'lng' or 'radius'. * + If dim is a number-like string (e.g., `"1"`): * + If there is the same concrete dim name defined in `this.dimensions`, it means that concrete name. * + If not, it will be converted to a number, which means the index of the dimension. * (why? because of the backward compatbility. We have been tolerating number-like string in * dimension setting, although now it seems that it is not a good idea.) * For example, `visualMap[i].dimension: "1"` is the same meaning as `visualMap[i].dimension: 1`, * if no dimension name is defined as `"1"`. * + If dim is a not-number-like string, it means the concrete dim name. * For example, it can be be default name `"x"`, `"y"`, `"z"`, `"lng"`, `"lat"`, `"angle"`, `"radius"`, * or customized in `dimensions` property of option like `"age"`. * * Get dimension name * @param {string|number} dim See above. * @return {string} Concrete dim name. */ listProto.getDimension = function (dim) { if (typeof dim === 'number' // If being a number-like string but not being defined a dimension name. || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) { dim = this.dimensions[dim]; } return dim; }; /** * Get type and calculation info of particular dimension * @param {string|number} dim * Dimension can be concrete names like x, y, z, lng, lat, angle, radius * Or a ordinal number. For example getDimensionInfo(0) will return 'x' or 'lng' or 'radius' */ listProto.getDimensionInfo = function (dim) { // Do not clone, because there may be categories in dimInfo. return this._dimensionInfos[this.getDimension(dim)]; }; /** * @return {Array.} concrete dimension name list on coord. */ listProto.getDimensionsOnCoord = function () { return this._dimensionsSummary.dataDimsOnCoord.slice(); }; /** * @param {string} coordDim * @param {number} [idx] A coordDim may map to more than one data dim. * If idx is `true`, return a array of all mapped dims. * If idx is not specified, return the first dim not extra. * @return {string|Array.} concrete data dim. * If idx is number, and not found, return null/undefined. * If idx is `true`, and not found, return empty array (always return array). */ listProto.mapDimension = function (coordDim, idx) { var dimensionsSummary = this._dimensionsSummary; if (idx == null) { return dimensionsSummary.encodeFirstDimNotExtra[coordDim]; } var dims = dimensionsSummary.encode[coordDim]; return idx === true // always return array if idx is `true` ? (dims || []).slice() : dims && dims[idx]; }; /** * Initialize from data * @param {Array.} data source or data or data provider. * @param {Array.} [nameLIst] The name of a datum is used on data diff and * default label/tooltip. * A name can be specified in encode.itemName, * or dataItem.name (only for series option data), * or provided in nameList from outside. * @param {Function} [dimValueGetter] (dataItem, dimName, dataIndex, dimIndex) => number */ listProto.initData = function (data, nameList, dimValueGetter) { var notProvider = Source.isInstance(data) || zrUtil.isArrayLike(data); if (notProvider) { data = new DefaultDataProvider(data, this.dimensions.length); } this._rawData = data; // Clear this._storage = {}; this._indices = null; this._nameList = nameList || []; this._idList = []; this._nameRepeatCount = {}; if (!dimValueGetter) { this.hasItemOption = false; } /** * @readOnly */ this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat]; // Default dim value getter this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter; this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows; // Reset raw extent. this._rawExtent = {}; this._initDataFromProvider(0, data.count()); // If data has no item option. if (data.pure) { this.hasItemOption = false; } }; listProto.getProvider = function () { return this._rawData; }; /** * Caution: Can be only called on raw data (before `this._indices` created). */ listProto.appendData = function (data) { var rawData = this._rawData; var start = this.count(); rawData.appendData(data); var end = rawData.count(); if (!rawData.persistent) { end += start; } this._initDataFromProvider(start, end); }; /** * Caution: Can be only called on raw data (before `this._indices` created). * This method does not modify `rawData` (`dataProvider`), but only * add values to storage. * * The final count will be increased by `Math.max(values.length, names.length)`. * * @param {Array.>} values That is the SourceType: 'arrayRows', like * [ * [12, 33, 44], * [NaN, 43, 1], * ['-', 'asdf', 0] * ] * Each item is exaclty cooresponding to a dimension. * @param {Array.} [names] */ listProto.appendValues = function (values, names) { var chunkSize = this._chunkSize; var storage = this._storage; var dimensions = this.dimensions; var dimLen = dimensions.length; var rawExtent = this._rawExtent; var start = this.count(); var end = start + Math.max(values.length, names ? names.length : 0); var originalChunkCount = this._chunkCount; for (var i = 0; i < dimLen; i++) { var dim = dimensions[i]; if (!rawExtent[dim]) { rawExtent[dim] = getInitialExtent(); } if (!storage[dim]) { storage[dim] = []; } prepareChunks(storage, this._dimensionInfos[dim], chunkSize, originalChunkCount, end); this._chunkCount = storage[dim].length; } var emptyDataItem = new Array(dimLen); for (var idx = start; idx < end; idx++) { var sourceIdx = idx - start; var chunkIndex = Math.floor(idx / chunkSize); var chunkOffset = idx % chunkSize; // Store the data by dimensions for (var k = 0; k < dimLen; k++) { var dim = dimensions[k]; var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, k); storage[dim][chunkIndex][chunkOffset] = val; var dimRawExtent = rawExtent[dim]; val < dimRawExtent[0] && (dimRawExtent[0] = val); val > dimRawExtent[1] && (dimRawExtent[1] = val); } if (names) { this._nameList[idx] = names[sourceIdx]; } } this._rawCount = this._count = end; // Reset data extent this._extent = {}; prepareInvertedIndex(this); }; listProto._initDataFromProvider = function (start, end) { // Optimize. if (start >= end) { return; } var chunkSize = this._chunkSize; var rawData = this._rawData; var storage = this._storage; var dimensions = this.dimensions; var dimLen = dimensions.length; var dimensionInfoMap = this._dimensionInfos; var nameList = this._nameList; var idList = this._idList; var rawExtent = this._rawExtent; var nameRepeatCount = this._nameRepeatCount = {}; var nameDimIdx; var originalChunkCount = this._chunkCount; for (var i = 0; i < dimLen; i++) { var dim = dimensions[i]; if (!rawExtent[dim]) { rawExtent[dim] = getInitialExtent(); } var dimInfo = dimensionInfoMap[dim]; if (dimInfo.otherDims.itemName === 0) { nameDimIdx = this._nameDimIdx = i; } if (dimInfo.otherDims.itemId === 0) { this._idDimIdx = i; } if (!storage[dim]) { storage[dim] = []; } prepareChunks(storage, dimInfo, chunkSize, originalChunkCount, end); this._chunkCount = storage[dim].length; } var dataItem = new Array(dimLen); for (var idx = start; idx < end; idx++) { // NOTICE: Try not to write things into dataItem dataItem = rawData.getItem(idx, dataItem); // Each data item is value // [1, 2] // 2 // Bar chart, line chart which uses category axis // only gives the 'y' value. 'x' value is the indices of category // Use a tempValue to normalize the value to be a (x, y) value var chunkIndex = Math.floor(idx / chunkSize); var chunkOffset = idx % chunkSize; // Store the data by dimensions for (var k = 0; k < dimLen; k++) { var dim = dimensions[k]; var dimStorage = storage[dim][chunkIndex]; // PENDING NULL is empty or zero var val = this._dimValueGetter(dataItem, dim, idx, k); dimStorage[chunkOffset] = val; var dimRawExtent = rawExtent[dim]; val < dimRawExtent[0] && (dimRawExtent[0] = val); val > dimRawExtent[1] && (dimRawExtent[1] = val); } // ??? FIXME not check by pure but sourceFormat? // TODO refactor these logic. if (!rawData.pure) { var name = nameList[idx]; if (dataItem && name == null) { // If dataItem is {name: ...}, it has highest priority. // That is appropriate for many common cases. if (dataItem.name != null) { // There is no other place to persistent dataItem.name, // so save it to nameList. nameList[idx] = name = dataItem.name; } else if (nameDimIdx != null) { var nameDim = dimensions[nameDimIdx]; var nameDimChunk = storage[nameDim][chunkIndex]; if (nameDimChunk) { name = nameDimChunk[chunkOffset]; var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta; if (ordinalMeta && ordinalMeta.categories.length) { name = ordinalMeta.categories[name]; } } } } // Try using the id in option // id or name is used on dynamical data, mapping old and new items. var id = dataItem == null ? null : dataItem.id; if (id == null && name != null) { // Use name as id and add counter to avoid same name nameRepeatCount[name] = nameRepeatCount[name] || 0; id = name; if (nameRepeatCount[name] > 0) { id += '__ec__' + nameRepeatCount[name]; } nameRepeatCount[name]++; } id != null && (idList[idx] = id); } } if (!rawData.persistent && rawData.clean) { // Clean unused data if data source is typed array. rawData.clean(); } this._rawCount = this._count = end; // Reset data extent this._extent = {}; prepareInvertedIndex(this); }; function prepareChunks(storage, dimInfo, chunkSize, chunkCount, end) { var DataCtor = dataCtors[dimInfo.type]; var lastChunkIndex = chunkCount - 1; var dim = dimInfo.name; var resizeChunkArray = storage[dim][lastChunkIndex]; if (resizeChunkArray && resizeChunkArray.length < chunkSize) { var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize)); // The cost of the copy is probably inconsiderable // within the initial chunkSize. for (var j = 0; j < resizeChunkArray.length; j++) { newStore[j] = resizeChunkArray[j]; } storage[dim][lastChunkIndex] = newStore; } // Create new chunks. for (var k = chunkCount * chunkSize; k < end; k += chunkSize) { storage[dim].push(new DataCtor(Math.min(end - k, chunkSize))); } } function prepareInvertedIndex(list) { var invertedIndicesMap = list._invertedIndicesMap; zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) { var dimInfo = list._dimensionInfos[dim]; // Currently, only dimensions that has ordinalMeta can create inverted indices. var ordinalMeta = dimInfo.ordinalMeta; if (ordinalMeta) { invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length); // The default value of TypedArray is 0. To avoid miss // mapping to 0, we should set it as INDEX_NOT_FOUND. for (var i = 0; i < invertedIndices.length; i++) { invertedIndices[i] = INDEX_NOT_FOUND; } for (var i = 0; i < list._count; i++) { // Only support the case that all values are distinct. invertedIndices[list.get(dim, i)] = i; } } }); } function getRawValueFromStore(list, dimIndex, rawIndex) { var val; if (dimIndex != null) { var chunkSize = list._chunkSize; var chunkIndex = Math.floor(rawIndex / chunkSize); var chunkOffset = rawIndex % chunkSize; var dim = list.dimensions[dimIndex]; var chunk = list._storage[dim][chunkIndex]; if (chunk) { val = chunk[chunkOffset]; var ordinalMeta = list._dimensionInfos[dim].ordinalMeta; if (ordinalMeta && ordinalMeta.categories.length) { val = ordinalMeta.categories[val]; } } } return val; } /** * @return {number} */ listProto.count = function () { return this._count; }; listProto.getIndices = function () { var newIndices; var indices = this._indices; if (indices) { var Ctor = indices.constructor; var thisCount = this._count; // `new Array(a, b, c)` is different from `new Uint32Array(a, b, c)`. if (Ctor === Array) { newIndices = new Ctor(thisCount); for (var i = 0; i < thisCount; i++) { newIndices[i] = indices[i]; } } else { newIndices = new Ctor(indices.buffer, 0, thisCount); } } else { var Ctor = getIndicesCtor(this); var newIndices = new Ctor(this.count()); for (var i = 0; i < newIndices.length; i++) { newIndices[i] = i; } } return newIndices; }; /** * Get value. Return NaN if idx is out of range. * @param {string} dim Dim must be concrete name. * @param {number} idx * @param {boolean} stack * @return {number} */ listProto.get = function (dim, idx /*, stack */) { if (!(idx >= 0 && idx < this._count)) { return NaN; } var storage = this._storage; if (!storage[dim]) { // TODO Warn ? return NaN; } idx = this.getRawIndex(idx); var chunkIndex = Math.floor(idx / this._chunkSize); var chunkOffset = idx % this._chunkSize; var chunkStore = storage[dim][chunkIndex]; var value = chunkStore[chunkOffset]; // FIXME ordinal data type is not stackable // if (stack) { // var dimensionInfo = this._dimensionInfos[dim]; // if (dimensionInfo && dimensionInfo.stackable) { // var stackedOn = this.stackedOn; // while (stackedOn) { // // Get no stacked data of stacked on // var stackedValue = stackedOn.get(dim, idx); // // Considering positive stack, negative stack and empty data // if ((value >= 0 && stackedValue > 0) // Positive stack // || (value <= 0 && stackedValue < 0) // Negative stack // ) { // value += stackedValue; // } // stackedOn = stackedOn.stackedOn; // } // } // } return value; }; /** * @param {string} dim concrete dim * @param {number} rawIndex * @return {number|string} */ listProto.getByRawIndex = function (dim, rawIdx) { if (!(rawIdx >= 0 && rawIdx < this._rawCount)) { return NaN; } var dimStore = this._storage[dim]; if (!dimStore) { // TODO Warn ? return NaN; } var chunkIndex = Math.floor(rawIdx / this._chunkSize); var chunkOffset = rawIdx % this._chunkSize; var chunkStore = dimStore[chunkIndex]; return chunkStore[chunkOffset]; }; /** * FIXME Use `get` on chrome maybe slow(in filterSelf and selectRange). * Hack a much simpler _getFast * @private */ listProto._getFast = function (dim, rawIdx) { var chunkIndex = Math.floor(rawIdx / this._chunkSize); var chunkOffset = rawIdx % this._chunkSize; var chunkStore = this._storage[dim][chunkIndex]; return chunkStore[chunkOffset]; }; /** * Get value for multi dimensions. * @param {Array.} [dimensions] If ignored, using all dimensions. * @param {number} idx * @return {number} */ listProto.getValues = function (dimensions, idx /*, stack */) { var values = []; if (!zrUtil.isArray(dimensions)) { // stack = idx; idx = dimensions; dimensions = this.dimensions; } for (var i = 0, len = dimensions.length; i < len; i++) { values.push(this.get(dimensions[i], idx /*, stack */)); } return values; }; /** * If value is NaN. Inlcuding '-' * Only check the coord dimensions. * @param {string} dim * @param {number} idx * @return {number} */ listProto.hasValue = function (idx) { var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord; for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) { // Ordinal type originally can be string or number. // But when an ordinal type is used on coord, it can // not be string but only number. So we can also use isNaN. if (isNaN(this.get(dataDimsOnCoord[i], idx))) { return false; } } return true; }; /** * Get extent of data in one dimension * @param {string} dim * @param {boolean} stack */ listProto.getDataExtent = function (dim /*, stack */) { // Make sure use concrete dim as cache name. dim = this.getDimension(dim); var dimData = this._storage[dim]; var initialExtent = getInitialExtent(); // stack = !!((stack || false) && this.getCalculationInfo(dim)); if (!dimData) { return initialExtent; } // Make more strict checkings to ensure hitting cache. var currEnd = this.count(); // var cacheName = [dim, !!stack].join('_'); // var cacheName = dim; // Consider the most cases when using data zoom, `getDataExtent` // happened before filtering. We cache raw extent, which is not // necessary to be cleared and recalculated when restore data. var useRaw = !this._indices; // && !stack; var dimExtent; if (useRaw) { return this._rawExtent[dim].slice(); } dimExtent = this._extent[dim]; if (dimExtent) { return dimExtent.slice(); } dimExtent = initialExtent; var min = dimExtent[0]; var max = dimExtent[1]; for (var i = 0; i < currEnd; i++) { // var value = stack ? this.get(dim, i, true) : this._getFast(dim, this.getRawIndex(i)); var value = this._getFast(dim, this.getRawIndex(i)); value < min && (min = value); value > max && (max = value); } dimExtent = [min, max]; this._extent[dim] = dimExtent; return dimExtent; }; /** * Optimize for the scenario that data is filtered by a given extent. * Consider that if data amount is more than hundreds of thousand, * extent calculation will cost more than 10ms and the cache will * be erased because of the filtering. */ listProto.getApproximateExtent = function (dim /*, stack */) { dim = this.getDimension(dim); return this._approximateExtent[dim] || this.getDataExtent(dim /*, stack */); }; listProto.setApproximateExtent = function (extent, dim /*, stack */) { dim = this.getDimension(dim); this._approximateExtent[dim] = extent.slice(); }; /** * @param {string} key * @return {*} */ listProto.getCalculationInfo = function (key) { return this._calculationInfo[key]; }; /** * @param {string|Object} key or k-v object * @param {*} [value] */ listProto.setCalculationInfo = function (key, value) { isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value; }; /** * Get sum of data in one dimension * @param {string} dim */ listProto.getSum = function (dim /*, stack */) { var dimData = this._storage[dim]; var sum = 0; if (dimData) { for (var i = 0, len = this.count(); i < len; i++) { var value = this.get(dim, i /*, stack */); if (!isNaN(value)) { sum += value; } } } return sum; }; /** * Get median of data in one dimension * @param {string} dim */ listProto.getMedian = function (dim /*, stack */) { var dimDataArray = []; // map all data of one dimension this.each(dim, function (val, idx) { if (!isNaN(val)) { dimDataArray.push(val); } }); // TODO // Use quick select? // immutability & sort var sortedDimDataArray = [].concat(dimDataArray).sort(function (a, b) { return a - b; }); var len = this.count(); // calculate median return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2; }; // /** // * Retreive the index with given value // * @param {string} dim Concrete dimension. // * @param {number} value // * @return {number} // */ // Currently incorrect: should return dataIndex but not rawIndex. // Do not fix it until this method is to be used somewhere. // FIXME Precision of float value // listProto.indexOf = function (dim, value) { // var storage = this._storage; // var dimData = storage[dim]; // var chunkSize = this._chunkSize; // if (dimData) { // for (var i = 0, len = this.count(); i < len; i++) { // var chunkIndex = Math.floor(i / chunkSize); // var chunkOffset = i % chunkSize; // if (dimData[chunkIndex][chunkOffset] === value) { // return i; // } // } // } // return -1; // }; /** * Only support the dimension which inverted index created. * Do not support other cases until required. * @param {string} concrete dim * @param {number|string} value * @return {number} rawIndex */ listProto.rawIndexOf = function (dim, value) { var invertedIndices = dim && this._invertedIndicesMap[dim]; var rawIndex = invertedIndices[value]; if (rawIndex == null || isNaN(rawIndex)) { return INDEX_NOT_FOUND; } return rawIndex; }; /** * Retreive the index with given name * @param {number} idx * @param {number} name * @return {number} */ listProto.indexOfName = function (name) { for (var i = 0, len = this.count(); i < len; i++) { if (this.getName(i) === name) { return i; } } return -1; }; /** * Retreive the index with given raw data index * @param {number} idx * @param {number} name * @return {number} */ listProto.indexOfRawIndex = function (rawIndex) { if (rawIndex >= this._rawCount || rawIndex < 0) { return -1; } if (!this._indices) { return rawIndex; } // Indices are ascending var indices = this._indices; // If rawIndex === dataIndex var rawDataIndex = indices[rawIndex]; if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) { return rawIndex; } var left = 0; var right = this._count - 1; while (left <= right) { var mid = (left + right) / 2 | 0; if (indices[mid] < rawIndex) { left = mid + 1; } else if (indices[mid] > rawIndex) { right = mid - 1; } else { return mid; } } return -1; }; /** * Retreive the index of nearest value * @param {string} dim * @param {number} value * @param {number} [maxDistance=Infinity] * @return {Array.} If and only if multiple indices has * the same value, they are put to the result. */ listProto.indicesOfNearest = function (dim, value, maxDistance) { var storage = this._storage; var dimData = storage[dim]; var nearestIndices = []; if (!dimData) { return nearestIndices; } if (maxDistance == null) { maxDistance = Infinity; } var minDist = Infinity; var minDiff = -1; var nearestIndicesLen = 0; // Check the test case of `test/ut/spec/data/List.js`. for (var i = 0, len = this.count(); i < len; i++) { var diff = value - this.get(dim, i); var dist = Math.abs(diff); if (dist <= maxDistance) { // When the `value` is at the middle of `this.get(dim, i)` and `this.get(dim, i+1)`, // we'd better not push both of them to `nearestIndices`, otherwise it is easy to // get more than one item in `nearestIndices` (more specifically, in `tooltip`). // So we chose the one that `diff >= 0` in this csae. // But if `this.get(dim, i)` and `this.get(dim, j)` get the same value, both of them // should be push to `nearestIndices`. if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) { minDist = dist; minDiff = diff; nearestIndicesLen = 0; } if (diff === minDiff) { nearestIndices[nearestIndicesLen++] = i; } } } nearestIndices.length = nearestIndicesLen; return nearestIndices; }; /** * Get raw data index * @param {number} idx * @return {number} */ listProto.getRawIndex = getRawIndexWithoutIndices; function getRawIndexWithoutIndices(idx) { return idx; } function getRawIndexWithIndices(idx) { if (idx < this._count && idx >= 0) { return this._indices[idx]; } return -1; } /** * Get raw data item * @param {number} idx * @return {number} */ listProto.getRawDataItem = function (idx) { if (!this._rawData.persistent) { var val = []; for (var i = 0; i < this.dimensions.length; i++) { var dim = this.dimensions[i]; val.push(this.get(dim, idx)); } return val; } else { return this._rawData.getItem(this.getRawIndex(idx)); } }; /** * @param {number} idx * @param {boolean} [notDefaultIdx=false] * @return {string} */ listProto.getName = function (idx) { var rawIndex = this.getRawIndex(idx); return this._nameList[rawIndex] || getRawValueFromStore(this, this._nameDimIdx, rawIndex) || ''; }; /** * @param {number} idx * @param {boolean} [notDefaultIdx=false] * @return {string} */ listProto.getId = function (idx) { return getId(this, this.getRawIndex(idx)); }; function getId(list, rawIndex) { var id = list._idList[rawIndex]; if (id == null) { id = getRawValueFromStore(list, list._idDimIdx, rawIndex); } if (id == null) { // FIXME Check the usage in graph, should not use prefix. id = ID_PREFIX + rawIndex; } return id; } function normalizeDimensions(dimensions) { if (!zrUtil.isArray(dimensions)) { dimensions = [dimensions]; } return dimensions; } function validateDimensions(list, dims) { for (var i = 0; i < dims.length; i++) { // stroage may be empty when no data, so use // dimensionInfos to check. if (!list._dimensionInfos[dims[i]]) { __f__("error", 'Unkown dimension ' + dims[i], " at node_modules/echarts/lib/data/List.js:1324"); } } } /** * Data iteration * @param {string|Array.} * @param {Function} cb * @param {*} [context=this] * * @example * list.each('x', function (x, idx) {}); * list.each(['x', 'y'], function (x, y, idx) {}); * list.each(function (idx) {}) */ listProto.each = function (dims, cb, context, contextCompat) { 'use strict'; if (!this._count) { return; } if (typeof dims === 'function') { contextCompat = context; context = cb; cb = dims; dims = []; } // contextCompat just for compat echarts3 context = context || contextCompat || this; dims = zrUtil.map(normalizeDimensions(dims), this.getDimension, this); var dimSize = dims.length; for (var i = 0; i < this.count(); i++) { // Simple optimization switch (dimSize) { case 0: cb.call(context, i); break; case 1: cb.call(context, this.get(dims[0], i), i); break; case 2: cb.call(context, this.get(dims[0], i), this.get(dims[1], i), i); break; default: var k = 0; var value = []; for (; k < dimSize; k++) { value[k] = this.get(dims[k], i); } // Index value[k] = i; cb.apply(context, value); } } }; /** * Data filter * @param {string|Array.} * @param {Function} cb * @param {*} [context=this] */ listProto.filterSelf = function (dimensions, cb, context, contextCompat) { 'use strict'; if (!this._count) { return; } if (typeof dimensions === 'function') { contextCompat = context; context = cb; cb = dimensions; dimensions = []; } // contextCompat just for compat echarts3 context = context || contextCompat || this; dimensions = zrUtil.map(normalizeDimensions(dimensions), this.getDimension, this); var count = this.count(); var Ctor = getIndicesCtor(this); var newIndices = new Ctor(count); var value = []; var dimSize = dimensions.length; var offset = 0; var dim0 = dimensions[0]; for (var i = 0; i < count; i++) { var keep; var rawIdx = this.getRawIndex(i); // Simple optimization if (dimSize === 0) { keep = cb.call(context, i); } else if (dimSize === 1) { var val = this._getFast(dim0, rawIdx); keep = cb.call(context, val, i); } else { for (var k = 0; k < dimSize; k++) { value[k] = this._getFast(dim0, rawIdx); } value[k] = i; keep = cb.apply(context, value); } if (keep) { newIndices[offset++] = rawIdx; } } // Set indices after filtered. if (offset < count) { this._indices = newIndices; } this._count = offset; // Reset data extent this._extent = {}; this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices; return this; }; /** * Select data in range. (For optimization of filter) * (Manually inline code, support 5 million data filtering in data zoom.) */ listProto.selectRange = function (range) { 'use strict'; if (!this._count) { return; } var dimensions = []; for (var dim in range) { if (range.hasOwnProperty(dim)) { dimensions.push(dim); } } var dimSize = dimensions.length; if (!dimSize) { return; } var originalCount = this.count(); var Ctor = getIndicesCtor(this); var newIndices = new Ctor(originalCount); var offset = 0; var dim0 = dimensions[0]; var min = range[dim0][0]; var max = range[dim0][1]; var quickFinished = false; if (!this._indices) { // Extreme optimization for common case. About 2x faster in chrome. var idx = 0; if (dimSize === 1) { var dimStorage = this._storage[dimensions[0]]; for (var k = 0; k < this._chunkCount; k++) { var chunkStorage = dimStorage[k]; var len = Math.min(this._count - k * this._chunkSize, this._chunkSize); for (var i = 0; i < len; i++) { var val = chunkStorage[i]; // NaN will not be filtered. Consider the case, in line chart, empty // value indicates the line should be broken. But for the case like // scatter plot, a data item with empty value will not be rendered, // but the axis extent may be effected if some other dim of the data // item has value. Fortunately it is not a significant negative effect. if (val >= min && val <= max || isNaN(val)) { newIndices[offset++] = idx; } idx++; } } quickFinished = true; } else if (dimSize === 2) { var dimStorage = this._storage[dim0]; var dimStorage2 = this._storage[dimensions[1]]; var min2 = range[dimensions[1]][0]; var max2 = range[dimensions[1]][1]; for (var k = 0; k < this._chunkCount; k++) { var chunkStorage = dimStorage[k]; var chunkStorage2 = dimStorage2[k]; var len = Math.min(this._count - k * this._chunkSize, this._chunkSize); for (var i = 0; i < len; i++) { var val = chunkStorage[i]; var val2 = chunkStorage2[i]; // Do not filter NaN, see comment above. if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) { newIndices[offset++] = idx; } idx++; } } quickFinished = true; } } if (!quickFinished) { if (dimSize === 1) { for (var i = 0; i < originalCount; i++) { var rawIndex = this.getRawIndex(i); var val = this._getFast(dim0, rawIndex); // Do not filter NaN, see comment above. if (val >= min && val <= max || isNaN(val)) { newIndices[offset++] = rawIndex; } } } else { for (var i = 0; i < originalCount; i++) { var keep = true; var rawIndex = this.getRawIndex(i); for (var k = 0; k < dimSize; k++) { var dimk = dimensions[k]; var val = this._getFast(dim, rawIndex); // Do not filter NaN, see comment above. if (val < range[dimk][0] || val > range[dimk][1]) { keep = false; } } if (keep) { newIndices[offset++] = this.getRawIndex(i); } } } } // Set indices after filtered. if (offset < originalCount) { this._indices = newIndices; } this._count = offset; // Reset data extent this._extent = {}; this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices; return this; }; /** * Data mapping to a plain array * @param {string|Array.} [dimensions] * @param {Function} cb * @param {*} [context=this] * @return {Array} */ listProto.mapArray = function (dimensions, cb, context, contextCompat) { 'use strict'; if (typeof dimensions === 'function') { contextCompat = context; context = cb; cb = dimensions; dimensions = []; } // contextCompat just for compat echarts3 context = context || contextCompat || this; var result = []; this.each(dimensions, function () { result.push(cb && cb.apply(this, arguments)); }, context); return result; }; // Data in excludeDimensions is copied, otherwise transfered. function cloneListForMapAndSample(original, excludeDimensions) { var allDimensions = original.dimensions; var list = new List(zrUtil.map(allDimensions, original.getDimensionInfo, original), original.hostModel); // FIXME If needs stackedOn, value may already been stacked transferProperties(list, original); var storage = list._storage = {}; var originalStorage = original._storage; // Init storage for (var i = 0; i < allDimensions.length; i++) { var dim = allDimensions[i]; if (originalStorage[dim]) { // Notice that we do not reset invertedIndicesMap here, becuase // there is no scenario of mapping or sampling ordinal dimension. if (zrUtil.indexOf(excludeDimensions, dim) >= 0) { storage[dim] = cloneDimStore(originalStorage[dim]); list._rawExtent[dim] = getInitialExtent(); list._extent[dim] = null; } else { // Direct reference for other dimensions storage[dim] = originalStorage[dim]; } } } return list; } function cloneDimStore(originalDimStore) { var newDimStore = new Array(originalDimStore.length); for (var j = 0; j < originalDimStore.length; j++) { newDimStore[j] = cloneChunk(originalDimStore[j]); } return newDimStore; } function getInitialExtent() { return [Infinity, -Infinity]; } /** * Data mapping to a new List with given dimensions * @param {string|Array.} dimensions * @param {Function} cb * @param {*} [context=this] * @return {Array} */ listProto.map = function (dimensions, cb, context, contextCompat) { 'use strict'; // contextCompat just for compat echarts3 context = context || contextCompat || this; dimensions = zrUtil.map(normalizeDimensions(dimensions), this.getDimension, this); var list = cloneListForMapAndSample(this, dimensions); // Following properties are all immutable. // So we can reference to the same value list._indices = this._indices; list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices; var storage = list._storage; var tmpRetValue = []; var chunkSize = this._chunkSize; var dimSize = dimensions.length; var dataCount = this.count(); var values = []; var rawExtent = list._rawExtent; for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) { for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) { values[dimIndex] = this.get(dimensions[dimIndex], dataIndex /*, stack */); } values[dimSize] = dataIndex; var retValue = cb && cb.apply(context, values); if (retValue != null) { // a number or string (in oridinal dimension)? if (_typeof(retValue) !== 'object') { tmpRetValue[0] = retValue; retValue = tmpRetValue; } var rawIndex = this.getRawIndex(dataIndex); var chunkIndex = Math.floor(rawIndex / chunkSize); var chunkOffset = rawIndex % chunkSize; for (var i = 0; i < retValue.length; i++) { var dim = dimensions[i]; var val = retValue[i]; var rawExtentOnDim = rawExtent[dim]; var dimStore = storage[dim]; if (dimStore) { dimStore[chunkIndex][chunkOffset] = val; } if (val < rawExtentOnDim[0]) { rawExtentOnDim[0] = val; } if (val > rawExtentOnDim[1]) { rawExtentOnDim[1] = val; } } } } return list; }; /** * Large data down sampling on given dimension * @param {string} dimension * @param {number} rate * @param {Function} sampleValue * @param {Function} sampleIndex Sample index for name and id */ listProto.downSample = function (dimension, rate, sampleValue, sampleIndex) { var list = cloneListForMapAndSample(this, [dimension]); var targetStorage = list._storage; var frameValues = []; var frameSize = Math.floor(1 / rate); var dimStore = targetStorage[dimension]; var len = this.count(); var chunkSize = this._chunkSize; var rawExtentOnDim = list._rawExtent[dimension]; var newIndices = new (getIndicesCtor(this))(len); var offset = 0; for (var i = 0; i < len; i += frameSize) { // Last frame if (frameSize > len - i) { frameSize = len - i; frameValues.length = frameSize; } for (var k = 0; k < frameSize; k++) { var dataIdx = this.getRawIndex(i + k); var originalChunkIndex = Math.floor(dataIdx / chunkSize); var originalChunkOffset = dataIdx % chunkSize; frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset]; } var value = sampleValue(frameValues); var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1)); var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize); var sampleChunkOffset = sampleFrameIdx % chunkSize; // Only write value on the filtered data dimStore[sampleChunkIndex][sampleChunkOffset] = value; if (value < rawExtentOnDim[0]) { rawExtentOnDim[0] = value; } if (value > rawExtentOnDim[1]) { rawExtentOnDim[1] = value; } newIndices[offset++] = sampleFrameIdx; } list._count = offset; list._indices = newIndices; list.getRawIndex = getRawIndexWithIndices; return list; }; /** * Get model of one data item. * * @param {number} idx */ // FIXME Model proxy ? listProto.getItemModel = function (idx) { var hostModel = this.hostModel; return new Model(this.getRawDataItem(idx), hostModel, hostModel && hostModel.ecModel); }; /** * Create a data differ * @param {module:echarts/data/List} otherList * @return {module:echarts/data/DataDiffer} */ listProto.diff = function (otherList) { var thisList = this; return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) { return getId(otherList, idx); }, function (idx) { return getId(thisList, idx); }); }; /** * Get visual property. * @param {string} key */ listProto.getVisual = function (key) { var visual = this._visual; return visual && visual[key]; }; /** * Set visual property * @param {string|Object} key * @param {*} [value] * * @example * setVisual('color', color); * setVisual({ * 'color': color * }); */ listProto.setVisual = function (key, val) { if (isObject(key)) { for (var name in key) { if (key.hasOwnProperty(name)) { this.setVisual(name, key[name]); } } return; } this._visual = this._visual || {}; this._visual[key] = val; }; /** * Set layout property. * @param {string|Object} key * @param {*} [val] */ listProto.setLayout = function (key, val) { if (isObject(key)) { for (var name in key) { if (key.hasOwnProperty(name)) { this.setLayout(name, key[name]); } } return; } this._layout[key] = val; }; /** * Get layout property. * @param {string} key. * @return {*} */ listProto.getLayout = function (key) { return this._layout[key]; }; /** * Get layout of single data item * @param {number} idx */ listProto.getItemLayout = function (idx) { return this._itemLayouts[idx]; }; /** * Set layout of single data item * @param {number} idx * @param {Object} layout * @param {boolean=} [merge=false] */ listProto.setItemLayout = function (idx, layout, merge) { this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout; }; /** * Clear all layout of single data item */ listProto.clearItemLayouts = function () { this._itemLayouts.length = 0; }; /** * Get visual property of single data item * @param {number} idx * @param {string} key * @param {boolean} [ignoreParent=false] */ listProto.getItemVisual = function (idx, key, ignoreParent) { var itemVisual = this._itemVisuals[idx]; var val = itemVisual && itemVisual[key]; if (val == null && !ignoreParent) { // Use global visual property return this.getVisual(key); } return val; }; /** * Set visual property of single data item * * @param {number} idx * @param {string|Object} key * @param {*} [value] * * @example * setItemVisual(0, 'color', color); * setItemVisual(0, { * 'color': color * }); */ listProto.setItemVisual = function (idx, key, value) { var itemVisual = this._itemVisuals[idx] || {}; var hasItemVisual = this.hasItemVisual; this._itemVisuals[idx] = itemVisual; if (isObject(key)) { for (var name in key) { if (key.hasOwnProperty(name)) { itemVisual[name] = key[name]; hasItemVisual[name] = true; } } return; } itemVisual[key] = value; hasItemVisual[key] = true; }; /** * Clear itemVisuals and list visual. */ listProto.clearAllVisual = function () { this._visual = {}; this._itemVisuals = []; this.hasItemVisual = {}; }; var setItemDataAndSeriesIndex = function setItemDataAndSeriesIndex(child) { child.seriesIndex = this.seriesIndex; child.dataIndex = this.dataIndex; child.dataType = this.dataType; }; /** * Set graphic element relative to data. It can be set as null * @param {number} idx * @param {module:zrender/Element} [el] */ listProto.setItemGraphicEl = function (idx, el) { var hostModel = this.hostModel; if (el) { // Add data index and series index for indexing the data by element // Useful in tooltip el.dataIndex = idx; el.dataType = this.dataType; el.seriesIndex = hostModel && hostModel.seriesIndex; if (el.type === 'group') { el.traverse(setItemDataAndSeriesIndex, el); } } this._graphicEls[idx] = el; }; /** * @param {number} idx * @return {module:zrender/Element} */ listProto.getItemGraphicEl = function (idx) { return this._graphicEls[idx]; }; /** * @param {Function} cb * @param {*} context */ listProto.eachItemGraphicEl = function (cb, context) { zrUtil.each(this._graphicEls, function (el, idx) { if (el) { cb && cb.call(context, el, idx); } }); }; /** * Shallow clone a new list except visual and layout properties, and graph elements. * New list only change the indices. */ listProto.cloneShallow = function (list) { if (!list) { var dimensionInfoList = zrUtil.map(this.dimensions, this.getDimensionInfo, this); list = new List(dimensionInfoList, this.hostModel); } // FIXME list._storage = this._storage; transferProperties(list, this); // Clone will not change the data extent and indices if (this._indices) { var Ctor = this._indices.constructor; list._indices = new Ctor(this._indices); } else { list._indices = null; } list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices; return list; }; /** * Wrap some method to add more feature * @param {string} methodName * @param {Function} injectFunction */ listProto.wrapMethod = function (methodName, injectFunction) { var originalMethod = this[methodName]; if (typeof originalMethod !== 'function') { return; } this.__wrappedMethods = this.__wrappedMethods || []; this.__wrappedMethods.push(methodName); this[methodName] = function () { var res = originalMethod.apply(this, arguments); return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments))); }; }; // Methods that create a new list based on this list should be listed here. // Notice that those method should `RETURN` the new list. listProto.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map']; // Methods that change indices of this list should be listed here. listProto.CHANGABLE_METHODS = ['filterSelf', 'selectRange']; var _default = List; module.exports = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)["default"])) /***/ }), /* 526 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/DataDiffer.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function defaultKeyGetter(item) { return item; } /** * @param {Array} oldArr * @param {Array} newArr * @param {Function} oldKeyGetter * @param {Function} newKeyGetter * @param {Object} [context] Can be visited by this.context in callback. */ function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) { this._old = oldArr; this._new = newArr; this._oldKeyGetter = oldKeyGetter || defaultKeyGetter; this._newKeyGetter = newKeyGetter || defaultKeyGetter; this.context = context; } DataDiffer.prototype = { constructor: DataDiffer, /** * Callback function when add a data */ add: function add(func) { this._add = func; return this; }, /** * Callback function when update a data */ update: function update(func) { this._update = func; return this; }, /** * Callback function when remove a data */ remove: function remove(func) { this._remove = func; return this; }, execute: function execute() { var oldArr = this._old; var newArr = this._new; var oldDataIndexMap = {}; var newDataIndexMap = {}; var oldDataKeyArr = []; var newDataKeyArr = []; var i; initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter', this); initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter', this); for (i = 0; i < oldArr.length; i++) { var key = oldDataKeyArr[i]; var idx = newDataIndexMap[key]; // idx can never be empty array here. see 'set null' logic below. if (idx != null) { // Consider there is duplicate key (for example, use dataItem.name as key). // We should make sure every item in newArr and oldArr can be visited. var len = idx.length; if (len) { len === 1 && (newDataIndexMap[key] = null); idx = idx.shift(); } else { newDataIndexMap[key] = null; } this._update && this._update(idx, i); } else { this._remove && this._remove(i); } } for (var i = 0; i < newDataKeyArr.length; i++) { var key = newDataKeyArr[i]; if (newDataIndexMap.hasOwnProperty(key)) { var idx = newDataIndexMap[key]; if (idx == null) { continue; } // idx can never be empty array here. see 'set null' logic above. if (!idx.length) { this._add && this._add(idx); } else { for (var j = 0, len = idx.length; j < len; j++) { this._add && this._add(idx[j]); } } } } } }; function initIndexMap(arr, map, keyArr, keyGetterName, dataDiffer) { for (var i = 0; i < arr.length; i++) { // Add prefix to avoid conflict with Object.prototype. var key = '_ec_' + dataDiffer[keyGetterName](arr[i], i); var existence = map[key]; if (existence == null) { keyArr.push(key); map[key] = i; } else { if (!existence.length) { map[key] = existence = [existence]; } existence.push(i); } } } var _default = DataDiffer; module.exports = _default; /***/ }), /* 527 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/helper/dimensionHelper.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var createHashMap = _util.createHashMap; var assert = _util.assert; var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var OTHER_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']); function summarizeDimensions(data) { var summary = {}; var encode = summary.encode = {}; var notExtraCoordDimMap = createHashMap(); var defaultedLabel = []; var defaultedTooltip = []; // See the comment of `List.js#userOutput`. var userOutput = summary.userOutput = { dimensionNames: data.dimensions.slice(), encode: {} }; each(data.dimensions, function (dimName) { var dimItem = data.getDimensionInfo(dimName); var coordDim = dimItem.coordDim; if (coordDim) { var coordDimIndex = dimItem.coordDimIndex; getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName; if (!dimItem.isExtraCoord) { notExtraCoordDimMap.set(coordDim, 1); // Use the last coord dim (and label friendly) as default label, // because when dataset is used, it is hard to guess which dimension // can be value dimension. If both show x, y on label is not look good, // and conventionally y axis is focused more. if (mayLabelDimType(dimItem.type)) { defaultedLabel[0] = dimName; } // User output encode do not contain generated coords. // And it only has index. User can use index to retrieve value from the raw item array. getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index; } if (dimItem.defaultTooltip) { defaultedTooltip.push(dimName); } } OTHER_DIMENSIONS.each(function (v, otherDim) { var encodeArr = getOrCreateEncodeArr(encode, otherDim); var dimIndex = dimItem.otherDims[otherDim]; if (dimIndex != null && dimIndex !== false) { encodeArr[dimIndex] = dimItem.name; } }); }); var dataDimsOnCoord = []; var encodeFirstDimNotExtra = {}; notExtraCoordDimMap.each(function (v, coordDim) { var dimArr = encode[coordDim]; // ??? FIXME extra coord should not be set in dataDimsOnCoord. // But should fix the case that radar axes: simplify the logic // of `completeDimension`, remove `extraPrefix`. encodeFirstDimNotExtra[coordDim] = dimArr[0]; // Not necessary to remove duplicate, because a data // dim canot on more than one coordDim. dataDimsOnCoord = dataDimsOnCoord.concat(dimArr); }); summary.dataDimsOnCoord = dataDimsOnCoord; summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra; var encodeLabel = encode.label; // FIXME `encode.label` is not recommanded, because formatter can not be set // in this way. Use label.formatter instead. May be remove this approach someday. if (encodeLabel && encodeLabel.length) { defaultedLabel = encodeLabel.slice(); } var encodeTooltip = encode.tooltip; if (encodeTooltip && encodeTooltip.length) { defaultedTooltip = encodeTooltip.slice(); } else if (!defaultedTooltip.length) { defaultedTooltip = defaultedLabel.slice(); } encode.defaultedLabel = defaultedLabel; encode.defaultedTooltip = defaultedTooltip; return summary; } function getOrCreateEncodeArr(encode, dim) { if (!encode.hasOwnProperty(dim)) { encode[dim] = []; } return encode[dim]; } function getDimensionTypeByAxis(axisType) { return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float'; } function mayLabelDimType(dimType) { // In most cases, ordinal and time do not suitable for label. // Ordinal info can be displayed on axis. Time is too long. return !(dimType === 'ordinal' || dimType === 'time'); } // function findTheLastDimMayLabel(data) { // // Get last value dim // var dimensions = data.dimensions.slice(); // var valueType; // var valueDim; // while (dimensions.length && ( // valueDim = dimensions.pop(), // valueType = data.getDimensionInfo(valueDim).type, // valueType === 'ordinal' || valueType === 'time' // )) {} // jshint ignore:line // return valueDim; // } exports.OTHER_DIMENSIONS = OTHER_DIMENSIONS; exports.summarizeDimensions = summarizeDimensions; exports.getDimensionTypeByAxis = getDimensionTypeByAxis; /***/ }), /* 528 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/DataDimensionInfo.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @class * @param {Object|DataDimensionInfo} [opt] All of the fields will be shallow copied. */ function DataDimensionInfo(opt) { if (opt != null) { zrUtil.extend(this, opt); } /** * Dimension name. * Mandatory. * @type {string} */ // this.name; /** * The origin name in dimsDef, see source helper. * If displayName given, the tooltip will displayed vertically. * Optional. * @type {string} */ // this.displayName; /** * Which coordSys dimension this dimension mapped to. * A `coordDim` can be a "coordSysDim" that the coordSys required * (for example, an item in `coordSysDims` of `model/referHelper#CoordSysInfo`), * or an generated "extra coord name" if does not mapped to any "coordSysDim" * (That is determined by whether `isExtraCoord` is `true`). * Mandatory. * @type {string} */ // this.coordDim; /** * The index of this dimension in `series.encode[coordDim]`. * Mandatory. * @type {number} */ // this.coordDimIndex; /** * Dimension type. The enumerable values are the key of * `dataCtors` of `data/List`. * Optional. * @type {string} */ // this.type; /** * This index of this dimension info in `data/List#_dimensionInfos`. * Mandatory after added to `data/List`. * @type {number} */ // this.index; /** * The format of `otherDims` is: * ```js * { * tooltip: number optional, * label: number optional, * itemName: number optional, * seriesName: number optional, * } * ``` * * A `series.encode` can specified these fields: * ```js * encode: { * // "3, 1, 5" is the index of data dimension. * tooltip: [3, 1, 5], * label: [0, 3], * ... * } * ``` * `otherDims` is the parse result of the `series.encode` above, like: * ```js * // Suppose the index of this data dimension is `3`. * this.otherDims = { * // `3` is at the index `0` of the `encode.tooltip` * tooltip: 0, * // `3` is at the index `1` of the `encode.tooltip` * label: 1 * }; * ``` * * This prop should never be `null`/`undefined` after initialized. * @type {Object} */ this.otherDims = {}; /** * Be `true` if this dimension is not mapped to any "coordSysDim" that the * "coordSys" required. * Mandatory. * @type {boolean} */ // this.isExtraCoord; /** * @type {module:data/OrdinalMeta} */ // this.ordinalMeta; /** * Whether to create inverted indices. * @type {boolean} */ // this.createInvertedIndices; } ; var _default = DataDimensionInfo; module.exports = _default; /***/ }), /* 529 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/helper/createDimensions.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var completeDimensions = __webpack_require__(/*! ./completeDimensions */ 530); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Substitute `completeDimensions`. * `completeDimensions` is to be deprecated. */ /** * @param {module:echarts/data/Source|module:echarts/data/List} source or data. * @param {Object|Array} [opt] * @param {Array.} [opt.coordDimensions=[]] * @param {number} [opt.dimensionsCount] * @param {string} [opt.generateCoord] * @param {string} [opt.generateCoordCount] * @param {Array.} [opt.dimensionsDefine=source.dimensionsDefine] Overwrite source define. * @param {Object|HashMap} [opt.encodeDefine=source.encodeDefine] Overwrite source define. * @param {Function} [opt.encodeDefaulter] Make default encode if user not specified. * @return {Array.} dimensionsInfo */ function _default(source, opt) { opt = opt || {}; return completeDimensions(opt.coordDimensions || [], source, { dimsDef: opt.dimensionsDefine || source.dimensionsDefine, encodeDef: opt.encodeDefine || source.encodeDefine, dimCount: opt.dimensionsCount, encodeDefaulter: opt.encodeDefaulter, generateCoord: opt.generateCoord, generateCoordCount: opt.generateCoordCount }); } module.exports = _default; /***/ }), /* 530 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/helper/completeDimensions.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var each = _util.each; var isString = _util.isString; var defaults = _util.defaults; var extend = _util.extend; var isObject = _util.isObject; var clone = _util.clone; var _model = __webpack_require__(/*! ../../util/model */ 444); var normalizeToArray = _model.normalizeToArray; var _sourceHelper = __webpack_require__(/*! ./sourceHelper */ 494); var guessOrdinal = _sourceHelper.guessOrdinal; var BE_ORDINAL = _sourceHelper.BE_ORDINAL; var Source = __webpack_require__(/*! ../Source */ 495); var _dimensionHelper = __webpack_require__(/*! ./dimensionHelper */ 527); var OTHER_DIMENSIONS = _dimensionHelper.OTHER_DIMENSIONS; var DataDimensionInfo = __webpack_require__(/*! ../DataDimensionInfo */ 528); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @deprecated * Use `echarts/data/helper/createDimensions` instead. */ /** * @see {module:echarts/test/ut/spec/data/completeDimensions} * * This method builds the relationship between: * + "what the coord sys or series requires (see `sysDims`)", * + "what the user defines (in `encode` and `dimensions`, see `opt.dimsDef` and `opt.encodeDef`)" * + "what the data source provids (see `source`)". * * Some guess strategy will be adapted if user does not define something. * If no 'value' dimension specified, the first no-named dimension will be * named as 'value'. * * @param {Array.} sysDims Necessary dimensions, like ['x', 'y'], which * provides not only dim template, but also default order. * properties: 'name', 'type', 'displayName'. * `name` of each item provides default coord name. * [{dimsDef: [string|Object, ...]}, ...] dimsDef of sysDim item provides default dim name, and * provide dims count that the sysDim required. * [{ordinalMeta}] can be specified. * @param {module:echarts/data/Source|Array|Object} source or data (for compatibal with pervious) * @param {Object} [opt] * @param {Array.} [opt.dimsDef] option.series.dimensions User defined dimensions * For example: ['asdf', {name, type}, ...]. * @param {Object|HashMap} [opt.encodeDef] option.series.encode {x: 2, y: [3, 1], tooltip: [1, 2], label: 3} * @param {Function} [opt.encodeDefaulter] Called if no `opt.encodeDef` exists. * If not specified, auto find the next available data dim. * param source {module:data/Source} * param dimCount {number} * return {Object} encode Never be `null/undefined`. * @param {string} [opt.generateCoord] Generate coord dim with the given name. * If not specified, extra dim names will be: * 'value', 'value0', 'value1', ... * @param {number} [opt.generateCoordCount] By default, the generated dim name is `generateCoord`. * If `generateCoordCount` specified, the generated dim names will be: * `generateCoord` + 0, `generateCoord` + 1, ... * can be Infinity, indicate that use all of the remain columns. * @param {number} [opt.dimCount] If not specified, guess by the first data item. * @return {Array.} */ function completeDimensions(sysDims, source, opt) { if (!Source.isInstance(source)) { source = Source.seriesDataToSource(source); } opt = opt || {}; sysDims = (sysDims || []).slice(); var dimsDef = (opt.dimsDef || []).slice(); var dataDimNameMap = createHashMap(); var coordDimNameMap = createHashMap(); // var valueCandidate; var result = []; var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount); // Apply user defined dims (`name` and `type`) and init result. for (var i = 0; i < dimCount; i++) { var dimDefItem = dimsDef[i] = extend({}, isObject(dimsDef[i]) ? dimsDef[i] : { name: dimsDef[i] }); var userDimName = dimDefItem.name; var resultItem = result[i] = new DataDimensionInfo(); // Name will be applied later for avoiding duplication. if (userDimName != null && dataDimNameMap.get(userDimName) == null) { // Only if `series.dimensions` is defined in option // displayName, will be set, and dimension will be diplayed vertically in // tooltip by default. resultItem.name = resultItem.displayName = userDimName; dataDimNameMap.set(userDimName, i); } dimDefItem.type != null && (resultItem.type = dimDefItem.type); dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName); } var encodeDef = opt.encodeDef; if (!encodeDef && opt.encodeDefaulter) { encodeDef = opt.encodeDefaulter(source, dimCount); } encodeDef = createHashMap(encodeDef); // Set `coordDim` and `coordDimIndex` by `encodeDef` and normalize `encodeDef`. encodeDef.each(function (dataDims, coordDim) { dataDims = normalizeToArray(dataDims).slice(); // Note: It is allowed that `dataDims.length` is `0`, e.g., options is // `{encode: {x: -1, y: 1}}`. Should not filter anything in // this case. if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) { encodeDef.set(coordDim, false); return; } var validDataDims = encodeDef.set(coordDim, []); each(dataDims, function (resultDimIdx, idx) { // The input resultDimIdx can be dim name or index. isString(resultDimIdx) && (resultDimIdx = dataDimNameMap.get(resultDimIdx)); if (resultDimIdx != null && resultDimIdx < dimCount) { validDataDims[idx] = resultDimIdx; applyDim(result[resultDimIdx], coordDim, idx); } }); }); // Apply templetes and default order from `sysDims`. var availDimIdx = 0; each(sysDims, function (sysDimItem, sysDimIndex) { var coordDim; var sysDimItem; var sysDimItemDimsDef; var sysDimItemOtherDims; if (isString(sysDimItem)) { coordDim = sysDimItem; sysDimItem = {}; } else { coordDim = sysDimItem.name; var ordinalMeta = sysDimItem.ordinalMeta; sysDimItem.ordinalMeta = null; sysDimItem = clone(sysDimItem); sysDimItem.ordinalMeta = ordinalMeta; // `coordDimIndex` should not be set directly. sysDimItemDimsDef = sysDimItem.dimsDef; sysDimItemOtherDims = sysDimItem.otherDims; sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null; } var dataDims = encodeDef.get(coordDim); // negative resultDimIdx means no need to mapping. if (dataDims === false) { return; } var dataDims = normalizeToArray(dataDims); // dimensions provides default dim sequences. if (!dataDims.length) { for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) { while (availDimIdx < result.length && result[availDimIdx].coordDim != null) { availDimIdx++; } availDimIdx < result.length && dataDims.push(availDimIdx++); } } // Apply templates. each(dataDims, function (resultDimIdx, coordDimIndex) { var resultItem = result[resultDimIdx]; applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex); if (resultItem.name == null && sysDimItemDimsDef) { var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex]; !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem }); resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name; resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip; } // FIXME refactor, currently only used in case: {otherDims: {tooltip: false}} sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims); }); }); function applyDim(resultItem, coordDim, coordDimIndex) { if (OTHER_DIMENSIONS.get(coordDim) != null) { resultItem.otherDims[coordDim] = coordDimIndex; } else { resultItem.coordDim = coordDim; resultItem.coordDimIndex = coordDimIndex; coordDimNameMap.set(coordDim, true); } } // Make sure the first extra dim is 'value'. var generateCoord = opt.generateCoord; var generateCoordCount = opt.generateCoordCount; var fromZero = generateCoordCount != null; generateCoordCount = generateCoord ? generateCoordCount || 1 : 0; var extra = generateCoord || 'value'; // Set dim `name` and other `coordDim` and other props. for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) { var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo(); var coordDim = resultItem.coordDim; if (coordDim == null) { resultItem.coordDim = genName(extra, coordDimNameMap, fromZero); resultItem.coordDimIndex = 0; if (!generateCoord || generateCoordCount <= 0) { resultItem.isExtraCoord = true; } generateCoordCount--; } resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap)); if (resultItem.type == null && (guessOrdinal(source, resultDimIdx, resultItem.name) === BE_ORDINAL.Must // Consider the case: // { // dataset: {source: [ // ['2001', 123], // ['2002', 456], // ... // ['The others', 987], // ]}, // series: {type: 'pie'} // } // The first colum should better be treated as a "ordinal" although it // might not able to be detected as an "ordinal" by `guessOrdinal`. || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) { resultItem.type = 'ordinal'; } } return result; } // ??? TODO // Originally detect dimCount by data[0]. Should we // optimize it to only by sysDims and dimensions and encode. // So only necessary dims will be initialized. // But // (1) custom series should be considered. where other dims // may be visited. // (2) sometimes user need to calcualte bubble size or use visualMap // on other dimensions besides coordSys needed. // So, dims that is not used by system, should be shared in storage? function getDimCount(source, sysDims, dimsDef, optDimCount) { // Note that the result dimCount should not small than columns count // of data, otherwise `dataDimNameMap` checking will be incorrect. var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0); each(sysDims, function (sysDimItem) { var sysDimItemDimsDef = sysDimItem.dimsDef; sysDimItemDimsDef && (dimCount = Math.max(dimCount, sysDimItemDimsDef.length)); }); return dimCount; } function genName(name, map, fromZero) { if (fromZero || map.get(name) != null) { var i = 0; while (map.get(name + i) != null) { i++; } name += i; } map.set(name, true); return name; } var _default = completeDimensions; module.exports = _default; /***/ }), /* 531 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/model/referHelper.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var retrieve = _util.retrieve; var each = _util.each; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Helper for model references. * There are many manners to refer axis/coordSys. */ // TODO // merge relevant logic to this file? // check: "modelHelper" of tooltip and "BrushTargetManager". /** * @class * For example: * { * coordSysName: 'cartesian2d', * coordSysDims: ['x', 'y', ...], * axisMap: HashMap({ * x: xAxisModel, * y: yAxisModel * }), * categoryAxisMap: HashMap({ * x: xAxisModel, * y: undefined * }), * // The index of the first category axis in `coordSysDims`. * // `null/undefined` means no category axis exists. * firstCategoryDimIndex: 1, * // To replace user specified encode. * } */ function CoordSysInfo(coordSysName) { /** * @type {string} */ this.coordSysName = coordSysName; /** * @type {Array.} */ this.coordSysDims = []; /** * @type {module:zrender/core/util#HashMap} */ this.axisMap = createHashMap(); /** * @type {module:zrender/core/util#HashMap} */ this.categoryAxisMap = createHashMap(); /** * @type {number} */ this.firstCategoryDimIndex = null; } /** * @return {module:model/referHelper#CoordSysInfo} */ function getCoordSysInfoBySeries(seriesModel) { var coordSysName = seriesModel.get('coordinateSystem'); var result = new CoordSysInfo(coordSysName); var fetch = fetchers[coordSysName]; if (fetch) { fetch(seriesModel, result, result.axisMap, result.categoryAxisMap); return result; } } var fetchers = { cartesian2d: function cartesian2d(seriesModel, result, axisMap, categoryAxisMap) { var xAxisModel = seriesModel.getReferringComponents('xAxis')[0]; var yAxisModel = seriesModel.getReferringComponents('yAxis')[0]; result.coordSysDims = ['x', 'y']; axisMap.set('x', xAxisModel); axisMap.set('y', yAxisModel); if (isCategory(xAxisModel)) { categoryAxisMap.set('x', xAxisModel); result.firstCategoryDimIndex = 0; } if (isCategory(yAxisModel)) { categoryAxisMap.set('y', yAxisModel); result.firstCategoryDimIndex == null & (result.firstCategoryDimIndex = 1); } }, singleAxis: function singleAxis(seriesModel, result, axisMap, categoryAxisMap) { var singleAxisModel = seriesModel.getReferringComponents('singleAxis')[0]; result.coordSysDims = ['single']; axisMap.set('single', singleAxisModel); if (isCategory(singleAxisModel)) { categoryAxisMap.set('single', singleAxisModel); result.firstCategoryDimIndex = 0; } }, polar: function polar(seriesModel, result, axisMap, categoryAxisMap) { var polarModel = seriesModel.getReferringComponents('polar')[0]; var radiusAxisModel = polarModel.findAxisModel('radiusAxis'); var angleAxisModel = polarModel.findAxisModel('angleAxis'); result.coordSysDims = ['radius', 'angle']; axisMap.set('radius', radiusAxisModel); axisMap.set('angle', angleAxisModel); if (isCategory(radiusAxisModel)) { categoryAxisMap.set('radius', radiusAxisModel); result.firstCategoryDimIndex = 0; } if (isCategory(angleAxisModel)) { categoryAxisMap.set('angle', angleAxisModel); result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1); } }, geo: function geo(seriesModel, result, axisMap, categoryAxisMap) { result.coordSysDims = ['lng', 'lat']; }, parallel: function parallel(seriesModel, result, axisMap, categoryAxisMap) { var ecModel = seriesModel.ecModel; var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex')); var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice(); each(parallelModel.parallelAxisIndex, function (axisIndex, index) { var axisModel = ecModel.getComponent('parallelAxis', axisIndex); var axisDim = coordSysDims[index]; axisMap.set(axisDim, axisModel); if (isCategory(axisModel) && result.firstCategoryDimIndex == null) { categoryAxisMap.set(axisDim, axisModel); result.firstCategoryDimIndex = index; } }); } }; function isCategory(axisModel) { return axisModel.get('type') === 'category'; } exports.getCoordSysInfoBySeries = getCoordSysInfoBySeries; /***/ }), /* 532 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/helper/dataStackHelper.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var isString = _util.isString; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Note that it is too complicated to support 3d stack by value * (have to create two-dimension inverted index), so in 3d case * we just support that stacked by index. * * @param {module:echarts/model/Series} seriesModel * @param {Array.} dimensionInfoList The same as the input of . * The input dimensionInfoList will be modified. * @param {Object} [opt] * @param {boolean} [opt.stackedCoordDimension=''] Specify a coord dimension if needed. * @param {boolean} [opt.byIndex=false] * @return {Object} calculationInfo * { * stackedDimension: string * stackedByDimension: string * isStackedByIndex: boolean * stackedOverDimension: string * stackResultDimension: string * } */ function enableDataStack(seriesModel, dimensionInfoList, opt) { opt = opt || {}; var byIndex = opt.byIndex; var stackedCoordDimension = opt.stackedCoordDimension; // Compatibal: when `stack` is set as '', do not stack. var mayStack = !!(seriesModel && seriesModel.get('stack')); var stackedByDimInfo; var stackedDimInfo; var stackResultDimension; var stackedOverDimension; each(dimensionInfoList, function (dimensionInfo, index) { if (isString(dimensionInfo)) { dimensionInfoList[index] = dimensionInfo = { name: dimensionInfo }; } if (mayStack && !dimensionInfo.isExtraCoord) { // Find the first ordinal dimension as the stackedByDimInfo. if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) { stackedByDimInfo = dimensionInfo; } // Find the first stackable dimension as the stackedDimInfo. if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) { stackedDimInfo = dimensionInfo; } } }); if (stackedDimInfo && !byIndex && !stackedByDimInfo) { // Compatible with previous design, value axis (time axis) only stack by index. // It may make sense if the user provides elaborately constructed data. byIndex = true; } // Add stack dimension, they can be both calculated by coordinate system in `unionExtent`. // That put stack logic in List is for using conveniently in echarts extensions, but it // might not be a good way. if (stackedDimInfo) { // Use a weird name that not duplicated with other names. stackResultDimension = '__\0ecstackresult'; stackedOverDimension = '__\0ecstackedover'; // Create inverted index to fast query index by value. if (stackedByDimInfo) { stackedByDimInfo.createInvertedIndices = true; } var stackedDimCoordDim = stackedDimInfo.coordDim; var stackedDimType = stackedDimInfo.type; var stackedDimCoordIndex = 0; each(dimensionInfoList, function (dimensionInfo) { if (dimensionInfo.coordDim === stackedDimCoordDim) { stackedDimCoordIndex++; } }); dimensionInfoList.push({ name: stackResultDimension, coordDim: stackedDimCoordDim, coordDimIndex: stackedDimCoordIndex, type: stackedDimType, isExtraCoord: true, isCalculationCoord: true }); stackedDimCoordIndex++; dimensionInfoList.push({ name: stackedOverDimension, // This dimension contains stack base (generally, 0), so do not set it as // `stackedDimCoordDim` to avoid extent calculation, consider log scale. coordDim: stackedOverDimension, coordDimIndex: stackedDimCoordIndex, type: stackedDimType, isExtraCoord: true, isCalculationCoord: true }); } return { stackedDimension: stackedDimInfo && stackedDimInfo.name, stackedByDimension: stackedByDimInfo && stackedByDimInfo.name, isStackedByIndex: byIndex, stackedOverDimension: stackedOverDimension, stackResultDimension: stackResultDimension }; } /** * @param {module:echarts/data/List} data * @param {string} stackedDim */ function isDimensionStacked(data, stackedDim /*, stackedByDim*/) { // Each single series only maps to one pair of axis. So we do not need to // check stackByDim, whatever stacked by a dimension or stacked by index. return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension'); // && ( // stackedByDim != null // ? stackedByDim === data.getCalculationInfo('stackedByDimension') // : data.getCalculationInfo('isStackedByIndex') // ); } /** * @param {module:echarts/data/List} data * @param {string} targetDim * @param {string} [stackedByDim] If not input this parameter, check whether * stacked by index. * @return {string} dimension */ function getStackedDimension(data, targetDim) { return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim; } exports.enableDataStack = enableDataStack; exports.isDimensionStacked = isDimensionStacked; exports.getStackedDimension = getStackedDimension; /***/ }), /* 533 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/axisHelper.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var OrdinalScale = __webpack_require__(/*! ../scale/Ordinal */ 534); var IntervalScale = __webpack_require__(/*! ../scale/Interval */ 537); var Scale = __webpack_require__(/*! ../scale/Scale */ 535); var numberUtil = __webpack_require__(/*! ../util/number */ 489); var _barGrid = __webpack_require__(/*! ../layout/barGrid */ 539); var prepareLayoutBarSeries = _barGrid.prepareLayoutBarSeries; var makeColumnLayout = _barGrid.makeColumnLayout; var retrieveColumnLayout = _barGrid.retrieveColumnLayout; var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); __webpack_require__(/*! ../scale/Time */ 540); __webpack_require__(/*! ../scale/Log */ 541); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Get axis scale extent before niced. * Item of returned array can only be number (including Infinity and NaN). */ function getScaleExtent(scale, model) { var scaleType = scale.type; var min = model.getMin(); var max = model.getMax(); var originalExtent = scale.getExtent(); var axisDataLen; var boundaryGap; var span; if (scaleType === 'ordinal') { axisDataLen = model.getCategories().length; } else { boundaryGap = model.get('boundaryGap'); if (!zrUtil.isArray(boundaryGap)) { boundaryGap = [boundaryGap || 0, boundaryGap || 0]; } if (typeof boundaryGap[0] === 'boolean') { boundaryGap = [0, 0]; } boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], 1); boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], 1); span = originalExtent[1] - originalExtent[0] || Math.abs(originalExtent[0]); } // Notice: When min/max is not set (that is, when there are null/undefined, // which is the most common case), these cases should be ensured: // (1) For 'ordinal', show all axis.data. // (2) For others: // + `boundaryGap` is applied (if min/max set, boundaryGap is // disabled). // + If `needCrossZero`, min/max should be zero, otherwise, min/max should // be the result that originalExtent enlarged by boundaryGap. // (3) If no data, it should be ensured that `scale.setBlank` is set. // FIXME // (1) When min/max is 'dataMin' or 'dataMax', should boundaryGap be able to used? // (2) When `needCrossZero` and all data is positive/negative, should it be ensured // that the results processed by boundaryGap are positive/negative? if (min === 'dataMin') { min = originalExtent[0]; } else if (typeof min === 'function') { min = min({ min: originalExtent[0], max: originalExtent[1] }); } if (max === 'dataMax') { max = originalExtent[1]; } else if (typeof max === 'function') { max = max({ min: originalExtent[0], max: originalExtent[1] }); } var fixMin = min != null; var fixMax = max != null; if (min == null) { min = scaleType === 'ordinal' ? axisDataLen ? 0 : NaN : originalExtent[0] - boundaryGap[0] * span; } if (max == null) { max = scaleType === 'ordinal' ? axisDataLen ? axisDataLen - 1 : NaN : originalExtent[1] + boundaryGap[1] * span; } (min == null || !isFinite(min)) && (min = NaN); (max == null || !isFinite(max)) && (max = NaN); scale.setBlank(zrUtil.eqNaN(min) || zrUtil.eqNaN(max) || scaleType === 'ordinal' && !scale.getOrdinalMeta().categories.length); // Evaluate if axis needs cross zero if (model.getNeedCrossZero()) { // Axis is over zero and min is not set if (min > 0 && max > 0 && !fixMin) { min = 0; } // Axis is under zero and max is not set if (min < 0 && max < 0 && !fixMax) { max = 0; } } // If bars are placed on a base axis of type time or interval account for axis boundary overflow and current axis // is base axis // FIXME // (1) Consider support value axis, where below zero and axis `onZero` should be handled properly. // (2) Refactor the logic with `barGrid`. Is it not need to `makeBarWidthAndOffsetInfo` twice with different extent? // Should not depend on series type `bar`? // (3) Fix that might overlap when using dataZoom. // (4) Consider other chart types using `barGrid`? // See #6728, #4862, `test/bar-overflow-time-plot.html` var ecModel = model.ecModel; if (ecModel && scaleType === 'time' /*|| scaleType === 'interval' */) { var barSeriesModels = prepareLayoutBarSeries('bar', ecModel); var isBaseAxisAndHasBarSeries; zrUtil.each(barSeriesModels, function (seriesModel) { isBaseAxisAndHasBarSeries |= seriesModel.getBaseAxis() === model.axis; }); if (isBaseAxisAndHasBarSeries) { // Calculate placement of bars on axis var barWidthAndOffset = makeColumnLayout(barSeriesModels); // Adjust axis min and max to account for overflow var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset); min = adjustedScale.min; max = adjustedScale.max; } } return { extent: [min, max], // "fix" means "fixed", the value should not be // changed in the subsequent steps. fixMin: fixMin, fixMax: fixMax }; } function adjustScaleForOverflow(min, max, model, barWidthAndOffset) { // Get Axis Length var axisExtent = model.axis.getExtent(); var axisLength = axisExtent[1] - axisExtent[0]; // Get bars on current base axis and calculate min and max overflow var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis); if (barsOnCurrentAxis === undefined) { return { min: min, max: max }; } var minOverflow = Infinity; zrUtil.each(barsOnCurrentAxis, function (item) { minOverflow = Math.min(item.offset, minOverflow); }); var maxOverflow = -Infinity; zrUtil.each(barsOnCurrentAxis, function (item) { maxOverflow = Math.max(item.offset + item.width, maxOverflow); }); minOverflow = Math.abs(minOverflow); maxOverflow = Math.abs(maxOverflow); var totalOverFlow = minOverflow + maxOverflow; // Calulate required buffer based on old range and overflow var oldRange = max - min; var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength; var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange; max += overflowBuffer * (maxOverflow / totalOverFlow); min -= overflowBuffer * (minOverflow / totalOverFlow); return { min: min, max: max }; } function niceScaleExtent(scale, model) { var extentInfo = getScaleExtent(scale, model); var extent = extentInfo.extent; var splitNumber = model.get('splitNumber'); if (scale.type === 'log') { scale.base = model.get('logBase'); } var scaleType = scale.type; scale.setExtent(extent[0], extent[1]); scale.niceExtent({ splitNumber: splitNumber, fixMin: extentInfo.fixMin, fixMax: extentInfo.fixMax, minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null, maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null }); // If some one specified the min, max. And the default calculated interval // is not good enough. He can specify the interval. It is often appeared // in angle axis with angle 0 - 360. Interval calculated in interval scale is hard // to be 60. // FIXME var interval = model.get('interval'); if (interval != null) { scale.setInterval && scale.setInterval(interval); } } /** * @param {module:echarts/model/Model} model * @param {string} [axisType] Default retrieve from model.type * @return {module:echarts/scale/*} */ function createScaleByModel(model, axisType) { axisType = axisType || model.get('type'); if (axisType) { switch (axisType) { // Buildin scale case 'category': return new OrdinalScale(model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(), [Infinity, -Infinity]); case 'value': return new IntervalScale(); // Extended scale, like time and log default: return (Scale.getClass(axisType) || IntervalScale).create(model); } } } /** * Check if the axis corss 0 */ function ifAxisCrossZero(axis) { var dataExtent = axis.scale.getExtent(); var min = dataExtent[0]; var max = dataExtent[1]; return !(min > 0 && max > 0 || min < 0 && max < 0); } /** * @param {module:echarts/coord/Axis} axis * @return {Function} Label formatter function. * param: {number} tickValue, * param: {number} idx, the index in all ticks. * If category axis, this param is not requied. * return: {string} label string. */ function makeLabelFormatter(axis) { var labelFormatter = axis.getLabelModel().get('formatter'); var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null; if (typeof labelFormatter === 'string') { labelFormatter = function (tpl) { return function (val) { // For category axis, get raw value; for numeric axis, // get foramtted label like '1,333,444'. val = axis.scale.getLabel(val); return tpl.replace('{value}', val != null ? val : ''); }; }(labelFormatter); // Consider empty array return labelFormatter; } else if (typeof labelFormatter === 'function') { return function (tickValue, idx) { // The original intention of `idx` is "the index of the tick in all ticks". // But the previous implementation of category axis do not consider the // `axisLabel.interval`, which cause that, for example, the `interval` is // `1`, then the ticks "name5", "name7", "name9" are displayed, where the // corresponding `idx` are `0`, `2`, `4`, but not `0`, `1`, `2`. So we keep // the definition here for back compatibility. if (categoryTickStart != null) { idx = tickValue - categoryTickStart; } return labelFormatter(getAxisRawValue(axis, tickValue), idx); }; } else { return function (tick) { return axis.scale.getLabel(tick); }; } } function getAxisRawValue(axis, value) { // In category axis with data zoom, tick is not the original // index of axis.data. So tick should not be exposed to user // in category axis. return axis.type === 'category' ? axis.scale.getLabel(value) : value; } /** * @param {module:echarts/coord/Axis} axis * @return {module:zrender/core/BoundingRect} Be null/undefined if no labels. */ function estimateLabelUnionRect(axis) { var axisModel = axis.model; var scale = axis.scale; if (!axisModel.get('axisLabel.show') || scale.isBlank()) { return; } var isCategory = axis.type === 'category'; var realNumberScaleTicks; var tickCount; var categoryScaleExtent = scale.getExtent(); // Optimize for large category data, avoid call `getTicks()`. if (isCategory) { tickCount = scale.count(); } else { realNumberScaleTicks = scale.getTicks(); tickCount = realNumberScaleTicks.length; } var axisLabelModel = axis.getLabelModel(); var labelFormatter = makeLabelFormatter(axis); var rect; var step = 1; // Simple optimization for large amount of labels if (tickCount > 40) { step = Math.ceil(tickCount / 40); } for (var i = 0; i < tickCount; i += step) { var tickValue = realNumberScaleTicks ? realNumberScaleTicks[i] : categoryScaleExtent[0] + i; var label = labelFormatter(tickValue); var unrotatedSingleRect = axisLabelModel.getTextRect(label); var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0); rect ? rect.union(singleRect) : rect = singleRect; } return rect; } function rotateTextRect(textRect, rotate) { var rotateRadians = rotate * Math.PI / 180; var boundingBox = textRect.plain(); var beforeWidth = boundingBox.width; var beforeHeight = boundingBox.height; var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians)); var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians)); var rotatedRect = new BoundingRect(boundingBox.x, boundingBox.y, afterWidth, afterHeight); return rotatedRect; } /** * @param {module:echarts/src/model/Model} model axisLabelModel or axisTickModel * @return {number|String} Can be null|'auto'|number|function */ function getOptionCategoryInterval(model) { var interval = model.get('interval'); return interval == null ? 'auto' : interval; } /** * Set `categoryInterval` as 0 implicitly indicates that * show all labels reguardless of overlap. * @param {Object} axis axisModel.axis * @return {boolean} */ function shouldShowAllLabels(axis) { return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0; } exports.getScaleExtent = getScaleExtent; exports.niceScaleExtent = niceScaleExtent; exports.createScaleByModel = createScaleByModel; exports.ifAxisCrossZero = ifAxisCrossZero; exports.makeLabelFormatter = makeLabelFormatter; exports.getAxisRawValue = getAxisRawValue; exports.estimateLabelUnionRect = estimateLabelUnionRect; exports.getOptionCategoryInterval = getOptionCategoryInterval; exports.shouldShowAllLabels = shouldShowAllLabels; /***/ }), /* 534 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/scale/Ordinal.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Scale = __webpack_require__(/*! ./Scale */ 535); var OrdinalMeta = __webpack_require__(/*! ../data/OrdinalMeta */ 536); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Linear continuous scale * @module echarts/coord/scale/Ordinal * * http://en.wikipedia.org/wiki/Level_of_measurement */ // FIXME only one data var scaleProto = Scale.prototype; var OrdinalScale = Scale.extend({ type: 'ordinal', /** * @param {module:echarts/data/OrdianlMeta|Array.} ordinalMeta */ init: function init(ordinalMeta, extent) { // Caution: Should not use instanceof, consider ec-extensions using // import approach to get OrdinalMeta class. if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) { ordinalMeta = new OrdinalMeta({ categories: ordinalMeta }); } this._ordinalMeta = ordinalMeta; this._extent = extent || [0, ordinalMeta.categories.length - 1]; }, parse: function parse(val) { return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) // val might be float. : Math.round(val); }, contain: function contain(rank) { rank = this.parse(rank); return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null; }, /** * Normalize given rank or name to linear [0, 1] * @param {number|string} [val] * @return {number} */ normalize: function normalize(val) { return scaleProto.normalize.call(this, this.parse(val)); }, scale: function scale(val) { return Math.round(scaleProto.scale.call(this, val)); }, /** * @return {Array} */ getTicks: function getTicks() { var ticks = []; var extent = this._extent; var rank = extent[0]; while (rank <= extent[1]) { ticks.push(rank); rank++; } return ticks; }, /** * Get item on rank n * @param {number} n * @return {string} */ getLabel: function getLabel(n) { if (!this.isBlank()) { // Note that if no data, ordinalMeta.categories is an empty array. return this._ordinalMeta.categories[n]; } }, /** * @return {number} */ count: function count() { return this._extent[1] - this._extent[0] + 1; }, /** * @override */ unionExtentFromData: function unionExtentFromData(data, dim) { this.unionExtent(data.getApproximateExtent(dim)); }, getOrdinalMeta: function getOrdinalMeta() { return this._ordinalMeta; }, niceTicks: zrUtil.noop, niceExtent: zrUtil.noop }); /** * @return {module:echarts/scale/Time} */ OrdinalScale.create = function () { return new OrdinalScale(); }; var _default = OrdinalScale; module.exports = _default; /***/ }), /* 535 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/scale/Scale.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var clazzUtil = __webpack_require__(/*! ../util/clazz */ 446); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * // Scale class management * @module echarts/scale/Scale */ /** * @param {Object} [setting] */ function Scale(setting) { this._setting = setting || {}; /** * Extent * @type {Array.} * @protected */ this._extent = [Infinity, -Infinity]; /** * Step is calculated in adjustExtent * @type {Array.} * @protected */ this._interval = 0; this.init && this.init.apply(this, arguments); } /** * Parse input val to valid inner number. * @param {*} val * @return {number} */ Scale.prototype.parse = function (val) { // Notice: This would be a trap here, If the implementation // of this method depends on extent, and this method is used // before extent set (like in dataZoom), it would be wrong. // Nevertheless, parse does not depend on extent generally. return val; }; Scale.prototype.getSetting = function (name) { return this._setting[name]; }; Scale.prototype.contain = function (val) { var extent = this._extent; return val >= extent[0] && val <= extent[1]; }; /** * Normalize value to linear [0, 1], return 0.5 if extent span is 0 * @param {number} val * @return {number} */ Scale.prototype.normalize = function (val) { var extent = this._extent; if (extent[1] === extent[0]) { return 0.5; } return (val - extent[0]) / (extent[1] - extent[0]); }; /** * Scale normalized value * @param {number} val * @return {number} */ Scale.prototype.scale = function (val) { var extent = this._extent; return val * (extent[1] - extent[0]) + extent[0]; }; /** * Set extent from data * @param {Array.} other */ Scale.prototype.unionExtent = function (other) { var extent = this._extent; other[0] < extent[0] && (extent[0] = other[0]); other[1] > extent[1] && (extent[1] = other[1]); // not setExtent because in log axis it may transformed to power // this.setExtent(extent[0], extent[1]); }; /** * Set extent from data * @param {module:echarts/data/List} data * @param {string} dim */ Scale.prototype.unionExtentFromData = function (data, dim) { this.unionExtent(data.getApproximateExtent(dim)); }; /** * Get extent * @return {Array.} */ Scale.prototype.getExtent = function () { return this._extent.slice(); }; /** * Set extent * @param {number} start * @param {number} end */ Scale.prototype.setExtent = function (start, end) { var thisExtent = this._extent; if (!isNaN(start)) { thisExtent[0] = start; } if (!isNaN(end)) { thisExtent[1] = end; } }; /** * When axis extent depends on data and no data exists, * axis ticks should not be drawn, which is named 'blank'. */ Scale.prototype.isBlank = function () { return this._isBlank; }, /** * When axis extent depends on data and no data exists, * axis ticks should not be drawn, which is named 'blank'. */ Scale.prototype.setBlank = function (isBlank) { this._isBlank = isBlank; }; /** * @abstract * @param {*} tick * @return {string} label of the tick. */ Scale.prototype.getLabel = null; clazzUtil.enableClassExtend(Scale); clazzUtil.enableClassManagement(Scale, { registerWhenExtend: true }); var _default = Scale; module.exports = _default; /***/ }), /* 536 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/OrdinalMeta.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var isObject = _util.isObject; var map = _util.map; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @constructor * @param {Object} [opt] * @param {Object} [opt.categories=[]] * @param {Object} [opt.needCollect=false] * @param {Object} [opt.deduplication=false] */ function OrdinalMeta(opt) { /** * @readOnly * @type {Array.} */ this.categories = opt.categories || []; /** * @private * @type {boolean} */ this._needCollect = opt.needCollect; /** * @private * @type {boolean} */ this._deduplication = opt.deduplication; /** * @private * @type {boolean} */ this._map; } /** * @param {module:echarts/model/Model} axisModel * @return {module:echarts/data/OrdinalMeta} */ OrdinalMeta.createByAxisModel = function (axisModel) { var option = axisModel.option; var data = option.data; var categories = data && map(data, getName); return new OrdinalMeta({ categories: categories, needCollect: !categories, // deduplication is default in axis. deduplication: option.dedplication !== false }); }; var proto = OrdinalMeta.prototype; /** * @param {string} category * @return {number} ordinal */ proto.getOrdinal = function (category) { return getOrCreateMap(this).get(category); }; /** * @param {*} category * @return {number} The ordinal. If not found, return NaN. */ proto.parseAndCollect = function (category) { var index; var needCollect = this._needCollect; // The value of category dim can be the index of the given category set. // This feature is only supported when !needCollect, because we should // consider a common case: a value is 2017, which is a number but is // expected to be tread as a category. This case usually happen in dataset, // where it happent to be no need of the index feature. if (typeof category !== 'string' && !needCollect) { return category; } // Optimize for the scenario: // category is ['2012-01-01', '2012-01-02', ...], where the input // data has been ensured not duplicate and is large data. // Notice, if a dataset dimension provide categroies, usually echarts // should remove duplication except user tell echarts dont do that // (set axis.deduplication = false), because echarts do not know whether // the values in the category dimension has duplication (consider the // parallel-aqi example) if (needCollect && !this._deduplication) { index = this.categories.length; this.categories[index] = category; return index; } var map = getOrCreateMap(this); index = map.get(category); if (index == null) { if (needCollect) { index = this.categories.length; this.categories[index] = category; map.set(category, index); } else { index = NaN; } } return index; }; // Consider big data, do not create map until needed. function getOrCreateMap(ordinalMeta) { return ordinalMeta._map || (ordinalMeta._map = createHashMap(ordinalMeta.categories)); } function getName(obj) { if (isObject(obj) && obj.value != null) { return obj.value; } else { return obj + ''; } } var _default = OrdinalMeta; module.exports = _default; /***/ }), /* 537 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/scale/Interval.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var numberUtil = __webpack_require__(/*! ../util/number */ 489); var formatUtil = __webpack_require__(/*! ../util/format */ 490); var Scale = __webpack_require__(/*! ./Scale */ 535); var helper = __webpack_require__(/*! ./helper */ 538); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Interval scale * @module echarts/scale/Interval */ var roundNumber = numberUtil.round; /** * @alias module:echarts/coord/scale/Interval * @constructor */ var IntervalScale = Scale.extend({ type: 'interval', _interval: 0, _intervalPrecision: 2, setExtent: function setExtent(start, end) { var thisExtent = this._extent; //start,end may be a Number like '25',so... if (!isNaN(start)) { thisExtent[0] = parseFloat(start); } if (!isNaN(end)) { thisExtent[1] = parseFloat(end); } }, unionExtent: function unionExtent(other) { var extent = this._extent; other[0] < extent[0] && (extent[0] = other[0]); other[1] > extent[1] && (extent[1] = other[1]); // unionExtent may called by it's sub classes IntervalScale.prototype.setExtent.call(this, extent[0], extent[1]); }, /** * Get interval */ getInterval: function getInterval() { return this._interval; }, /** * Set interval */ setInterval: function setInterval(interval) { this._interval = interval; // Dropped auto calculated niceExtent and use user setted extent // We assume user wan't to set both interval, min, max to get a better result this._niceExtent = this._extent.slice(); this._intervalPrecision = helper.getIntervalPrecision(interval); }, /** * @param {boolean} [expandToNicedExtent=false] If expand the ticks to niced extent. * @return {Array.} */ getTicks: function getTicks(expandToNicedExtent) { var interval = this._interval; var extent = this._extent; var niceTickExtent = this._niceExtent; var intervalPrecision = this._intervalPrecision; var ticks = []; // If interval is 0, return []; if (!interval) { return ticks; } // Consider this case: using dataZoom toolbox, zoom and zoom. var safeLimit = 10000; if (extent[0] < niceTickExtent[0]) { if (expandToNicedExtent) { ticks.push(roundNumber(niceTickExtent[0] - interval, intervalPrecision)); } else { ticks.push(extent[0]); } } var tick = niceTickExtent[0]; while (tick <= niceTickExtent[1]) { ticks.push(tick); // Avoid rounding error tick = roundNumber(tick + interval, intervalPrecision); if (tick === ticks[ticks.length - 1]) { // Consider out of safe float point, e.g., // -3711126.9907707 + 2e-10 === -3711126.9907707 break; } if (ticks.length > safeLimit) { return []; } } // Consider this case: the last item of ticks is smaller // than niceTickExtent[1] and niceTickExtent[1] === extent[1]. var lastNiceTick = ticks.length ? ticks[ticks.length - 1] : niceTickExtent[1]; if (extent[1] > lastNiceTick) { if (expandToNicedExtent) { ticks.push(roundNumber(lastNiceTick + interval, intervalPrecision)); } else { ticks.push(extent[1]); } } return ticks; }, /** * @param {number} [splitNumber=5] * @return {Array.>} */ getMinorTicks: function getMinorTicks(splitNumber) { var ticks = this.getTicks(true); var minorTicks = []; var extent = this.getExtent(); for (var i = 1; i < ticks.length; i++) { var nextTick = ticks[i]; var prevTick = ticks[i - 1]; var count = 0; var minorTicksGroup = []; var interval = nextTick - prevTick; var minorInterval = interval / splitNumber; while (count < splitNumber - 1) { var minorTick = numberUtil.round(prevTick + (count + 1) * minorInterval); // For the first and last interval. The count may be less than splitNumber. if (minorTick > extent[0] && minorTick < extent[1]) { minorTicksGroup.push(minorTick); } count++; } minorTicks.push(minorTicksGroup); } return minorTicks; }, /** * @param {number} data * @param {Object} [opt] * @param {number|string} [opt.precision] If 'auto', use nice presision. * @param {boolean} [opt.pad] returns 1.50 but not 1.5 if precision is 2. * @return {string} */ getLabel: function getLabel(data, opt) { if (data == null) { return ''; } var precision = opt && opt.precision; if (precision == null) { precision = numberUtil.getPrecisionSafe(data) || 0; } else if (precision === 'auto') { // Should be more precise then tick. precision = this._intervalPrecision; } // (1) If `precision` is set, 12.005 should be display as '12.00500'. // (2) Use roundNumber (toFixed) to avoid scientific notation like '3.5e-7'. data = roundNumber(data, precision, true); return formatUtil.addCommas(data); }, /** * Update interval and extent of intervals for nice ticks * * @param {number} [splitNumber = 5] Desired number of ticks * @param {number} [minInterval] * @param {number} [maxInterval] */ niceTicks: function niceTicks(splitNumber, minInterval, maxInterval) { splitNumber = splitNumber || 5; var extent = this._extent; var span = extent[1] - extent[0]; if (!isFinite(span)) { return; } // User may set axis min 0 and data are all negative // FIXME If it needs to reverse ? if (span < 0) { span = -span; extent.reverse(); } var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval); this._intervalPrecision = result.intervalPrecision; this._interval = result.interval; this._niceExtent = result.niceTickExtent; }, /** * Nice extent. * @param {Object} opt * @param {number} [opt.splitNumber = 5] Given approx tick number * @param {boolean} [opt.fixMin=false] * @param {boolean} [opt.fixMax=false] * @param {boolean} [opt.minInterval] * @param {boolean} [opt.maxInterval] */ niceExtent: function niceExtent(opt) { var extent = this._extent; // If extent start and end are same, expand them if (extent[0] === extent[1]) { if (extent[0] !== 0) { // Expand extent var expandSize = extent[0]; // In the fowllowing case // Axis has been fixed max 100 // Plus data are all 100 and axis extent are [100, 100]. // Extend to the both side will cause expanded max is larger than fixed max. // So only expand to the smaller side. if (!opt.fixMax) { extent[1] += expandSize / 2; extent[0] -= expandSize / 2; } else { extent[0] -= expandSize / 2; } } else { extent[1] = 1; } } var span = extent[1] - extent[0]; // If there are no data and extent are [Infinity, -Infinity] if (!isFinite(span)) { extent[0] = 0; extent[1] = 1; } this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent; var interval = this._interval; if (!opt.fixMin) { extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval); } if (!opt.fixMax) { extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval); } } }); /** * @return {module:echarts/scale/Time} */ IntervalScale.create = function () { return new IntervalScale(); }; var _default = IntervalScale; module.exports = _default; /***/ }), /* 538 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/scale/helper.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var numberUtil = __webpack_require__(/*! ../util/number */ 489); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * For testable. */ var roundNumber = numberUtil.round; /** * @param {Array.} extent Both extent[0] and extent[1] should be valid number. * Should be extent[0] < extent[1]. * @param {number} splitNumber splitNumber should be >= 1. * @param {number} [minInterval] * @param {number} [maxInterval] * @return {Object} {interval, intervalPrecision, niceTickExtent} */ function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) { var result = {}; var span = extent[1] - extent[0]; var interval = result.interval = numberUtil.nice(span / splitNumber, true); if (minInterval != null && interval < minInterval) { interval = result.interval = minInterval; } if (maxInterval != null && interval > maxInterval) { interval = result.interval = maxInterval; } // Tow more digital for tick. var precision = result.intervalPrecision = getIntervalPrecision(interval); // Niced extent inside original extent var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)]; fixExtent(niceTickExtent, extent); return result; } /** * @param {number} interval * @return {number} interval precision */ function getIntervalPrecision(interval) { // Tow more digital for tick. return numberUtil.getPrecisionSafe(interval) + 2; } function clamp(niceTickExtent, idx, extent) { niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]); } // In some cases (e.g., splitNumber is 1), niceTickExtent may be out of extent. function fixExtent(niceTickExtent, extent) { !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]); !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]); clamp(niceTickExtent, 0, extent); clamp(niceTickExtent, 1, extent); if (niceTickExtent[0] > niceTickExtent[1]) { niceTickExtent[0] = niceTickExtent[1]; } } exports.intervalScaleNiceTicks = intervalScaleNiceTicks; exports.getIntervalPrecision = getIntervalPrecision; exports.fixExtent = fixExtent; /***/ }), /* 539 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/layout/barGrid.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _number = __webpack_require__(/*! ../util/number */ 489); var parsePercent = _number.parsePercent; var _dataStackHelper = __webpack_require__(/*! ../data/helper/dataStackHelper */ 532); var isDimensionStacked = _dataStackHelper.isDimensionStacked; var createRenderPlanner = __webpack_require__(/*! ../chart/helper/createRenderPlanner */ 509); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Float32Array */ var STACK_PREFIX = '__ec_stack_'; var LARGE_BAR_MIN_WIDTH = 0.5; var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array; function getSeriesStackId(seriesModel) { return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex; } function getAxisKey(axis) { return axis.dim + axis.index; } /** * @param {Object} opt * @param {module:echarts/coord/Axis} opt.axis Only support category axis currently. * @param {number} opt.count Positive interger. * @param {number} [opt.barWidth] * @param {number} [opt.barMaxWidth] * @param {number} [opt.barMinWidth] * @param {number} [opt.barGap] * @param {number} [opt.barCategoryGap] * @return {Object} {width, offset, offsetCenter} If axis.type is not 'category', return undefined. */ function getLayoutOnAxis(opt) { var params = []; var baseAxis = opt.axis; var axisKey = 'axis0'; if (baseAxis.type !== 'category') { return; } var bandWidth = baseAxis.getBandWidth(); for (var i = 0; i < opt.count || 0; i++) { params.push(zrUtil.defaults({ bandWidth: bandWidth, axisKey: axisKey, stackId: STACK_PREFIX + i }, opt)); } var widthAndOffsets = doCalBarWidthAndOffset(params); var result = []; for (var i = 0; i < opt.count; i++) { var item = widthAndOffsets[axisKey][STACK_PREFIX + i]; item.offsetCenter = item.offset + item.width / 2; result.push(item); } return result; } function prepareLayoutBarSeries(seriesType, ecModel) { var seriesModels = []; ecModel.eachSeriesByType(seriesType, function (seriesModel) { // Check series coordinate, do layout for cartesian2d only if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) { seriesModels.push(seriesModel); } }); return seriesModels; } /** * Map from (baseAxis.dim + '_' + baseAxis.index) to min gap of two adjacent * values. * This works for time axes, value axes, and log axes. * For a single time axis, return value is in the form like * {'x_0': [1000000]}. * The value of 1000000 is in milliseconds. */ function getValueAxesMinGaps(barSeries) { /** * Map from axis.index to values. * For a single time axis, axisValues is in the form like * {'x_0': [1495555200000, 1495641600000, 1495728000000]}. * Items in axisValues[x], e.g. 1495555200000, are time values of all * series. */ var axisValues = {}; zrUtil.each(barSeries, function (seriesModel) { var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); if (baseAxis.type !== 'time' && baseAxis.type !== 'value') { return; } var data = seriesModel.getData(); var key = baseAxis.dim + '_' + baseAxis.index; var dim = data.mapDimension(baseAxis.dim); for (var i = 0, cnt = data.count(); i < cnt; ++i) { var value = data.get(dim, i); if (!axisValues[key]) { // No previous data for the axis axisValues[key] = [value]; } else { // No value in previous series axisValues[key].push(value); } // Ignore duplicated time values in the same axis } }); var axisMinGaps = []; for (var key in axisValues) { if (axisValues.hasOwnProperty(key)) { var valuesInAxis = axisValues[key]; if (valuesInAxis) { // Sort axis values into ascending order to calculate gaps valuesInAxis.sort(function (a, b) { return a - b; }); var min = null; for (var j = 1; j < valuesInAxis.length; ++j) { var delta = valuesInAxis[j] - valuesInAxis[j - 1]; if (delta > 0) { // Ignore 0 delta because they are of the same axis value min = min === null ? delta : Math.min(min, delta); } } // Set to null if only have one data axisMinGaps[key] = min; } } } return axisMinGaps; } function makeColumnLayout(barSeries) { var axisMinGaps = getValueAxesMinGaps(barSeries); var seriesInfoList = []; zrUtil.each(barSeries, function (seriesModel) { var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); var axisExtent = baseAxis.getExtent(); var bandWidth; if (baseAxis.type === 'category') { bandWidth = baseAxis.getBandWidth(); } else if (baseAxis.type === 'value' || baseAxis.type === 'time') { var key = baseAxis.dim + '_' + baseAxis.index; var minGap = axisMinGaps[key]; var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]); var scale = baseAxis.scale.getExtent(); var scaleSpan = Math.abs(scale[1] - scale[0]); bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan; // When there is only one data value } else { var data = seriesModel.getData(); bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count(); } var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth); var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth); var barMinWidth = parsePercent( // barMinWidth by default is 1 in cartesian. Because in value axis, // the auto-calculated bar width might be less than 1. seriesModel.get('barMinWidth') || 1, bandWidth); var barGap = seriesModel.get('barGap'); var barCategoryGap = seriesModel.get('barCategoryGap'); seriesInfoList.push({ bandWidth: bandWidth, barWidth: barWidth, barMaxWidth: barMaxWidth, barMinWidth: barMinWidth, barGap: barGap, barCategoryGap: barCategoryGap, axisKey: getAxisKey(baseAxis), stackId: getSeriesStackId(seriesModel) }); }); return doCalBarWidthAndOffset(seriesInfoList); } function doCalBarWidthAndOffset(seriesInfoList) { // Columns info on each category axis. Key is cartesian name var columnsMap = {}; zrUtil.each(seriesInfoList, function (seriesInfo, idx) { var axisKey = seriesInfo.axisKey; var bandWidth = seriesInfo.bandWidth; var columnsOnAxis = columnsMap[axisKey] || { bandWidth: bandWidth, remainedWidth: bandWidth, autoWidthCount: 0, categoryGap: '20%', gap: '30%', stacks: {} }; var stacks = columnsOnAxis.stacks; columnsMap[axisKey] = columnsOnAxis; var stackId = seriesInfo.stackId; if (!stacks[stackId]) { columnsOnAxis.autoWidthCount++; } stacks[stackId] = stacks[stackId] || { width: 0, maxWidth: 0 }; // Caution: In a single coordinate system, these barGrid attributes // will be shared by series. Consider that they have default values, // only the attributes set on the last series will work. // Do not change this fact unless there will be a break change. var barWidth = seriesInfo.barWidth; if (barWidth && !stacks[stackId].width) { // See #6312, do not restrict width. stacks[stackId].width = barWidth; barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth); columnsOnAxis.remainedWidth -= barWidth; } var barMaxWidth = seriesInfo.barMaxWidth; barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth); var barMinWidth = seriesInfo.barMinWidth; barMinWidth && (stacks[stackId].minWidth = barMinWidth); var barGap = seriesInfo.barGap; barGap != null && (columnsOnAxis.gap = barGap); var barCategoryGap = seriesInfo.barCategoryGap; barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap); }); var result = {}; zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) { result[coordSysName] = {}; var stacks = columnsOnAxis.stacks; var bandWidth = columnsOnAxis.bandWidth; var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth); var barGapPercent = parsePercent(columnsOnAxis.gap, 1); var remainedWidth = columnsOnAxis.remainedWidth; var autoWidthCount = columnsOnAxis.autoWidthCount; var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth zrUtil.each(stacks, function (column) { var maxWidth = column.maxWidth; var minWidth = column.minWidth; if (!column.width) { var finalWidth = autoWidth; if (maxWidth && maxWidth < finalWidth) { finalWidth = Math.min(maxWidth, remainedWidth); } // `minWidth` has higher priority. `minWidth` decide that wheter the // bar is able to be visible. So `minWidth` should not be restricted // by `maxWidth` or `remainedWidth` (which is from `bandWidth`). In // the extreme cases for `value` axis, bars are allowed to overlap // with each other if `minWidth` specified. if (minWidth && minWidth > finalWidth) { finalWidth = minWidth; } if (finalWidth !== autoWidth) { column.width = finalWidth; remainedWidth -= finalWidth + barGapPercent * finalWidth; autoWidthCount--; } } else { // `barMinWidth/barMaxWidth` has higher priority than `barWidth`, as // CSS does. Becuase barWidth can be a percent value, where // `barMaxWidth` can be used to restrict the final width. var finalWidth = column.width; if (maxWidth) { finalWidth = Math.min(finalWidth, maxWidth); } // `minWidth` has higher priority, as described above if (minWidth) { finalWidth = Math.max(finalWidth, minWidth); } column.width = finalWidth; remainedWidth -= finalWidth + barGapPercent * finalWidth; autoWidthCount--; } }); // Recalculate width again autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); autoWidth = Math.max(autoWidth, 0); var widthSum = 0; var lastColumn; zrUtil.each(stacks, function (column, idx) { if (!column.width) { column.width = autoWidth; } lastColumn = column; widthSum += column.width * (1 + barGapPercent); }); if (lastColumn) { widthSum -= lastColumn.width * barGapPercent; } var offset = -widthSum / 2; zrUtil.each(stacks, function (column, stackId) { result[coordSysName][stackId] = result[coordSysName][stackId] || { bandWidth: bandWidth, offset: offset, width: column.width }; offset += column.width * (1 + barGapPercent); }); }); return result; } /** * @param {Object} barWidthAndOffset The result of makeColumnLayout * @param {module:echarts/coord/Axis} axis * @param {module:echarts/model/Series} [seriesModel] If not provided, return all. * @return {Object} {stackId: {offset, width}} or {offset, width} if seriesModel provided. */ function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) { if (barWidthAndOffset && axis) { var result = barWidthAndOffset[getAxisKey(axis)]; if (result != null && seriesModel != null) { result = result[getSeriesStackId(seriesModel)]; } return result; } } /** * @param {string} seriesType * @param {module:echarts/model/Global} ecModel */ function layout(seriesType, ecModel) { var seriesModels = prepareLayoutBarSeries(seriesType, ecModel); var barWidthAndOffset = makeColumnLayout(seriesModels); var lastStackCoords = {}; var lastStackCoordsOrigin = {}; zrUtil.each(seriesModels, function (seriesModel) { var data = seriesModel.getData(); var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); var stackId = getSeriesStackId(seriesModel); var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId]; var columnOffset = columnLayoutInfo.offset; var columnWidth = columnLayoutInfo.width; var valueAxis = cartesian.getOtherAxis(baseAxis); var barMinHeight = seriesModel.get('barMinHeight') || 0; lastStackCoords[stackId] = lastStackCoords[stackId] || []; lastStackCoordsOrigin[stackId] = lastStackCoordsOrigin[stackId] || []; // Fix #4243 data.setLayout({ bandWidth: columnLayoutInfo.bandWidth, offset: columnOffset, size: columnWidth }); var valueDim = data.mapDimension(valueAxis.dim); var baseDim = data.mapDimension(baseAxis.dim); var stacked = isDimensionStacked(data, valueDim /*, baseDim*/); var isValueAxisH = valueAxis.isHorizontal(); var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked); for (var idx = 0, len = data.count(); idx < len; idx++) { var value = data.get(valueDim, idx); var baseValue = data.get(baseDim, idx); var sign = value >= 0 ? 'p' : 'n'; var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in // stackResultDimension directly. if (stacked) { // Only ordinal axis can be stacked. if (!lastStackCoords[stackId][baseValue]) { lastStackCoords[stackId][baseValue] = { p: valueAxisStart, // Positive stack n: valueAxisStart // Negative stack }; } // Should also consider #4243 baseCoord = lastStackCoords[stackId][baseValue][sign]; } var x; var y; var width; var height; if (isValueAxisH) { var coord = cartesian.dataToPoint([value, baseValue]); x = baseCoord; y = coord[1] + columnOffset; width = coord[0] - valueAxisStart; height = columnWidth; if (Math.abs(width) < barMinHeight) { width = (width < 0 ? -1 : 1) * barMinHeight; } // Ignore stack from NaN value if (!isNaN(width)) { stacked && (lastStackCoords[stackId][baseValue][sign] += width); } } else { var coord = cartesian.dataToPoint([baseValue, value]); x = coord[0] + columnOffset; y = baseCoord; width = columnWidth; height = coord[1] - valueAxisStart; if (Math.abs(height) < barMinHeight) { // Include zero to has a positive bar height = (height <= 0 ? -1 : 1) * barMinHeight; } // Ignore stack from NaN value if (!isNaN(height)) { stacked && (lastStackCoords[stackId][baseValue][sign] += height); } } data.setItemLayout(idx, { x: x, y: y, width: width, height: height }); } }, this); } // TODO: Do not support stack in large mode yet. var largeLayout = { seriesType: 'bar', plan: createRenderPlanner(), reset: function reset(seriesModel) { if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) { return; } var data = seriesModel.getData(); var cartesian = seriesModel.coordinateSystem; var coordLayout = cartesian.grid.getRect(); var baseAxis = cartesian.getBaseAxis(); var valueAxis = cartesian.getOtherAxis(baseAxis); var valueDim = data.mapDimension(valueAxis.dim); var baseDim = data.mapDimension(baseAxis.dim); var valueAxisHorizontal = valueAxis.isHorizontal(); var valueDimIdx = valueAxisHorizontal ? 0 : 1; var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width; if (!(barWidth > LARGE_BAR_MIN_WIDTH)) { // jshint ignore:line barWidth = LARGE_BAR_MIN_WIDTH; } return { progress: progress }; function progress(params, data) { var count = params.count; var largePoints = new LargeArr(count * 2); var largeBackgroundPoints = new LargeArr(count * 2); var largeDataIndices = new LargeArr(count); var dataIndex; var coord = []; var valuePair = []; var pointsOffset = 0; var idxOffset = 0; while ((dataIndex = params.next()) != null) { valuePair[valueDimIdx] = data.get(valueDim, dataIndex); valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex); coord = cartesian.dataToPoint(valuePair, null, coord); // Data index might not be in order, depends on `progressiveChunkMode`. largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0]; largePoints[pointsOffset++] = coord[0]; largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height; largePoints[pointsOffset++] = coord[1]; largeDataIndices[idxOffset++] = dataIndex; } data.setLayout({ largePoints: largePoints, largeDataIndices: largeDataIndices, largeBackgroundPoints: largeBackgroundPoints, barWidth: barWidth, valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false), backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y, valueAxisHorizontal: valueAxisHorizontal }); } } }; function isOnCartesian(seriesModel) { return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d'; } function isInLargeMode(seriesModel) { return seriesModel.pipelineContext && seriesModel.pipelineContext.large; } // See cases in `test/bar-start.html` and `#7412`, `#8747`. function getValueAxisStart(baseAxis, valueAxis, stacked) { return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0)); } exports.getLayoutOnAxis = getLayoutOnAxis; exports.prepareLayoutBarSeries = prepareLayoutBarSeries; exports.makeColumnLayout = makeColumnLayout; exports.retrieveColumnLayout = retrieveColumnLayout; exports.layout = layout; exports.largeLayout = largeLayout; /***/ }), /* 540 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/scale/Time.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var numberUtil = __webpack_require__(/*! ../util/number */ 489); var formatUtil = __webpack_require__(/*! ../util/format */ 490); var scaleHelper = __webpack_require__(/*! ./helper */ 538); var IntervalScale = __webpack_require__(/*! ./Interval */ 537); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * A third-party license is embeded for some of the code in this file: * The "scaleLevels" was originally copied from "d3.js" with some * modifications made for this project. * (See more details in the comment on the definition of "scaleLevels" below.) * The use of the source code of this file is also subject to the terms * and consitions of the license of "d3.js" (BSD-3Clause, see * ). */ // [About UTC and local time zone]: // In most cases, `number.parseDate` will treat input data string as local time // (except time zone is specified in time string). And `format.formateTime` returns // local time by default. option.useUTC is false by default. This design have // concidered these common case: // (1) Time that is persistent in server is in UTC, but it is needed to be diplayed // in local time by default. // (2) By default, the input data string (e.g., '2011-01-02') should be displayed // as its original time, without any time difference. var intervalScaleProto = IntervalScale.prototype; var mathCeil = Math.ceil; var mathFloor = Math.floor; var ONE_SECOND = 1000; var ONE_MINUTE = ONE_SECOND * 60; var ONE_HOUR = ONE_MINUTE * 60; var ONE_DAY = ONE_HOUR * 24; // FIXME 公用? var bisect = function bisect(a, x, lo, hi) { while (lo < hi) { var mid = lo + hi >>> 1; if (a[mid][1] < x) { lo = mid + 1; } else { hi = mid; } } return lo; }; /** * @alias module:echarts/coord/scale/Time * @constructor */ var TimeScale = IntervalScale.extend({ type: 'time', /** * @override */ getLabel: function getLabel(val) { var stepLvl = this._stepLvl; var date = new Date(val); return formatUtil.formatTime(stepLvl[0], date, this.getSetting('useUTC')); }, /** * @override */ niceExtent: function niceExtent(opt) { var extent = this._extent; // If extent start and end are same, expand them if (extent[0] === extent[1]) { // Expand extent extent[0] -= ONE_DAY; extent[1] += ONE_DAY; } // If there are no data and extent are [Infinity, -Infinity] if (extent[1] === -Infinity && extent[0] === Infinity) { var d = new Date(); extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate()); extent[0] = extent[1] - ONE_DAY; } this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent; var interval = this._interval; if (!opt.fixMin) { extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval); } if (!opt.fixMax) { extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval); } }, /** * @override */ niceTicks: function niceTicks(approxTickNum, minInterval, maxInterval) { approxTickNum = approxTickNum || 10; var extent = this._extent; var span = extent[1] - extent[0]; var approxInterval = span / approxTickNum; if (minInterval != null && approxInterval < minInterval) { approxInterval = minInterval; } if (maxInterval != null && approxInterval > maxInterval) { approxInterval = maxInterval; } var scaleLevelsLen = scaleLevels.length; var idx = bisect(scaleLevels, approxInterval, 0, scaleLevelsLen); var level = scaleLevels[Math.min(idx, scaleLevelsLen - 1)]; var interval = level[1]; // Same with interval scale if span is much larger than 1 year if (level[0] === 'year') { var yearSpan = span / interval; // From "Nice Numbers for Graph Labels" of Graphic Gems // var niceYearSpan = numberUtil.nice(yearSpan, false); var yearStep = numberUtil.nice(yearSpan / approxTickNum, true); interval *= yearStep; } var timezoneOffset = this.getSetting('useUTC') ? 0 : new Date(+extent[0] || +extent[1]).getTimezoneOffset() * 60 * 1000; var niceExtent = [Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset), Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)]; scaleHelper.fixExtent(niceExtent, extent); this._stepLvl = level; // Interval will be used in getTicks this._interval = interval; this._niceExtent = niceExtent; }, parse: function parse(val) { // val might be float. return +numberUtil.parseDate(val); } }); zrUtil.each(['contain', 'normalize'], function (methodName) { TimeScale.prototype[methodName] = function (val) { return intervalScaleProto[methodName].call(this, this.parse(val)); }; }); /** * This implementation was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. */ var scaleLevels = [ // Format interval ['hh:mm:ss', ONE_SECOND], // 1s ['hh:mm:ss', ONE_SECOND * 5], // 5s ['hh:mm:ss', ONE_SECOND * 10], // 10s ['hh:mm:ss', ONE_SECOND * 15], // 15s ['hh:mm:ss', ONE_SECOND * 30], // 30s ['hh:mm\nMM-dd', ONE_MINUTE], // 1m ['hh:mm\nMM-dd', ONE_MINUTE * 5], // 5m ['hh:mm\nMM-dd', ONE_MINUTE * 10], // 10m ['hh:mm\nMM-dd', ONE_MINUTE * 15], // 15m ['hh:mm\nMM-dd', ONE_MINUTE * 30], // 30m ['hh:mm\nMM-dd', ONE_HOUR], // 1h ['hh:mm\nMM-dd', ONE_HOUR * 2], // 2h ['hh:mm\nMM-dd', ONE_HOUR * 6], // 6h ['hh:mm\nMM-dd', ONE_HOUR * 12], // 12h ['MM-dd\nyyyy', ONE_DAY], // 1d ['MM-dd\nyyyy', ONE_DAY * 2], // 2d ['MM-dd\nyyyy', ONE_DAY * 3], // 3d ['MM-dd\nyyyy', ONE_DAY * 4], // 4d ['MM-dd\nyyyy', ONE_DAY * 5], // 5d ['MM-dd\nyyyy', ONE_DAY * 6], // 6d ['week', ONE_DAY * 7], // 7d ['MM-dd\nyyyy', ONE_DAY * 10], // 10d ['week', ONE_DAY * 14], // 2w ['week', ONE_DAY * 21], // 3w ['month', ONE_DAY * 31], // 1M ['week', ONE_DAY * 42], // 6w ['month', ONE_DAY * 62], // 2M ['week', ONE_DAY * 70], // 10w ['quarter', ONE_DAY * 95], // 3M ['month', ONE_DAY * 31 * 4], // 4M ['month', ONE_DAY * 31 * 5], // 5M ['half-year', ONE_DAY * 380 / 2], // 6M ['month', ONE_DAY * 31 * 8], // 8M ['month', ONE_DAY * 31 * 10], // 10M ['year', ONE_DAY * 380] // 1Y ]; /** * @param {module:echarts/model/Model} * @return {module:echarts/scale/Time} */ TimeScale.create = function (model) { return new TimeScale({ useUTC: model.ecModel.get('useUTC') }); }; var _default = TimeScale; module.exports = _default; /***/ }), /* 541 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/scale/Log.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Scale = __webpack_require__(/*! ./Scale */ 535); var numberUtil = __webpack_require__(/*! ../util/number */ 489); var IntervalScale = __webpack_require__(/*! ./Interval */ 537); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Log scale * @module echarts/scale/Log */ // Use some method of IntervalScale var scaleProto = Scale.prototype; var intervalScaleProto = IntervalScale.prototype; var getPrecisionSafe = numberUtil.getPrecisionSafe; var roundingErrorFix = numberUtil.round; var mathFloor = Math.floor; var mathCeil = Math.ceil; var mathPow = Math.pow; var mathLog = Math.log; var LogScale = Scale.extend({ type: 'log', base: 10, $constructor: function $constructor() { Scale.apply(this, arguments); this._originalScale = new IntervalScale(); }, /** * @param {boolean} [expandToNicedExtent=false] If expand the ticks to niced extent. * @return {Array.} */ getTicks: function getTicks(expandToNicedExtent) { var originalScale = this._originalScale; var extent = this._extent; var originalExtent = originalScale.getExtent(); return zrUtil.map(intervalScaleProto.getTicks.call(this, expandToNicedExtent), function (val) { var powVal = numberUtil.round(mathPow(this.base, val)); // Fix #4158 powVal = val === extent[0] && originalScale.__fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal; powVal = val === extent[1] && originalScale.__fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal; return powVal; }, this); }, /** * @param {number} splitNumber * @return {Array.>} */ getMinorTicks: intervalScaleProto.getMinorTicks, /** * @param {number} val * @return {string} */ getLabel: intervalScaleProto.getLabel, /** * @param {number} val * @return {number} */ scale: function scale(val) { val = scaleProto.scale.call(this, val); return mathPow(this.base, val); }, /** * @param {number} start * @param {number} end */ setExtent: function setExtent(start, end) { var base = this.base; start = mathLog(start) / mathLog(base); end = mathLog(end) / mathLog(base); intervalScaleProto.setExtent.call(this, start, end); }, /** * @return {number} end */ getExtent: function getExtent() { var base = this.base; var extent = scaleProto.getExtent.call(this); extent[0] = mathPow(base, extent[0]); extent[1] = mathPow(base, extent[1]); // Fix #4158 var originalScale = this._originalScale; var originalExtent = originalScale.getExtent(); originalScale.__fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0])); originalScale.__fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1])); return extent; }, /** * @param {Array.} extent */ unionExtent: function unionExtent(extent) { this._originalScale.unionExtent(extent); var base = this.base; extent[0] = mathLog(extent[0]) / mathLog(base); extent[1] = mathLog(extent[1]) / mathLog(base); scaleProto.unionExtent.call(this, extent); }, /** * @override */ unionExtentFromData: function unionExtentFromData(data, dim) { // TODO // filter value that <= 0 this.unionExtent(data.getApproximateExtent(dim)); }, /** * Update interval and extent of intervals for nice ticks * @param {number} [approxTickNum = 10] Given approx tick number */ niceTicks: function niceTicks(approxTickNum) { approxTickNum = approxTickNum || 10; var extent = this._extent; var span = extent[1] - extent[0]; if (span === Infinity || span <= 0) { return; } var interval = numberUtil.quantity(span); var err = approxTickNum / span * interval; // Filter ticks to get closer to the desired count. if (err <= 0.5) { interval *= 10; } // Interval should be integer while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) { interval *= 10; } var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)]; this._interval = interval; this._niceExtent = niceExtent; }, /** * Nice extent. * @override */ niceExtent: function niceExtent(opt) { intervalScaleProto.niceExtent.call(this, opt); var originalScale = this._originalScale; originalScale.__fixMin = opt.fixMin; originalScale.__fixMax = opt.fixMax; } }); zrUtil.each(['contain', 'normalize'], function (methodName) { LogScale.prototype[methodName] = function (val) { val = mathLog(val) / mathLog(this.base); return scaleProto[methodName].call(this, val); }; }); LogScale.create = function () { return new LogScale(); }; function fixRoundingError(val, originalVal) { return roundingErrorFix(val, getPrecisionSafe(originalVal)); } var _default = LogScale; module.exports = _default; /***/ }), /* 542 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/axisModelCommonMixin.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // import * as axisHelper from './axisHelper'; var _default = { /** * @param {boolean} origin * @return {number|string} min value or 'dataMin' or null/undefined (means auto) or NaN */ getMin: function getMin(origin) { var option = this.option; var min = !origin && option.rangeStart != null ? option.rangeStart : option.min; if (this.axis && min != null && min !== 'dataMin' && typeof min !== 'function' && !zrUtil.eqNaN(min)) { min = this.axis.scale.parse(min); } return min; }, /** * @param {boolean} origin * @return {number|string} max value or 'dataMax' or null/undefined (means auto) or NaN */ getMax: function getMax(origin) { var option = this.option; var max = !origin && option.rangeEnd != null ? option.rangeEnd : option.max; if (this.axis && max != null && max !== 'dataMax' && typeof max !== 'function' && !zrUtil.eqNaN(max)) { max = this.axis.scale.parse(max); } return max; }, /** * @return {boolean} */ getNeedCrossZero: function getNeedCrossZero() { var option = this.option; return option.rangeStart != null || option.rangeEnd != null ? false : !option.scale; }, /** * Should be implemented by each axis model if necessary. * @return {module:echarts/model/Component} coordinate system model */ getCoordSysModel: zrUtil.noop, /** * @param {number} rangeStart Can only be finite number or null/undefined or NaN. * @param {number} rangeEnd Can only be finite number or null/undefined or NaN. */ setRange: function setRange(rangeStart, rangeEnd) { this.option.rangeStart = rangeStart; this.option.rangeEnd = rangeEnd; }, /** * Reset range */ resetRange: function resetRange() { // rangeStart and rangeEnd is readonly. this.option.rangeStart = this.option.rangeEnd = null; } }; module.exports = _default; /***/ }), /* 543 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/symbol.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ./graphic */ 451); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var _text = __webpack_require__(/*! zrender/lib/contain/text */ 438); var _calculateTextPosition = _text.calculateTextPosition; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Symbol factory /** * Triangle shape * @inner */ var Triangle = graphic.extendShape({ type: 'triangle', shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function buildPath(path, shape) { var cx = shape.cx; var cy = shape.cy; var width = shape.width / 2; var height = shape.height / 2; path.moveTo(cx, cy - height); path.lineTo(cx + width, cy + height); path.lineTo(cx - width, cy + height); path.closePath(); } }); /** * Diamond shape * @inner */ var Diamond = graphic.extendShape({ type: 'diamond', shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function buildPath(path, shape) { var cx = shape.cx; var cy = shape.cy; var width = shape.width / 2; var height = shape.height / 2; path.moveTo(cx, cy - height); path.lineTo(cx + width, cy); path.lineTo(cx, cy + height); path.lineTo(cx - width, cy); path.closePath(); } }); /** * Pin shape * @inner */ var Pin = graphic.extendShape({ type: 'pin', shape: { // x, y on the cusp x: 0, y: 0, width: 0, height: 0 }, buildPath: function buildPath(path, shape) { var x = shape.x; var y = shape.y; var w = shape.width / 5 * 3; // Height must be larger than width var h = Math.max(w, shape.height); var r = w / 2; // Dist on y with tangent point and circle center var dy = r * r / (h - r); var cy = y - h + r + dy; var angle = Math.asin(dy / r); // Dist on x with tangent point and circle center var dx = Math.cos(angle) * r; var tanX = Math.sin(angle); var tanY = Math.cos(angle); var cpLen = r * 0.6; var cpLen2 = r * 0.7; path.moveTo(x - dx, cy + dy); path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle); path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y); path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy); path.closePath(); } }); /** * Arrow shape * @inner */ var Arrow = graphic.extendShape({ type: 'arrow', shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function buildPath(ctx, shape) { var height = shape.height; var width = shape.width; var x = shape.x; var y = shape.y; var dx = width / 3 * 2; ctx.moveTo(x, y); ctx.lineTo(x + dx, y + height); ctx.lineTo(x, y + height / 4 * 3); ctx.lineTo(x - dx, y + height); ctx.lineTo(x, y); ctx.closePath(); } }); /** * Map of path contructors * @type {Object.} */ var symbolCtors = { line: graphic.Line, rect: graphic.Rect, roundRect: graphic.Rect, square: graphic.Rect, circle: graphic.Circle, diamond: Diamond, pin: Pin, arrow: Arrow, triangle: Triangle }; var symbolShapeMakers = { line: function line(x, y, w, h, shape) { // FIXME shape.x1 = x; shape.y1 = y + h / 2; shape.x2 = x + w; shape.y2 = y + h / 2; }, rect: function rect(x, y, w, h, shape) { shape.x = x; shape.y = y; shape.width = w; shape.height = h; }, roundRect: function roundRect(x, y, w, h, shape) { shape.x = x; shape.y = y; shape.width = w; shape.height = h; shape.r = Math.min(w, h) / 4; }, square: function square(x, y, w, h, shape) { var size = Math.min(w, h); shape.x = x; shape.y = y; shape.width = size; shape.height = size; }, circle: function circle(x, y, w, h, shape) { // Put circle in the center of square shape.cx = x + w / 2; shape.cy = y + h / 2; shape.r = Math.min(w, h) / 2; }, diamond: function diamond(x, y, w, h, shape) { shape.cx = x + w / 2; shape.cy = y + h / 2; shape.width = w; shape.height = h; }, pin: function pin(x, y, w, h, shape) { shape.x = x + w / 2; shape.y = y + h / 2; shape.width = w; shape.height = h; }, arrow: function arrow(x, y, w, h, shape) { shape.x = x + w / 2; shape.y = y + h / 2; shape.width = w; shape.height = h; }, triangle: function triangle(x, y, w, h, shape) { shape.cx = x + w / 2; shape.cy = y + h / 2; shape.width = w; shape.height = h; } }; var symbolBuildProxies = {}; zrUtil.each(symbolCtors, function (Ctor, name) { symbolBuildProxies[name] = new Ctor(); }); var SymbolClz = graphic.extendShape({ type: 'symbol', shape: { symbolType: '', x: 0, y: 0, width: 0, height: 0 }, calculateTextPosition: function calculateTextPosition(out, style, rect) { var res = _calculateTextPosition(out, style, rect); var shape = this.shape; if (shape && shape.symbolType === 'pin' && style.textPosition === 'inside') { res.y = rect.y + rect.height * 0.4; } return res; }, buildPath: function buildPath(ctx, shape, inBundle) { var symbolType = shape.symbolType; if (symbolType !== 'none') { var proxySymbol = symbolBuildProxies[symbolType]; if (!proxySymbol) { // Default rect symbolType = 'rect'; proxySymbol = symbolBuildProxies[symbolType]; } symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape); proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle); } } }); // Provide setColor helper method to avoid determine if set the fill or stroke outside function symbolPathSetColor(color, innerColor) { if (this.type !== 'image') { var symbolStyle = this.style; var symbolShape = this.shape; if (symbolShape && symbolShape.symbolType === 'line') { symbolStyle.stroke = color; } else if (this.__isEmptyBrush) { symbolStyle.stroke = color; symbolStyle.fill = innerColor || '#fff'; } else { // FIXME 判断图形默认是填充还是描边,使用 onlyStroke ? symbolStyle.fill && (symbolStyle.fill = color); symbolStyle.stroke && (symbolStyle.stroke = color); } this.dirty(false); } } /** * Create a symbol element with given symbol configuration: shape, x, y, width, height, color * @param {string} symbolType * @param {number} x * @param {number} y * @param {number} w * @param {number} h * @param {string} color * @param {boolean} [keepAspect=false] whether to keep the ratio of w/h, * for path and image only. */ function createSymbol(symbolType, x, y, w, h, color, keepAspect) { // TODO Support image object, DynamicImage. var isEmpty = symbolType.indexOf('empty') === 0; if (isEmpty) { symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6); } var symbolPath; if (symbolType.indexOf('image://') === 0) { symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover'); } else if (symbolType.indexOf('path://') === 0) { symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover'); } else { symbolPath = new SymbolClz({ shape: { symbolType: symbolType, x: x, y: y, width: w, height: h } }); } symbolPath.__isEmptyBrush = isEmpty; symbolPath.setColor = symbolPathSetColor; symbolPath.setColor(color); return symbolPath; } exports.createSymbol = createSymbol; /***/ }), /* 544 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/parseGeoJson.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Region = __webpack_require__(/*! ./Region */ 545); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Parse and decode geo json * @module echarts/coord/geo/parseGeoJson */ function decode(json) { if (!json.UTF8Encoding) { return json; } var encodeScale = json.UTF8Scale; if (encodeScale == null) { encodeScale = 1024; } var features = json.features; for (var f = 0; f < features.length; f++) { var feature = features[f]; var geometry = feature.geometry; var coordinates = geometry.coordinates; var encodeOffsets = geometry.encodeOffsets; for (var c = 0; c < coordinates.length; c++) { var coordinate = coordinates[c]; if (geometry.type === 'Polygon') { coordinates[c] = decodePolygon(coordinate, encodeOffsets[c], encodeScale); } else if (geometry.type === 'MultiPolygon') { for (var c2 = 0; c2 < coordinate.length; c2++) { var polygon = coordinate[c2]; coordinate[c2] = decodePolygon(polygon, encodeOffsets[c][c2], encodeScale); } } } } // Has been decoded json.UTF8Encoding = false; return json; } function decodePolygon(coordinate, encodeOffsets, encodeScale) { var result = []; var prevX = encodeOffsets[0]; var prevY = encodeOffsets[1]; for (var i = 0; i < coordinate.length; i += 2) { var x = coordinate.charCodeAt(i) - 64; var y = coordinate.charCodeAt(i + 1) - 64; // ZigZag decoding x = x >> 1 ^ -(x & 1); y = y >> 1 ^ -(y & 1); // Delta deocding x += prevX; y += prevY; prevX = x; prevY = y; // Dequantize result.push([x / encodeScale, y / encodeScale]); } return result; } /** * @alias module:echarts/coord/geo/parseGeoJson * @param {Object} geoJson * @param {string} nameProperty * @return {module:zrender/container/Group} */ function _default(geoJson, nameProperty) { decode(geoJson); return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) { // Output of mapshaper may have geometry null return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0; }), function (featureObj) { var properties = featureObj.properties; var geo = featureObj.geometry; var coordinates = geo.coordinates; var geometries = []; if (geo.type === 'Polygon') { geometries.push({ type: 'polygon', // According to the GeoJSON specification. // First must be exterior, and the rest are all interior(holes). exterior: coordinates[0], interiors: coordinates.slice(1) }); } if (geo.type === 'MultiPolygon') { zrUtil.each(coordinates, function (item) { if (item[0]) { geometries.push({ type: 'polygon', exterior: item[0], interiors: item.slice(1) }); } }); } var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp); region.properties = properties; return region; }); } module.exports = _default; /***/ }), /* 545 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/Region.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var bbox = __webpack_require__(/*! zrender/lib/core/bbox */ 456); var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); var polygonContain = __webpack_require__(/*! zrender/lib/contain/polygon */ 546); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/coord/geo/Region */ /** * @param {string|Region} name * @param {Array} geometries * @param {Array.} cp */ function Region(name, geometries, cp) { /** * @type {string} * @readOnly */ this.name = name; /** * @type {Array.} * @readOnly */ this.geometries = geometries; if (!cp) { var rect = this.getBoundingRect(); cp = [rect.x + rect.width / 2, rect.y + rect.height / 2]; } else { cp = [cp[0], cp[1]]; } /** * @type {Array.} */ this.center = cp; } Region.prototype = { constructor: Region, properties: null, /** * @return {module:zrender/core/BoundingRect} */ getBoundingRect: function getBoundingRect() { var rect = this._rect; if (rect) { return rect; } var MAX_NUMBER = Number.MAX_VALUE; var min = [MAX_NUMBER, MAX_NUMBER]; var max = [-MAX_NUMBER, -MAX_NUMBER]; var min2 = []; var max2 = []; var geometries = this.geometries; for (var i = 0; i < geometries.length; i++) { // Only support polygon if (geometries[i].type !== 'polygon') { continue; } // Doesn't consider hole var exterior = geometries[i].exterior; bbox.fromPoints(exterior, min2, max2); vec2.min(min, min, min2); vec2.max(max, max, max2); } // No data if (i === 0) { min[0] = min[1] = max[0] = max[1] = 0; } return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]); }, /** * @param {} coord * @return {boolean} */ contain: function contain(coord) { var rect = this.getBoundingRect(); var geometries = this.geometries; if (!rect.contain(coord[0], coord[1])) { return false; } loopGeo: for (var i = 0, len = geometries.length; i < len; i++) { // Only support polygon. if (geometries[i].type !== 'polygon') { continue; } var exterior = geometries[i].exterior; var interiors = geometries[i].interiors; if (polygonContain.contain(exterior, coord[0], coord[1])) { // Not in the region if point is in the hole. for (var k = 0; k < (interiors ? interiors.length : 0); k++) { if (polygonContain.contain(interiors[k])) { continue loopGeo; } } return true; } } return false; }, transformTo: function transformTo(x, y, width, height) { var rect = this.getBoundingRect(); var aspect = rect.width / rect.height; if (!width) { width = aspect * height; } else if (!height) { height = width / aspect; } var target = new BoundingRect(x, y, width, height); var transform = rect.calculateTransform(target); var geometries = this.geometries; for (var i = 0; i < geometries.length; i++) { // Only support polygon. if (geometries[i].type !== 'polygon') { continue; } var exterior = geometries[i].exterior; var interiors = geometries[i].interiors; for (var p = 0; p < exterior.length; p++) { vec2.applyTransform(exterior[p], exterior[p], transform); } for (var h = 0; h < (interiors ? interiors.length : 0); h++) { for (var p = 0; p < interiors[h].length; p++) { vec2.applyTransform(interiors[h][p], interiors[h][p], transform); } } } rect = this._rect; rect.copy(target); // Update center this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2]; }, cloneShallow: function cloneShallow(name) { name == null && (name = this.name); var newRegion = new Region(name, this.geometries, this.center); newRegion._rect = this._rect; newRegion.transformTo = null; // Simply avoid to be called. return newRegion; } }; var _default = Region; module.exports = _default; /***/ }), /* 546 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/contain/polygon.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var windingLine = __webpack_require__(/*! ./windingLine */ 463); var EPSILON = 1e-8; function isAroundEqual(a, b) { return Math.abs(a - b) < EPSILON; } function contain(points, x, y) { var w = 0; var p = points[0]; if (!p) { return false; } for (var i = 1; i < points.length; i++) { var p2 = points[i]; w += windingLine(p[0], p[1], p2[0], p2[1], x, y); p = p2; } // Close polygon var p0 = points[0]; if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) { w += windingLine(p[0], p[1], p0[0], p0[1], x, y); } return w !== 0; } exports.contain = contain; /***/ }), /* 547 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/Axis.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var map = _util.map; var _number = __webpack_require__(/*! ../util/number */ 489); var linearMap = _number.linearMap; var _getPixelPrecision = _number.getPixelPrecision; var round = _number.round; var _axisTickLabelBuilder = __webpack_require__(/*! ./axisTickLabelBuilder */ 548); var createAxisTicks = _axisTickLabelBuilder.createAxisTicks; var createAxisLabels = _axisTickLabelBuilder.createAxisLabels; var _calculateCategoryInterval = _axisTickLabelBuilder.calculateCategoryInterval; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var NORMALIZED_EXTENT = [0, 1]; /** * Base class of Axis. * @constructor */ var Axis = function Axis(dim, scale, extent) { /** * Axis dimension. Such as 'x', 'y', 'z', 'angle', 'radius'. * @type {string} */ this.dim = dim; /** * Axis scale * @type {module:echarts/coord/scale/*} */ this.scale = scale; /** * @type {Array.} * @private */ this._extent = extent || [0, 0]; /** * @type {boolean} */ this.inverse = false; /** * Usually true when axis has a ordinal scale * @type {boolean} */ this.onBand = false; }; Axis.prototype = { constructor: Axis, /** * If axis extent contain given coord * @param {number} coord * @return {boolean} */ contain: function contain(coord) { var extent = this._extent; var min = Math.min(extent[0], extent[1]); var max = Math.max(extent[0], extent[1]); return coord >= min && coord <= max; }, /** * If axis extent contain given data * @param {number} data * @return {boolean} */ containData: function containData(data) { return this.scale.contain(data); }, /** * Get coord extent. * @return {Array.} */ getExtent: function getExtent() { return this._extent.slice(); }, /** * Get precision used for formatting * @param {Array.} [dataExtent] * @return {number} */ getPixelPrecision: function getPixelPrecision(dataExtent) { return _getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent); }, /** * Set coord extent * @param {number} start * @param {number} end */ setExtent: function setExtent(start, end) { var extent = this._extent; extent[0] = start; extent[1] = end; }, /** * Convert data to coord. Data is the rank if it has an ordinal scale * @param {number} data * @param {boolean} clamp * @return {number} */ dataToCoord: function dataToCoord(data, clamp) { var extent = this._extent; var scale = this.scale; data = scale.normalize(data); if (this.onBand && scale.type === 'ordinal') { extent = extent.slice(); fixExtentWithBands(extent, scale.count()); } return linearMap(data, NORMALIZED_EXTENT, extent, clamp); }, /** * Convert coord to data. Data is the rank if it has an ordinal scale * @param {number} coord * @param {boolean} clamp * @return {number} */ coordToData: function coordToData(coord, clamp) { var extent = this._extent; var scale = this.scale; if (this.onBand && scale.type === 'ordinal') { extent = extent.slice(); fixExtentWithBands(extent, scale.count()); } var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp); return this.scale.scale(t); }, /** * Convert pixel point to data in axis * @param {Array.} point * @param {boolean} clamp * @return {number} data */ pointToData: function pointToData(point, clamp) {// Should be implemented in derived class if necessary. }, /** * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`, * `axis.getTicksCoords` considers `onBand`, which is used by * `boundaryGap:true` of category axis and splitLine and splitArea. * @param {Object} [opt] * @param {Model} [opt.tickModel=axis.model.getModel('axisTick')] * @param {boolean} [opt.clamp] If `true`, the first and the last * tick must be at the axis end points. Otherwise, clip ticks * that outside the axis extent. * @return {Array.} [{ * coord: ..., * tickValue: ... * }, ...] */ getTicksCoords: function getTicksCoords(opt) { opt = opt || {}; var tickModel = opt.tickModel || this.getTickModel(); var result = createAxisTicks(this, tickModel); var ticks = result.ticks; var ticksCoords = map(ticks, function (tickValue) { return { coord: this.dataToCoord(tickValue), tickValue: tickValue }; }, this); var alignWithLabel = tickModel.get('alignWithLabel'); fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp); return ticksCoords; }, /** * @return {Array.>} [{ coord: ..., tickValue: ...}] */ getMinorTicksCoords: function getMinorTicksCoords() { if (this.scale.type === 'ordinal') { // Category axis doesn't support minor ticks return []; } var minorTickModel = this.model.getModel('minorTick'); var splitNumber = minorTickModel.get('splitNumber'); // Protection. if (!(splitNumber > 0 && splitNumber < 100)) { splitNumber = 5; } var minorTicks = this.scale.getMinorTicks(splitNumber); var minorTicksCoords = map(minorTicks, function (minorTicksGroup) { return map(minorTicksGroup, function (minorTick) { return { coord: this.dataToCoord(minorTick), tickValue: minorTick }; }, this); }, this); return minorTicksCoords; }, /** * @return {Array.} [{ * formattedLabel: string, * rawLabel: axis.scale.getLabel(tickValue) * tickValue: number * }, ...] */ getViewLabels: function getViewLabels() { return createAxisLabels(this).labels; }, /** * @return {module:echarts/coord/model/Model} */ getLabelModel: function getLabelModel() { return this.model.getModel('axisLabel'); }, /** * Notice here we only get the default tick model. For splitLine * or splitArea, we should pass the splitLineModel or splitAreaModel * manually when calling `getTicksCoords`. * In GL, this method may be overrided to: * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));` * @return {module:echarts/coord/model/Model} */ getTickModel: function getTickModel() { return this.model.getModel('axisTick'); }, /** * Get width of band * @return {number} */ getBandWidth: function getBandWidth() { var axisExtent = this._extent; var dataExtent = this.scale.getExtent(); var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0); // Fix #2728, avoid NaN when only one data. len === 0 && (len = 1); var size = Math.abs(axisExtent[1] - axisExtent[0]); return Math.abs(size) / len; }, /** * @abstract * @return {boolean} Is horizontal */ isHorizontal: null, /** * @abstract * @return {number} Get axis rotate, by degree. */ getRotate: null, /** * Only be called in category axis. * Can be overrided, consider other axes like in 3D. * @return {number} Auto interval for cateogry axis tick and label */ calculateCategoryInterval: function calculateCategoryInterval() { return _calculateCategoryInterval(this); } }; function fixExtentWithBands(extent, nTick) { var size = extent[1] - extent[0]; var len = nTick; var margin = size / len / 2; extent[0] += margin; extent[1] -= margin; } // If axis has labels [1, 2, 3, 4]. Bands on the axis are // |---1---|---2---|---3---|---4---|. // So the displayed ticks and splitLine/splitArea should between // each data item, otherwise cause misleading (e.g., split tow bars // of a single data item when there are two bar series). // Also consider if tickCategoryInterval > 0 and onBand, ticks and // splitLine/spliteArea should layout appropriately corresponding // to displayed labels. (So we should not use `getBandWidth` in this // case). function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) { var ticksLen = ticksCoords.length; if (!axis.onBand || alignWithLabel || !ticksLen) { return; } var axisExtent = axis.getExtent(); var last; var diffSize; if (ticksLen === 1) { ticksCoords[0].coord = axisExtent[0]; last = ticksCoords[1] = { coord: axisExtent[0] }; } else { var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue; var shift = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen; each(ticksCoords, function (ticksItem) { ticksItem.coord -= shift / 2; }); var dataExtent = axis.scale.getExtent(); diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue; last = { coord: ticksCoords[ticksLen - 1].coord + shift * diffSize }; ticksCoords.push(last); } var inverse = axisExtent[0] > axisExtent[1]; // Handling clamp. if (littleThan(ticksCoords[0].coord, axisExtent[0])) { clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift(); } if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) { ticksCoords.unshift({ coord: axisExtent[0] }); } if (littleThan(axisExtent[1], last.coord)) { clamp ? last.coord = axisExtent[1] : ticksCoords.pop(); } if (clamp && littleThan(last.coord, axisExtent[1])) { ticksCoords.push({ coord: axisExtent[1] }); } function littleThan(a, b) { // Avoid rounding error cause calculated tick coord different with extent. // It may cause an extra unecessary tick added. a = round(a); b = round(b); return inverse ? a > b : a < b; } } var _default = Axis; module.exports = _default; /***/ }), /* 548 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/axisTickLabelBuilder.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); var _model = __webpack_require__(/*! ../util/model */ 444); var makeInner = _model.makeInner; var _axisHelper = __webpack_require__(/*! ./axisHelper */ 533); var makeLabelFormatter = _axisHelper.makeLabelFormatter; var getOptionCategoryInterval = _axisHelper.getOptionCategoryInterval; var shouldShowAllLabels = _axisHelper.shouldShowAllLabels; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = makeInner(); /** * @param {module:echats/coord/Axis} axis * @return {Object} { * labels: [{ * formattedLabel: string, * rawLabel: string, * tickValue: number * }, ...], * labelCategoryInterval: number * } */ function createAxisLabels(axis) { // Only ordinal scale support tick interval return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis); } /** * @param {module:echats/coord/Axis} axis * @param {module:echarts/model/Model} tickModel For example, can be axisTick, splitLine, splitArea. * @return {Object} { * ticks: Array. * tickCategoryInterval: number * } */ function createAxisTicks(axis, tickModel) { // Only ordinal scale support tick interval return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : { ticks: axis.scale.getTicks() }; } function makeCategoryLabels(axis) { var labelModel = axis.getLabelModel(); var result = makeCategoryLabelsActually(axis, labelModel); return !labelModel.get('show') || axis.scale.isBlank() ? { labels: [], labelCategoryInterval: result.labelCategoryInterval } : result; } function makeCategoryLabelsActually(axis, labelModel) { var labelsCache = getListCache(axis, 'labels'); var optionLabelInterval = getOptionCategoryInterval(labelModel); var result = listCacheGet(labelsCache, optionLabelInterval); if (result) { return result; } var labels; var numericLabelInterval; if (zrUtil.isFunction(optionLabelInterval)) { labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval); } else { numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval; labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval); } // Cache to avoid calling interval function repeatly. return listCacheSet(labelsCache, optionLabelInterval, { labels: labels, labelCategoryInterval: numericLabelInterval }); } function makeCategoryTicks(axis, tickModel) { var ticksCache = getListCache(axis, 'ticks'); var optionTickInterval = getOptionCategoryInterval(tickModel); var result = listCacheGet(ticksCache, optionTickInterval); if (result) { return result; } var ticks; var tickCategoryInterval; // Optimize for the case that large category data and no label displayed, // we should not return all ticks. if (!tickModel.get('show') || axis.scale.isBlank()) { ticks = []; } if (zrUtil.isFunction(optionTickInterval)) { ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true); } // Always use label interval by default despite label show. Consider this // scenario, Use multiple grid with the xAxis sync, and only one xAxis shows // labels. `splitLine` and `axisTick` should be consistent in this case. else if (optionTickInterval === 'auto') { var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel()); tickCategoryInterval = labelsResult.labelCategoryInterval; ticks = zrUtil.map(labelsResult.labels, function (labelItem) { return labelItem.tickValue; }); } else { tickCategoryInterval = optionTickInterval; ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true); } // Cache to avoid calling interval function repeatly. return listCacheSet(ticksCache, optionTickInterval, { ticks: ticks, tickCategoryInterval: tickCategoryInterval }); } function makeRealNumberLabels(axis) { var ticks = axis.scale.getTicks(); var labelFormatter = makeLabelFormatter(axis); return { labels: zrUtil.map(ticks, function (tickValue, idx) { return { formattedLabel: labelFormatter(tickValue, idx), rawLabel: axis.scale.getLabel(tickValue), tickValue: tickValue }; }) }; } // Large category data calculation is performence sensitive, and ticks and label // probably be fetched by multiple times. So we cache the result. // axis is created each time during a ec process, so we do not need to clear cache. function getListCache(axis, prop) { // Because key can be funciton, and cache size always be small, we use array cache. return inner(axis)[prop] || (inner(axis)[prop] = []); } function listCacheGet(cache, key) { for (var i = 0; i < cache.length; i++) { if (cache[i].key === key) { return cache[i].value; } } } function listCacheSet(cache, key, value) { cache.push({ key: key, value: value }); return value; } function makeAutoCategoryInterval(axis) { var result = inner(axis).autoInterval; return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval(); } /** * Calculate interval for category axis ticks and labels. * To get precise result, at least one of `getRotate` and `isHorizontal` * should be implemented in axis. */ function calculateCategoryInterval(axis) { var params = fetchAutoCategoryIntervalCalculationParams(axis); var labelFormatter = makeLabelFormatter(axis); var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI; var ordinalScale = axis.scale; var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization: // avoid generating a long array by `getTicks` // in large category data case. var tickCount = ordinalScale.count(); if (ordinalExtent[1] - ordinalExtent[0] < 1) { return 0; } var step = 1; // Simple optimization. Empirical value: tick count should less than 40. if (tickCount > 40) { step = Math.max(1, Math.floor(tickCount / 40)); } var tickValue = ordinalExtent[0]; var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue); var unitW = Math.abs(unitSpan * Math.cos(rotation)); var unitH = Math.abs(unitSpan * Math.sin(rotation)); var maxW = 0; var maxH = 0; // Caution: Performance sensitive for large category data. // Consider dataZoom, we should make appropriate step to avoid O(n) loop. for (; tickValue <= ordinalExtent[1]; tickValue += step) { var width = 0; var height = 0; // Not precise, do not consider align and vertical align // and each distance from axis line yet. var rect = textContain.getBoundingRect(labelFormatter(tickValue), params.font, 'center', 'top'); // Magic number width = rect.width * 1.3; height = rect.height * 1.3; // Min size, void long loop. maxW = Math.max(maxW, width, 7); maxH = Math.max(maxH, height, 7); } var dw = maxW / unitW; var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity. isNaN(dw) && (dw = Infinity); isNaN(dh) && (dh = Infinity); var interval = Math.max(0, Math.floor(Math.min(dw, dh))); var cache = inner(axis.model); var axisExtent = axis.getExtent(); var lastAutoInterval = cache.lastAutoInterval; var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window, // otherwise the calculated interval might jitter when the zoom // window size is close to the interval-changing size. // For example, if all of the axis labels are `a, b, c, d, e, f, g`. // The jitter will cause that sometimes the displayed labels are // `a, d, g` (interval: 2) sometimes `a, c, e`(interval: 1). if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical // point is not the same when zooming in or zooming out. && lastAutoInterval > interval // If the axis change is caused by chart resize, the cache should not // be used. Otherwise some hiden labels might not be shown again. && cache.axisExtend0 === axisExtent[0] && cache.axisExtend1 === axisExtent[1]) { interval = lastAutoInterval; } // Only update cache if cache not used, otherwise the // changing of interval is too insensitive. else { cache.lastTickCount = tickCount; cache.lastAutoInterval = interval; cache.axisExtend0 = axisExtent[0]; cache.axisExtend1 = axisExtent[1]; } return interval; } function fetchAutoCategoryIntervalCalculationParams(axis) { var labelModel = axis.getLabelModel(); return { axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0, labelRotate: labelModel.get('rotate') || 0, font: labelModel.getFont() }; } function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) { var labelFormatter = makeLabelFormatter(axis); var ordinalScale = axis.scale; var ordinalExtent = ordinalScale.getExtent(); var labelModel = axis.getLabelModel(); var result = []; // TODO: axisType: ordinalTime, pick the tick from each month/day/year/... var step = Math.max((categoryInterval || 0) + 1, 1); var startTick = ordinalExtent[0]; var tickCount = ordinalScale.count(); // Calculate start tick based on zero if possible to keep label consistent // while zooming and moving while interval > 0. Otherwise the selection // of displayable ticks and symbols probably keep changing. // 3 is empirical value. if (startTick !== 0 && step > 1 && tickCount / step > 2) { startTick = Math.round(Math.ceil(startTick / step) * step); } // (1) Only add min max label here but leave overlap checking // to render stage, which also ensure the returned list // suitable for splitLine and splitArea rendering. // (2) Scales except category always contain min max label so // do not need to perform this process. var showAllLabel = shouldShowAllLabels(axis); var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel; var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel; if (includeMinLabel && startTick !== ordinalExtent[0]) { addItem(ordinalExtent[0]); } // Optimize: avoid generating large array by `ordinalScale.getTicks()`. var tickValue = startTick; for (; tickValue <= ordinalExtent[1]; tickValue += step) { addItem(tickValue); } if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) { addItem(ordinalExtent[1]); } function addItem(tVal) { result.push(onlyTick ? tVal : { formattedLabel: labelFormatter(tVal), rawLabel: ordinalScale.getLabel(tVal), tickValue: tVal }); } return result; } // When interval is function, the result `false` means ignore the tick. // It is time consuming for large category data. function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) { var ordinalScale = axis.scale; var labelFormatter = makeLabelFormatter(axis); var result = []; zrUtil.each(ordinalScale.getTicks(), function (tickValue) { var rawLabel = ordinalScale.getLabel(tickValue); if (categoryInterval(tickValue, rawLabel)) { result.push(onlyTick ? tickValue : { formattedLabel: labelFormatter(tickValue), rawLabel: rawLabel, tickValue: tickValue }); } }); return result; } exports.createAxisLabels = createAxisLabels; exports.createAxisTicks = createAxisTicks; exports.calculateCategoryInterval = calculateCategoryInterval; /***/ }), /* 549 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/line.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./line/LineSeries */ 550); __webpack_require__(/*! ./line/LineView */ 551); var visualSymbol = __webpack_require__(/*! ../visual/symbol */ 559); var layoutPoints = __webpack_require__(/*! ../layout/points */ 560); var dataSample = __webpack_require__(/*! ../processor/dataSample */ 561); __webpack_require__(/*! ../component/gridSimple */ 562); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // In case developer forget to include grid component echarts.registerVisual(visualSymbol('line', 'circle', 'line')); echarts.registerLayout(layoutPoints('line')); // Down sample after filter echarts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, dataSample('line')); /***/ }), /* 550 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/line/LineSeries.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var createListFromArray = __webpack_require__(/*! ../helper/createListFromArray */ 524); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.line', dependencies: ['grid', 'polar'], getInitialData: function getInitialData(option, ecModel) { return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true }); }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: 'cartesian2d', legendHoverLink: true, hoverAnimation: true, // stack: null // xAxisIndex: 0, // yAxisIndex: 0, // polarIndex: 0, // If clip the overflow value clip: true, // cursor: null, label: { position: 'top' }, // itemStyle: { // }, lineStyle: { width: 2, type: 'solid' }, // areaStyle: { // origin of areaStyle. Valid values: // `'auto'/null/undefined`: from axisLine to data // `'start'`: from min to data // `'end'`: from data to max // origin: 'auto' // }, // false, 'start', 'end', 'middle' step: false, // Disabled if step is true smooth: false, smoothMonotone: null, symbol: 'emptyCircle', symbolSize: 4, symbolRotate: null, showSymbol: true, // `false`: follow the label interval strategy. // `true`: show all symbols. // `'auto'`: If possible, show all symbols, otherwise // follow the label interval strategy. showAllSymbol: 'auto', // Whether to connect break point. connectNulls: false, // Sampling for large data. Can be: 'average', 'max', 'min', 'sum'. sampling: 'none', animationEasing: 'linear', // Disable progressive progressive: 0, hoverLayerThreshold: Infinity } }); module.exports = _default; /***/ }), /* 551 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/line/LineView.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _bbox = __webpack_require__(/*! zrender/lib/core/bbox */ 456); var fromPoints = _bbox.fromPoints; var SymbolDraw = __webpack_require__(/*! ../helper/SymbolDraw */ 552); var SymbolClz = __webpack_require__(/*! ../helper/Symbol */ 553); var lineAnimationDiff = __webpack_require__(/*! ./lineAnimationDiff */ 555); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); var _poly = __webpack_require__(/*! ./poly */ 557); var Polyline = _poly.Polyline; var Polygon = _poly.Polygon; var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); var _helper = __webpack_require__(/*! ./helper */ 556); var prepareDataCoordInfo = _helper.prepareDataCoordInfo; var getStackedOnPoint = _helper.getStackedOnPoint; var _createClipPathFromCoordSys = __webpack_require__(/*! ../helper/createClipPathFromCoordSys */ 558); var createGridClipPath = _createClipPathFromCoordSys.createGridClipPath; var createPolarClipPath = _createClipPathFromCoordSys.createPolarClipPath; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // FIXME step not support polar function isPointsSame(points1, points2) { if (points1.length !== points2.length) { return; } for (var i = 0; i < points1.length; i++) { var p1 = points1[i]; var p2 = points2[i]; if (p1[0] !== p2[0] || p1[1] !== p2[1]) { return; } } return true; } function getBoundingDiff(points1, points2) { var min1 = []; var max1 = []; var min2 = []; var max2 = []; fromPoints(points1, min1, max1); fromPoints(points2, min2, max2); // Get a max value from each corner of two boundings. return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1])); } function getSmooth(smooth) { return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0; } /** * @param {module:echarts/coord/cartesian/Cartesian2D|module:echarts/coord/polar/Polar} coordSys * @param {module:echarts/data/List} data * @param {Object} dataCoordInfo * @param {Array.>} points */ function getStackedOnPoints(coordSys, data, dataCoordInfo) { if (!dataCoordInfo.valueDim) { return []; } var points = []; for (var idx = 0, len = data.count(); idx < len; idx++) { points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx)); } return points; } function turnPointsIntoStep(points, coordSys, stepTurnAt) { var baseAxis = coordSys.getBaseAxis(); var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1; var stepPoints = []; for (var i = 0; i < points.length - 1; i++) { var nextPt = points[i + 1]; var pt = points[i]; stepPoints.push(pt); var stepPt = []; switch (stepTurnAt) { case 'end': stepPt[baseIndex] = nextPt[baseIndex]; stepPt[1 - baseIndex] = pt[1 - baseIndex]; // default is start stepPoints.push(stepPt); break; case 'middle': // default is start var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2; var stepPt2 = []; stepPt[baseIndex] = stepPt2[baseIndex] = middle; stepPt[1 - baseIndex] = pt[1 - baseIndex]; stepPt2[1 - baseIndex] = nextPt[1 - baseIndex]; stepPoints.push(stepPt); stepPoints.push(stepPt2); break; default: stepPt[baseIndex] = pt[baseIndex]; stepPt[1 - baseIndex] = nextPt[1 - baseIndex]; // default is start stepPoints.push(stepPt); } } // Last points points[i] && stepPoints.push(points[i]); return stepPoints; } function getVisualGradient(data, coordSys) { var visualMetaList = data.getVisual('visualMeta'); if (!visualMetaList || !visualMetaList.length || !data.count()) { // When data.count() is 0, gradient range can not be calculated. return; } if (coordSys.type !== 'cartesian2d') { return; } var coordDim; var visualMeta; for (var i = visualMetaList.length - 1; i >= 0; i--) { var dimIndex = visualMetaList[i].dimension; var dimName = data.dimensions[dimIndex]; var dimInfo = data.getDimensionInfo(dimName); coordDim = dimInfo && dimInfo.coordDim; // Can only be x or y if (coordDim === 'x' || coordDim === 'y') { visualMeta = visualMetaList[i]; break; } } if (!visualMeta) { return; } // If the area to be rendered is bigger than area defined by LinearGradient, // the canvas spec prescribes that the color of the first stop and the last // stop should be used. But if two stops are added at offset 0, in effect // browsers use the color of the second stop to render area outside // LinearGradient. So we can only infinitesimally extend area defined in // LinearGradient to render `outerColors`. var axis = coordSys.getAxis(coordDim); // dataToCoor mapping may not be linear, but must be monotonic. var colorStops = zrUtil.map(visualMeta.stops, function (stop) { return { coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)), color: stop.color }; }); var stopLen = colorStops.length; var outerColors = visualMeta.outerColors.slice(); if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) { colorStops.reverse(); outerColors.reverse(); } var tinyExtent = 10; // Arbitrary value: 10px var minCoord = colorStops[0].coord - tinyExtent; var maxCoord = colorStops[stopLen - 1].coord + tinyExtent; var coordSpan = maxCoord - minCoord; if (coordSpan < 1e-3) { return 'transparent'; } zrUtil.each(colorStops, function (stop) { stop.offset = (stop.coord - minCoord) / coordSpan; }); colorStops.push({ offset: stopLen ? colorStops[stopLen - 1].offset : 0.5, color: outerColors[1] || 'transparent' }); colorStops.unshift({ // notice colorStops.length have been changed. offset: stopLen ? colorStops[0].offset : 0.5, color: outerColors[0] || 'transparent' }); // zrUtil.each(colorStops, function (colorStop) { // // Make sure each offset has rounded px to avoid not sharp edge // colorStop.offset = (Math.round(colorStop.offset * (end - start) + start) - start) / (end - start); // }); var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true); gradient[coordDim] = minCoord; gradient[coordDim + '2'] = maxCoord; return gradient; } function getIsIgnoreFunc(seriesModel, data, coordSys) { var showAllSymbol = seriesModel.get('showAllSymbol'); var isAuto = showAllSymbol === 'auto'; if (showAllSymbol && !isAuto) { return; } var categoryAxis = coordSys.getAxesByScale('ordinal')[0]; if (!categoryAxis) { return; } // Note that category label interval strategy might bring some weird effect // in some scenario: users may wonder why some of the symbols are not // displayed. So we show all symbols as possible as we can. if (isAuto // Simplify the logic, do not determine label overlap here. && canShowAllSymbolForCategory(categoryAxis, data)) { return; } // Otherwise follow the label interval strategy on category axis. var categoryDataDim = data.mapDimension(categoryAxis.dim); var labelMap = {}; zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) { labelMap[labelItem.tickValue] = 1; }); return function (dataIndex) { return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex)); }; } function canShowAllSymbolForCategory(categoryAxis, data) { // In mose cases, line is monotonous on category axis, and the label size // is close with each other. So we check the symbol size and some of the // label size alone with the category axis to estimate whether all symbol // can be shown without overlap. var axisExtent = categoryAxis.getExtent(); var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count(); isNaN(availSize) && (availSize = 0); // 0/0 is NaN. // Sampling some points, max 5. var dataLen = data.count(); var step = Math.max(1, Math.round(dataLen / 5)); for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) { if (SymbolClz.getSymbolSize(data, dataIndex // Only for cartesian, where `isHorizontal` exists. )[categoryAxis.isHorizontal() ? 1 : 0] // Empirical number * 1.5 > availSize) { return false; } } return true; } function createLineClipPath(coordSys, hasAnimation, seriesModel) { if (coordSys.type === 'cartesian2d') { var isHorizontal = coordSys.getBaseAxis().isHorizontal(); var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel); // Expand clip shape to avoid clipping when line value exceeds axis if (!seriesModel.get('clip', true)) { var rectShape = clipPath.shape; var expandSize = Math.max(rectShape.width, rectShape.height); if (isHorizontal) { rectShape.y -= expandSize; rectShape.height += expandSize * 2; } else { rectShape.x -= expandSize; rectShape.width += expandSize * 2; } } return clipPath; } else { return createPolarClipPath(coordSys, hasAnimation, seriesModel); } } var _default = ChartView.extend({ type: 'line', init: function init() { var lineGroup = new graphic.Group(); var symbolDraw = new SymbolDraw(); this.group.add(symbolDraw.group); this._symbolDraw = symbolDraw; this._lineGroup = lineGroup; }, render: function render(seriesModel, ecModel, api) { var coordSys = seriesModel.coordinateSystem; var group = this.group; var data = seriesModel.getData(); var lineStyleModel = seriesModel.getModel('lineStyle'); var areaStyleModel = seriesModel.getModel('areaStyle'); var points = data.mapArray(data.getItemLayout); var isCoordSysPolar = coordSys.type === 'polar'; var prevCoordSys = this._coordSys; var symbolDraw = this._symbolDraw; var polyline = this._polyline; var polygon = this._polygon; var lineGroup = this._lineGroup; var hasAnimation = seriesModel.get('animation'); var isAreaChart = !areaStyleModel.isEmpty(); var valueOrigin = areaStyleModel.get('origin'); var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin); var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo); var showSymbol = seriesModel.get('showSymbol'); var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys); // Remove temporary symbols var oldData = this._data; oldData && oldData.eachItemGraphicEl(function (el, idx) { if (el.__temp) { group.remove(el); oldData.setItemGraphicEl(idx, null); } }); // Remove previous created symbols if showSymbol changed to false if (!showSymbol) { symbolDraw.remove(); } group.add(lineGroup); // FIXME step not support polar var step = !isCoordSysPolar && seriesModel.get('step'); var clipShapeForSymbol; if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) { clipShapeForSymbol = coordSys.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent. // See #7913 and `test/dataZoom-clip.html`. if (clipShapeForSymbol.width != null) { clipShapeForSymbol.x -= 0.1; clipShapeForSymbol.y -= 0.1; clipShapeForSymbol.width += 0.2; clipShapeForSymbol.height += 0.2; } else if (clipShapeForSymbol.r0) { clipShapeForSymbol.r0 -= 0.5; clipShapeForSymbol.r1 += 0.5; } } this._clipShapeForSymbol = clipShapeForSymbol; // Initialization animation or coordinate system changed if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) { showSymbol && symbolDraw.updateData(data, { isIgnore: isIgnoreFunc, clipShape: clipShapeForSymbol }); if (step) { // TODO If stacked series is not step points = turnPointsIntoStep(points, coordSys, step); stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step); } polyline = this._newPolyline(points, coordSys, hasAnimation); if (isAreaChart) { polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation); } lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel)); } else { if (isAreaChart && !polygon) { // If areaStyle is added polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation); } else if (polygon && !isAreaChart) { // If areaStyle is removed lineGroup.remove(polygon); polygon = this._polygon = null; } // Update clipPath lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel)); // Always update, or it is wrong in the case turning on legend // because points are not changed showSymbol && symbolDraw.updateData(data, { isIgnore: isIgnoreFunc, clipShape: clipShapeForSymbol }); // Stop symbol animation and sync with line points // FIXME performance? data.eachItemGraphicEl(function (el) { el.stopAnimation(true); }); // In the case data zoom triggerred refreshing frequently // Data may not change if line has a category axis. So it should animate nothing if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) { if (hasAnimation) { this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin); } else { // Not do it in update with animation if (step) { // TODO If stacked series is not step points = turnPointsIntoStep(points, coordSys, step); stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step); } polyline.setShape({ points: points }); polygon && polygon.setShape({ points: points, stackedOnPoints: stackedOnPoints }); } } } var visualColor = getVisualGradient(data, coordSys) || data.getVisual('color'); polyline.useStyle(zrUtil.defaults( // Use color in lineStyle first lineStyleModel.getLineStyle(), { fill: 'none', stroke: visualColor, lineJoin: 'bevel' })); var smooth = seriesModel.get('smooth'); smooth = getSmooth(seriesModel.get('smooth')); polyline.setShape({ smooth: smooth, smoothMonotone: seriesModel.get('smoothMonotone'), connectNulls: seriesModel.get('connectNulls') }); if (polygon) { var stackedOnSeries = data.getCalculationInfo('stackedOnSeries'); var stackedOnSmooth = 0; polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), { fill: visualColor, opacity: 0.7, lineJoin: 'bevel' })); if (stackedOnSeries) { stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth')); } polygon.setShape({ smooth: smooth, stackedOnSmooth: stackedOnSmooth, smoothMonotone: seriesModel.get('smoothMonotone'), connectNulls: seriesModel.get('connectNulls') }); } this._data = data; // Save the coordinate system for transition animation when data changed this._coordSys = coordSys; this._stackedOnPoints = stackedOnPoints; this._points = points; this._step = step; this._valueOrigin = valueOrigin; }, dispose: function dispose() {}, highlight: function highlight(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(); var dataIndex = modelUtil.queryDataIndex(data, payload); if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) { var symbol = data.getItemGraphicEl(dataIndex); if (!symbol) { // Create a temporary symbol if it is not exists var pt = data.getItemLayout(dataIndex); if (!pt) { // Null data return; } // fix #11360: should't draw symbol outside clipShapeForSymbol if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) { return; } symbol = new SymbolClz(data, dataIndex); symbol.position = pt; symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z')); symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]); symbol.__temp = true; data.setItemGraphicEl(dataIndex, symbol); // Stop scale animation symbol.stopSymbolAnimation(true); this.group.add(symbol); } symbol.highlight(); } else { // Highlight whole series ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload); } }, downplay: function downplay(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(); var dataIndex = modelUtil.queryDataIndex(data, payload); if (dataIndex != null && dataIndex >= 0) { var symbol = data.getItemGraphicEl(dataIndex); if (symbol) { if (symbol.__temp) { data.setItemGraphicEl(dataIndex, null); this.group.remove(symbol); } else { symbol.downplay(); } } } else { // FIXME // can not downplay completely. // Downplay whole series ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload); } }, /** * @param {module:zrender/container/Group} group * @param {Array.>} points * @private */ _newPolyline: function _newPolyline(points) { var polyline = this._polyline; // Remove previous created polyline if (polyline) { this._lineGroup.remove(polyline); } polyline = new Polyline({ shape: { points: points }, silent: true, z2: 10 }); this._lineGroup.add(polyline); this._polyline = polyline; return polyline; }, /** * @param {module:zrender/container/Group} group * @param {Array.>} stackedOnPoints * @param {Array.>} points * @private */ _newPolygon: function _newPolygon(points, stackedOnPoints) { var polygon = this._polygon; // Remove previous created polygon if (polygon) { this._lineGroup.remove(polygon); } polygon = new Polygon({ shape: { points: points, stackedOnPoints: stackedOnPoints }, silent: true }); this._lineGroup.add(polygon); this._polygon = polygon; return polygon; }, /** * @private */ // FIXME Two value axis _updateAnimation: function _updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin) { var polyline = this._polyline; var polygon = this._polygon; var seriesModel = data.hostModel; var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin); var current = diff.current; var stackedOnCurrent = diff.stackedOnCurrent; var next = diff.next; var stackedOnNext = diff.stackedOnNext; if (step) { // TODO If stacked series is not step current = turnPointsIntoStep(diff.current, coordSys, step); stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step); next = turnPointsIntoStep(diff.next, coordSys, step); stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step); } // Don't apply animation if diff is large. // For better result and avoid memory explosion problems like // https://github.com/apache/incubator-echarts/issues/12229 if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) { polyline.setShape({ points: next }); if (polygon) { polygon.setShape({ points: next, stackedOnPoints: stackedOnNext }); } return; } // `diff.current` is subset of `current` (which should be ensured by // turnPointsIntoStep), so points in `__points` can be updated when // points in `current` are update during animation. polyline.shape.__points = diff.current; polyline.shape.points = current; graphic.updateProps(polyline, { shape: { points: next } }, seriesModel); if (polygon) { polygon.setShape({ points: current, stackedOnPoints: stackedOnCurrent }); graphic.updateProps(polygon, { shape: { points: next, stackedOnPoints: stackedOnNext } }, seriesModel); } var updatedDataInfo = []; var diffStatus = diff.status; for (var i = 0; i < diffStatus.length; i++) { var cmd = diffStatus[i].cmd; if (cmd === '=') { var el = data.getItemGraphicEl(diffStatus[i].idx1); if (el) { updatedDataInfo.push({ el: el, ptIdx: i // Index of points }); } } } if (polyline.animators && polyline.animators.length) { polyline.animators[0].during(function () { for (var i = 0; i < updatedDataInfo.length; i++) { var el = updatedDataInfo[i].el; el.attr('position', polyline.shape.__points[updatedDataInfo[i].ptIdx]); } }); } }, remove: function remove(ecModel) { var group = this.group; var oldData = this._data; this._lineGroup.removeAll(); this._symbolDraw.remove(true); // Remove temporary created elements when highlighting oldData && oldData.eachItemGraphicEl(function (el, idx) { if (el.__temp) { group.remove(el); oldData.setItemGraphicEl(idx, null); } }); this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null; } }); module.exports = _default; /***/ }), /* 552 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/SymbolDraw.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var SymbolClz = __webpack_require__(/*! ./Symbol */ 553); var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var isObject = _util.isObject; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/chart/helper/SymbolDraw */ /** * @constructor * @alias module:echarts/chart/helper/SymbolDraw * @param {module:zrender/graphic/Group} [symbolCtor] */ function SymbolDraw(symbolCtor) { this.group = new graphic.Group(); this._symbolCtor = symbolCtor || SymbolClz; } var symbolDrawProto = SymbolDraw.prototype; function symbolNeedsDraw(data, point, idx, opt) { return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) // We do not set clipShape on group, because it will cut part of // the symbol element shape. We use the same clip shape here as // the line clip. && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none'; } /** * Update symbols draw by new data * @param {module:echarts/data/List} data * @param {Object} [opt] Or isIgnore * @param {Function} [opt.isIgnore] * @param {Object} [opt.clipShape] */ symbolDrawProto.updateData = function (data, opt) { opt = normalizeUpdateOpt(opt); var group = this.group; var seriesModel = data.hostModel; var oldData = this._data; var SymbolCtor = this._symbolCtor; var seriesScope = makeSeriesScope(data); // There is no oldLineData only when first rendering or switching from // stream mode to normal mode, where previous elements should be removed. if (!oldData) { group.removeAll(); } data.diff(oldData).add(function (newIdx) { var point = data.getItemLayout(newIdx); if (symbolNeedsDraw(data, point, newIdx, opt)) { var symbolEl = new SymbolCtor(data, newIdx, seriesScope); symbolEl.attr('position', point); data.setItemGraphicEl(newIdx, symbolEl); group.add(symbolEl); } }).update(function (newIdx, oldIdx) { var symbolEl = oldData.getItemGraphicEl(oldIdx); var point = data.getItemLayout(newIdx); if (!symbolNeedsDraw(data, point, newIdx, opt)) { group.remove(symbolEl); return; } if (!symbolEl) { symbolEl = new SymbolCtor(data, newIdx); symbolEl.attr('position', point); } else { symbolEl.updateData(data, newIdx, seriesScope); graphic.updateProps(symbolEl, { position: point }, seriesModel); } // Add back group.add(symbolEl); data.setItemGraphicEl(newIdx, symbolEl); }).remove(function (oldIdx) { var el = oldData.getItemGraphicEl(oldIdx); el && el.fadeOut(function () { group.remove(el); }); }).execute(); this._data = data; }; symbolDrawProto.isPersistent = function () { return true; }; symbolDrawProto.updateLayout = function () { var data = this._data; if (data) { // Not use animation data.eachItemGraphicEl(function (el, idx) { var point = data.getItemLayout(idx); el.attr('position', point); }); } }; symbolDrawProto.incrementalPrepareUpdate = function (data) { this._seriesScope = makeSeriesScope(data); this._data = null; this.group.removeAll(); }; /** * Update symbols draw by new data * @param {module:echarts/data/List} data * @param {Object} [opt] Or isIgnore * @param {Function} [opt.isIgnore] * @param {Object} [opt.clipShape] */ symbolDrawProto.incrementalUpdate = function (taskParams, data, opt) { opt = normalizeUpdateOpt(opt); function updateIncrementalAndHover(el) { if (!el.isGroup) { el.incremental = el.useHoverLayer = true; } } for (var idx = taskParams.start; idx < taskParams.end; idx++) { var point = data.getItemLayout(idx); if (symbolNeedsDraw(data, point, idx, opt)) { var el = new this._symbolCtor(data, idx, this._seriesScope); el.traverse(updateIncrementalAndHover); el.attr('position', point); this.group.add(el); data.setItemGraphicEl(idx, el); } } }; function normalizeUpdateOpt(opt) { if (opt != null && !isObject(opt)) { opt = { isIgnore: opt }; } return opt || {}; } symbolDrawProto.remove = function (enableAnimation) { var group = this.group; var data = this._data; // Incremental model do not have this._data. if (data && enableAnimation) { data.eachItemGraphicEl(function (el) { el.fadeOut(function () { group.remove(el); }); }); } else { group.removeAll(); } }; function makeSeriesScope(data) { var seriesModel = data.hostModel; return { itemStyle: seriesModel.getModel('itemStyle').getItemStyle(['color']), hoverItemStyle: seriesModel.getModel('emphasis.itemStyle').getItemStyle(), symbolRotate: seriesModel.get('symbolRotate'), symbolOffset: seriesModel.get('symbolOffset'), hoverAnimation: seriesModel.get('hoverAnimation'), labelModel: seriesModel.getModel('label'), hoverLabelModel: seriesModel.getModel('emphasis.label'), cursorStyle: seriesModel.get('cursor') }; } var _default = SymbolDraw; module.exports = _default; /***/ }), /* 553 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/Symbol.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var _labelHelper = __webpack_require__(/*! ./labelHelper */ 554); var getDefaultLabel = _labelHelper.getDefaultLabel; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/chart/helper/Symbol */ /** * @constructor * @alias {module:echarts/chart/helper/Symbol} * @param {module:echarts/data/List} data * @param {number} idx * @extends {module:zrender/graphic/Group} */ function SymbolClz(data, idx, seriesScope) { graphic.Group.call(this); this.updateData(data, idx, seriesScope); } var symbolProto = SymbolClz.prototype; /** * @public * @static * @param {module:echarts/data/List} data * @param {number} dataIndex * @return {Array.} [width, height] */ var getSymbolSize = SymbolClz.getSymbolSize = function (data, idx) { var symbolSize = data.getItemVisual(idx, 'symbolSize'); return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize]; }; function getScale(symbolSize) { return [symbolSize[0] / 2, symbolSize[1] / 2]; } function driftSymbol(dx, dy) { this.parent.drift(dx, dy); } symbolProto._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) { // Remove paths created before this.removeAll(); var color = data.getItemVisual(idx, 'color'); // var symbolPath = createSymbol( // symbolType, -0.5, -0.5, 1, 1, color // ); // If width/height are set too small (e.g., set to 1) on ios10 // and macOS Sierra, a circle stroke become a rect, no matter what // the scale is set. So we set width/height as 2. See #4150. var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, color, keepAspect); symbolPath.attr({ z2: 100, culling: true, scale: getScale(symbolSize) }); // Rewrite drift method symbolPath.drift = driftSymbol; this._symbolType = symbolType; this.add(symbolPath); }; /** * Stop animation * @param {boolean} toLastFrame */ symbolProto.stopSymbolAnimation = function (toLastFrame) { this.childAt(0).stopAnimation(toLastFrame); }; /** * FIXME: * Caution: This method breaks the encapsulation of this module, * but it indeed brings convenience. So do not use the method * unless you detailedly know all the implements of `Symbol`, * especially animation. * * Get symbol path element. */ symbolProto.getSymbolPath = function () { return this.childAt(0); }; /** * Get scale(aka, current symbol size). * Including the change caused by animation */ symbolProto.getScale = function () { return this.childAt(0).scale; }; /** * Highlight symbol */ symbolProto.highlight = function () { this.childAt(0).trigger('emphasis'); }; /** * Downplay symbol */ symbolProto.downplay = function () { this.childAt(0).trigger('normal'); }; /** * @param {number} zlevel * @param {number} z */ symbolProto.setZ = function (zlevel, z) { var symbolPath = this.childAt(0); symbolPath.zlevel = zlevel; symbolPath.z = z; }; symbolProto.setDraggable = function (draggable) { var symbolPath = this.childAt(0); symbolPath.draggable = draggable; symbolPath.cursor = draggable ? 'move' : symbolPath.cursor; }; /** * Update symbol properties * @param {module:echarts/data/List} data * @param {number} idx * @param {Object} [seriesScope] * @param {Object} [seriesScope.itemStyle] * @param {Object} [seriesScope.hoverItemStyle] * @param {Object} [seriesScope.symbolRotate] * @param {Object} [seriesScope.symbolOffset] * @param {module:echarts/model/Model} [seriesScope.labelModel] * @param {module:echarts/model/Model} [seriesScope.hoverLabelModel] * @param {boolean} [seriesScope.hoverAnimation] * @param {Object} [seriesScope.cursorStyle] * @param {module:echarts/model/Model} [seriesScope.itemModel] * @param {string} [seriesScope.symbolInnerColor] * @param {Object} [seriesScope.fadeIn=false] */ symbolProto.updateData = function (data, idx, seriesScope) { this.silent = false; var symbolType = data.getItemVisual(idx, 'symbol') || 'circle'; var seriesModel = data.hostModel; var symbolSize = getSymbolSize(data, idx); var isInit = symbolType !== this._symbolType; if (isInit) { var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect'); this._createSymbol(symbolType, data, idx, symbolSize, keepAspect); } else { var symbolPath = this.childAt(0); symbolPath.silent = false; graphic.updateProps(symbolPath, { scale: getScale(symbolSize) }, seriesModel, idx); } this._updateCommon(data, idx, symbolSize, seriesScope); if (isInit) { var symbolPath = this.childAt(0); var fadeIn = seriesScope && seriesScope.fadeIn; var target = { scale: symbolPath.scale.slice() }; fadeIn && (target.style = { opacity: symbolPath.style.opacity }); symbolPath.scale = [0, 0]; fadeIn && (symbolPath.style.opacity = 0); graphic.initProps(symbolPath, target, seriesModel, idx); } this._seriesModel = seriesModel; }; // Update common properties var normalStyleAccessPath = ['itemStyle']; var emphasisStyleAccessPath = ['emphasis', 'itemStyle']; var normalLabelAccessPath = ['label']; var emphasisLabelAccessPath = ['emphasis', 'label']; /** * @param {module:echarts/data/List} data * @param {number} idx * @param {Array.} symbolSize * @param {Object} [seriesScope] */ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) { var symbolPath = this.childAt(0); var seriesModel = data.hostModel; var color = data.getItemVisual(idx, 'color'); // Reset style if (symbolPath.type !== 'image') { symbolPath.useStyle({ strokeNoScale: true }); } else { symbolPath.setStyle({ opacity: 1, shadowBlur: null, shadowOffsetX: null, shadowOffsetY: null, shadowColor: null }); } var itemStyle = seriesScope && seriesScope.itemStyle; var hoverItemStyle = seriesScope && seriesScope.hoverItemStyle; var symbolOffset = seriesScope && seriesScope.symbolOffset; var labelModel = seriesScope && seriesScope.labelModel; var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel; var hoverAnimation = seriesScope && seriesScope.hoverAnimation; var cursorStyle = seriesScope && seriesScope.cursorStyle; if (!seriesScope || data.hasItemOption) { var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx); // Color must be excluded. // Because symbol provide setColor individually to set fill and stroke itemStyle = itemModel.getModel(normalStyleAccessPath).getItemStyle(['color']); hoverItemStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle(); symbolOffset = itemModel.getShallow('symbolOffset'); labelModel = itemModel.getModel(normalLabelAccessPath); hoverLabelModel = itemModel.getModel(emphasisLabelAccessPath); hoverAnimation = itemModel.getShallow('hoverAnimation'); cursorStyle = itemModel.getShallow('cursor'); } else { hoverItemStyle = zrUtil.extend({}, hoverItemStyle); } var elStyle = symbolPath.style; var symbolRotate = data.getItemVisual(idx, 'symbolRotate'); symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0); if (symbolOffset) { symbolPath.attr('position', [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])]); } cursorStyle && symbolPath.attr('cursor', cursorStyle); // PENDING setColor before setStyle!!! symbolPath.setColor(color, seriesScope && seriesScope.symbolInnerColor); symbolPath.setStyle(itemStyle); var opacity = data.getItemVisual(idx, 'opacity'); if (opacity != null) { elStyle.opacity = opacity; } var liftZ = data.getItemVisual(idx, 'liftZ'); var z2Origin = symbolPath.__z2Origin; if (liftZ != null) { if (z2Origin == null) { symbolPath.__z2Origin = symbolPath.z2; symbolPath.z2 += liftZ; } } else if (z2Origin != null) { symbolPath.z2 = z2Origin; symbolPath.__z2Origin = null; } var useNameLabel = seriesScope && seriesScope.useNameLabel; graphic.setLabelStyle(elStyle, hoverItemStyle, labelModel, hoverLabelModel, { labelFetcher: seriesModel, labelDataIndex: idx, defaultText: getLabelDefaultText, isRectText: true, autoColor: color }); // Do not execute util needed. function getLabelDefaultText(idx, opt) { return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx); } symbolPath.__symbolOriginalScale = getScale(symbolSize); symbolPath.hoverStyle = hoverItemStyle; symbolPath.highDownOnUpdate = hoverAnimation && seriesModel.isAnimationEnabled() ? highDownOnUpdate : null; graphic.setHoverStyle(symbolPath); }; function highDownOnUpdate(fromState, toState) { // Do not support this hover animation util some scenario required. // Animation can only be supported in hover layer when using `el.incremetal`. if (this.incremental || this.useHoverLayer) { return; } if (toState === 'emphasis') { var scale = this.__symbolOriginalScale; var ratio = scale[1] / scale[0]; var emphasisOpt = { scale: [Math.max(scale[0] * 1.1, scale[0] + 3), Math.max(scale[1] * 1.1, scale[1] + 3 * ratio)] }; // FIXME // modify it after support stop specified animation. // toState === fromState // ? (this.stopAnimation(), this.attr(emphasisOpt)) this.animateTo(emphasisOpt, 400, 'elasticOut'); } else if (toState === 'normal') { this.animateTo({ scale: this.__symbolOriginalScale }, 400, 'elasticOut'); } } /** * @param {Function} cb * @param {Object} [opt] * @param {Object} [opt.keepLabel=true] */ symbolProto.fadeOut = function (cb, opt) { var symbolPath = this.childAt(0); // Avoid mistaken hover when fading out this.silent = symbolPath.silent = true; // Not show text when animating !(opt && opt.keepLabel) && (symbolPath.style.text = null); graphic.updateProps(symbolPath, { style: { opacity: 0 }, scale: [0, 0] }, this._seriesModel, this.dataIndex, cb); }; zrUtil.inherits(SymbolClz, graphic.Group); var _default = SymbolClz; module.exports = _default; /***/ }), /* 554 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/labelHelper.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _dataProvider = __webpack_require__(/*! ../../data/helper/dataProvider */ 505); var retrieveRawValue = _dataProvider.retrieveRawValue; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {module:echarts/data/List} data * @param {number} dataIndex * @return {string} label string. Not null/undefined */ function getDefaultLabel(data, dataIndex) { var labelDims = data.mapDimension('defaultedLabel', true); var len = labelDims.length; // Simple optimization (in lots of cases, label dims length is 1) if (len === 1) { return retrieveRawValue(data, dataIndex, labelDims[0]); } else if (len) { var vals = []; for (var i = 0; i < labelDims.length; i++) { var val = retrieveRawValue(data, dataIndex, labelDims[i]); vals.push(val); } return vals.join(' '); } } exports.getDefaultLabel = getDefaultLabel; /***/ }), /* 555 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/line/lineAnimationDiff.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _helper = __webpack_require__(/*! ./helper */ 556); var prepareDataCoordInfo = _helper.prepareDataCoordInfo; var getStackedOnPoint = _helper.getStackedOnPoint; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // var arrayDiff = require('zrender/src/core/arrayDiff'); // 'zrender/src/core/arrayDiff' has been used before, but it did // not do well in performance when roam with fixed dataZoom window. // function convertToIntId(newIdList, oldIdList) { // // Generate int id instead of string id. // // Compare string maybe slow in score function of arrDiff // // Assume id in idList are all unique // var idIndicesMap = {}; // var idx = 0; // for (var i = 0; i < newIdList.length; i++) { // idIndicesMap[newIdList[i]] = idx; // newIdList[i] = idx++; // } // for (var i = 0; i < oldIdList.length; i++) { // var oldId = oldIdList[i]; // // Same with newIdList // if (idIndicesMap[oldId]) { // oldIdList[i] = idIndicesMap[oldId]; // } // else { // oldIdList[i] = idx++; // } // } // } function diffData(oldData, newData) { var diffResult = []; newData.diff(oldData).add(function (idx) { diffResult.push({ cmd: '+', idx: idx }); }).update(function (newIdx, oldIdx) { diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx }); }).remove(function (idx) { diffResult.push({ cmd: '-', idx: idx }); }).execute(); return diffResult; } function _default(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) { var diff = diffData(oldData, newData); // var newIdList = newData.mapArray(newData.getId); // var oldIdList = oldData.mapArray(oldData.getId); // convertToIntId(newIdList, oldIdList); // // FIXME One data ? // diff = arrayDiff(oldIdList, newIdList); var currPoints = []; var nextPoints = []; // Points for stacking base line var currStackedPoints = []; var nextStackedPoints = []; var status = []; var sortedIndices = []; var rawIndices = []; var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin); var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin); for (var i = 0; i < diff.length; i++) { var diffItem = diff[i]; var pointAdded = true; // FIXME, animation is not so perfect when dataZoom window moves fast // Which is in case remvoing or add more than one data in the tail or head switch (diffItem.cmd) { case '=': var currentPt = oldData.getItemLayout(diffItem.idx); var nextPt = newData.getItemLayout(diffItem.idx1); // If previous data is NaN, use next point directly if (isNaN(currentPt[0]) || isNaN(currentPt[1])) { currentPt = nextPt.slice(); } currPoints.push(currentPt); nextPoints.push(nextPt); currStackedPoints.push(oldStackedOnPoints[diffItem.idx]); nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]); rawIndices.push(newData.getRawIndex(diffItem.idx1)); break; case '+': var idx = diffItem.idx; currPoints.push(oldCoordSys.dataToPoint([newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idx), newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idx)])); nextPoints.push(newData.getItemLayout(idx).slice()); currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idx)); nextStackedPoints.push(newStackedOnPoints[idx]); rawIndices.push(newData.getRawIndex(idx)); break; case '-': var idx = diffItem.idx; var rawIndex = oldData.getRawIndex(idx); // Data is replaced. In the case of dynamic data queue // FIXME FIXME FIXME if (rawIndex !== idx) { currPoints.push(oldData.getItemLayout(idx)); nextPoints.push(newCoordSys.dataToPoint([oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idx), oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idx)])); currStackedPoints.push(oldStackedOnPoints[idx]); nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idx)); rawIndices.push(rawIndex); } else { pointAdded = false; } } // Original indices if (pointAdded) { status.push(diffItem); sortedIndices.push(sortedIndices.length); } } // Diff result may be crossed if all items are changed // Sort by data index sortedIndices.sort(function (a, b) { return rawIndices[a] - rawIndices[b]; }); var sortedCurrPoints = []; var sortedNextPoints = []; var sortedCurrStackedPoints = []; var sortedNextStackedPoints = []; var sortedStatus = []; for (var i = 0; i < sortedIndices.length; i++) { var idx = sortedIndices[i]; sortedCurrPoints[i] = currPoints[idx]; sortedNextPoints[i] = nextPoints[idx]; sortedCurrStackedPoints[i] = currStackedPoints[idx]; sortedNextStackedPoints[i] = nextStackedPoints[idx]; sortedStatus[i] = status[idx]; } return { current: sortedCurrPoints, next: sortedNextPoints, stackedOnCurrent: sortedCurrStackedPoints, stackedOnNext: sortedNextStackedPoints, status: sortedStatus }; } module.exports = _default; /***/ }), /* 556 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/line/helper.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _dataStackHelper = __webpack_require__(/*! ../../data/helper/dataStackHelper */ 532); var isDimensionStacked = _dataStackHelper.isDimensionStacked; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var map = _util.map; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {Object} coordSys * @param {module:echarts/data/List} data * @param {string} valueOrigin lineSeries.option.areaStyle.origin */ function prepareDataCoordInfo(coordSys, data, valueOrigin) { var baseAxis = coordSys.getBaseAxis(); var valueAxis = coordSys.getOtherAxis(baseAxis); var valueStart = getValueStart(valueAxis, valueOrigin); var baseAxisDim = baseAxis.dim; var valueAxisDim = valueAxis.dim; var valueDim = data.mapDimension(valueAxisDim); var baseDim = data.mapDimension(baseAxisDim); var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0; var dims = map(coordSys.dimensions, function (coordDim) { return data.mapDimension(coordDim); }); var stacked; var stackResultDim = data.getCalculationInfo('stackResultDimension'); if (stacked |= isDimensionStacked(data, dims[0] /*, dims[1]*/)) { // jshint ignore:line dims[0] = stackResultDim; } if (stacked |= isDimensionStacked(data, dims[1] /*, dims[0]*/)) { // jshint ignore:line dims[1] = stackResultDim; } return { dataDimsForPoint: dims, valueStart: valueStart, valueAxisDim: valueAxisDim, baseAxisDim: baseAxisDim, stacked: !!stacked, valueDim: valueDim, baseDim: baseDim, baseDataOffset: baseDataOffset, stackedOverDimension: data.getCalculationInfo('stackedOverDimension') }; } function getValueStart(valueAxis, valueOrigin) { var valueStart = 0; var extent = valueAxis.scale.getExtent(); if (valueOrigin === 'start') { valueStart = extent[0]; } else if (valueOrigin === 'end') { valueStart = extent[1]; } // auto else { // Both positive if (extent[0] > 0) { valueStart = extent[0]; } // Both negative else if (extent[1] < 0) { valueStart = extent[1]; } // If is one positive, and one negative, onZero shall be true } return valueStart; } function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) { var value = NaN; if (dataCoordInfo.stacked) { value = data.get(data.getCalculationInfo('stackedOverDimension'), idx); } if (isNaN(value)) { value = dataCoordInfo.valueStart; } var baseDataOffset = dataCoordInfo.baseDataOffset; var stackedData = []; stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx); stackedData[1 - baseDataOffset] = value; return coordSys.dataToPoint(stackedData); } exports.prepareDataCoordInfo = prepareDataCoordInfo; exports.getStackedOnPoint = getStackedOnPoint; /***/ }), /* 557 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/line/poly.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Path = __webpack_require__(/*! zrender/lib/graphic/Path */ 453); var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); var fixClipWithShadow = __webpack_require__(/*! zrender/lib/graphic/helper/fixClipWithShadow */ 468); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Poly path support NaN point var vec2Min = vec2.min; var vec2Max = vec2.max; var scaleAndAdd = vec2.scaleAndAdd; var v2Copy = vec2.copy; // Temporary variable var v = []; var cp0 = []; var cp1 = []; function isPointNull(p) { return isNaN(p[0]) || isNaN(p[1]); } function drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) { // if (smoothMonotone == null) { // if (isMono(points, 'x')) { // return drawMono(ctx, points, start, segLen, allLen, // dir, smoothMin, smoothMax, smooth, 'x', connectNulls); // } // else if (isMono(points, 'y')) { // return drawMono(ctx, points, start, segLen, allLen, // dir, smoothMin, smoothMax, smooth, 'y', connectNulls); // } // else { // return drawNonMono.apply(this, arguments); // } // } // else if (smoothMonotone !== 'none' && isMono(points, smoothMonotone)) { // return drawMono.apply(this, arguments); // } // else { // return drawNonMono.apply(this, arguments); // } if (smoothMonotone === 'none' || !smoothMonotone) { return drawNonMono.apply(this, arguments); } else { return drawMono.apply(this, arguments); } } /** * Check if points is in monotone. * * @param {number[][]} points Array of points which is in [x, y] form * @param {string} smoothMonotone 'x', 'y', or 'none', stating for which * dimension that is checking. * If is 'none', `drawNonMono` should be * called. * If is undefined, either being monotone * in 'x' or 'y' will call `drawMono`. */ // function isMono(points, smoothMonotone) { // if (points.length <= 1) { // return true; // } // var dim = smoothMonotone === 'x' ? 0 : 1; // var last = points[0][dim]; // var lastDiff = 0; // for (var i = 1; i < points.length; ++i) { // var diff = points[i][dim] - last; // if (!isNaN(diff) && !isNaN(lastDiff) // && diff !== 0 && lastDiff !== 0 // && ((diff >= 0) !== (lastDiff >= 0)) // ) { // return false; // } // if (!isNaN(diff) && diff !== 0) { // lastDiff = diff; // last = points[i][dim]; // } // } // return true; // } /** * Draw smoothed line in monotone, in which only vertical or horizontal bezier * control points will be used. This should be used when points are monotone * either in x or y dimension. */ function drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) { var prevIdx = 0; var idx = start; for (var k = 0; k < segLen; k++) { var p = points[idx]; if (idx >= allLen || idx < 0) { break; } if (isPointNull(p)) { if (connectNulls) { idx += dir; continue; } break; } if (idx === start) { ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]); } else { if (smooth > 0) { var prevP = points[prevIdx]; var dim = smoothMonotone === 'y' ? 1 : 0; // Length of control point to p, either in x or y, but not both var ctrlLen = (p[dim] - prevP[dim]) * smooth; v2Copy(cp0, prevP); cp0[dim] = prevP[dim] + ctrlLen; v2Copy(cp1, p); cp1[dim] = p[dim] - ctrlLen; ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]); } else { ctx.lineTo(p[0], p[1]); } } prevIdx = idx; idx += dir; } return k; } /** * Draw smoothed line in non-monotone, in may cause undesired curve in extreme * situations. This should be used when points are non-monotone neither in x or * y dimension. */ function drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) { var prevIdx = 0; var idx = start; for (var k = 0; k < segLen; k++) { var p = points[idx]; if (idx >= allLen || idx < 0) { break; } if (isPointNull(p)) { if (connectNulls) { idx += dir; continue; } break; } if (idx === start) { ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]); v2Copy(cp0, p); } else { if (smooth > 0) { var nextIdx = idx + dir; var nextP = points[nextIdx]; if (connectNulls) { // Find next point not null while (nextP && isPointNull(points[nextIdx])) { nextIdx += dir; nextP = points[nextIdx]; } } var ratioNextSeg = 0.5; var prevP = points[prevIdx]; var nextP = points[nextIdx]; // Last point if (!nextP || isPointNull(nextP)) { v2Copy(cp1, p); } else { // If next data is null in not connect case if (isPointNull(nextP) && !connectNulls) { nextP = p; } vec2.sub(v, nextP, prevP); var lenPrevSeg; var lenNextSeg; if (smoothMonotone === 'x' || smoothMonotone === 'y') { var dim = smoothMonotone === 'x' ? 0 : 1; lenPrevSeg = Math.abs(p[dim] - prevP[dim]); lenNextSeg = Math.abs(p[dim] - nextP[dim]); } else { lenPrevSeg = vec2.dist(p, prevP); lenNextSeg = vec2.dist(p, nextP); } // Use ratio of seg length ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg); scaleAndAdd(cp1, p, v, -smooth * (1 - ratioNextSeg)); } // Smooth constraint vec2Min(cp0, cp0, smoothMax); vec2Max(cp0, cp0, smoothMin); vec2Min(cp1, cp1, smoothMax); vec2Max(cp1, cp1, smoothMin); ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]); // cp0 of next segment scaleAndAdd(cp0, p, v, smooth * ratioNextSeg); } else { ctx.lineTo(p[0], p[1]); } } prevIdx = idx; idx += dir; } return k; } function getBoundingBox(points, smoothConstraint) { var ptMin = [Infinity, Infinity]; var ptMax = [-Infinity, -Infinity]; if (smoothConstraint) { for (var i = 0; i < points.length; i++) { var pt = points[i]; if (pt[0] < ptMin[0]) { ptMin[0] = pt[0]; } if (pt[1] < ptMin[1]) { ptMin[1] = pt[1]; } if (pt[0] > ptMax[0]) { ptMax[0] = pt[0]; } if (pt[1] > ptMax[1]) { ptMax[1] = pt[1]; } } } return { min: smoothConstraint ? ptMin : ptMax, max: smoothConstraint ? ptMax : ptMin }; } var Polyline = Path.extend({ type: 'ec-polyline', shape: { points: [], smooth: 0, smoothConstraint: true, smoothMonotone: null, connectNulls: false }, style: { fill: null, stroke: '#000' }, brush: fixClipWithShadow(Path.prototype.brush), buildPath: function buildPath(ctx, shape) { var points = shape.points; var i = 0; var len = points.length; var result = getBoundingBox(points, shape.smoothConstraint); if (shape.connectNulls) { // Must remove first and last null values avoid draw error in polygon for (; len > 0; len--) { if (!isPointNull(points[len - 1])) { break; } } for (; i < len; i++) { if (!isPointNull(points[i])) { break; } } } while (i < len) { i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1; } } }); var Polygon = Path.extend({ type: 'ec-polygon', shape: { points: [], // Offset between stacked base points and points stackedOnPoints: [], smooth: 0, stackedOnSmooth: 0, smoothConstraint: true, smoothMonotone: null, connectNulls: false }, brush: fixClipWithShadow(Path.prototype.brush), buildPath: function buildPath(ctx, shape) { var points = shape.points; var stackedOnPoints = shape.stackedOnPoints; var i = 0; var len = points.length; var smoothMonotone = shape.smoothMonotone; var bbox = getBoundingBox(points, shape.smoothConstraint); var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint); if (shape.connectNulls) { // Must remove first and last null values avoid draw error in polygon for (; len > 0; len--) { if (!isPointNull(points[len - 1])) { break; } } for (; i < len; i++) { if (!isPointNull(points[i])) { break; } } } while (i < len) { var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls); drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls); i += k + 1; ctx.closePath(); } } }); exports.Polyline = Polyline; exports.Polygon = Polygon; /***/ }), /* 558 */ /*!****************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _number = __webpack_require__(/*! ../../util/number */ 489); var round = _number.round; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function createGridClipPath(cartesian, hasAnimation, seriesModel) { var rect = cartesian.getArea(); var isHorizontal = cartesian.getBaseAxis().isHorizontal(); var x = rect.x; var y = rect.y; var width = rect.width; var height = rect.height; var lineWidth = seriesModel.get('lineStyle.width') || 2; // Expand the clip path a bit to avoid the border is clipped and looks thinner x -= lineWidth / 2; y -= lineWidth / 2; width += lineWidth; height += lineWidth; // fix: https://github.com/apache/incubator-echarts/issues/11369 x = Math.floor(x); width = Math.round(width); var clipPath = new graphic.Rect({ shape: { x: x, y: y, width: width, height: height } }); if (hasAnimation) { clipPath.shape[isHorizontal ? 'width' : 'height'] = 0; graphic.initProps(clipPath, { shape: { width: width, height: height } }, seriesModel); } return clipPath; } function createPolarClipPath(polar, hasAnimation, seriesModel) { var sectorArea = polar.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent. var clipPath = new graphic.Sector({ shape: { cx: round(polar.cx, 1), cy: round(polar.cy, 1), r0: round(sectorArea.r0, 1), r: round(sectorArea.r, 1), startAngle: sectorArea.startAngle, endAngle: sectorArea.endAngle, clockwise: sectorArea.clockwise } }); if (hasAnimation) { clipPath.shape.endAngle = sectorArea.startAngle; graphic.initProps(clipPath, { shape: { endAngle: sectorArea.endAngle } }, seriesModel); } return clipPath; } function createClipPath(coordSys, hasAnimation, seriesModel) { if (!coordSys) { return null; } else if (coordSys.type === 'polar') { return createPolarClipPath(coordSys, hasAnimation, seriesModel); } else if (coordSys.type === 'cartesian2d') { return createGridClipPath(coordSys, hasAnimation, seriesModel); } return null; } exports.createGridClipPath = createGridClipPath; exports.createPolarClipPath = createPolarClipPath; exports.createClipPath = createClipPath; /***/ }), /* 559 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/symbol.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var isFunction = _util.isFunction; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(seriesType, defaultSymbolType, legendSymbol) { // Encoding visual for all series include which is filtered for legend drawing return { seriesType: seriesType, // For legend. performRawSeries: true, reset: function reset(seriesModel, ecModel, api) { var data = seriesModel.getData(); var symbolType = seriesModel.get('symbol'); var symbolSize = seriesModel.get('symbolSize'); var keepAspect = seriesModel.get('symbolKeepAspect'); var symbolRotate = seriesModel.get('symbolRotate'); var hasSymbolTypeCallback = isFunction(symbolType); var hasSymbolSizeCallback = isFunction(symbolSize); var hasSymbolRotateCallback = isFunction(symbolRotate); var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback; var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : defaultSymbolType; var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null; var seriesSymbolRotate = !hasSymbolRotateCallback ? seriesSymbolRotate : null; data.setVisual({ legendSymbol: legendSymbol || seriesSymbol, // If seting callback functions on `symbol` or `symbolSize`, for simplicity and avoiding // to bring trouble, we do not pick a reuslt from one of its calling on data item here, // but just use the default value. Callback on `symbol` or `symbolSize` is convenient in // some cases but generally it is not recommanded. symbol: seriesSymbol, symbolSize: seriesSymbolSize, symbolKeepAspect: keepAspect, symbolRotate: symbolRotate }); // Only visible series has each data be visual encoded if (ecModel.isSeriesFiltered(seriesModel)) { return; } function dataEach(data, idx) { if (hasCallback) { var rawValue = seriesModel.getRawValue(idx); var params = seriesModel.getDataParams(idx); hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params)); hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params)); hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params)); } if (data.hasItemOption) { var itemModel = data.getItemModel(idx); var itemSymbolType = itemModel.getShallow('symbol', true); var itemSymbolSize = itemModel.getShallow('symbolSize', true); var itemSymbolRotate = itemModel.getShallow('symbolRotate', true); var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true); // If has item symbol if (itemSymbolType != null) { data.setItemVisual(idx, 'symbol', itemSymbolType); } if (itemSymbolSize != null) { // PENDING Transform symbolSize ? data.setItemVisual(idx, 'symbolSize', itemSymbolSize); } if (itemSymbolRotate != null) { data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate); } if (itemSymbolKeepAspect != null) { data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect); } } } return { dataEach: data.hasItemOption || hasCallback ? dataEach : null }; } }; } module.exports = _default; /***/ }), /* 560 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/layout/points.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var map = _util.map; var createRenderPlanner = __webpack_require__(/*! ../chart/helper/createRenderPlanner */ 509); var _dataStackHelper = __webpack_require__(/*! ../data/helper/dataStackHelper */ 532); var isDimensionStacked = _dataStackHelper.isDimensionStacked; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Float32Array */ function _default(seriesType) { return { seriesType: seriesType, plan: createRenderPlanner(), reset: function reset(seriesModel) { var data = seriesModel.getData(); var coordSys = seriesModel.coordinateSystem; var pipelineContext = seriesModel.pipelineContext; var isLargeRender = pipelineContext.large; if (!coordSys) { return; } var dims = map(coordSys.dimensions, function (dim) { return data.mapDimension(dim); }).slice(0, 2); var dimLen = dims.length; var stackResultDim = data.getCalculationInfo('stackResultDimension'); if (isDimensionStacked(data, dims[0] /*, dims[1]*/)) { dims[0] = stackResultDim; } if (isDimensionStacked(data, dims[1] /*, dims[0]*/)) { dims[1] = stackResultDim; } function progress(params, data) { var segCount = params.end - params.start; var points = isLargeRender && new Float32Array(segCount * dimLen); for (var i = params.start, offset = 0, tmpIn = [], tmpOut = []; i < params.end; i++) { var point; if (dimLen === 1) { var x = data.get(dims[0], i); point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut); } else { var x = tmpIn[0] = data.get(dims[0], i); var y = tmpIn[1] = data.get(dims[1], i); // Also {Array.}, not undefined to avoid if...else... statement point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut); } if (isLargeRender) { points[offset++] = point ? point[0] : NaN; points[offset++] = point ? point[1] : NaN; } else { data.setItemLayout(i, point && point.slice() || [NaN, NaN]); } } isLargeRender && data.setLayout('symbolPoints', points); } return dimLen && { progress: progress }; } }; } module.exports = _default; /***/ }), /* 561 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/processor/dataSample.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var samplers = { average: function average(frame) { var sum = 0; var count = 0; for (var i = 0; i < frame.length; i++) { if (!isNaN(frame[i])) { sum += frame[i]; count++; } } // Return NaN if count is 0 return count === 0 ? NaN : sum / count; }, sum: function sum(frame) { var sum = 0; for (var i = 0; i < frame.length; i++) { // Ignore NaN sum += frame[i] || 0; } return sum; }, max: function max(frame) { var max = -Infinity; for (var i = 0; i < frame.length; i++) { frame[i] > max && (max = frame[i]); } // NaN will cause illegal axis extent. return isFinite(max) ? max : NaN; }, min: function min(frame) { var min = Infinity; for (var i = 0; i < frame.length; i++) { frame[i] < min && (min = frame[i]); } // NaN will cause illegal axis extent. return isFinite(min) ? min : NaN; }, // TODO // Median nearest: function nearest(frame) { return frame[0]; } }; var indexSampler = function indexSampler(frame, value) { return Math.round(frame.length / 2); }; function _default(seriesType) { return { seriesType: seriesType, modifyOutputEnd: true, reset: function reset(seriesModel, ecModel, api) { var data = seriesModel.getData(); var sampling = seriesModel.get('sampling'); var coordSys = seriesModel.coordinateSystem; // Only cartesian2d support down sampling if (coordSys.type === 'cartesian2d' && sampling) { var baseAxis = coordSys.getBaseAxis(); var valueAxis = coordSys.getOtherAxis(baseAxis); var extent = baseAxis.getExtent(); // Coordinste system has been resized var size = Math.abs(extent[1] - extent[0]); var rate = Math.round(data.count() / size); if (rate > 1) { var sampler; if (typeof sampling === 'string') { sampler = samplers[sampling]; } else if (typeof sampling === 'function') { sampler = sampling; } if (sampler) { // Only support sample the first dim mapped from value axis. seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler)); } } } } }; } module.exports = _default; /***/ }), /* 562 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/gridSimple.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../util/graphic */ 451); __webpack_require__(/*! ../coord/cartesian/Grid */ 563); __webpack_require__(/*! ./axis */ 571); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Grid view echarts.extendComponentView({ type: 'grid', render: function render(gridModel, ecModel) { this.group.removeAll(); if (gridModel.get('show')) { this.group.add(new graphic.Rect({ shape: gridModel.coordinateSystem.getRect(), style: zrUtil.defaults({ fill: gridModel.get('backgroundColor') }, gridModel.getItemStyle()), silent: true, z2: -1 })); } } }); echarts.registerPreprocessor(function (option) { // Only create grid when need if (option.xAxis && option.yAxis && !option.grid) { option.grid = {}; } }); /***/ }), /* 563 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/Grid.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var isObject = _util.isObject; var each = _util.each; var map = _util.map; var indexOf = _util.indexOf; var retrieve = _util.retrieve; var _layout = __webpack_require__(/*! ../../util/layout */ 488); var getLayoutRect = _layout.getLayoutRect; var _axisHelper = __webpack_require__(/*! ../../coord/axisHelper */ 533); var createScaleByModel = _axisHelper.createScaleByModel; var ifAxisCrossZero = _axisHelper.ifAxisCrossZero; var niceScaleExtent = _axisHelper.niceScaleExtent; var estimateLabelUnionRect = _axisHelper.estimateLabelUnionRect; var Cartesian2D = __webpack_require__(/*! ./Cartesian2D */ 564); var Axis2D = __webpack_require__(/*! ./Axis2D */ 566); var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); var _dataStackHelper = __webpack_require__(/*! ../../data/helper/dataStackHelper */ 532); var getStackedDimension = _dataStackHelper.getStackedDimension; __webpack_require__(/*! ./GridModel */ 567); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Grid is a region which contains at most 4 cartesian systems * * TODO Default cartesian */ // Depends on GridModel, AxisModel, which performs preprocess. /** * Check if the axis is used in the specified grid * @inner */ function isAxisUsedInTheGrid(axisModel, gridModel, ecModel) { return axisModel.getCoordSysModel() === gridModel; } function Grid(gridModel, ecModel, api) { /** * @type {Object.} * @private */ this._coordsMap = {}; /** * @type {Array.} * @private */ this._coordsList = []; /** * @type {Object.>} * @private */ this._axesMap = {}; /** * @type {Array.} * @private */ this._axesList = []; this._initCartesian(gridModel, ecModel, api); this.model = gridModel; } var gridProto = Grid.prototype; gridProto.type = 'grid'; gridProto.axisPointerEnabled = true; gridProto.getRect = function () { return this._rect; }; gridProto.update = function (ecModel, api) { var axesMap = this._axesMap; this._updateScale(ecModel, this.model); each(axesMap.x, function (xAxis) { niceScaleExtent(xAxis.scale, xAxis.model); }); each(axesMap.y, function (yAxis) { niceScaleExtent(yAxis.scale, yAxis.model); }); // Key: axisDim_axisIndex, value: boolean, whether onZero target. var onZeroRecords = {}; each(axesMap.x, function (xAxis) { fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords); }); each(axesMap.y, function (yAxis) { fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords); }); // Resize again if containLabel is enabled // FIXME It may cause getting wrong grid size in data processing stage this.resize(this.model, api); }; function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) { axis.getAxesOnZeroOf = function () { // TODO: onZero of multiple axes. return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : []; }; // onZero can not be enabled in these two situations: // 1. When any other axis is a category axis. // 2. When no axis is cross 0 point. var otherAxes = axesMap[otherAxisDim]; var otherAxisOnZeroOf; var axisModel = axis.model; var onZero = axisModel.get('axisLine.onZero'); var onZeroAxisIndex = axisModel.get('axisLine.onZeroAxisIndex'); if (!onZero) { return; } // If target axis is specified. if (onZeroAxisIndex != null) { if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) { otherAxisOnZeroOf = otherAxes[onZeroAxisIndex]; } } else { // Find the first available other axis. for (var idx in otherAxes) { if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) // Consider that two Y axes on one value axis, // if both onZero, the two Y axes overlap. && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) { otherAxisOnZeroOf = otherAxes[idx]; break; } } } if (otherAxisOnZeroOf) { onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true; } function getOnZeroRecordKey(axis) { return axis.dim + '_' + axis.index; } } function canOnZeroToAxis(axis) { return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis); } /** * Resize the grid * @param {module:echarts/coord/cartesian/GridModel} gridModel * @param {module:echarts/ExtensionAPI} api */ gridProto.resize = function (gridModel, api, ignoreContainLabel) { var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); this._rect = gridRect; var axesList = this._axesList; adjustAxes(); // Minus label size if (!ignoreContainLabel && gridModel.get('containLabel')) { each(axesList, function (axis) { if (!axis.model.get('axisLabel.inside')) { var labelUnionRect = estimateLabelUnionRect(axis); if (labelUnionRect) { var dim = axis.isHorizontal() ? 'height' : 'width'; var margin = axis.model.get('axisLabel.margin'); gridRect[dim] -= labelUnionRect[dim] + margin; if (axis.position === 'top') { gridRect.y += labelUnionRect.height + margin; } else if (axis.position === 'left') { gridRect.x += labelUnionRect.width + margin; } } } }); adjustAxes(); } function adjustAxes() { each(axesList, function (axis) { var isHorizontal = axis.isHorizontal(); var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height]; var idx = axis.inverse ? 1 : 0; axis.setExtent(extent[idx], extent[1 - idx]); updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y); }); } }; /** * @param {string} axisType * @param {number} [axisIndex] */ gridProto.getAxis = function (axisType, axisIndex) { var axesMapOnDim = this._axesMap[axisType]; if (axesMapOnDim != null) { if (axisIndex == null) { // Find first axis for (var name in axesMapOnDim) { if (axesMapOnDim.hasOwnProperty(name)) { return axesMapOnDim[name]; } } } return axesMapOnDim[axisIndex]; } }; /** * @return {Array.} */ gridProto.getAxes = function () { return this._axesList.slice(); }; /** * Usage: * grid.getCartesian(xAxisIndex, yAxisIndex); * grid.getCartesian(xAxisIndex); * grid.getCartesian(null, yAxisIndex); * grid.getCartesian({xAxisIndex: ..., yAxisIndex: ...}); * * @param {number|Object} [xAxisIndex] * @param {number} [yAxisIndex] */ gridProto.getCartesian = function (xAxisIndex, yAxisIndex) { if (xAxisIndex != null && yAxisIndex != null) { var key = 'x' + xAxisIndex + 'y' + yAxisIndex; return this._coordsMap[key]; } if (isObject(xAxisIndex)) { yAxisIndex = xAxisIndex.yAxisIndex; xAxisIndex = xAxisIndex.xAxisIndex; } // When only xAxisIndex or yAxisIndex given, find its first cartesian. for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) { if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) { return coordList[i]; } } }; gridProto.getCartesians = function () { return this._coordsList.slice(); }; /** * @implements * see {module:echarts/CoodinateSystem} */ gridProto.convertToPixel = function (ecModel, finder, value) { var target = this._findConvertTarget(ecModel, finder); return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null; }; /** * @implements * see {module:echarts/CoodinateSystem} */ gridProto.convertFromPixel = function (ecModel, finder, value) { var target = this._findConvertTarget(ecModel, finder); return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null; }; /** * @inner */ gridProto._findConvertTarget = function (ecModel, finder) { var seriesModel = finder.seriesModel; var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis')[0]; var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis')[0]; var gridModel = finder.gridModel; var coordsList = this._coordsList; var cartesian; var axis; if (seriesModel) { cartesian = seriesModel.coordinateSystem; indexOf(coordsList, cartesian) < 0 && (cartesian = null); } else if (xAxisModel && yAxisModel) { cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex); } else if (xAxisModel) { axis = this.getAxis('x', xAxisModel.componentIndex); } else if (yAxisModel) { axis = this.getAxis('y', yAxisModel.componentIndex); } // Lowest priority. else if (gridModel) { var grid = gridModel.coordinateSystem; if (grid === this) { cartesian = this._coordsList[0]; } } return { cartesian: cartesian, axis: axis }; }; /** * @implements * see {module:echarts/CoodinateSystem} */ gridProto.containPoint = function (point) { var coord = this._coordsList[0]; if (coord) { return coord.containPoint(point); } }; /** * Initialize cartesian coordinate systems * @private */ gridProto._initCartesian = function (gridModel, ecModel, api) { var axisPositionUsed = { left: false, right: false, top: false, bottom: false }; var axesMap = { x: {}, y: {} }; var axesCount = { x: 0, y: 0 }; /// Create axis ecModel.eachComponent('xAxis', createAxisCreator('x'), this); ecModel.eachComponent('yAxis', createAxisCreator('y'), this); if (!axesCount.x || !axesCount.y) { // Roll back when there no either x or y axis this._axesMap = {}; this._axesList = []; return; } this._axesMap = axesMap; /// Create cartesian2d each(axesMap.x, function (xAxis, xAxisIndex) { each(axesMap.y, function (yAxis, yAxisIndex) { var key = 'x' + xAxisIndex + 'y' + yAxisIndex; var cartesian = new Cartesian2D(key); cartesian.grid = this; cartesian.model = gridModel; this._coordsMap[key] = cartesian; this._coordsList.push(cartesian); cartesian.addAxis(xAxis); cartesian.addAxis(yAxis); }, this); }, this); function createAxisCreator(axisType) { return function (axisModel, idx) { if (!isAxisUsedInTheGrid(axisModel, gridModel, ecModel)) { return; } var axisPosition = axisModel.get('position'); if (axisType === 'x') { // Fix position if (axisPosition !== 'top' && axisPosition !== 'bottom') { // Default bottom of X axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom'; } } else { // Fix position if (axisPosition !== 'left' && axisPosition !== 'right') { // Default left of Y axisPosition = axisPositionUsed.left ? 'right' : 'left'; } } axisPositionUsed[axisPosition] = true; var axis = new Axis2D(axisType, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition); var isCategory = axis.type === 'category'; axis.onBand = isCategory && axisModel.get('boundaryGap'); axis.inverse = axisModel.get('inverse'); // Inject axis into axisModel axisModel.axis = axis; // Inject axisModel into axis axis.model = axisModel; // Inject grid info axis axis.grid = this; // Index of axis, can be used as key axis.index = idx; this._axesList.push(axis); axesMap[axisType][idx] = axis; axesCount[axisType]++; }; } }; /** * Update cartesian properties from series * @param {module:echarts/model/Option} option * @private */ gridProto._updateScale = function (ecModel, gridModel) { // Reset scale each(this._axesList, function (axis) { axis.scale.setExtent(Infinity, -Infinity); }); ecModel.eachSeries(function (seriesModel) { if (isCartesian2D(seriesModel)) { var axesModels = findAxesModels(seriesModel, ecModel); var xAxisModel = axesModels[0]; var yAxisModel = axesModels[1]; if (!isAxisUsedInTheGrid(xAxisModel, gridModel, ecModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel, ecModel)) { return; } var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex); var data = seriesModel.getData(); var xAxis = cartesian.getAxis('x'); var yAxis = cartesian.getAxis('y'); if (data.type === 'list') { unionExtent(data, xAxis, seriesModel); unionExtent(data, yAxis, seriesModel); } } }, this); function unionExtent(data, axis, seriesModel) { each(data.mapDimension(axis.dim, true), function (dim) { axis.scale.unionExtentFromData( // For example, the extent of the orginal dimension // is [0.1, 0.5], the extent of the `stackResultDimension` // is [7, 9], the final extent should not include [0.1, 0.5]. data, getStackedDimension(data, dim)); }); } }; /** * @param {string} [dim] 'x' or 'y' or 'auto' or null/undefined * @return {Object} {baseAxes: [], otherAxes: []} */ gridProto.getTooltipAxes = function (dim) { var baseAxes = []; var otherAxes = []; each(this.getCartesians(), function (cartesian) { var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis(); var otherAxis = cartesian.getOtherAxis(baseAxis); indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis); indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis); }); return { baseAxes: baseAxes, otherAxes: otherAxes }; }; /** * @inner */ function updateAxisTransform(axis, coordBase) { var axisExtent = axis.getExtent(); var axisExtentSum = axisExtent[0] + axisExtent[1]; // Fast transform axis.toGlobalCoord = axis.dim === 'x' ? function (coord) { return coord + coordBase; } : function (coord) { return axisExtentSum - coord + coordBase; }; axis.toLocalCoord = axis.dim === 'x' ? function (coord) { return coord - coordBase; } : function (coord) { return axisExtentSum - coord + coordBase; }; } var axesTypes = ['xAxis', 'yAxis']; /** * @inner */ function findAxesModels(seriesModel, ecModel) { return map(axesTypes, function (axisType) { var axisModel = seriesModel.getReferringComponents(axisType)[0]; return axisModel; }); } /** * @inner */ function isCartesian2D(seriesModel) { return seriesModel.get('coordinateSystem') === 'cartesian2d'; } Grid.create = function (ecModel, api) { var grids = []; ecModel.eachComponent('grid', function (gridModel, idx) { var grid = new Grid(gridModel, ecModel, api); grid.name = 'grid_' + idx; // dataSampling requires axis extent, so resize // should be performed in create stage. grid.resize(gridModel, api, true); gridModel.coordinateSystem = grid; grids.push(grid); }); // Inject the coordinateSystems into seriesModel ecModel.eachSeries(function (seriesModel) { if (!isCartesian2D(seriesModel)) { return; } var axesModels = findAxesModels(seriesModel, ecModel); var xAxisModel = axesModels[0]; var yAxisModel = axesModels[1]; var gridModel = xAxisModel.getCoordSysModel(); var grid = gridModel.coordinateSystem; seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex); }); return grids; }; // For deciding which dimensions to use when creating list data Grid.dimensions = Grid.prototype.dimensions = Cartesian2D.prototype.dimensions; CoordinateSystem.register('cartesian2d', Grid); var _default = Grid; module.exports = _default; /***/ }), /* 564 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/Cartesian2D.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var Cartesian = __webpack_require__(/*! ./Cartesian */ 565); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function Cartesian2D(name) { Cartesian.call(this, name); } Cartesian2D.prototype = { constructor: Cartesian2D, type: 'cartesian2d', /** * @type {Array.} * @readOnly */ dimensions: ['x', 'y'], /** * Base axis will be used on stacking. * * @return {module:echarts/coord/cartesian/Axis2D} */ getBaseAxis: function getBaseAxis() { return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x'); }, /** * If contain point * @param {Array.} point * @return {boolean} */ containPoint: function containPoint(point) { var axisX = this.getAxis('x'); var axisY = this.getAxis('y'); return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1])); }, /** * If contain data * @param {Array.} data * @return {boolean} */ containData: function containData(data) { return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]); }, /** * @param {Array.} data * @param {Array.} out * @return {Array.} */ dataToPoint: function dataToPoint(data, reserved, out) { var xAxis = this.getAxis('x'); var yAxis = this.getAxis('y'); out = out || []; out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0])); out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1])); return out; }, /** * @param {Array.} data * @param {Array.} out * @return {Array.} */ clampData: function clampData(data, out) { var xScale = this.getAxis('x').scale; var yScale = this.getAxis('y').scale; var xAxisExtent = xScale.getExtent(); var yAxisExtent = yScale.getExtent(); var x = xScale.parse(data[0]); var y = yScale.parse(data[1]); out = out || []; out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1])); out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1])); return out; }, /** * @param {Array.} point * @param {Array.} out * @return {Array.} */ pointToData: function pointToData(point, out) { var xAxis = this.getAxis('x'); var yAxis = this.getAxis('y'); out = out || []; out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0])); out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1])); return out; }, /** * Get other axis * @param {module:echarts/coord/cartesian/Axis2D} axis */ getOtherAxis: function getOtherAxis(axis) { return this.getAxis(axis.dim === 'x' ? 'y' : 'x'); }, /** * Get rect area of cartesian. * Area will have a contain function to determine if a point is in the coordinate system. * @return {BoundingRect} */ getArea: function getArea() { var xExtent = this.getAxis('x').getGlobalExtent(); var yExtent = this.getAxis('y').getGlobalExtent(); var x = Math.min(xExtent[0], xExtent[1]); var y = Math.min(yExtent[0], yExtent[1]); var width = Math.max(xExtent[0], xExtent[1]) - x; var height = Math.max(yExtent[0], yExtent[1]) - y; var rect = new BoundingRect(x, y, width, height); return rect; } }; zrUtil.inherits(Cartesian2D, Cartesian); var _default = Cartesian2D; module.exports = _default; /***/ }), /* 565 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/Cartesian.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Cartesian coordinate system * @module echarts/coord/Cartesian * */ function dimAxisMapper(dim) { return this._axes[dim]; } /** * @alias module:echarts/coord/Cartesian * @constructor */ var Cartesian = function Cartesian(name) { this._axes = {}; this._dimList = []; /** * @type {string} */ this.name = name || ''; }; Cartesian.prototype = { constructor: Cartesian, type: 'cartesian', /** * Get axis * @param {number|string} dim * @return {module:echarts/coord/Cartesian~Axis} */ getAxis: function getAxis(dim) { return this._axes[dim]; }, /** * Get axes list * @return {Array.} */ getAxes: function getAxes() { return zrUtil.map(this._dimList, dimAxisMapper, this); }, /** * Get axes list by given scale type */ getAxesByScale: function getAxesByScale(scaleType) { scaleType = scaleType.toLowerCase(); return zrUtil.filter(this.getAxes(), function (axis) { return axis.scale.type === scaleType; }); }, /** * Add axis * @param {module:echarts/coord/Cartesian.Axis} */ addAxis: function addAxis(axis) { var dim = axis.dim; this._axes[dim] = axis; this._dimList.push(dim); }, /** * Convert data to coord in nd space * @param {Array.|Object.} val * @return {Array.|Object.} */ dataToCoord: function dataToCoord(val) { return this._dataCoordConvert(val, 'dataToCoord'); }, /** * Convert coord in nd space to data * @param {Array.|Object.} val * @return {Array.|Object.} */ coordToData: function coordToData(val) { return this._dataCoordConvert(val, 'coordToData'); }, _dataCoordConvert: function _dataCoordConvert(input, method) { var dimList = this._dimList; var output = input instanceof Array ? [] : {}; for (var i = 0; i < dimList.length; i++) { var dim = dimList[i]; var axis = this._axes[dim]; output[dim] = axis[method](input[dim]); } return output; } }; var _default = Cartesian; module.exports = _default; /***/ }), /* 566 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/Axis2D.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Axis = __webpack_require__(/*! ../Axis */ 547); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Extend axis 2d * @constructor module:echarts/coord/cartesian/Axis2D * @extends {module:echarts/coord/cartesian/Axis} * @param {string} dim * @param {*} scale * @param {Array.} coordExtent * @param {string} axisType * @param {string} position */ var Axis2D = function Axis2D(dim, scale, coordExtent, axisType, position) { Axis.call(this, dim, scale, coordExtent); /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' * @type {string} */ this.type = axisType || 'value'; /** * Axis position * - 'top' * - 'bottom' * - 'left' * - 'right' */ this.position = position || 'bottom'; }; Axis2D.prototype = { constructor: Axis2D, /** * Index of axis, can be used as key */ index: 0, /** * Implemented in . * @return {Array.} * If not on zero of other axis, return null/undefined. * If no axes, return an empty array. */ getAxesOnZeroOf: null, /** * Axis model * @param {module:echarts/coord/cartesian/AxisModel} */ model: null, isHorizontal: function isHorizontal() { var position = this.position; return position === 'top' || position === 'bottom'; }, /** * Each item cooresponds to this.getExtent(), which * means globalExtent[0] may greater than globalExtent[1], * unless `asc` is input. * * @param {boolean} [asc] * @return {Array.} */ getGlobalExtent: function getGlobalExtent(asc) { var ret = this.getExtent(); ret[0] = this.toGlobalCoord(ret[0]); ret[1] = this.toGlobalCoord(ret[1]); asc && ret[0] > ret[1] && ret.reverse(); return ret; }, getOtherAxis: function getOtherAxis() { this.grid.getOtherAxis(); }, /** * @override */ pointToData: function pointToData(point, clamp) { return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp); }, /** * Transform global coord to local coord, * i.e. var localCoord = axis.toLocalCoord(80); * designate by module:echarts/coord/cartesian/Grid. * @type {Function} */ toLocalCoord: null, /** * Transform global coord to local coord, * i.e. var globalCoord = axis.toLocalCoord(40); * designate by module:echarts/coord/cartesian/Grid. * @type {Function} */ toGlobalCoord: null }; zrUtil.inherits(Axis2D, Axis); var _default = Axis2D; module.exports = _default; /***/ }), /* 567 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/GridModel.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./AxisModel */ 568); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Grid 是在有直角坐标系的时候必须要存在的 // 所以这里也要被 Cartesian2D 依赖 var _default = ComponentModel.extend({ type: 'grid', dependencies: ['xAxis', 'yAxis'], layoutMode: 'box', /** * @type {module:echarts/coord/cartesian/Grid} */ coordinateSystem: null, defaultOption: { show: false, zlevel: 0, z: 0, left: '10%', top: 60, right: '10%', bottom: 60, // If grid size contain label containLabel: false, // width: {totalWidth} - left - right, // height: {totalHeight} - top - bottom, backgroundColor: 'rgba(0,0,0,0)', borderWidth: 1, borderColor: '#ccc' } }); module.exports = _default; /***/ }), /* 568 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/AxisModel.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); var axisModelCreator = __webpack_require__(/*! ../axisModelCreator */ 569); var axisModelCommonMixin = __webpack_require__(/*! ../axisModelCommonMixin */ 542); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var AxisModel = ComponentModel.extend({ type: 'cartesian2dAxis', /** * @type {module:echarts/coord/cartesian/Axis2D} */ axis: null, /** * @override */ init: function init() { AxisModel.superApply(this, 'init', arguments); this.resetRange(); }, /** * @override */ mergeOption: function mergeOption() { AxisModel.superApply(this, 'mergeOption', arguments); this.resetRange(); }, /** * @override */ restoreData: function restoreData() { AxisModel.superApply(this, 'restoreData', arguments); this.resetRange(); }, /** * @override * @return {module:echarts/model/Component} */ getCoordSysModel: function getCoordSysModel() { return this.ecModel.queryComponents({ mainType: 'grid', index: this.option.gridIndex, id: this.option.gridId })[0]; } }); function getAxisType(axisDim, option) { // Default axis with data is category axis return option.type || (option.data ? 'category' : 'value'); } zrUtil.merge(AxisModel.prototype, axisModelCommonMixin); var extraOption = { // gridIndex: 0, // gridId: '', // Offset is for multiple axis on the same position offset: 0 }; axisModelCreator('x', AxisModel, getAxisType, extraOption); axisModelCreator('y', AxisModel, getAxisType, extraOption); var _default = AxisModel; module.exports = _default; /***/ }), /* 569 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/axisModelCreator.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var axisDefault = __webpack_require__(/*! ./axisDefault */ 570); var ComponentModel = __webpack_require__(/*! ../model/Component */ 486); var _layout = __webpack_require__(/*! ../util/layout */ 488); var getLayoutParams = _layout.getLayoutParams; var mergeLayoutParam = _layout.mergeLayoutParam; var OrdinalMeta = __webpack_require__(/*! ../data/OrdinalMeta */ 536); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // FIXME axisType is fixed ? var AXIS_TYPES = ['value', 'category', 'time', 'log']; /** * Generate sub axis model class * @param {string} axisName 'x' 'y' 'radius' 'angle' 'parallel' * @param {module:echarts/model/Component} BaseAxisModelClass * @param {Function} axisTypeDefaulter * @param {Object} [extraDefaultOption] */ function _default(axisName, BaseAxisModelClass, axisTypeDefaulter, extraDefaultOption) { zrUtil.each(AXIS_TYPES, function (axisType) { BaseAxisModelClass.extend({ /** * @readOnly */ type: axisName + 'Axis.' + axisType, mergeDefaultAndTheme: function mergeDefaultAndTheme(option, ecModel) { var layoutMode = this.layoutMode; var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; var themeModel = ecModel.getTheme(); zrUtil.merge(option, themeModel.get(axisType + 'Axis')); zrUtil.merge(option, this.getDefaultOption()); option.type = axisTypeDefaulter(axisName, option); if (layoutMode) { mergeLayoutParam(option, inputPositionParams, layoutMode); } }, /** * @override */ optionUpdated: function optionUpdated() { var thisOption = this.option; if (thisOption.type === 'category') { this.__ordinalMeta = OrdinalMeta.createByAxisModel(this); } }, /** * Should not be called before all of 'getInitailData' finished. * Because categories are collected during initializing data. */ getCategories: function getCategories(rawData) { var option = this.option; // FIXME // warning if called before all of 'getInitailData' finished. if (option.type === 'category') { if (rawData) { return option.data; } return this.__ordinalMeta.categories; } }, getOrdinalMeta: function getOrdinalMeta() { return this.__ordinalMeta; }, defaultOption: zrUtil.mergeAll([{}, axisDefault[axisType + 'Axis'], extraDefaultOption], true) }); }); ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', zrUtil.curry(axisTypeDefaulter, axisName)); } module.exports = _default; /***/ }), /* 570 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/axisDefault.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var defaultOption = { show: true, zlevel: 0, z: 0, // Inverse the axis. inverse: false, // Axis name displayed. name: '', // 'start' | 'middle' | 'end' nameLocation: 'end', // By degree. By default auto rotate by nameLocation. nameRotate: null, nameTruncate: { maxWidth: null, ellipsis: '...', placeholder: '.' }, // Use global text style by default. nameTextStyle: {}, // The gap between axisName and axisLine. nameGap: 15, // Default `false` to support tooltip. silent: false, // Default `false` to avoid legacy user event listener fail. triggerEvent: false, tooltip: { show: false }, axisPointer: {}, axisLine: { show: true, onZero: true, onZeroAxisIndex: null, lineStyle: { color: '#333', width: 1, type: 'solid' }, // The arrow at both ends the the axis. symbol: ['none', 'none'], symbolSize: [10, 15] }, axisTick: { show: true, // Whether axisTick is inside the grid or outside the grid. inside: false, // The length of axisTick. length: 5, lineStyle: { width: 1 } }, axisLabel: { show: true, // Whether axisLabel is inside the grid or outside the grid. inside: false, rotate: 0, // true | false | null/undefined (auto) showMinLabel: null, // true | false | null/undefined (auto) showMaxLabel: null, margin: 8, // formatter: null, fontSize: 12 }, splitLine: { show: true, lineStyle: { color: ['#ccc'], width: 1, type: 'solid' } }, splitArea: { show: false, areaStyle: { color: ['rgba(250,250,250,0.3)', 'rgba(200,200,200,0.3)'] } } }; var axisDefault = {}; axisDefault.categoryAxis = zrUtil.merge({ // The gap at both ends of the axis. For categoryAxis, boolean. boundaryGap: true, // Set false to faster category collection. // Only usefull in the case like: category is // ['2012-01-01', '2012-01-02', ...], where the input // data has been ensured not duplicate and is large data. // null means "auto": // if axis.data provided, do not deduplication, // else do deduplication. deduplication: null, // splitArea: { // show: false // }, splitLine: { show: false }, axisTick: { // If tick is align with label when boundaryGap is true alignWithLabel: false, interval: 'auto' }, axisLabel: { interval: 'auto' } }, defaultOption); axisDefault.valueAxis = zrUtil.merge({ // The gap at both ends of the axis. For value axis, [GAP, GAP], where // `GAP` can be an absolute pixel number (like `35`), or percent (like `'30%'`) boundaryGap: [0, 0], // TODO // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60] // Min value of the axis. can be: // + a number // + 'dataMin': use the min value in data. // + null/undefined: auto decide min value (consider pretty look and boundaryGap). // min: null, // Max value of the axis. can be: // + a number // + 'dataMax': use the max value in data. // + null/undefined: auto decide max value (consider pretty look and boundaryGap). // max: null, // Readonly prop, specifies start value of the range when using data zoom. // rangeStart: null // Readonly prop, specifies end value of the range when using data zoom. // rangeEnd: null // Optional value can be: // + `false`: always include value 0. // + `true`: the extent do not consider value 0. // scale: false, // AxisTick and axisLabel and splitLine are caculated based on splitNumber. splitNumber: 5, // Interval specifies the span of the ticks is mandatorily. // interval: null // Specify min interval when auto calculate tick interval. // minInterval: null // Specify max interval when auto calculate tick interval. // maxInterval: null minorTick: { // Minor tick, not available for cateogry axis. show: false, // Split number of minor ticks. The value should be in range of (0, 100) splitNumber: 5, // Lenght of minor tick length: 3, // Same inside with axisTick // Line style lineStyle: {// Default to be same with axisTick } }, minorSplitLine: { show: false, lineStyle: { color: '#eee', width: 1 } } }, defaultOption); axisDefault.timeAxis = zrUtil.defaults({ scale: true, min: 'dataMin', max: 'dataMax' }, axisDefault.valueAxis); axisDefault.logAxis = zrUtil.defaults({ scale: true, logBase: 10 }, axisDefault.valueAxis); var _default = axisDefault; module.exports = _default; /***/ }), /* 571 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ../coord/cartesian/AxisModel */ 568); __webpack_require__(/*! ./axis/CartesianAxisView */ 572); /***/ }), /* 572 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/CartesianAxisView.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var AxisBuilder = __webpack_require__(/*! ./AxisBuilder */ 573); var AxisView = __webpack_require__(/*! ./AxisView */ 574); var cartesianAxisHelper = __webpack_require__(/*! ../../coord/cartesian/cartesianAxisHelper */ 576); var _axisSplitHelper = __webpack_require__(/*! ./axisSplitHelper */ 577); var rectCoordAxisBuildSplitArea = _axisSplitHelper.rectCoordAxisBuildSplitArea; var rectCoordAxisHandleRemove = _axisSplitHelper.rectCoordAxisHandleRemove; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName']; var selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine']; var CartesianAxisView = AxisView.extend({ type: 'cartesianAxis', axisPointerClass: 'CartesianAxisPointer', /** * @override */ render: function render(axisModel, ecModel, api, payload) { this.group.removeAll(); var oldAxisGroup = this._axisGroup; this._axisGroup = new graphic.Group(); this.group.add(this._axisGroup); if (!axisModel.get('show')) { return; } var gridModel = axisModel.getCoordSysModel(); var layout = cartesianAxisHelper.layout(gridModel, axisModel); var axisBuilder = new AxisBuilder(axisModel, layout); zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder); this._axisGroup.add(axisBuilder.getGroup()); zrUtil.each(selfBuilderAttrs, function (name) { if (axisModel.get(name + '.show')) { this['_' + name](axisModel, gridModel); } }, this); graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel); CartesianAxisView.superCall(this, 'render', axisModel, ecModel, api, payload); }, remove: function remove() { rectCoordAxisHandleRemove(this); }, /** * @param {module:echarts/coord/cartesian/AxisModel} axisModel * @param {module:echarts/coord/cartesian/GridModel} gridModel * @private */ _splitLine: function _splitLine(axisModel, gridModel) { var axis = axisModel.axis; if (axis.scale.isBlank()) { return; } var splitLineModel = axisModel.getModel('splitLine'); var lineStyleModel = splitLineModel.getModel('lineStyle'); var lineColors = lineStyleModel.get('color'); lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors]; var gridRect = gridModel.coordinateSystem.getRect(); var isHorizontal = axis.isHorizontal(); var lineCount = 0; var ticksCoords = axis.getTicksCoords({ tickModel: splitLineModel }); var p1 = []; var p2 = []; var lineStyle = lineStyleModel.getLineStyle(); for (var i = 0; i < ticksCoords.length; i++) { var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord); if (isHorizontal) { p1[0] = tickCoord; p1[1] = gridRect.y; p2[0] = tickCoord; p2[1] = gridRect.y + gridRect.height; } else { p1[0] = gridRect.x; p1[1] = tickCoord; p2[0] = gridRect.x + gridRect.width; p2[1] = tickCoord; } var colorIndex = lineCount++ % lineColors.length; var tickValue = ticksCoords[i].tickValue; this._axisGroup.add(new graphic.Line({ anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null, subPixelOptimize: true, shape: { x1: p1[0], y1: p1[1], x2: p2[0], y2: p2[1] }, style: zrUtil.defaults({ stroke: lineColors[colorIndex] }, lineStyle), silent: true })); } }, /** * @param {module:echarts/coord/cartesian/AxisModel} axisModel * @param {module:echarts/coord/cartesian/GridModel} gridModel * @private */ _minorSplitLine: function _minorSplitLine(axisModel, gridModel) { var axis = axisModel.axis; var minorSplitLineModel = axisModel.getModel('minorSplitLine'); var lineStyleModel = minorSplitLineModel.getModel('lineStyle'); var gridRect = gridModel.coordinateSystem.getRect(); var isHorizontal = axis.isHorizontal(); var minorTicksCoords = axis.getMinorTicksCoords(); if (!minorTicksCoords.length) { return; } var p1 = []; var p2 = []; var lineStyle = lineStyleModel.getLineStyle(); for (var i = 0; i < minorTicksCoords.length; i++) { for (var k = 0; k < minorTicksCoords[i].length; k++) { var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord); if (isHorizontal) { p1[0] = tickCoord; p1[1] = gridRect.y; p2[0] = tickCoord; p2[1] = gridRect.y + gridRect.height; } else { p1[0] = gridRect.x; p1[1] = tickCoord; p2[0] = gridRect.x + gridRect.width; p2[1] = tickCoord; } this._axisGroup.add(new graphic.Line({ anid: 'minor_line_' + minorTicksCoords[i][k].tickValue, subPixelOptimize: true, shape: { x1: p1[0], y1: p1[1], x2: p2[0], y2: p2[1] }, style: lineStyle, silent: true })); } } }, /** * @param {module:echarts/coord/cartesian/AxisModel} axisModel * @param {module:echarts/coord/cartesian/GridModel} gridModel * @private */ _splitArea: function _splitArea(axisModel, gridModel) { rectCoordAxisBuildSplitArea(this, this._axisGroup, axisModel, gridModel); } }); CartesianAxisView.extend({ type: 'xAxis' }); CartesianAxisView.extend({ type: 'yAxis' }); /***/ }), /* 573 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/AxisBuilder.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var retrieve = _util.retrieve; var defaults = _util.defaults; var extend = _util.extend; var each = _util.each; var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var Model = __webpack_require__(/*! ../../model/Model */ 445); var _number = __webpack_require__(/*! ../../util/number */ 489); var isRadianAroundZero = _number.isRadianAroundZero; var remRadian = _number.remRadian; var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var matrixUtil = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var _vector = __webpack_require__(/*! zrender/lib/core/vector */ 405); var v2ApplyTransform = _vector.applyTransform; var _axisHelper = __webpack_require__(/*! ../../coord/axisHelper */ 533); var shouldShowAllLabels = _axisHelper.shouldShowAllLabels; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PI = Math.PI; /** * A final axis is translated and rotated from a "standard axis". * So opt.position and opt.rotation is required. * * A standard axis is and axis from [0, 0] to [0, axisExtent[1]], * for example: (0, 0) ------------> (0, 50) * * nameDirection or tickDirection or labelDirection is 1 means tick * or label is below the standard axis, whereas is -1 means above * the standard axis. labelOffset means offset between label and axis, * which is useful when 'onZero', where axisLabel is in the grid and * label in outside grid. * * Tips: like always, * positive rotation represents anticlockwise, and negative rotation * represents clockwise. * The direction of position coordinate is the same as the direction * of screen coordinate. * * Do not need to consider axis 'inverse', which is auto processed by * axis extent. * * @param {module:zrender/container/Group} group * @param {Object} axisModel * @param {Object} opt Standard axis parameters. * @param {Array.} opt.position [x, y] * @param {number} opt.rotation by radian * @param {number} [opt.nameDirection=1] 1 or -1 Used when nameLocation is 'middle' or 'center'. * @param {number} [opt.tickDirection=1] 1 or -1 * @param {number} [opt.labelDirection=1] 1 or -1 * @param {number} [opt.labelOffset=0] Usefull when onZero. * @param {string} [opt.axisLabelShow] default get from axisModel. * @param {string} [opt.axisName] default get from axisModel. * @param {number} [opt.axisNameAvailableWidth] * @param {number} [opt.labelRotate] by degree, default get from axisModel. * @param {number} [opt.strokeContainThreshold] Default label interval when label * @param {number} [opt.nameTruncateMaxWidth] */ var AxisBuilder = function AxisBuilder(axisModel, opt) { /** * @readOnly */ this.opt = opt; /** * @readOnly */ this.axisModel = axisModel; // Default value defaults(opt, { labelOffset: 0, nameDirection: 1, tickDirection: 1, labelDirection: 1, silent: true }); /** * @readOnly */ this.group = new graphic.Group(); // FIXME Not use a seperate text group? var dumbGroup = new graphic.Group({ position: opt.position.slice(), rotation: opt.rotation }); // this.group.add(dumbGroup); // this._dumbGroup = dumbGroup; dumbGroup.updateTransform(); this._transform = dumbGroup.transform; this._dumbGroup = dumbGroup; }; AxisBuilder.prototype = { constructor: AxisBuilder, hasBuilder: function hasBuilder(name) { return !!builders[name]; }, add: function add(name) { builders[name].call(this); }, getGroup: function getGroup() { return this.group; } }; var builders = { /** * @private */ axisLine: function axisLine() { var opt = this.opt; var axisModel = this.axisModel; if (!axisModel.get('axisLine.show')) { return; } var extent = this.axisModel.axis.getExtent(); var matrix = this._transform; var pt1 = [extent[0], 0]; var pt2 = [extent[1], 0]; if (matrix) { v2ApplyTransform(pt1, pt1, matrix); v2ApplyTransform(pt2, pt2, matrix); } var lineStyle = extend({ lineCap: 'round' }, axisModel.getModel('axisLine.lineStyle').getLineStyle()); this.group.add(new graphic.Line({ // Id for animation anid: 'line', subPixelOptimize: true, shape: { x1: pt1[0], y1: pt1[1], x2: pt2[0], y2: pt2[1] }, style: lineStyle, strokeContainThreshold: opt.strokeContainThreshold || 5, silent: true, z2: 1 })); var arrows = axisModel.get('axisLine.symbol'); var arrowSize = axisModel.get('axisLine.symbolSize'); var arrowOffset = axisModel.get('axisLine.symbolOffset') || 0; if (typeof arrowOffset === 'number') { arrowOffset = [arrowOffset, arrowOffset]; } if (arrows != null) { if (typeof arrows === 'string') { // Use the same arrow for start and end point arrows = [arrows, arrows]; } if (typeof arrowSize === 'string' || typeof arrowSize === 'number') { // Use the same size for width and height arrowSize = [arrowSize, arrowSize]; } var symbolWidth = arrowSize[0]; var symbolHeight = arrowSize[1]; each([{ rotate: opt.rotation + Math.PI / 2, offset: arrowOffset[0], r: 0 }, { rotate: opt.rotation - Math.PI / 2, offset: arrowOffset[1], r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1])) }], function (point, index) { if (arrows[index] !== 'none' && arrows[index] != null) { var symbol = createSymbol(arrows[index], -symbolWidth / 2, -symbolHeight / 2, symbolWidth, symbolHeight, lineStyle.stroke, true); // Calculate arrow position with offset var r = point.r + point.offset; var pos = [pt1[0] + r * Math.cos(opt.rotation), pt1[1] - r * Math.sin(opt.rotation)]; symbol.attr({ rotation: point.rotate, position: pos, silent: true, z2: 11 }); this.group.add(symbol); } }, this); } }, /** * @private */ axisTickLabel: function axisTickLabel() { var axisModel = this.axisModel; var opt = this.opt; var ticksEls = buildAxisMajorTicks(this, axisModel, opt); var labelEls = buildAxisLabel(this, axisModel, opt); fixMinMaxLabelShow(axisModel, labelEls, ticksEls); buildAxisMinorTicks(this, axisModel, opt); }, /** * @private */ axisName: function axisName() { var opt = this.opt; var axisModel = this.axisModel; var name = retrieve(opt.axisName, axisModel.get('name')); if (!name) { return; } var nameLocation = axisModel.get('nameLocation'); var nameDirection = opt.nameDirection; var textStyleModel = axisModel.getModel('nameTextStyle'); var gap = axisModel.get('nameGap') || 0; var extent = this.axisModel.axis.getExtent(); var gapSignal = extent[0] > extent[1] ? -1 : 1; var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, // 'middle' // Reuse labelOffset. isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0]; var labelLayout; var nameRotation = axisModel.get('nameRotate'); if (nameRotation != null) { nameRotation = nameRotation * PI / 180; // To radian. } var axisNameAvailableWidth; if (isNameLocationCenter(nameLocation)) { labelLayout = innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, // Adapt to axis. nameDirection); } else { labelLayout = endTextLayout(opt, nameLocation, nameRotation || 0, extent); axisNameAvailableWidth = opt.axisNameAvailableWidth; if (axisNameAvailableWidth != null) { axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation)); !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null); } } var textFont = textStyleModel.getFont(); var truncateOpt = axisModel.get('nameTruncate', true) || {}; var ellipsis = truncateOpt.ellipsis; var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth); // FIXME // truncate rich text? (consider performance) var truncatedText = ellipsis != null && maxWidth != null ? formatUtil.truncateText(name, maxWidth, textFont, ellipsis, { minChar: 2, placeholder: truncateOpt.placeholder }) : name; var tooltipOpt = axisModel.get('tooltip', true); var mainType = axisModel.mainType; var formatterParams = { componentType: mainType, name: name, $vars: ['name'] }; formatterParams[mainType + 'Index'] = axisModel.componentIndex; var textEl = new graphic.Text({ // Id for animation anid: 'name', __fullText: name, __truncatedText: truncatedText, position: pos, rotation: labelLayout.rotation, silent: isLabelSilent(axisModel), z2: 1, tooltip: tooltipOpt && tooltipOpt.show ? extend({ content: name, formatter: function formatter() { return name; }, formatterParams: formatterParams }, tooltipOpt) : null }); graphic.setTextStyle(textEl.style, textStyleModel, { text: truncatedText, textFont: textFont, textFill: textStyleModel.getTextColor() || axisModel.get('axisLine.lineStyle.color'), textAlign: textStyleModel.get('align') || labelLayout.textAlign, textVerticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign }); if (axisModel.get('triggerEvent')) { textEl.eventData = makeAxisEventDataBase(axisModel); textEl.eventData.targetType = 'axisName'; textEl.eventData.name = name; } // FIXME this._dumbGroup.add(textEl); textEl.updateTransform(); this.group.add(textEl); textEl.decomposeTransform(); } }; var makeAxisEventDataBase = AxisBuilder.makeAxisEventDataBase = function (axisModel) { var eventData = { componentType: axisModel.mainType, componentIndex: axisModel.componentIndex }; eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex; return eventData; }; /** * @public * @static * @param {Object} opt * @param {number} axisRotation in radian * @param {number} textRotation in radian * @param {number} direction * @return {Object} { * rotation, // according to axis * textAlign, * textVerticalAlign * } */ var innerTextLayout = AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) { var rotationDiff = remRadian(textRotation - axisRotation); var textAlign; var textVerticalAlign; if (isRadianAroundZero(rotationDiff)) { // Label is parallel with axis line. textVerticalAlign = direction > 0 ? 'top' : 'bottom'; textAlign = 'center'; } else if (isRadianAroundZero(rotationDiff - PI)) { // Label is inverse parallel with axis line. textVerticalAlign = direction > 0 ? 'bottom' : 'top'; textAlign = 'center'; } else { textVerticalAlign = 'middle'; if (rotationDiff > 0 && rotationDiff < PI) { textAlign = direction > 0 ? 'right' : 'left'; } else { textAlign = direction > 0 ? 'left' : 'right'; } } return { rotation: rotationDiff, textAlign: textAlign, textVerticalAlign: textVerticalAlign }; }; function endTextLayout(opt, textPosition, textRotate, extent) { var rotationDiff = remRadian(textRotate - opt.rotation); var textAlign; var textVerticalAlign; var inverse = extent[0] > extent[1]; var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse; if (isRadianAroundZero(rotationDiff - PI / 2)) { textVerticalAlign = onLeft ? 'bottom' : 'top'; textAlign = 'center'; } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) { textVerticalAlign = onLeft ? 'top' : 'bottom'; textAlign = 'center'; } else { textVerticalAlign = 'middle'; if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) { textAlign = onLeft ? 'left' : 'right'; } else { textAlign = onLeft ? 'right' : 'left'; } } return { rotation: rotationDiff, textAlign: textAlign, textVerticalAlign: textVerticalAlign }; } var isLabelSilent = AxisBuilder.isLabelSilent = function (axisModel) { var tooltipOpt = axisModel.get('tooltip'); return axisModel.get('silent') // Consider mouse cursor, add these restrictions. || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show); }; function fixMinMaxLabelShow(axisModel, labelEls, tickEls) { if (shouldShowAllLabels(axisModel.axis)) { return; } // If min or max are user set, we need to check // If the tick on min(max) are overlap on their neighbour tick // If they are overlapped, we need to hide the min(max) tick label var showMinLabel = axisModel.get('axisLabel.showMinLabel'); var showMaxLabel = axisModel.get('axisLabel.showMaxLabel'); // FIXME // Have not consider onBand yet, where tick els is more than label els. labelEls = labelEls || []; tickEls = tickEls || []; var firstLabel = labelEls[0]; var nextLabel = labelEls[1]; var lastLabel = labelEls[labelEls.length - 1]; var prevLabel = labelEls[labelEls.length - 2]; var firstTick = tickEls[0]; var nextTick = tickEls[1]; var lastTick = tickEls[tickEls.length - 1]; var prevTick = tickEls[tickEls.length - 2]; if (showMinLabel === false) { ignoreEl(firstLabel); ignoreEl(firstTick); } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) { if (showMinLabel) { ignoreEl(nextLabel); ignoreEl(nextTick); } else { ignoreEl(firstLabel); ignoreEl(firstTick); } } if (showMaxLabel === false) { ignoreEl(lastLabel); ignoreEl(lastTick); } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) { if (showMaxLabel) { ignoreEl(prevLabel); ignoreEl(prevTick); } else { ignoreEl(lastLabel); ignoreEl(lastTick); } } } function ignoreEl(el) { el && (el.ignore = true); } function isTwoLabelOverlapped(current, next, labelLayout) { // current and next has the same rotation. var firstRect = current && current.getBoundingRect().clone(); var nextRect = next && next.getBoundingRect().clone(); if (!firstRect || !nextRect) { return; } // When checking intersect of two rotated labels, we use mRotationBack // to avoid that boundingRect is enlarge when using `boundingRect.applyTransform`. var mRotationBack = matrixUtil.identity([]); matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation); firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform())); nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform())); return firstRect.intersect(nextRect); } function isNameLocationCenter(nameLocation) { return nameLocation === 'middle' || nameLocation === 'center'; } function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, aniid) { var tickEls = []; var pt1 = []; var pt2 = []; for (var i = 0; i < ticksCoords.length; i++) { var tickCoord = ticksCoords[i].coord; pt1[0] = tickCoord; pt1[1] = 0; pt2[0] = tickCoord; pt2[1] = tickEndCoord; if (tickTransform) { v2ApplyTransform(pt1, pt1, tickTransform); v2ApplyTransform(pt2, pt2, tickTransform); } // Tick line, Not use group transform to have better line draw var tickEl = new graphic.Line({ // Id for animation anid: aniid + '_' + ticksCoords[i].tickValue, subPixelOptimize: true, shape: { x1: pt1[0], y1: pt1[1], x2: pt2[0], y2: pt2[1] }, style: tickLineStyle, z2: 2, silent: true }); tickEls.push(tickEl); } return tickEls; } function buildAxisMajorTicks(axisBuilder, axisModel, opt) { var axis = axisModel.axis; var tickModel = axisModel.getModel('axisTick'); if (!tickModel.get('show') || axis.scale.isBlank()) { return; } var lineStyleModel = tickModel.getModel('lineStyle'); var tickEndCoord = opt.tickDirection * tickModel.get('length'); var ticksCoords = axis.getTicksCoords(); var ticksEls = createTicks(ticksCoords, axisBuilder._transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), { stroke: axisModel.get('axisLine.lineStyle.color') }), 'ticks'); for (var i = 0; i < ticksEls.length; i++) { axisBuilder.group.add(ticksEls[i]); } return ticksEls; } function buildAxisMinorTicks(axisBuilder, axisModel, opt) { var axis = axisModel.axis; var minorTickModel = axisModel.getModel('minorTick'); if (!minorTickModel.get('show') || axis.scale.isBlank()) { return; } var minorTicksCoords = axis.getMinorTicksCoords(); if (!minorTicksCoords.length) { return; } var lineStyleModel = minorTickModel.getModel('lineStyle'); var tickEndCoord = opt.tickDirection * minorTickModel.get('length'); var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), { stroke: axisModel.get('axisLine.lineStyle.color') })); for (var i = 0; i < minorTicksCoords.length; i++) { var minorTicksEls = createTicks(minorTicksCoords[i], axisBuilder._transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i); for (var k = 0; k < minorTicksEls.length; k++) { axisBuilder.group.add(minorTicksEls[k]); } } } function buildAxisLabel(axisBuilder, axisModel, opt) { var axis = axisModel.axis; var show = retrieve(opt.axisLabelShow, axisModel.get('axisLabel.show')); if (!show || axis.scale.isBlank()) { return; } var labelModel = axisModel.getModel('axisLabel'); var labelMargin = labelModel.get('margin'); var labels = axis.getViewLabels(); // Special label rotate. var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180; var labelLayout = innerTextLayout(opt.rotation, labelRotation, opt.labelDirection); var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true); var labelEls = []; var silent = isLabelSilent(axisModel); var triggerEvent = axisModel.get('triggerEvent'); each(labels, function (labelItem, index) { var tickValue = labelItem.tickValue; var formattedLabel = labelItem.formattedLabel; var rawLabel = labelItem.rawLabel; var itemLabelModel = labelModel; if (rawCategoryData && rawCategoryData[tickValue] && rawCategoryData[tickValue].textStyle) { itemLabelModel = new Model(rawCategoryData[tickValue].textStyle, labelModel, axisModel.ecModel); } var textColor = itemLabelModel.getTextColor() || axisModel.get('axisLine.lineStyle.color'); var tickCoord = axis.dataToCoord(tickValue); var pos = [tickCoord, opt.labelOffset + opt.labelDirection * labelMargin]; var textEl = new graphic.Text({ // Id for animation anid: 'label_' + tickValue, position: pos, rotation: labelLayout.rotation, silent: silent, z2: 10 }); graphic.setTextStyle(textEl.style, itemLabelModel, { text: formattedLabel, textAlign: itemLabelModel.getShallow('align', true) || labelLayout.textAlign, textVerticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign, textFill: typeof textColor === 'function' ? textColor( // (1) In category axis with data zoom, tick is not the original // index of axis.data. So tick should not be exposed to user // in category axis. // (2) Compatible with previous version, which always use formatted label as // input. But in interval scale the formatted label is like '223,445', which // maked user repalce ','. So we modify it to return original val but remain // it as 'string' to avoid error in replacing. axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor }); // Pack data for mouse event if (triggerEvent) { textEl.eventData = makeAxisEventDataBase(axisModel); textEl.eventData.targetType = 'axisLabel'; textEl.eventData.value = rawLabel; } // FIXME axisBuilder._dumbGroup.add(textEl); textEl.updateTransform(); labelEls.push(textEl); axisBuilder.group.add(textEl); textEl.decomposeTransform(); }); return labelEls; } var _default = AxisBuilder; module.exports = _default; /***/ }), /* 574 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/AxisView.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var axisPointerModelHelper = __webpack_require__(/*! ../axisPointer/modelHelper */ 575); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Base class of AxisView. */ var AxisView = echarts.extendComponentView({ type: 'axis', /** * @private */ _axisPointer: null, /** * @protected * @type {string} */ axisPointerClass: null, /** * @override */ render: function render(axisModel, ecModel, api, payload) { // FIXME // This process should proformed after coordinate systems updated // (axis scale updated), and should be performed each time update. // So put it here temporarily, although it is not appropriate to // put a model-writing procedure in `view`. this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel); AxisView.superApply(this, 'render', arguments); _updateAxisPointer(this, axisModel, ecModel, api, payload, true); }, /** * Action handler. * @public * @param {module:echarts/coord/cartesian/AxisModel} axisModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @param {Object} payload */ updateAxisPointer: function updateAxisPointer(axisModel, ecModel, api, payload, force) { _updateAxisPointer(this, axisModel, ecModel, api, payload, false); }, /** * @override */ remove: function remove(ecModel, api) { var axisPointer = this._axisPointer; axisPointer && axisPointer.remove(api); AxisView.superApply(this, 'remove', arguments); }, /** * @override */ dispose: function dispose(ecModel, api) { disposeAxisPointer(this, api); AxisView.superApply(this, 'dispose', arguments); } }); function _updateAxisPointer(axisView, axisModel, ecModel, api, payload, forceRender) { var Clazz = AxisView.getAxisPointerClass(axisView.axisPointerClass); if (!Clazz) { return; } var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel); axisPointerModel ? (axisView._axisPointer || (axisView._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : disposeAxisPointer(axisView, api); } function disposeAxisPointer(axisView, ecModel, api) { var axisPointer = axisView._axisPointer; axisPointer && axisPointer.dispose(ecModel, api); axisView._axisPointer = null; } var axisPointerClazz = []; AxisView.registerAxisPointerClass = function (type, clazz) { axisPointerClazz[type] = clazz; }; AxisView.getAxisPointerClass = function (type) { return type && axisPointerClazz[type]; }; var _default = AxisView; module.exports = _default; /***/ }), /* 575 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/modelHelper.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Model = __webpack_require__(/*! ../../model/Model */ 445); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var curry = zrUtil.curry; // Build axisPointerModel, mergin tooltip.axisPointer model for each axis. // allAxesInfo should be updated when setOption performed. function collect(ecModel, api) { var result = { /** * key: makeKey(axis.model) * value: { * axis, * coordSys, * axisPointerModel, * triggerTooltip, * involveSeries, * snap, * seriesModels, * seriesDataCount * } */ axesInfo: {}, seriesInvolved: false, /** * key: makeKey(coordSys.model) * value: Object: key makeKey(axis.model), value: axisInfo */ coordSysAxesInfo: {}, coordSysMap: {} }; collectAxesInfo(result, ecModel, api); // Check seriesInvolved for performance, in case too many series in some chart. result.seriesInvolved && collectSeriesInfo(result, ecModel); return result; } function collectAxesInfo(result, ecModel, api) { var globalTooltipModel = ecModel.getComponent('tooltip'); var globalAxisPointerModel = ecModel.getComponent('axisPointer'); // links can only be set on global. var linksOption = globalAxisPointerModel.get('link', true) || []; var linkGroups = []; // Collect axes info. each(api.getCoordinateSystems(), function (coordSys) { // Some coordinate system do not support axes, like geo. if (!coordSys.axisPointerEnabled) { return; } var coordSysKey = makeKey(coordSys.model); var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {}; result.coordSysMap[coordSysKey] = coordSys; // Set tooltip (like 'cross') is a convienent way to show axisPointer // for user. So we enable seting tooltip on coordSys model. var coordSysModel = coordSys.model; var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel); each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null)); // If axis tooltip used, choose tooltip axis for each coordSys. // Notice this case: coordSys is `grid` but not `cartesian2D` here. if (coordSys.getTooltipAxes && globalTooltipModel // If tooltip.showContent is set as false, tooltip will not // show but axisPointer will show as normal. && baseTooltipModel.get('show')) { // Compatible with previous logic. But series.tooltip.trigger: 'axis' // or series.data[n].tooltip.trigger: 'axis' are not support any more. var triggerAxis = baseTooltipModel.get('trigger') === 'axis'; var cross = baseTooltipModel.get('axisPointer.type') === 'cross'; var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get('axisPointer.axis')); if (triggerAxis || cross) { each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis)); } if (cross) { each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false)); } } // fromTooltip: true | false | 'cross' // triggerTooltip: true | false | null function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) { var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel); var axisPointerShow = axisPointerModel.get('show'); if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) { return; } if (triggerTooltip == null) { triggerTooltip = axisPointerModel.get('triggerTooltip'); } axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel; var snap = axisPointerModel.get('snap'); var key = makeKey(axis.model); var involveSeries = triggerTooltip || snap || axis.type === 'category'; // If result.axesInfo[key] exist, override it (tooltip has higher priority). var axisInfo = result.axesInfo[key] = { key: key, axis: axis, coordSys: coordSys, axisPointerModel: axisPointerModel, triggerTooltip: triggerTooltip, involveSeries: involveSeries, snap: snap, useHandle: isHandleTrigger(axisPointerModel), seriesModels: [] }; axesInfoInCoordSys[key] = axisInfo; result.seriesInvolved |= involveSeries; var groupIndex = getLinkGroupIndex(linksOption, axis); if (groupIndex != null) { var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = { axesInfo: {} }); linkGroup.axesInfo[key] = axisInfo; linkGroup.mapper = linksOption[groupIndex].mapper; axisInfo.linkGroup = linkGroup; } } }); } function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) { var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer'); var volatileOption = {}; each(['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'], function (field) { volatileOption[field] = zrUtil.clone(tooltipAxisPointerModel.get(field)); }); // category axis do not auto snap, otherwise some tick that do not // has value can not be hovered. value/time/log axis default snap if // triggered from tooltip and trigger tooltip. volatileOption.snap = axis.type !== 'category' && !!triggerTooltip; // Compatibel with previous behavior, tooltip axis do not show label by default. // Only these properties can be overrided from tooltip to axisPointer. if (tooltipAxisPointerModel.get('type') === 'cross') { volatileOption.type = 'line'; } var labelOption = volatileOption.label || (volatileOption.label = {}); // Follow the convention, do not show label when triggered by tooltip by default. labelOption.show == null && (labelOption.show = false); if (fromTooltip === 'cross') { // When 'cross', both axes show labels. var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get('label.show'); labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true; // If triggerTooltip, this is a base axis, which should better not use cross style // (cross style is dashed by default) if (!triggerTooltip) { var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle'); crossStyle && zrUtil.defaults(labelOption, crossStyle.textStyle); } } return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel)); } function collectSeriesInfo(result, ecModel) { // Prepare data for axis trigger ecModel.eachSeries(function (seriesModel) { // Notice this case: this coordSys is `cartesian2D` but not `grid`. var coordSys = seriesModel.coordinateSystem; var seriesTooltipTrigger = seriesModel.get('tooltip.trigger', true); var seriesTooltipShow = seriesModel.get('tooltip.show', true); if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get('axisPointer.show', true) === false) { return; } each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) { var axis = axisInfo.axis; if (coordSys.getAxis(axis.dim) === axis) { axisInfo.seriesModels.push(seriesModel); axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0); axisInfo.seriesDataCount += seriesModel.getData().count(); } }); }, this); } /** * For example: * { * axisPointer: { * links: [{ * xAxisIndex: [2, 4], * yAxisIndex: 'all' * }, { * xAxisId: ['a5', 'a7'], * xAxisName: 'xxx' * }] * } * } */ function getLinkGroupIndex(linksOption, axis) { var axisModel = axis.model; var dim = axis.dim; for (var i = 0; i < linksOption.length; i++) { var linkOption = linksOption[i] || {}; if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) { return i; } } } function checkPropInLink(linkPropValue, axisPropValue) { return linkPropValue === 'all' || zrUtil.isArray(linkPropValue) && zrUtil.indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue; } function fixValue(axisModel) { var axisInfo = getAxisInfo(axisModel); if (!axisInfo) { return; } var axisPointerModel = axisInfo.axisPointerModel; var scale = axisInfo.axis.scale; var option = axisPointerModel.option; var status = axisPointerModel.get('status'); var value = axisPointerModel.get('value'); // Parse init value for category and time axis. if (value != null) { value = scale.parse(value); } var useHandle = isHandleTrigger(axisPointerModel); // If `handle` used, `axisPointer` will always be displayed, so value // and status should be initialized. if (status == null) { option.status = useHandle ? 'show' : 'hide'; } var extent = scale.getExtent().slice(); extent[0] > extent[1] && extent.reverse(); if ( // Pick a value on axis when initializing. value == null // If both `handle` and `dataZoom` are used, value may be out of axis extent, // where we should re-pick a value to keep `handle` displaying normally. || value > extent[1]) { // Make handle displayed on the end of the axis when init, which looks better. value = extent[1]; } if (value < extent[0]) { value = extent[0]; } option.value = value; if (useHandle) { option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show'; } } function getAxisInfo(axisModel) { var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo; return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)]; } function getAxisPointerModel(axisModel) { var axisInfo = getAxisInfo(axisModel); return axisInfo && axisInfo.axisPointerModel; } function isHandleTrigger(axisPointerModel) { return !!axisPointerModel.get('handle.show'); } /** * @param {module:echarts/model/Model} model * @return {string} unique key */ function makeKey(model) { return model.type + '||' + model.id; } exports.collect = collect; exports.fixValue = fixValue; exports.getAxisInfo = getAxisInfo; exports.getAxisPointerModel = getAxisPointerModel; exports.makeKey = makeKey; /***/ }), /* 576 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Can only be called after coordinate system creation stage. * (Can be called before coordinate system update stage). * * @param {Object} opt {labelInside} * @return {Object} { * position, rotation, labelDirection, labelOffset, * tickDirection, labelRotate, z2 * } */ function layout(gridModel, axisModel, opt) { opt = opt || {}; var grid = gridModel.coordinateSystem; var axis = axisModel.axis; var layout = {}; var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0]; var rawAxisPosition = axis.position; var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition; var axisDim = axis.dim; var rect = grid.getRect(); var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height]; var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 }; var axisOffset = axisModel.get('offset') || 0; var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset]; if (otherAxisOnZeroOf) { var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0)); posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]); } // Axis position layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]]; // Axis rotation layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1); // Tick and label direction, x y is axisDim var dirMap = { top: -1, bottom: 1, left: -1, right: 1 }; layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition]; layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0; if (axisModel.get('axisTick.inside')) { layout.tickDirection = -layout.tickDirection; } if (zrUtil.retrieve(opt.labelInside, axisModel.get('axisLabel.inside'))) { layout.labelDirection = -layout.labelDirection; } // Special label rotation var labelRotate = axisModel.get('axisLabel.rotate'); layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate; // Over splitLine and splitArea layout.z2 = 1; return layout; } exports.layout = layout; /***/ }), /* 577 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/axisSplitHelper.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) { var axis = axisModel.axis; if (axis.scale.isBlank()) { return; } var splitAreaModel = axisModel.getModel('splitArea'); var areaStyleModel = splitAreaModel.getModel('areaStyle'); var areaColors = areaStyleModel.get('color'); var gridRect = gridModel.coordinateSystem.getRect(); var ticksCoords = axis.getTicksCoords({ tickModel: splitAreaModel, clamp: true }); if (!ticksCoords.length) { return; } // For Making appropriate splitArea animation, the color and anid // should be corresponding to previous one if possible. var areaColorsLen = areaColors.length; var lastSplitAreaColors = axisView.__splitAreaColors; var newSplitAreaColors = zrUtil.createHashMap(); var colorIndex = 0; if (lastSplitAreaColors) { for (var i = 0; i < ticksCoords.length; i++) { var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue); if (cIndex != null) { colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen; break; } } } var prev = axis.toGlobalCoord(ticksCoords[0].coord); var areaStyle = areaStyleModel.getAreaStyle(); areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors]; for (var i = 1; i < ticksCoords.length; i++) { var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord); var x; var y; var width; var height; if (axis.isHorizontal()) { x = prev; y = gridRect.y; width = tickCoord - x; height = gridRect.height; prev = x + width; } else { x = gridRect.x; y = prev; width = gridRect.width; height = tickCoord - y; prev = y + height; } var tickValue = ticksCoords[i - 1].tickValue; tickValue != null && newSplitAreaColors.set(tickValue, colorIndex); axisGroup.add(new graphic.Rect({ anid: tickValue != null ? 'area_' + tickValue : null, shape: { x: x, y: y, width: width, height: height }, style: zrUtil.defaults({ fill: areaColors[colorIndex] }, areaStyle), silent: true })); colorIndex = (colorIndex + 1) % areaColorsLen; } axisView.__splitAreaColors = newSplitAreaColors; } function rectCoordAxisHandleRemove(axisView) { axisView.__splitAreaColors = null; } exports.rectCoordAxisBuildSplitArea = rectCoordAxisBuildSplitArea; exports.rectCoordAxisHandleRemove = rectCoordAxisHandleRemove; /***/ }), /* 578 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _barGrid = __webpack_require__(/*! ../layout/barGrid */ 539); var layout = _barGrid.layout; var largeLayout = _barGrid.largeLayout; __webpack_require__(/*! ../coord/cartesian/Grid */ 563); __webpack_require__(/*! ./bar/BarSeries */ 579); __webpack_require__(/*! ./bar/BarView */ 581); __webpack_require__(/*! ../component/gridSimple */ 562); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // In case developer forget to include grid component echarts.registerLayout(echarts.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar')); // Use higher prority to avoid to be blocked by other overall layout, which do not // only exist in this module, but probably also exist in other modules, like `barPolar`. echarts.registerLayout(echarts.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout); echarts.registerVisual({ seriesType: 'bar', reset: function reset(seriesModel) { // Visual coding for legend seriesModel.getData().setVisual('legendSymbol', 'roundRect'); } }); /***/ }), /* 579 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar/BarSeries.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BaseBarSeries = __webpack_require__(/*! ./BaseBarSeries */ 580); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = BaseBarSeries.extend({ type: 'series.bar', dependencies: ['grid', 'polar'], brushSelector: 'rect', /** * @override */ getProgressive: function getProgressive() { // Do not support progressive in normal mode. return this.get('large') ? this.get('progressive') : false; }, /** * @override */ getProgressiveThreshold: function getProgressiveThreshold() { // Do not support progressive in normal mode. var progressiveThreshold = this.get('progressiveThreshold'); var largeThreshold = this.get('largeThreshold'); if (largeThreshold > progressiveThreshold) { progressiveThreshold = largeThreshold; } return progressiveThreshold; }, defaultOption: { // If clipped // Only available on cartesian2d clip: true, // If use caps on two sides of bars // Only available on tangential polar bar roundCap: false, showBackground: false, backgroundStyle: { color: 'rgba(180, 180, 180, 0.2)', borderColor: null, borderWidth: 0, borderType: 'solid', borderRadius: 0, shadowBlur: 0, shadowColor: null, shadowOffsetX: 0, shadowOffsetY: 0, opacity: 1 } } }); module.exports = _default; /***/ }), /* 580 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar/BaseBarSeries.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var createListFromArray = __webpack_require__(/*! ../helper/createListFromArray */ 524); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.__base_bar__', getInitialData: function getInitialData(option, ecModel) { return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true }); }, getMarkerPosition: function getMarkerPosition(value) { var coordSys = this.coordinateSystem; if (coordSys) { // PENDING if clamp ? var pt = coordSys.dataToPoint(coordSys.clampData(value)); var data = this.getData(); var offset = data.getLayout('offset'); var size = data.getLayout('size'); var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1; pt[offsetIndex] += offset + size / 2; return pt; } return [NaN, NaN]; }, defaultOption: { zlevel: 0, // 一级层叠 z: 2, // 二级层叠 coordinateSystem: 'cartesian2d', legendHoverLink: true, // stack: null // Cartesian coordinate system // xAxisIndex: 0, // yAxisIndex: 0, // 最小高度改为0 barMinHeight: 0, // 最小角度为0,仅对极坐标系下的柱状图有效 barMinAngle: 0, // cursor: null, large: false, largeThreshold: 400, progressive: 3e3, progressiveChunkMode: 'mod', // barMaxWidth: null, // In cartesian, the default value is 1. Otherwise null. // barMinWidth: null, // 默认自适应 // barWidth: null, // 柱间距离,默认为柱形宽度的30%,可设固定值 // barGap: '30%', // 类目间柱形距离,默认为类目间距的20%,可设固定值 // barCategoryGap: '20%', // label: { // show: false // }, itemStyle: {}, emphasis: {} } }); module.exports = _default; /***/ }), /* 581 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar/BarView.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _helper = __webpack_require__(/*! ./helper */ 582); var setLabel = _helper.setLabel; var Model = __webpack_require__(/*! ../../model/Model */ 445); var barItemStyle = __webpack_require__(/*! ./barItemStyle */ 583); var Path = __webpack_require__(/*! zrender/lib/graphic/Path */ 453); var Group = __webpack_require__(/*! zrender/lib/container/Group */ 413); var _throttle = __webpack_require__(/*! ../../util/throttle */ 510); var throttle = _throttle.throttle; var _createClipPathFromCoordSys = __webpack_require__(/*! ../helper/createClipPathFromCoordSys */ 558); var createClipPath = _createClipPathFromCoordSys.createClipPath; var Sausage = __webpack_require__(/*! ../../util/shape/sausage */ 584); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'barBorderWidth']; var _eventPos = [0, 0]; // FIXME // Just for compatible with ec2. zrUtil.extend(Model.prototype, barItemStyle); function getClipArea(coord, data) { var coordSysClipArea = coord.getArea && coord.getArea(); if (coord.type === 'cartesian2d') { var baseAxis = coord.getBaseAxis(); // When boundaryGap is false or using time axis. bar may exceed the grid. // We should not clip this part. // See test/bar2.html if (baseAxis.type !== 'category' || !baseAxis.onBand) { var expandWidth = data.getLayout('bandWidth'); if (baseAxis.isHorizontal()) { coordSysClipArea.x -= expandWidth; coordSysClipArea.width += expandWidth * 2; } else { coordSysClipArea.y -= expandWidth; coordSysClipArea.height += expandWidth * 2; } } } return coordSysClipArea; } var _default = echarts.extendChartView({ type: 'bar', render: function render(seriesModel, ecModel, api) { this._updateDrawMode(seriesModel); var coordinateSystemType = seriesModel.get('coordinateSystem'); if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') { this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api); } else {} return this.group; }, incrementalPrepareRender: function incrementalPrepareRender(seriesModel, ecModel, api) { this._clear(); this._updateDrawMode(seriesModel); }, incrementalRender: function incrementalRender(params, seriesModel, ecModel, api) { // Do not support progressive in normal mode. this._incrementalRenderLarge(params, seriesModel); }, _updateDrawMode: function _updateDrawMode(seriesModel) { var isLargeDraw = seriesModel.pipelineContext.large; if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) { this._isLargeDraw = isLargeDraw; this._clear(); } }, _renderNormal: function _renderNormal(seriesModel, ecModel, api) { var group = this.group; var data = seriesModel.getData(); var oldData = this._data; var coord = seriesModel.coordinateSystem; var baseAxis = coord.getBaseAxis(); var isHorizontalOrRadial; if (coord.type === 'cartesian2d') { isHorizontalOrRadial = baseAxis.isHorizontal(); } else if (coord.type === 'polar') { isHorizontalOrRadial = baseAxis.dim === 'angle'; } var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null; var needsClip = seriesModel.get('clip', true); var coordSysClipArea = getClipArea(coord, data); // If there is clipPath created in large mode. Remove it. group.removeClipPath(); // We don't use clipPath in normal mode because we needs a perfect animation // And don't want the label are clipped. var roundCap = seriesModel.get('roundCap', true); var drawBackground = seriesModel.get('showBackground', true); var backgroundModel = seriesModel.getModel('backgroundStyle'); var barBorderRadius = backgroundModel.get('barBorderRadius') || 0; var bgEls = []; var oldBgEls = this._backgroundEls || []; var createBackground = function createBackground(dataIndex) { var bgLayout = getLayout[coord.type](data, dataIndex); var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout); bgEl.useStyle(backgroundModel.getBarItemStyle()); // Only cartesian2d support borderRadius. if (coord.type === 'cartesian2d') { bgEl.setShape('r', barBorderRadius); } bgEls[dataIndex] = bgEl; return bgEl; }; data.diff(oldData).add(function (dataIndex) { var itemModel = data.getItemModel(dataIndex); var layout = getLayout[coord.type](data, dataIndex, itemModel); if (drawBackground) { createBackground(dataIndex); } // If dataZoom in filteMode: 'empty', the baseValue can be set as NaN in "axisProxy". if (!data.hasValue(dataIndex)) { return; } if (needsClip) { // Clip will modify the layout params. // And return a boolean to determine if the shape are fully clipped. var isClipped = clip[coord.type](coordSysClipArea, layout); if (isClipped) { group.remove(el); return; } } var el = elementCreator[coord.type](dataIndex, layout, isHorizontalOrRadial, animationModel, false, roundCap); data.setItemGraphicEl(dataIndex, el); group.add(el); updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar'); }).update(function (newIndex, oldIndex) { var itemModel = data.getItemModel(newIndex); var layout = getLayout[coord.type](data, newIndex, itemModel); if (drawBackground) { var bgEl; if (oldBgEls.length === 0) { bgEl = createBackground(oldIndex); } else { bgEl = oldBgEls[oldIndex]; bgEl.useStyle(backgroundModel.getBarItemStyle()); // Only cartesian2d support borderRadius. if (coord.type === 'cartesian2d') { bgEl.setShape('r', barBorderRadius); } bgEls[newIndex] = bgEl; } var bgLayout = getLayout[coord.type](data, newIndex); var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord); graphic.updateProps(bgEl, { shape: shape }, animationModel, newIndex); } var el = oldData.getItemGraphicEl(oldIndex); if (!data.hasValue(newIndex)) { group.remove(el); return; } if (needsClip) { var isClipped = clip[coord.type](coordSysClipArea, layout); if (isClipped) { group.remove(el); return; } } if (el) { graphic.updateProps(el, { shape: layout }, animationModel, newIndex); } else { el = elementCreator[coord.type](newIndex, layout, isHorizontalOrRadial, animationModel, true, roundCap); } data.setItemGraphicEl(newIndex, el); // Add back group.add(el); updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar'); }).remove(function (dataIndex) { var el = oldData.getItemGraphicEl(dataIndex); if (coord.type === 'cartesian2d') { el && removeRect(dataIndex, animationModel, el); } else { el && removeSector(dataIndex, animationModel, el); } }).execute(); var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group()); bgGroup.removeAll(); for (var i = 0; i < bgEls.length; ++i) { bgGroup.add(bgEls[i]); } group.add(bgGroup); this._backgroundEls = bgEls; this._data = data; }, _renderLarge: function _renderLarge(seriesModel, ecModel, api) { this._clear(); createLarge(seriesModel, this.group); // Use clipPath in large mode. var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null; if (clipPath) { this.group.setClipPath(clipPath); } else { this.group.removeClipPath(); } }, _incrementalRenderLarge: function _incrementalRenderLarge(params, seriesModel) { this._removeBackground(); createLarge(seriesModel, this.group, true); }, dispose: zrUtil.noop, remove: function remove(ecModel) { this._clear(ecModel); }, _clear: function _clear(ecModel) { var group = this.group; var data = this._data; if (ecModel && ecModel.get('animation') && data && !this._isLargeDraw) { this._removeBackground(); this._backgroundEls = []; data.eachItemGraphicEl(function (el) { if (el.type === 'sector') { removeSector(el.dataIndex, ecModel, el); } else { removeRect(el.dataIndex, ecModel, el); } }); } else { group.removeAll(); } this._data = null; }, _removeBackground: function _removeBackground() { this.group.remove(this._backgroundGroup); this._backgroundGroup = null; } }); var mathMax = Math.max; var mathMin = Math.min; var clip = { cartesian2d: function cartesian2d(coordSysBoundingRect, layout) { var signWidth = layout.width < 0 ? -1 : 1; var signHeight = layout.height < 0 ? -1 : 1; // Needs positive width and height if (signWidth < 0) { layout.x += layout.width; layout.width = -layout.width; } if (signHeight < 0) { layout.y += layout.height; layout.height = -layout.height; } var x = mathMax(layout.x, coordSysBoundingRect.x); var x2 = mathMin(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width); var y = mathMax(layout.y, coordSysBoundingRect.y); var y2 = mathMin(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height); layout.x = x; layout.y = y; layout.width = x2 - x; layout.height = y2 - y; var clipped = layout.width < 0 || layout.height < 0; // Reverse back if (signWidth < 0) { layout.x += layout.width; layout.width = -layout.width; } if (signHeight < 0) { layout.y += layout.height; layout.height = -layout.height; } return clipped; }, polar: function polar(coordSysClipArea, layout) { var signR = layout.r0 <= layout.r ? 1 : -1; // Make sure r is larger than r0 if (signR < 0) { var r = layout.r; layout.r = layout.r0; layout.r0 = r; } var r = mathMin(layout.r, coordSysClipArea.r); var r0 = mathMax(layout.r0, coordSysClipArea.r0); layout.r = r; layout.r0 = r0; var clipped = r - r0 < 0; // Reverse back if (signR < 0) { var r = layout.r; layout.r = layout.r0; layout.r0 = r; } return clipped; } }; var elementCreator = { cartesian2d: function cartesian2d(dataIndex, layout, isHorizontal, animationModel, isUpdate) { var rect = new graphic.Rect({ shape: zrUtil.extend({}, layout), z2: 1 }); rect.name = 'item'; // Animation if (animationModel) { var rectShape = rect.shape; var animateProperty = isHorizontal ? 'height' : 'width'; var animateTarget = {}; rectShape[animateProperty] = 0; animateTarget[animateProperty] = layout[animateProperty]; graphic[isUpdate ? 'updateProps' : 'initProps'](rect, { shape: animateTarget }, animationModel, dataIndex); } return rect; }, polar: function polar(dataIndex, layout, isRadial, animationModel, isUpdate, roundCap) { // Keep the same logic with bar in catesion: use end value to control // direction. Notice that if clockwise is true (by default), the sector // will always draw clockwisely, no matter whether endAngle is greater // or less than startAngle. var clockwise = layout.startAngle < layout.endAngle; var ShapeClass = !isRadial && roundCap ? Sausage : graphic.Sector; var sector = new ShapeClass({ shape: zrUtil.defaults({ clockwise: clockwise }, layout), z2: 1 }); sector.name = 'item'; // Animation if (animationModel) { var sectorShape = sector.shape; var animateProperty = isRadial ? 'r' : 'endAngle'; var animateTarget = {}; sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle; animateTarget[animateProperty] = layout[animateProperty]; graphic[isUpdate ? 'updateProps' : 'initProps'](sector, { shape: animateTarget }, animationModel, dataIndex); } return sector; } }; function removeRect(dataIndex, animationModel, el) { // Not show text when animating el.style.text = null; graphic.updateProps(el, { shape: { width: 0 } }, animationModel, dataIndex, function () { el.parent && el.parent.remove(el); }); } function removeSector(dataIndex, animationModel, el) { // Not show text when animating el.style.text = null; graphic.updateProps(el, { shape: { r: el.shape.r0 } }, animationModel, dataIndex, function () { el.parent && el.parent.remove(el); }); } var getLayout = { // itemModel is only used to get borderWidth, which is not needed // when calculating bar background layout. cartesian2d: function cartesian2d(data, dataIndex, itemModel) { var layout = data.getItemLayout(dataIndex); var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0; // fix layout with lineWidth var signX = layout.width > 0 ? 1 : -1; var signY = layout.height > 0 ? 1 : -1; return { x: layout.x + signX * fixedLineWidth / 2, y: layout.y + signY * fixedLineWidth / 2, width: layout.width - signX * fixedLineWidth, height: layout.height - signY * fixedLineWidth }; }, polar: function polar(data, dataIndex, itemModel) { var layout = data.getItemLayout(dataIndex); return { cx: layout.cx, cy: layout.cy, r0: layout.r0, r: layout.r, startAngle: layout.startAngle, endAngle: layout.endAngle }; } }; function isZeroOnPolar(layout) { return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle; } function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) { var color = data.getItemVisual(dataIndex, 'color'); var opacity = data.getItemVisual(dataIndex, 'opacity'); var stroke = data.getVisual('borderColor'); var itemStyleModel = itemModel.getModel('itemStyle'); var hoverStyle = itemModel.getModel('emphasis.itemStyle').getBarItemStyle(); if (!isPolar) { el.setShape('r', itemStyleModel.get('barBorderRadius') || 0); } el.useStyle(zrUtil.defaults({ stroke: isZeroOnPolar(layout) ? 'none' : stroke, fill: isZeroOnPolar(layout) ? 'none' : color, opacity: opacity }, itemStyleModel.getBarItemStyle())); var cursorStyle = itemModel.getShallow('cursor'); cursorStyle && el.attr('cursor', cursorStyle); var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right'; if (!isPolar) { setLabel(el.style, hoverStyle, itemModel, color, seriesModel, dataIndex, labelPositionOutside); } if (isZeroOnPolar(layout)) { hoverStyle.fill = hoverStyle.stroke = 'none'; } graphic.setHoverStyle(el, hoverStyle); } // In case width or height are too small. function getLineWidth(itemModel, rawLayout) { var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0; // width or height may be NaN for empty data var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width); var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height); return Math.min(lineWidth, width, height); } var LargePath = Path.extend({ type: 'largeBar', shape: { points: [] }, buildPath: function buildPath(ctx, shape) { // Drawing lines is more efficient than drawing // a whole line or drawing rects. var points = shape.points; var startPoint = this.__startPoint; var baseDimIdx = this.__baseDimIdx; for (var i = 0; i < points.length; i += 2) { startPoint[baseDimIdx] = points[i + baseDimIdx]; ctx.moveTo(startPoint[0], startPoint[1]); ctx.lineTo(points[i], points[i + 1]); } } }); function createLarge(seriesModel, group, incremental) { // TODO support polar var data = seriesModel.getData(); var startPoint = []; var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0; startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart'); var largeDataIndices = data.getLayout('largeDataIndices'); var barWidth = data.getLayout('barWidth'); var backgroundModel = seriesModel.getModel('backgroundStyle'); var drawBackground = seriesModel.get('showBackground', true); if (drawBackground) { var points = data.getLayout('largeBackgroundPoints'); var backgroundStartPoint = []; backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart'); var bgEl = new LargePath({ shape: { points: points }, incremental: !!incremental, __startPoint: backgroundStartPoint, __baseDimIdx: baseDimIdx, __largeDataIndices: largeDataIndices, __barWidth: barWidth, silent: true, z2: 0 }); setLargeBackgroundStyle(bgEl, backgroundModel, data); group.add(bgEl); } var el = new LargePath({ shape: { points: data.getLayout('largePoints') }, incremental: !!incremental, __startPoint: startPoint, __baseDimIdx: baseDimIdx, __largeDataIndices: largeDataIndices, __barWidth: barWidth }); group.add(el); setLargeStyle(el, seriesModel, data); // Enable tooltip and user mouse/touch event handlers. el.seriesIndex = seriesModel.seriesIndex; if (!seriesModel.get('silent')) { el.on('mousedown', largePathUpdateDataIndex); el.on('mousemove', largePathUpdateDataIndex); } } // Use throttle to avoid frequently traverse to find dataIndex. var largePathUpdateDataIndex = throttle(function (event) { var largePath = this; var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY); largePath.dataIndex = dataIndex >= 0 ? dataIndex : null; }, 30, false); function largePathFindDataIndex(largePath, x, y) { var baseDimIdx = largePath.__baseDimIdx; var valueDimIdx = 1 - baseDimIdx; var points = largePath.shape.points; var largeDataIndices = largePath.__largeDataIndices; var barWidthHalf = Math.abs(largePath.__barWidth / 2); var startValueVal = largePath.__startPoint[valueDimIdx]; _eventPos[0] = x; _eventPos[1] = y; var pointerBaseVal = _eventPos[baseDimIdx]; var pointerValueVal = _eventPos[1 - baseDimIdx]; var baseLowerBound = pointerBaseVal - barWidthHalf; var baseUpperBound = pointerBaseVal + barWidthHalf; for (var i = 0, len = points.length / 2; i < len; i++) { var ii = i * 2; var barBaseVal = points[ii + baseDimIdx]; var barValueVal = points[ii + valueDimIdx]; if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) { return largeDataIndices[i]; } } return -1; } function setLargeStyle(el, seriesModel, data) { var borderColor = data.getVisual('borderColor') || data.getVisual('color'); var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(['color', 'borderColor']); el.useStyle(itemStyle); el.style.fill = null; el.style.stroke = borderColor; el.style.lineWidth = data.getLayout('barWidth'); } function setLargeBackgroundStyle(el, backgroundModel, data) { var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color'); var itemStyle = backgroundModel.getItemStyle(['color', 'borderColor']); el.useStyle(itemStyle); el.style.fill = null; el.style.stroke = borderColor; el.style.lineWidth = data.getLayout('barWidth'); } function createBackgroundShape(isHorizontalOrRadial, layout, coord) { var coordLayout; var isPolar = coord.type === 'polar'; if (isPolar) { coordLayout = coord.getArea(); } else { coordLayout = coord.grid.getRect(); } if (isPolar) { return { cx: coordLayout.cx, cy: coordLayout.cy, r0: isHorizontalOrRadial ? coordLayout.r0 : layout.r0, r: isHorizontalOrRadial ? coordLayout.r : layout.r, startAngle: isHorizontalOrRadial ? layout.startAngle : 0, endAngle: isHorizontalOrRadial ? layout.endAngle : Math.PI * 2 }; } else { return { x: isHorizontalOrRadial ? layout.x : coordLayout.x, y: isHorizontalOrRadial ? coordLayout.y : layout.y, width: isHorizontalOrRadial ? layout.width : coordLayout.width, height: isHorizontalOrRadial ? coordLayout.height : layout.height }; } } function createBackgroundEl(coord, isHorizontalOrRadial, layout) { var ElementClz = coord.type === 'polar' ? graphic.Sector : graphic.Rect; return new ElementClz({ shape: createBackgroundShape(isHorizontalOrRadial, layout, coord), silent: true, z2: 0 }); } module.exports = _default; /***/ }), /* 582 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar/helper.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _labelHelper = __webpack_require__(/*! ../helper/labelHelper */ 554); var getDefaultLabel = _labelHelper.getDefaultLabel; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function setLabel(normalStyle, hoverStyle, itemModel, color, seriesModel, dataIndex, labelPositionOutside) { var labelModel = itemModel.getModel('label'); var hoverLabelModel = itemModel.getModel('emphasis.label'); graphic.setLabelStyle(normalStyle, hoverStyle, labelModel, hoverLabelModel, { labelFetcher: seriesModel, labelDataIndex: dataIndex, defaultText: getDefaultLabel(seriesModel.getData(), dataIndex), isRectText: true, autoColor: color }); fixPosition(normalStyle); fixPosition(hoverStyle); } function fixPosition(style, labelPositionOutside) { if (style.textPosition === 'outside') { style.textPosition = labelPositionOutside; } } exports.setLabel = setLabel; /***/ }), /* 583 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar/barItemStyle.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var makeStyleMapper = __webpack_require__(/*! ../../model/mixin/makeStyleMapper */ 448); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _getBarItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], // Compatitable with 2 ['stroke', 'barBorderColor'], ['lineWidth', 'barBorderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]); var _default = { getBarItemStyle: function getBarItemStyle(excludes) { var style = _getBarItemStyle(this, excludes); if (this.getBorderLineDash) { var lineDash = this.getBorderLineDash(); lineDash && (style.lineDash = lineDash); } return style; } }; module.exports = _default; /***/ }), /* 584 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/shape/sausage.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _graphic = __webpack_require__(/*! ../graphic */ 451); var extendShape = _graphic.extendShape; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Sausage: similar to sector, but have half circle on both sides * @public */ var _default = extendShape({ type: 'sausage', shape: { cx: 0, cy: 0, r0: 0, r: 0, startAngle: 0, endAngle: Math.PI * 2, clockwise: true }, buildPath: function buildPath(ctx, shape) { var x = shape.cx; var y = shape.cy; var r0 = Math.max(shape.r0 || 0, 0); var r = Math.max(shape.r, 0); var dr = (r - r0) * 0.5; var rCenter = r0 + dr; var startAngle = shape.startAngle; var endAngle = shape.endAngle; var clockwise = shape.clockwise; var unitStartX = Math.cos(startAngle); var unitStartY = Math.sin(startAngle); var unitEndX = Math.cos(endAngle); var unitEndY = Math.sin(endAngle); var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2; if (lessThanCircle) { ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y); ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise); } ctx.arc(x, y, r, startAngle, endAngle, !clockwise); ctx.moveTo(unitEndX * r + x, unitEndY * r + y); ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise); if (r0 !== 0) { ctx.arc(x, y, r0, endAngle, startAngle, clockwise); ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y); } ctx.closePath(); } }); module.exports = _default; /***/ }), /* 585 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/pie.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); __webpack_require__(/*! ./pie/PieSeries */ 586); __webpack_require__(/*! ./pie/PieView */ 590); var createDataSelectAction = __webpack_require__(/*! ../action/createDataSelectAction */ 591); var dataColor = __webpack_require__(/*! ../visual/dataColor */ 592); var pieLayout = __webpack_require__(/*! ./pie/pieLayout */ 593); var dataFilter = __webpack_require__(/*! ../processor/dataFilter */ 595); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ createDataSelectAction('pie', [{ type: 'pieToggleSelect', event: 'pieselectchanged', method: 'toggleSelected' }, { type: 'pieSelect', event: 'pieselected', method: 'select' }, { type: 'pieUnSelect', event: 'pieunselected', method: 'unSelect' }]); echarts.registerVisual(dataColor('pie')); echarts.registerLayout(zrUtil.curry(pieLayout, 'pie')); echarts.registerProcessor(dataFilter('pie')); /***/ }), /* 586 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/pie/PieSeries.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var createListSimply = __webpack_require__(/*! ../helper/createListSimply */ 587); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); var _number = __webpack_require__(/*! ../../util/number */ 489); var getPercentWithPrecision = _number.getPercentWithPrecision; var dataSelectableMixin = __webpack_require__(/*! ../../component/helper/selectableMixin */ 588); var _dataProvider = __webpack_require__(/*! ../../data/helper/dataProvider */ 505); var retrieveRawAttr = _dataProvider.retrieveRawAttr; var _sourceHelper = __webpack_require__(/*! ../../data/helper/sourceHelper */ 494); var makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased; var LegendVisualProvider = __webpack_require__(/*! ../../visual/LegendVisualProvider */ 589); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PieSeries = echarts.extendSeriesModel({ type: 'series.pie', // Overwrite init: function init(option) { PieSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item // Use a function instead of direct access because data reference may changed this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); this.updateSelectedMap(this._createSelectableList()); this._defaultLabelLine(option); }, // Overwrite mergeOption: function mergeOption(newOption) { PieSeries.superCall(this, 'mergeOption', newOption); this.updateSelectedMap(this._createSelectableList()); }, getInitialData: function getInitialData(option, ecModel) { return createListSimply(this, { coordDimensions: ['value'], encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this) }); }, _createSelectableList: function _createSelectableList() { var data = this.getRawData(); var valueDim = data.mapDimension('value'); var targetList = []; for (var i = 0, len = data.count(); i < len; i++) { targetList.push({ name: data.getName(i), value: data.get(valueDim, i), selected: retrieveRawAttr(data, i, 'selected') }); } return targetList; }, // Overwrite getDataParams: function getDataParams(dataIndex) { var data = this.getData(); var params = PieSeries.superCall(this, 'getDataParams', dataIndex); // FIXME toFixed? var valueList = []; data.each(data.mapDimension('value'), function (value) { valueList.push(value); }); params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision')); params.$vars.push('percent'); return params; }, _defaultLabelLine: function _defaultLabelLine(option) { // Extend labelLine emphasis modelUtil.defaultEmphasis(option, 'labelLine', ['show']); var labelLineNormalOpt = option.labelLine; var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false` labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show; labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show; }, defaultOption: { zlevel: 0, z: 2, legendHoverLink: true, hoverAnimation: true, // 默认全局居中 center: ['50%', '50%'], radius: [0, '75%'], // 默认顺时针 clockwise: true, startAngle: 90, // 最小角度改为0 minAngle: 0, // If the angle of a sector less than `minShowLabelAngle`, // the label will not be displayed. minShowLabelAngle: 0, // 选中时扇区偏移量 selectedOffset: 10, // 高亮扇区偏移量 hoverOffset: 10, // If use strategy to avoid label overlapping avoidLabelOverlap: true, // 选择模式,默认关闭,可选single,multiple // selectedMode: false, // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积) // roseType: null, percentPrecision: 2, // If still show when all data zero. stillShowZeroSum: true, // cursor: null, left: 0, top: 0, right: 0, bottom: 0, width: null, height: null, label: { // If rotate around circle rotate: false, show: true, // 'outer', 'inside', 'center' position: 'outer', // 'none', 'labelLine', 'edge'. Works only when position is 'outer' alignTo: 'none', // Closest distance between label and chart edge. // Works only position is 'outer' and alignTo is 'edge'. margin: '25%', // Works only position is 'outer' and alignTo is not 'edge'. bleedMargin: 10, // Distance between text and label line. distanceToLabelLine: 5 // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调 // 默认使用全局文本样式,详见TEXTSTYLE // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数 }, // Enabled when label.normal.position is 'outer' labelLine: { show: true, // 引导线两段中的第一段长度 length: 15, // 引导线两段中的第二段长度 length2: 15, smooth: false, lineStyle: { // color: 各异, width: 1, type: 'solid' } }, itemStyle: { borderWidth: 1 }, // Animation type. Valid values: expansion, scale animationType: 'expansion', // Animation type when update. Valid values: transition, expansion animationTypeUpdate: 'transition', animationEasing: 'cubicOut' } }); zrUtil.mixin(PieSeries, dataSelectableMixin); var _default = PieSeries; module.exports = _default; /***/ }), /* 587 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/createListSimply.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var createDimensions = __webpack_require__(/*! ../../data/helper/createDimensions */ 529); var List = __webpack_require__(/*! ../../data/List */ 525); var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var extend = _util.extend; var isArray = _util.isArray; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * [Usage]: * (1) * createListSimply(seriesModel, ['value']); * (2) * createListSimply(seriesModel, { * coordDimensions: ['value'], * dimensionsCount: 5 * }); * * @param {module:echarts/model/Series} seriesModel * @param {Object|Array.} opt opt or coordDimensions * The options in opt, see `echarts/data/helper/createDimensions` * @param {Array.} [nameList] * @return {module:echarts/data/List} */ function _default(seriesModel, opt, nameList) { opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt); var source = seriesModel.getSource(); var dimensionsInfo = createDimensions(source, opt); var list = new List(dimensionsInfo, seriesModel); list.initData(source, nameList); return list; } module.exports = _default; /***/ }), /* 588 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/selectableMixin.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Data selectable mixin for chart series. * To eanble data select, option of series must have `selectedMode`. * And each data item will use `selected` to toggle itself selected status */ var _default = { /** * @param {Array.} targetList [{name, value, selected}, ...] * If targetList is an array, it should like [{name: ..., value: ...}, ...]. * If targetList is a "List", it must have coordDim: 'value' dimension and name. */ updateSelectedMap: function updateSelectedMap(targetList) { this._targetList = zrUtil.isArray(targetList) ? targetList.slice() : []; this._selectTargetMap = zrUtil.reduce(targetList || [], function (targetMap, target) { targetMap.set(target.name, target); return targetMap; }, zrUtil.createHashMap()); }, /** * Either name or id should be passed as input here. * If both of them are defined, id is used. * * @param {string|undefined} name name of data * @param {number|undefined} id dataIndex of data */ // PENGING If selectedMode is null ? select: function select(name, id) { var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name); var selectedMode = this.get('selectedMode'); if (selectedMode === 'single') { this._selectTargetMap.each(function (target) { target.selected = false; }); } target && (target.selected = true); }, /** * Either name or id should be passed as input here. * If both of them are defined, id is used. * * @param {string|undefined} name name of data * @param {number|undefined} id dataIndex of data */ unSelect: function unSelect(name, id) { var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name); // var selectedMode = this.get('selectedMode'); // selectedMode !== 'single' && target && (target.selected = false); target && (target.selected = false); }, /** * Either name or id should be passed as input here. * If both of them are defined, id is used. * * @param {string|undefined} name name of data * @param {number|undefined} id dataIndex of data */ toggleSelected: function toggleSelected(name, id) { var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name); if (target != null) { this[target.selected ? 'unSelect' : 'select'](name, id); return target.selected; } }, /** * Either name or id should be passed as input here. * If both of them are defined, id is used. * * @param {string|undefined} name name of data * @param {number|undefined} id dataIndex of data */ isSelected: function isSelected(name, id) { var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name); return target && target.selected; } }; module.exports = _default; /***/ }), /* 589 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/LegendVisualProvider.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * LegendVisualProvider is an bridge that pick encoded color from data and * provide to the legend component. * @param {Function} getDataWithEncodedVisual Function to get data after filtered. It stores all the encoding info * @param {Function} getRawData Function to get raw data before filtered. */ function LegendVisualProvider(getDataWithEncodedVisual, getRawData) { this.getAllNames = function () { var rawData = getRawData(); // We find the name from the raw data. In case it's filtered by the legend component. // Normally, the name can be found in rawData, but can't be found in filtered data will display as gray. return rawData.mapArray(rawData.getName); }; this.containName = function (name) { var rawData = getRawData(); return rawData.indexOfName(name) >= 0; }; this.indexOfName = function (name) { // Only get data when necessary. // Because LegendVisualProvider constructor may be new in the stage that data is not prepared yet. // Invoking Series#getData immediately will throw an error. var dataWithEncodedVisual = getDataWithEncodedVisual(); return dataWithEncodedVisual.indexOfName(name); }; this.getItemVisual = function (dataIndex, key) { // Get encoded visual properties from final filtered data. var dataWithEncodedVisual = getDataWithEncodedVisual(); return dataWithEncodedVisual.getItemVisual(dataIndex, key); }; } var _default = LegendVisualProvider; module.exports = _default; /***/ }), /* 590 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/pie/PieView.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {module:echarts/model/Series} seriesModel * @param {boolean} hasAnimation * @inner */ function updateDataSelected(uid, seriesModel, hasAnimation, api) { var data = seriesModel.getData(); var dataIndex = this.dataIndex; var name = data.getName(dataIndex); var selectedOffset = seriesModel.get('selectedOffset'); api.dispatchAction({ type: 'pieToggleSelect', from: uid, name: name, seriesId: seriesModel.id }); data.each(function (idx) { toggleItemSelected(data.getItemGraphicEl(idx), data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), selectedOffset, hasAnimation); }); } /** * @param {module:zrender/graphic/Sector} el * @param {Object} layout * @param {boolean} isSelected * @param {number} selectedOffset * @param {boolean} hasAnimation * @inner */ function toggleItemSelected(el, layout, isSelected, selectedOffset, hasAnimation) { var midAngle = (layout.startAngle + layout.endAngle) / 2; var dx = Math.cos(midAngle); var dy = Math.sin(midAngle); var offset = isSelected ? selectedOffset : 0; var position = [dx * offset, dy * offset]; hasAnimation // animateTo will stop revious animation like update transition ? el.animate().when(200, { position: position }).start('bounceOut') : el.attr('position', position); } /** * Piece of pie including Sector, Label, LabelLine * @constructor * @extends {module:zrender/graphic/Group} */ function PiePiece(data, idx) { graphic.Group.call(this); var sector = new graphic.Sector({ z2: 2 }); var polyline = new graphic.Polyline(); var text = new graphic.Text(); this.add(sector); this.add(polyline); this.add(text); this.updateData(data, idx, true); } var piePieceProto = PiePiece.prototype; piePieceProto.updateData = function (data, idx, firstCreate) { var sector = this.childAt(0); var labelLine = this.childAt(1); var labelText = this.childAt(2); var seriesModel = data.hostModel; var itemModel = data.getItemModel(idx); var layout = data.getItemLayout(idx); var sectorShape = zrUtil.extend({}, layout); sectorShape.label = null; var animationTypeUpdate = seriesModel.getShallow('animationTypeUpdate'); if (firstCreate) { sector.setShape(sectorShape); var animationType = seriesModel.getShallow('animationType'); if (animationType === 'scale') { sector.shape.r = layout.r0; graphic.initProps(sector, { shape: { r: layout.r } }, seriesModel, idx); } // Expansion else { sector.shape.endAngle = layout.startAngle; graphic.updateProps(sector, { shape: { endAngle: layout.endAngle } }, seriesModel, idx); } } else { if (animationTypeUpdate === 'expansion') { // Sectors are set to be target shape and an overlaying clipPath is used for animation sector.setShape(sectorShape); } else { // Transition animation from the old shape graphic.updateProps(sector, { shape: sectorShape }, seriesModel, idx); } } // Update common style var visualColor = data.getItemVisual(idx, 'color'); sector.useStyle(zrUtil.defaults({ lineJoin: 'bevel', fill: visualColor }, itemModel.getModel('itemStyle').getItemStyle())); sector.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle(); var cursorStyle = itemModel.getShallow('cursor'); cursorStyle && sector.attr('cursor', cursorStyle); // Toggle selected toggleItemSelected(this, data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), seriesModel.get('selectedOffset'), seriesModel.get('animation')); // Label and text animation should be applied only for transition type animation when update var withAnimation = !firstCreate && animationTypeUpdate === 'transition'; this._updateLabel(data, idx, withAnimation); this.highDownOnUpdate = !seriesModel.get('silent') ? function (fromState, toState) { var hasAnimation = seriesModel.isAnimationEnabled() && itemModel.get('hoverAnimation'); if (toState === 'emphasis') { labelLine.ignore = labelLine.hoverIgnore; labelText.ignore = labelText.hoverIgnore; // Sector may has animation of updating data. Force to move to the last frame // Or it may stopped on the wrong shape if (hasAnimation) { sector.stopAnimation(true); sector.animateTo({ shape: { r: layout.r + seriesModel.get('hoverOffset') } }, 300, 'elasticOut'); } } else { labelLine.ignore = labelLine.normalIgnore; labelText.ignore = labelText.normalIgnore; if (hasAnimation) { sector.stopAnimation(true); sector.animateTo({ shape: { r: layout.r } }, 300, 'elasticOut'); } } } : null; graphic.setHoverStyle(this); }; piePieceProto._updateLabel = function (data, idx, withAnimation) { var labelLine = this.childAt(1); var labelText = this.childAt(2); var seriesModel = data.hostModel; var itemModel = data.getItemModel(idx); var layout = data.getItemLayout(idx); var labelLayout = layout.label; var visualColor = data.getItemVisual(idx, 'color'); if (!labelLayout || isNaN(labelLayout.x) || isNaN(labelLayout.y)) { labelText.ignore = labelText.normalIgnore = labelText.hoverIgnore = labelLine.ignore = labelLine.normalIgnore = labelLine.hoverIgnore = true; return; } var targetLineShape = { points: labelLayout.linePoints || [[labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y]] }; var targetTextStyle = { x: labelLayout.x, y: labelLayout.y }; if (withAnimation) { graphic.updateProps(labelLine, { shape: targetLineShape }, seriesModel, idx); graphic.updateProps(labelText, { style: targetTextStyle }, seriesModel, idx); } else { labelLine.attr({ shape: targetLineShape }); labelText.attr({ style: targetTextStyle }); } labelText.attr({ rotation: labelLayout.rotation, origin: [labelLayout.x, labelLayout.y], z2: 10 }); var labelModel = itemModel.getModel('label'); var labelHoverModel = itemModel.getModel('emphasis.label'); var labelLineModel = itemModel.getModel('labelLine'); var labelLineHoverModel = itemModel.getModel('emphasis.labelLine'); var visualColor = data.getItemVisual(idx, 'color'); graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, { labelFetcher: data.hostModel, labelDataIndex: idx, defaultText: labelLayout.text, autoColor: visualColor, useInsideStyle: !!labelLayout.inside }, { textAlign: labelLayout.textAlign, textVerticalAlign: labelLayout.verticalAlign, opacity: data.getItemVisual(idx, 'opacity') }); labelText.ignore = labelText.normalIgnore = !labelModel.get('show'); labelText.hoverIgnore = !labelHoverModel.get('show'); labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show'); labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color labelLine.setStyle({ stroke: visualColor, opacity: data.getItemVisual(idx, 'opacity') }); labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle()); labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle(); var smooth = labelLineModel.get('smooth'); if (smooth && smooth === true) { smooth = 0.4; } labelLine.setShape({ smooth: smooth }); }; zrUtil.inherits(PiePiece, graphic.Group); // Pie view var PieView = ChartView.extend({ type: 'pie', init: function init() { var sectorGroup = new graphic.Group(); this._sectorGroup = sectorGroup; }, render: function render(seriesModel, ecModel, api, payload) { if (payload && payload.from === this.uid) { return; } var data = seriesModel.getData(); var oldData = this._data; var group = this.group; var hasAnimation = ecModel.get('animation'); var isFirstRender = !oldData; var animationType = seriesModel.get('animationType'); var animationTypeUpdate = seriesModel.get('animationTypeUpdate'); var onSectorClick = zrUtil.curry(updateDataSelected, this.uid, seriesModel, hasAnimation, api); var selectedMode = seriesModel.get('selectedMode'); data.diff(oldData).add(function (idx) { var piePiece = new PiePiece(data, idx); // Default expansion animation if (isFirstRender && animationType !== 'scale') { piePiece.eachChild(function (child) { child.stopAnimation(true); }); } selectedMode && piePiece.on('click', onSectorClick); data.setItemGraphicEl(idx, piePiece); group.add(piePiece); }).update(function (newIdx, oldIdx) { var piePiece = oldData.getItemGraphicEl(oldIdx); if (!isFirstRender && animationTypeUpdate !== 'transition') { piePiece.eachChild(function (child) { child.stopAnimation(true); }); } piePiece.updateData(data, newIdx); piePiece.off('click'); selectedMode && piePiece.on('click', onSectorClick); group.add(piePiece); data.setItemGraphicEl(newIdx, piePiece); }).remove(function (idx) { var piePiece = oldData.getItemGraphicEl(idx); group.remove(piePiece); }).execute(); if (hasAnimation && data.count() > 0 && (isFirstRender ? animationType !== 'scale' : animationTypeUpdate !== 'transition')) { var shape = data.getItemLayout(0); for (var s = 1; isNaN(shape.startAngle) && s < data.count(); ++s) { shape = data.getItemLayout(s); } var r = Math.max(api.getWidth(), api.getHeight()) / 2; var removeClipPath = zrUtil.bind(group.removeClipPath, group); group.setClipPath(this._createClipPath(shape.cx, shape.cy, r, shape.startAngle, shape.clockwise, removeClipPath, seriesModel, isFirstRender)); } else { // clipPath is used in first-time animation, so remove it when otherwise. See: #8994 group.removeClipPath(); } this._data = data; }, dispose: function dispose() {}, _createClipPath: function _createClipPath(cx, cy, r, startAngle, clockwise, cb, seriesModel, isFirstRender) { var clipPath = new graphic.Sector({ shape: { cx: cx, cy: cy, r0: 0, r: r, startAngle: startAngle, endAngle: startAngle, clockwise: clockwise } }); var initOrUpdate = isFirstRender ? graphic.initProps : graphic.updateProps; initOrUpdate(clipPath, { shape: { endAngle: startAngle + (clockwise ? 1 : -1) * Math.PI * 2 } }, seriesModel, cb); return clipPath; }, /** * @implement */ containPoint: function containPoint(point, seriesModel) { var data = seriesModel.getData(); var itemLayout = data.getItemLayout(0); if (itemLayout) { var dx = point[0] - itemLayout.cx; var dy = point[1] - itemLayout.cy; var radius = Math.sqrt(dx * dx + dy * dy); return radius <= itemLayout.r && radius >= itemLayout.r0; } } }); var _default = PieView; module.exports = _default; /***/ }), /* 591 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/action/createDataSelectAction.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(seriesType, actionInfos) { zrUtil.each(actionInfos, function (actionInfo) { actionInfo.update = 'updateView'; /** * @payload * @property {string} seriesName * @property {string} name */ echarts.registerAction(actionInfo, function (payload, ecModel) { var selected = {}; ecModel.eachComponent({ mainType: 'series', subType: seriesType, query: payload }, function (seriesModel) { if (seriesModel[actionInfo.method]) { seriesModel[actionInfo.method](payload.name, payload.dataIndex); } var data = seriesModel.getData(); // Create selected map data.each(function (idx) { var name = data.getName(idx); selected[name] = seriesModel.isSelected(name) || false; }); }); return { name: payload.name, selected: selected, seriesId: payload.seriesId }; }); }); } module.exports = _default; /***/ }), /* 592 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/dataColor.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Pick color from palette for each data item. // Applicable for charts that require applying color palette // in data level (like pie, funnel, chord). function _default(seriesType) { return { getTargetSeries: function getTargetSeries(ecModel) { // Pie and funnel may use diferrent scope var paletteScope = {}; var seiresModelMap = createHashMap(); ecModel.eachSeriesByType(seriesType, function (seriesModel) { seriesModel.__paletteScope = paletteScope; seiresModelMap.set(seriesModel.uid, seriesModel); }); return seiresModelMap; }, reset: function reset(seriesModel, ecModel) { var dataAll = seriesModel.getRawData(); var idxMap = {}; var data = seriesModel.getData(); data.each(function (idx) { var rawIdx = data.getRawIndex(idx); idxMap[rawIdx] = idx; }); dataAll.each(function (rawIdx) { var filteredIdx = idxMap[rawIdx]; // If series.itemStyle.normal.color is a function. itemVisual may be encoded var singleDataColor = filteredIdx != null && data.getItemVisual(filteredIdx, 'color', true); var singleDataBorderColor = filteredIdx != null && data.getItemVisual(filteredIdx, 'borderColor', true); var itemModel; if (!singleDataColor || !singleDataBorderColor) { // FIXME Performance itemModel = dataAll.getItemModel(rawIdx); } if (!singleDataColor) { var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || rawIdx + '', seriesModel.__paletteScope, dataAll.count()); // Data is not filtered if (filteredIdx != null) { data.setItemVisual(filteredIdx, 'color', color); } } if (!singleDataBorderColor) { var borderColor = itemModel.get('itemStyle.borderColor'); // Data is not filtered if (filteredIdx != null) { data.setItemVisual(filteredIdx, 'borderColor', borderColor); } } }); } }; } module.exports = _default; /***/ }), /* 593 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/pie/pieLayout.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var linearMap = _number.linearMap; var layout = __webpack_require__(/*! ../../util/layout */ 488); var labelLayout = __webpack_require__(/*! ./labelLayout */ 594); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PI2 = Math.PI * 2; var RADIAN = Math.PI / 180; function getViewRect(seriesModel, api) { return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); } function _default(seriesType, ecModel, api, payload) { ecModel.eachSeriesByType(seriesType, function (seriesModel) { var data = seriesModel.getData(); var valueDim = data.mapDimension('value'); var viewRect = getViewRect(seriesModel, api); var center = seriesModel.get('center'); var radius = seriesModel.get('radius'); if (!zrUtil.isArray(radius)) { radius = [0, radius]; } if (!zrUtil.isArray(center)) { center = [center, center]; } var width = parsePercent(viewRect.width, api.getWidth()); var height = parsePercent(viewRect.height, api.getHeight()); var size = Math.min(width, height); var cx = parsePercent(center[0], width) + viewRect.x; var cy = parsePercent(center[1], height) + viewRect.y; var r0 = parsePercent(radius[0], size / 2); var r = parsePercent(radius[1], size / 2); var startAngle = -seriesModel.get('startAngle') * RADIAN; var minAngle = seriesModel.get('minAngle') * RADIAN; var validDataCount = 0; data.each(valueDim, function (value) { !isNaN(value) && validDataCount++; }); var sum = data.getSum(valueDim); // Sum may be 0 var unitRadian = Math.PI / (sum || validDataCount) * 2; var clockwise = seriesModel.get('clockwise'); var roseType = seriesModel.get('roseType'); var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // [0...max] var extent = data.getDataExtent(valueDim); extent[0] = 0; // In the case some sector angle is smaller than minAngle var restAngle = PI2; var valueSumLargerThanMinAngle = 0; var currentAngle = startAngle; var dir = clockwise ? 1 : -1; data.each(valueDim, function (value, idx) { var angle; if (isNaN(value)) { data.setItemLayout(idx, { angle: NaN, startAngle: NaN, endAngle: NaN, clockwise: clockwise, cx: cx, cy: cy, r0: r0, r: roseType ? NaN : r, viewRect: viewRect }); return; } // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样? if (roseType !== 'area') { angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian; } else { angle = PI2 / validDataCount; } if (angle < minAngle) { angle = minAngle; restAngle -= minAngle; } else { valueSumLargerThanMinAngle += value; } var endAngle = currentAngle + dir * angle; data.setItemLayout(idx, { angle: angle, startAngle: currentAngle, endAngle: endAngle, clockwise: clockwise, cx: cx, cy: cy, r0: r0, r: roseType ? linearMap(value, extent, [r0, r]) : r, viewRect: viewRect }); currentAngle = endAngle; }); // Some sector is constrained by minAngle // Rest sectors needs recalculate angle if (restAngle < PI2 && validDataCount) { // Average the angle if rest angle is not enough after all angles is // Constrained by minAngle if (restAngle <= 1e-3) { var angle = PI2 / validDataCount; data.each(valueDim, function (value, idx) { if (!isNaN(value)) { var layout = data.getItemLayout(idx); layout.angle = angle; layout.startAngle = startAngle + dir * idx * angle; layout.endAngle = startAngle + dir * (idx + 1) * angle; } }); } else { unitRadian = restAngle / valueSumLargerThanMinAngle; currentAngle = startAngle; data.each(valueDim, function (value, idx) { if (!isNaN(value)) { var layout = data.getItemLayout(idx); var angle = layout.angle === minAngle ? minAngle : value * unitRadian; layout.startAngle = currentAngle; layout.endAngle = currentAngle + dir * angle; currentAngle += dir * angle; } }); } } labelLayout(seriesModel, r, viewRect.width, viewRect.height, viewRect.x, viewRect.y); }); } module.exports = _default; /***/ }), /* 594 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/pie/labelLayout.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // FIXME emphasis label position is not same with normal label position var RADIAN = Math.PI / 180; function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) { list.sort(function (a, b) { return a.y - b.y; }); function shiftDown(start, end, delta, dir) { for (var j = start; j < end; j++) { if (list[j].y + delta > viewTop + viewHeight) { break; } list[j].y += delta; if (j > start && j + 1 < end && list[j + 1].y > list[j].y + list[j].height) { shiftUp(j, delta / 2); return; } } shiftUp(end - 1, delta / 2); } function shiftUp(end, delta) { for (var j = end; j >= 0; j--) { if (list[j].y - delta < viewTop) { break; } list[j].y -= delta; if (j > 0 && list[j].y > list[j - 1].y + list[j - 1].height) { break; } } } function changeX(list, isDownList, cx, cy, r, dir) { var lastDeltaX = dir > 0 ? isDownList // right-side ? Number.MAX_VALUE // down : 0 // up : isDownList // left-side ? Number.MAX_VALUE // down : 0; // up for (var i = 0, l = list.length; i < l; i++) { if (list[i].labelAlignTo !== 'none') { continue; } var deltaY = Math.abs(list[i].y - cy); var length = list[i].len; var length2 = list[i].len2; var deltaX = deltaY < r + length ? Math.sqrt((r + length + length2) * (r + length + length2) - deltaY * deltaY) : Math.abs(list[i].x - cx); if (isDownList && deltaX >= lastDeltaX) { // right-down, left-down deltaX = lastDeltaX - 10; } if (!isDownList && deltaX <= lastDeltaX) { // right-up, left-up deltaX = lastDeltaX + 10; } list[i].x = cx + deltaX * dir; lastDeltaX = deltaX; } } var lastY = 0; var delta; var len = list.length; var upList = []; var downList = []; for (var i = 0; i < len; i++) { if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') { var dx = list[i].x - farthestX; list[i].linePoints[1][0] += dx; list[i].x = farthestX; } delta = list[i].y - lastY; if (delta < 0) { shiftDown(i, len, -delta, dir); } lastY = list[i].y + list[i].height; } if (viewHeight - lastY < 0) { shiftUp(len - 1, lastY - viewHeight); } for (var i = 0; i < len; i++) { if (list[i].y >= cy) { downList.push(list[i]); } else { upList.push(list[i]); } } changeX(upList, false, cx, cy, r, dir); changeX(downList, true, cx, cy, r, dir); } function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) { var leftList = []; var rightList = []; var leftmostX = Number.MAX_VALUE; var rightmostX = -Number.MAX_VALUE; for (var i = 0; i < labelLayoutList.length; i++) { if (isPositionCenter(labelLayoutList[i])) { continue; } if (labelLayoutList[i].x < cx) { leftmostX = Math.min(leftmostX, labelLayoutList[i].x); leftList.push(labelLayoutList[i]); } else { rightmostX = Math.max(rightmostX, labelLayoutList[i].x); rightList.push(labelLayoutList[i]); } } adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX); adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX); for (var i = 0; i < labelLayoutList.length; i++) { var layout = labelLayoutList[i]; if (isPositionCenter(layout)) { continue; } var linePoints = layout.linePoints; if (linePoints) { var isAlignToEdge = layout.labelAlignTo === 'edge'; var realTextWidth = layout.textRect.width; var targetTextWidth; if (isAlignToEdge) { if (layout.x < cx) { targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.labelMargin; } else { targetTextWidth = viewLeft + viewWidth - layout.labelMargin - linePoints[2][0] - layout.labelDistance; } } else { if (layout.x < cx) { targetTextWidth = layout.x - viewLeft - layout.bleedMargin; } else { targetTextWidth = viewLeft + viewWidth - layout.x - layout.bleedMargin; } } if (targetTextWidth < layout.textRect.width) { layout.text = textContain.truncateText(layout.text, targetTextWidth, layout.font); if (layout.labelAlignTo === 'edge') { realTextWidth = textContain.getWidth(layout.text, layout.font); } } var dist = linePoints[1][0] - linePoints[2][0]; if (isAlignToEdge) { if (layout.x < cx) { linePoints[2][0] = viewLeft + layout.labelMargin + realTextWidth + layout.labelDistance; } else { linePoints[2][0] = viewLeft + viewWidth - layout.labelMargin - realTextWidth - layout.labelDistance; } } else { if (layout.x < cx) { linePoints[2][0] = layout.x + layout.labelDistance; } else { linePoints[2][0] = layout.x - layout.labelDistance; } linePoints[1][0] = linePoints[2][0] + dist; } linePoints[1][1] = linePoints[2][1] = layout.y; } } } function isPositionCenter(layout) { // Not change x for center label return layout.position === 'center'; } function _default(seriesModel, r, viewWidth, viewHeight, viewLeft, viewTop) { var data = seriesModel.getData(); var labelLayoutList = []; var cx; var cy; var hasLabelRotate = false; var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN; data.each(function (idx) { var layout = data.getItemLayout(idx); var itemModel = data.getItemModel(idx); var labelModel = itemModel.getModel('label'); // Use position in normal or emphasis var labelPosition = labelModel.get('position') || itemModel.get('emphasis.label.position'); var labelDistance = labelModel.get('distanceToLabelLine'); var labelAlignTo = labelModel.get('alignTo'); var labelMargin = parsePercent(labelModel.get('margin'), viewWidth); var bleedMargin = labelModel.get('bleedMargin'); var font = labelModel.getFont(); var labelLineModel = itemModel.getModel('labelLine'); var labelLineLen = labelLineModel.get('length'); labelLineLen = parsePercent(labelLineLen, viewWidth); var labelLineLen2 = labelLineModel.get('length2'); labelLineLen2 = parsePercent(labelLineLen2, viewWidth); if (layout.angle < minShowLabelRadian) { return; } var midAngle = (layout.startAngle + layout.endAngle) / 2; var dx = Math.cos(midAngle); var dy = Math.sin(midAngle); var textX; var textY; var linePoints; var textAlign; cx = layout.cx; cy = layout.cy; var text = seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx); var textRect = textContain.getBoundingRect(text, font, textAlign, 'top'); var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner'; if (labelPosition === 'center') { textX = layout.cx; textY = layout.cy; textAlign = 'center'; } else { var x1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dx : layout.r * dx) + cx; var y1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dy : layout.r * dy) + cy; textX = x1 + dx * 3; textY = y1 + dy * 3; if (!isLabelInside) { // For roseType var x2 = x1 + dx * (labelLineLen + r - layout.r); var y2 = y1 + dy * (labelLineLen + r - layout.r); var x3 = x2 + (dx < 0 ? -1 : 1) * labelLineLen2; var y3 = y2; if (labelAlignTo === 'edge') { // Adjust textX because text align of edge is opposite textX = dx < 0 ? viewLeft + labelMargin : viewLeft + viewWidth - labelMargin; } else { textX = x3 + (dx < 0 ? -labelDistance : labelDistance); } textY = y3; linePoints = [[x1, y1], [x2, y2], [x3, y3]]; } textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? dx > 0 ? 'right' : 'left' : dx > 0 ? 'left' : 'right'; } var labelRotate; var rotate = labelModel.get('rotate'); if (typeof rotate === 'number') { labelRotate = rotate * (Math.PI / 180); } else { labelRotate = rotate ? dx < 0 ? -midAngle + Math.PI : -midAngle : 0; } hasLabelRotate = !!labelRotate; layout.label = { x: textX, y: textY, position: labelPosition, height: textRect.height, len: labelLineLen, len2: labelLineLen2, linePoints: linePoints, textAlign: textAlign, verticalAlign: 'middle', rotation: labelRotate, inside: isLabelInside, labelDistance: labelDistance, labelAlignTo: labelAlignTo, labelMargin: labelMargin, bleedMargin: bleedMargin, textRect: textRect, text: text, font: font }; // Not layout the inside label if (!isLabelInside) { labelLayoutList.push(layout.label); } }); if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) { avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop); } } module.exports = _default; /***/ }), /* 595 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/processor/dataFilter.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(seriesType) { return { seriesType: seriesType, reset: function reset(seriesModel, ecModel) { var legendModels = ecModel.findComponents({ mainType: 'legend' }); if (!legendModels || !legendModels.length) { return; } var data = seriesModel.getData(); data.filterSelf(function (idx) { var name = data.getName(idx); // If in any legend component the status is not selected. for (var i = 0; i < legendModels.length; i++) { if (!legendModels[i].isSelected(name)) { return false; } } return true; }); } }; } module.exports = _default; /***/ }), /* 596 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/scatter.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./scatter/ScatterSeries */ 597); __webpack_require__(/*! ./scatter/ScatterView */ 598); var visualSymbol = __webpack_require__(/*! ../visual/symbol */ 559); var layoutPoints = __webpack_require__(/*! ../layout/points */ 560); __webpack_require__(/*! ../component/gridSimple */ 562); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // import * as zrUtil from 'zrender/src/core/util'; // In case developer forget to include grid component echarts.registerVisual(visualSymbol('scatter', 'circle')); echarts.registerLayout(layoutPoints('scatter')); // echarts.registerProcessor(function (ecModel, api) { // ecModel.eachSeriesByType('scatter', function (seriesModel) { // var data = seriesModel.getData(); // var coordSys = seriesModel.coordinateSystem; // if (coordSys.type !== 'geo') { // return; // } // var startPt = coordSys.pointToData([0, 0]); // var endPt = coordSys.pointToData([api.getWidth(), api.getHeight()]); // var dims = zrUtil.map(coordSys.dimensions, function (dim) { // return data.mapDimension(dim); // }); // var range = {}; // range[dims[0]] = [Math.min(startPt[0], endPt[0]), Math.max(startPt[0], endPt[0])]; // range[dims[1]] = [Math.min(startPt[1], endPt[1]), Math.max(startPt[1], endPt[1])]; // data.selectRange(range); // }); // }); /***/ }), /* 597 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/scatter/ScatterSeries.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var createListFromArray = __webpack_require__(/*! ../helper/createListFromArray */ 524); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.scatter', dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'], getInitialData: function getInitialData(option, ecModel) { return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true }); }, brushSelector: 'point', getProgressive: function getProgressive() { var progressive = this.option.progressive; if (progressive == null) { // PENDING return this.option.large ? 5e3 : this.get('progressive'); } return progressive; }, getProgressiveThreshold: function getProgressiveThreshold() { var progressiveThreshold = this.option.progressiveThreshold; if (progressiveThreshold == null) { // PENDING return this.option.large ? 1e4 : this.get('progressiveThreshold'); } return progressiveThreshold; }, defaultOption: { coordinateSystem: 'cartesian2d', zlevel: 0, z: 2, legendHoverLink: true, hoverAnimation: true, // Cartesian coordinate system // xAxisIndex: 0, // yAxisIndex: 0, // Polar coordinate system // polarIndex: 0, // Geo coordinate system // geoIndex: 0, // symbol: null, // 图形类型 symbolSize: 10, // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2 // symbolRotate: null, // 图形旋转控制 large: false, // Available when large is true largeThreshold: 2000, // cursor: null, // label: { // show: false // distance: 5, // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调 // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为 // 'inside'|'left'|'right'|'top'|'bottom' // 默认使用全局文本样式,详见TEXTSTYLE // }, itemStyle: { opacity: 0.8 // color: 各异 }, // If clip the overflow graphics // Works on cartesian / polar series clip: true // progressive: null } }); module.exports = _default; /***/ }), /* 598 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/scatter/ScatterView.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var SymbolDraw = __webpack_require__(/*! ../helper/SymbolDraw */ 552); var LargeSymbolDraw = __webpack_require__(/*! ../helper/LargeSymbolDraw */ 599); var pointsLayout = __webpack_require__(/*! ../../layout/points */ 560); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.extendChartView({ type: 'scatter', render: function render(seriesModel, ecModel, api) { var data = seriesModel.getData(); var symbolDraw = this._updateSymbolDraw(data, seriesModel); symbolDraw.updateData(data, { // TODO // If this parameter should be a shape or a bounding volume // shape will be more general. // But bounding volume like bounding rect will be much faster in the contain calculation clipShape: this._getClipShape(seriesModel) }); this._finished = true; }, incrementalPrepareRender: function incrementalPrepareRender(seriesModel, ecModel, api) { var data = seriesModel.getData(); var symbolDraw = this._updateSymbolDraw(data, seriesModel); symbolDraw.incrementalPrepareUpdate(data); this._finished = false; }, incrementalRender: function incrementalRender(taskParams, seriesModel, ecModel) { this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), { clipShape: this._getClipShape(seriesModel) }); this._finished = taskParams.end === seriesModel.getData().count(); }, updateTransform: function updateTransform(seriesModel, ecModel, api) { var data = seriesModel.getData(); // Must mark group dirty and make sure the incremental layer will be cleared // PENDING this.group.dirty(); if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) { return { update: true }; } else { var res = pointsLayout().reset(seriesModel); if (res.progress) { res.progress({ start: 0, end: data.count() }, data); } this._symbolDraw.updateLayout(data); } }, _getClipShape: function _getClipShape(seriesModel) { var coordSys = seriesModel.coordinateSystem; var clipArea = coordSys && coordSys.getArea && coordSys.getArea(); return seriesModel.get('clip', true) ? clipArea : null; }, _updateSymbolDraw: function _updateSymbolDraw(data, seriesModel) { var symbolDraw = this._symbolDraw; var pipelineContext = seriesModel.pipelineContext; var isLargeDraw = pipelineContext.large; if (!symbolDraw || isLargeDraw !== this._isLargeDraw) { symbolDraw && symbolDraw.remove(); symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw(); this._isLargeDraw = isLargeDraw; this.group.removeAll(); } this.group.add(symbolDraw.group); return symbolDraw; }, remove: function remove(ecModel, api) { this._symbolDraw && this._symbolDraw.remove(true); this._symbolDraw = null; }, dispose: function dispose() {} }); /***/ }), /* 599 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var IncrementalDisplayable = __webpack_require__(/*! zrender/lib/graphic/IncrementalDisplayable */ 484); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Float32Array */ // TODO Batch by color var BOOST_SIZE_THRESHOLD = 4; var LargeSymbolPath = graphic.extendShape({ shape: { points: null }, symbolProxy: null, softClipShape: null, buildPath: function buildPath(path, shape) { var points = shape.points; var size = shape.size; var symbolProxy = this.symbolProxy; var symbolProxyShape = symbolProxy.shape; var ctx = path.getContext ? path.getContext() : path; var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD; // Do draw in afterBrush. if (canBoost) { return; } for (var i = 0; i < points.length;) { var x = points[i++]; var y = points[i++]; if (isNaN(x) || isNaN(y)) { continue; } if (this.softClipShape && !this.softClipShape.contain(x, y)) { continue; } symbolProxyShape.x = x - size[0] / 2; symbolProxyShape.y = y - size[1] / 2; symbolProxyShape.width = size[0]; symbolProxyShape.height = size[1]; symbolProxy.buildPath(path, symbolProxyShape, true); } }, afterBrush: function afterBrush(ctx) { var shape = this.shape; var points = shape.points; var size = shape.size; var canBoost = size[0] < BOOST_SIZE_THRESHOLD; if (!canBoost) { return; } this.setTransform(ctx); // PENDING If style or other canvas status changed? for (var i = 0; i < points.length;) { var x = points[i++]; var y = points[i++]; if (isNaN(x) || isNaN(y)) { continue; } if (this.softClipShape && !this.softClipShape.contain(x, y)) { continue; } // fillRect is faster than building a rect path and draw. // And it support light globalCompositeOperation. ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]); } this.restoreTransform(ctx); }, findDataIndex: function findDataIndex(x, y) { // TODO ??? // Consider transform var shape = this.shape; var points = shape.points; var size = shape.size; var w = Math.max(size[0], 4); var h = Math.max(size[1], 4); // Not consider transform // Treat each element as a rect // top down traverse for (var idx = points.length / 2 - 1; idx >= 0; idx--) { var i = idx * 2; var x0 = points[i] - w / 2; var y0 = points[i + 1] - h / 2; if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) { return idx; } } return -1; } }); function LargeSymbolDraw() { this.group = new graphic.Group(); } var largeSymbolProto = LargeSymbolDraw.prototype; largeSymbolProto.isPersistent = function () { return !this._incremental; }; /** * Update symbols draw by new data * @param {module:echarts/data/List} data * @param {Object} opt * @param {Object} [opt.clipShape] */ largeSymbolProto.updateData = function (data, opt) { this.group.removeAll(); var symbolEl = new LargeSymbolPath({ rectHover: true, cursor: 'default' }); symbolEl.setShape({ points: data.getLayout('symbolPoints') }); this._setCommon(symbolEl, data, false, opt); this.group.add(symbolEl); this._incremental = null; }; largeSymbolProto.updateLayout = function (data) { if (this._incremental) { return; } var points = data.getLayout('symbolPoints'); this.group.eachChild(function (child) { if (child.startIndex != null) { var len = (child.endIndex - child.startIndex) * 2; var byteOffset = child.startIndex * 4 * 2; points = new Float32Array(points.buffer, byteOffset, len); } child.setShape('points', points); }); }; largeSymbolProto.incrementalPrepareUpdate = function (data) { this.group.removeAll(); this._clearIncremental(); // Only use incremental displayables when data amount is larger than 2 million. // PENDING Incremental data? if (data.count() > 2e6) { if (!this._incremental) { this._incremental = new IncrementalDisplayable({ silent: true }); } this.group.add(this._incremental); } else { this._incremental = null; } }; largeSymbolProto.incrementalUpdate = function (taskParams, data, opt) { var symbolEl; if (this._incremental) { symbolEl = new LargeSymbolPath(); this._incremental.addDisplayable(symbolEl, true); } else { symbolEl = new LargeSymbolPath({ rectHover: true, cursor: 'default', startIndex: taskParams.start, endIndex: taskParams.end }); symbolEl.incremental = true; this.group.add(symbolEl); } symbolEl.setShape({ points: data.getLayout('symbolPoints') }); this._setCommon(symbolEl, data, !!this._incremental, opt); }; largeSymbolProto._setCommon = function (symbolEl, data, isIncremental, opt) { var hostModel = data.hostModel; opt = opt || {}; // TODO // if (data.hasItemVisual.symbolSize) { // // TODO typed array? // symbolEl.setShape('sizes', data.mapArray( // function (idx) { // var size = data.getItemVisual(idx, 'symbolSize'); // return (size instanceof Array) ? size : [size, size]; // } // )); // } // else { var size = data.getVisual('symbolSize'); symbolEl.setShape('size', size instanceof Array ? size : [size, size]); // } symbolEl.softClipShape = opt.clipShape || null; // Create symbolProxy to build path for each data symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0); // Use symbolProxy setColor method symbolEl.setColor = symbolEl.symbolProxy.setColor; var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD; symbolEl.useStyle( // Draw shadow when doing fillRect is extremely slow. hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color'])); var visualColor = data.getVisual('color'); if (visualColor) { symbolEl.setColor(visualColor); } if (!isIncremental) { // Enable tooltip // PENDING May have performance issue when path is extremely large symbolEl.seriesIndex = hostModel.seriesIndex; symbolEl.on('mousemove', function (e) { symbolEl.dataIndex = null; var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY); if (dataIndex >= 0) { // Provide dataIndex for tooltip symbolEl.dataIndex = dataIndex + (symbolEl.startIndex || 0); } }); } }; largeSymbolProto.remove = function () { this._clearIncremental(); this._incremental = null; this.group.removeAll(); }; largeSymbolProto._clearIncremental = function () { var incremental = this._incremental; if (incremental) { incremental.clearDisplaybles(); } }; var _default = LargeSymbolDraw; module.exports = _default; /***/ }), /* 600 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/radar.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ../component/radar */ 601); __webpack_require__(/*! ./radar/RadarSeries */ 606); __webpack_require__(/*! ./radar/RadarView */ 607); var dataColor = __webpack_require__(/*! ../visual/dataColor */ 592); var visualSymbol = __webpack_require__(/*! ../visual/symbol */ 559); var radarLayout = __webpack_require__(/*! ./radar/radarLayout */ 608); var dataFilter = __webpack_require__(/*! ../processor/dataFilter */ 595); var backwardCompat = __webpack_require__(/*! ./radar/backwardCompat */ 609); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Must use radar component echarts.registerVisual(dataColor('radar')); echarts.registerVisual(visualSymbol('radar', 'circle')); echarts.registerLayout(radarLayout); echarts.registerProcessor(dataFilter('radar')); echarts.registerPreprocessor(backwardCompat); /***/ }), /* 601 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/radar.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ../coord/radar/Radar */ 602); __webpack_require__(/*! ../coord/radar/RadarModel */ 604); __webpack_require__(/*! ./radar/RadarView */ 605); /***/ }), /* 602 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/radar/Radar.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var IndicatorAxis = __webpack_require__(/*! ./IndicatorAxis */ 603); var IntervalScale = __webpack_require__(/*! ../../scale/Interval */ 537); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var _axisHelper = __webpack_require__(/*! ../axisHelper */ 533); var getScaleExtent = _axisHelper.getScaleExtent; var niceScaleExtent = _axisHelper.niceScaleExtent; var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); var LogScale = __webpack_require__(/*! ../../scale/Log */ 541); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // TODO clockwise function Radar(radarModel, ecModel, api) { this._model = radarModel; /** * Radar dimensions * @type {Array.} */ this.dimensions = []; this._indicatorAxes = zrUtil.map(radarModel.getIndicatorModels(), function (indicatorModel, idx) { var dim = 'indicator_' + idx; var indicatorAxis = new IndicatorAxis(dim, indicatorModel.get('axisType') === 'log' ? new LogScale() : new IntervalScale()); indicatorAxis.name = indicatorModel.get('name'); // Inject model and axis indicatorAxis.model = indicatorModel; indicatorModel.axis = indicatorAxis; this.dimensions.push(dim); return indicatorAxis; }, this); this.resize(radarModel, api); /** * @type {number} * @readOnly */ this.cx; /** * @type {number} * @readOnly */ this.cy; /** * @type {number} * @readOnly */ this.r; /** * @type {number} * @readOnly */ this.r0; /** * @type {number} * @readOnly */ this.startAngle; } Radar.prototype.getIndicatorAxes = function () { return this._indicatorAxes; }; Radar.prototype.dataToPoint = function (value, indicatorIndex) { var indicatorAxis = this._indicatorAxes[indicatorIndex]; return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex); }; Radar.prototype.coordToPoint = function (coord, indicatorIndex) { var indicatorAxis = this._indicatorAxes[indicatorIndex]; var angle = indicatorAxis.angle; var x = this.cx + coord * Math.cos(angle); var y = this.cy - coord * Math.sin(angle); return [x, y]; }; Radar.prototype.pointToData = function (pt) { var dx = pt[0] - this.cx; var dy = pt[1] - this.cy; var radius = Math.sqrt(dx * dx + dy * dy); dx /= radius; dy /= radius; var radian = Math.atan2(-dy, dx); // Find the closest angle // FIXME index can calculated directly var minRadianDiff = Infinity; var closestAxis; var closestAxisIdx = -1; for (var i = 0; i < this._indicatorAxes.length; i++) { var indicatorAxis = this._indicatorAxes[i]; var diff = Math.abs(radian - indicatorAxis.angle); if (diff < minRadianDiff) { closestAxis = indicatorAxis; closestAxisIdx = i; minRadianDiff = diff; } } return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))]; }; Radar.prototype.resize = function (radarModel, api) { var center = radarModel.get('center'); var viewWidth = api.getWidth(); var viewHeight = api.getHeight(); var viewSize = Math.min(viewWidth, viewHeight) / 2; this.cx = numberUtil.parsePercent(center[0], viewWidth); this.cy = numberUtil.parsePercent(center[1], viewHeight); this.startAngle = radarModel.get('startAngle') * Math.PI / 180; // radius may be single value like `20`, `'80%'`, or array like `[10, '80%']` var radius = radarModel.get('radius'); if (typeof radius === 'string' || typeof radius === 'number') { radius = [0, radius]; } this.r0 = numberUtil.parsePercent(radius[0], viewSize); this.r = numberUtil.parsePercent(radius[1], viewSize); zrUtil.each(this._indicatorAxes, function (indicatorAxis, idx) { indicatorAxis.setExtent(this.r0, this.r); var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length; // Normalize to [-PI, PI] angle = Math.atan2(Math.sin(angle), Math.cos(angle)); indicatorAxis.angle = angle; }, this); }; Radar.prototype.update = function (ecModel, api) { var indicatorAxes = this._indicatorAxes; var radarModel = this._model; zrUtil.each(indicatorAxes, function (indicatorAxis) { indicatorAxis.scale.setExtent(Infinity, -Infinity); }); ecModel.eachSeriesByType('radar', function (radarSeries, idx) { if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) { return; } var data = radarSeries.getData(); zrUtil.each(indicatorAxes, function (indicatorAxis) { indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim)); }); }, this); var splitNumber = radarModel.get('splitNumber'); function increaseInterval(interval) { var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10)); // Increase interval var f = interval / exp10; if (f === 2) { f = 5; } else { // f is 2 or 5 f *= 2; } return f * exp10; } // Force all the axis fixing the maxSplitNumber. zrUtil.each(indicatorAxes, function (indicatorAxis, idx) { var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent; niceScaleExtent(indicatorAxis.scale, indicatorAxis.model); var axisModel = indicatorAxis.model; var scale = indicatorAxis.scale; var fixedMin = axisModel.getMin(); var fixedMax = axisModel.getMax(); var interval = scale.getInterval(); if (fixedMin != null && fixedMax != null) { // User set min, max, divide to get new interval scale.setExtent(+fixedMin, +fixedMax); scale.setInterval((fixedMax - fixedMin) / splitNumber); } else if (fixedMin != null) { var max; // User set min, expand extent on the other side do { max = fixedMin + interval * splitNumber; scale.setExtent(+fixedMin, max); // Interval must been set after extent // FIXME scale.setInterval(interval); interval = increaseInterval(interval); } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1])); } else if (fixedMax != null) { var min; // User set min, expand extent on the other side do { min = fixedMax - interval * splitNumber; scale.setExtent(min, +fixedMax); scale.setInterval(interval); interval = increaseInterval(interval); } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0])); } else { var nicedSplitNumber = scale.getTicks().length - 1; if (nicedSplitNumber > splitNumber) { interval = increaseInterval(interval); } // TODO var max = Math.ceil(rawExtent[1] / interval) * interval; var min = numberUtil.round(max - interval * splitNumber); scale.setExtent(min, max); scale.setInterval(interval); } }); }; /** * Radar dimensions is based on the data * @type {Array} */ Radar.dimensions = []; Radar.create = function (ecModel, api) { var radarList = []; ecModel.eachComponent('radar', function (radarModel) { var radar = new Radar(radarModel, ecModel, api); radarList.push(radar); radarModel.coordinateSystem = radar; }); ecModel.eachSeriesByType('radar', function (radarSeries) { if (radarSeries.get('coordinateSystem') === 'radar') { // Inject coordinate system radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0]; } }); return radarList; }; CoordinateSystem.register('radar', Radar); var _default = Radar; module.exports = _default; /***/ }), /* 603 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/radar/IndicatorAxis.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Axis = __webpack_require__(/*! ../Axis */ 547); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function IndicatorAxis(dim, scale, radiusExtent) { Axis.call(this, dim, scale, radiusExtent); /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' * @type {string} */ this.type = 'value'; this.angle = 0; /** * Indicator name * @type {string} */ this.name = ''; /** * @type {module:echarts/model/Model} */ this.model; } zrUtil.inherits(IndicatorAxis, Axis); var _default = IndicatorAxis; module.exports = _default; /***/ }), /* 604 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/radar/RadarModel.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var axisDefault = __webpack_require__(/*! ../axisDefault */ 570); var Model = __webpack_require__(/*! ../../model/Model */ 445); var axisModelCommonMixin = __webpack_require__(/*! ../axisModelCommonMixin */ 542); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var valueAxisDefault = axisDefault.valueAxis; function defaultsShow(opt, show) { return zrUtil.defaults({ show: show }, opt); } var RadarModel = echarts.extendComponentModel({ type: 'radar', optionUpdated: function optionUpdated() { var boundaryGap = this.get('boundaryGap'); var splitNumber = this.get('splitNumber'); var scale = this.get('scale'); var axisLine = this.get('axisLine'); var axisTick = this.get('axisTick'); var axisType = this.get('axisType'); var axisLabel = this.get('axisLabel'); var nameTextStyle = this.get('name'); var showName = this.get('name.show'); var nameFormatter = this.get('name.formatter'); var nameGap = this.get('nameGap'); var triggerEvent = this.get('triggerEvent'); var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) { // PENDING if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) { indicatorOpt.min = 0; } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) { indicatorOpt.max = 0; } var iNameTextStyle = nameTextStyle; if (indicatorOpt.color != null) { iNameTextStyle = zrUtil.defaults({ color: indicatorOpt.color }, nameTextStyle); } // Use same configuration indicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), { boundaryGap: boundaryGap, splitNumber: splitNumber, scale: scale, axisLine: axisLine, axisTick: axisTick, axisType: axisType, axisLabel: axisLabel, // Compatible with 2 and use text name: indicatorOpt.text, nameLocation: 'end', nameGap: nameGap, // min: 0, nameTextStyle: iNameTextStyle, triggerEvent: triggerEvent }, false); if (!showName) { indicatorOpt.name = ''; } if (typeof nameFormatter === 'string') { var indName = indicatorOpt.name; indicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : ''); } else if (typeof nameFormatter === 'function') { indicatorOpt.name = nameFormatter(indicatorOpt.name, indicatorOpt); } var model = zrUtil.extend(new Model(indicatorOpt, null, this.ecModel), axisModelCommonMixin); // For triggerEvent. model.mainType = 'radar'; model.componentIndex = this.componentIndex; return model; }, this); this.getIndicatorModels = function () { return indicatorModels; }; }, defaultOption: { zlevel: 0, z: 0, center: ['50%', '50%'], radius: '75%', startAngle: 90, name: { show: true // formatter: null // textStyle: {} }, boundaryGap: [0, 0], splitNumber: 5, nameGap: 15, scale: false, // Polygon or circle shape: 'polygon', axisLine: zrUtil.merge({ lineStyle: { color: '#bbb' } }, valueAxisDefault.axisLine), axisLabel: defaultsShow(valueAxisDefault.axisLabel, false), axisTick: defaultsShow(valueAxisDefault.axisTick, false), axisType: 'interval', splitLine: defaultsShow(valueAxisDefault.splitLine, true), splitArea: defaultsShow(valueAxisDefault.splitArea, true), // {text, min, max} indicator: [] } }); var _default = RadarModel; module.exports = _default; /***/ }), /* 605 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/radar/RadarView.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var AxisBuilder = __webpack_require__(/*! ../axis/AxisBuilder */ 573); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName']; var _default = echarts.extendComponentView({ type: 'radar', render: function render(radarModel, ecModel, api) { var group = this.group; group.removeAll(); this._buildAxes(radarModel); this._buildSplitLineAndArea(radarModel); }, _buildAxes: function _buildAxes(radarModel) { var radar = radarModel.coordinateSystem; var indicatorAxes = radar.getIndicatorAxes(); var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) { var axisBuilder = new AxisBuilder(indicatorAxis.model, { position: [radar.cx, radar.cy], rotation: indicatorAxis.angle, labelDirection: -1, tickDirection: -1, nameDirection: 1 }); return axisBuilder; }); zrUtil.each(axisBuilders, function (axisBuilder) { zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder); this.group.add(axisBuilder.getGroup()); }, this); }, _buildSplitLineAndArea: function _buildSplitLineAndArea(radarModel) { var radar = radarModel.coordinateSystem; var indicatorAxes = radar.getIndicatorAxes(); if (!indicatorAxes.length) { return; } var shape = radarModel.get('shape'); var splitLineModel = radarModel.getModel('splitLine'); var splitAreaModel = radarModel.getModel('splitArea'); var lineStyleModel = splitLineModel.getModel('lineStyle'); var areaStyleModel = splitAreaModel.getModel('areaStyle'); var showSplitLine = splitLineModel.get('show'); var showSplitArea = splitAreaModel.get('show'); var splitLineColors = lineStyleModel.get('color'); var splitAreaColors = areaStyleModel.get('color'); splitLineColors = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors]; splitAreaColors = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors]; var splitLines = []; var splitAreas = []; function getColorIndex(areaOrLine, areaOrLineColorList, idx) { var colorIndex = idx % areaOrLineColorList.length; areaOrLine[colorIndex] = areaOrLine[colorIndex] || []; return colorIndex; } if (shape === 'circle') { var ticksRadius = indicatorAxes[0].getTicksCoords(); var cx = radar.cx; var cy = radar.cy; for (var i = 0; i < ticksRadius.length; i++) { if (showSplitLine) { var colorIndex = getColorIndex(splitLines, splitLineColors, i); splitLines[colorIndex].push(new graphic.Circle({ shape: { cx: cx, cy: cy, r: ticksRadius[i].coord } })); } if (showSplitArea && i < ticksRadius.length - 1) { var colorIndex = getColorIndex(splitAreas, splitAreaColors, i); splitAreas[colorIndex].push(new graphic.Ring({ shape: { cx: cx, cy: cy, r0: ticksRadius[i].coord, r: ticksRadius[i + 1].coord } })); } } } // Polyyon else { var realSplitNumber; var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) { var ticksCoords = indicatorAxis.getTicksCoords(); realSplitNumber = realSplitNumber == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber); return zrUtil.map(ticksCoords, function (tickCoord) { return radar.coordToPoint(tickCoord.coord, idx); }); }); var prevPoints = []; for (var i = 0; i <= realSplitNumber; i++) { var points = []; for (var j = 0; j < indicatorAxes.length; j++) { points.push(axesTicksPoints[j][i]); } // Close if (points[0]) { points.push(points[0].slice()); } else {} if (showSplitLine) { var colorIndex = getColorIndex(splitLines, splitLineColors, i); splitLines[colorIndex].push(new graphic.Polyline({ shape: { points: points } })); } if (showSplitArea && prevPoints) { var colorIndex = getColorIndex(splitAreas, splitAreaColors, i - 1); splitAreas[colorIndex].push(new graphic.Polygon({ shape: { points: points.concat(prevPoints) } })); } prevPoints = points.slice().reverse(); } } var lineStyle = lineStyleModel.getLineStyle(); var areaStyle = areaStyleModel.getAreaStyle(); // Add splitArea before splitLine zrUtil.each(splitAreas, function (splitAreas, idx) { this.group.add(graphic.mergePath(splitAreas, { style: zrUtil.defaults({ stroke: 'none', fill: splitAreaColors[idx % splitAreaColors.length] }, areaStyle), silent: true })); }, this); zrUtil.each(splitLines, function (splitLines, idx) { this.group.add(graphic.mergePath(splitLines, { style: zrUtil.defaults({ fill: 'none', stroke: splitLineColors[idx % splitLineColors.length] }, lineStyle), silent: true })); }, this); } }); module.exports = _default; /***/ }), /* 606 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/radar/RadarSeries.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var createListSimply = __webpack_require__(/*! ../helper/createListSimply */ 587); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var LegendVisualProvider = __webpack_require__(/*! ../../visual/LegendVisualProvider */ 589); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var RadarSeries = SeriesModel.extend({ type: 'series.radar', dependencies: ['radar'], // Overwrite init: function init(option) { RadarSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item // Use a function instead of direct access because data reference may changed this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); }, getInitialData: function getInitialData(option, ecModel) { return createListSimply(this, { generateCoord: 'indicator_', generateCoordCount: Infinity }); }, formatTooltip: function formatTooltip(dataIndex, multipleSeries, dataType, renderMode) { var data = this.getData(); var coordSys = this.coordinateSystem; var indicatorAxes = coordSys.getIndicatorAxes(); var name = this.getData().getName(dataIndex); var newLine = renderMode === 'html' ? '
' : '\n'; return encodeHTML(name === '' ? this.name : name) + newLine + zrUtil.map(indicatorAxes, function (axis, idx) { var val = data.get(data.mapDimension(axis.dim), dataIndex); return encodeHTML(axis.name + ' : ' + val); }).join(newLine); }, /** * @implement */ getTooltipPosition: function getTooltipPosition(dataIndex) { if (dataIndex != null) { var data = this.getData(); var coordSys = this.coordinateSystem; var values = data.getValues(zrUtil.map(coordSys.dimensions, function (dim) { return data.mapDimension(dim); }), dataIndex, true); for (var i = 0, len = values.length; i < len; i++) { if (!isNaN(values[i])) { var indicatorAxes = coordSys.getIndicatorAxes(); return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i); } } } }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: 'radar', legendHoverLink: true, radarIndex: 0, lineStyle: { width: 2, type: 'solid' }, label: { position: 'top' }, // areaStyle: { // }, // itemStyle: {} symbol: 'emptyCircle', symbolSize: 4 // symbolRotate: null } }); var _default = RadarSeries; module.exports = _default; /***/ }), /* 607 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/radar/RadarView.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var symbolUtil = __webpack_require__(/*! ../../util/symbol */ 543); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function normalizeSymbolSize(symbolSize) { if (!zrUtil.isArray(symbolSize)) { symbolSize = [+symbolSize, +symbolSize]; } return symbolSize; } var _default = echarts.extendChartView({ type: 'radar', render: function render(seriesModel, ecModel, api) { var polar = seriesModel.coordinateSystem; var group = this.group; var data = seriesModel.getData(); var oldData = this._data; function createSymbol(data, idx) { var symbolType = data.getItemVisual(idx, 'symbol') || 'circle'; var color = data.getItemVisual(idx, 'color'); if (symbolType === 'none') { return; } var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize')); var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2, color); var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0; symbolPath.attr({ style: { strokeNoScale: true }, z2: 100, scale: [symbolSize[0] / 2, symbolSize[1] / 2], rotation: symbolRotate * Math.PI / 180 || 0 }); return symbolPath; } function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) { // Simply rerender all symbolGroup.removeAll(); for (var i = 0; i < newPoints.length - 1; i++) { var symbolPath = createSymbol(data, idx); if (symbolPath) { symbolPath.__dimIdx = i; if (oldPoints[i]) { symbolPath.attr('position', oldPoints[i]); graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, { position: newPoints[i] }, seriesModel, idx); } else { symbolPath.attr('position', newPoints[i]); } symbolGroup.add(symbolPath); } } } function getInitialPoints(points) { return zrUtil.map(points, function (pt) { return [polar.cx, polar.cy]; }); } data.diff(oldData).add(function (idx) { var points = data.getItemLayout(idx); if (!points) { return; } var polygon = new graphic.Polygon(); var polyline = new graphic.Polyline(); var target = { shape: { points: points } }; polygon.shape.points = getInitialPoints(points); polyline.shape.points = getInitialPoints(points); graphic.initProps(polygon, target, seriesModel, idx); graphic.initProps(polyline, target, seriesModel, idx); var itemGroup = new graphic.Group(); var symbolGroup = new graphic.Group(); itemGroup.add(polyline); itemGroup.add(polygon); itemGroup.add(symbolGroup); updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true); data.setItemGraphicEl(idx, itemGroup); }).update(function (newIdx, oldIdx) { var itemGroup = oldData.getItemGraphicEl(oldIdx); var polyline = itemGroup.childAt(0); var polygon = itemGroup.childAt(1); var symbolGroup = itemGroup.childAt(2); var target = { shape: { points: data.getItemLayout(newIdx) } }; if (!target.shape.points) { return; } updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false); graphic.updateProps(polyline, target, seriesModel); graphic.updateProps(polygon, target, seriesModel); data.setItemGraphicEl(newIdx, itemGroup); }).remove(function (idx) { group.remove(oldData.getItemGraphicEl(idx)); }).execute(); data.eachItemGraphicEl(function (itemGroup, idx) { var itemModel = data.getItemModel(idx); var polyline = itemGroup.childAt(0); var polygon = itemGroup.childAt(1); var symbolGroup = itemGroup.childAt(2); var color = data.getItemVisual(idx, 'color'); group.add(itemGroup); polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), { fill: 'none', stroke: color })); polyline.hoverStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle(); var areaStyleModel = itemModel.getModel('areaStyle'); var hoverAreaStyleModel = itemModel.getModel('emphasis.areaStyle'); var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty(); var hoverPolygonIgnore = hoverAreaStyleModel.isEmpty() && hoverAreaStyleModel.parentModel.isEmpty(); hoverPolygonIgnore = hoverPolygonIgnore && polygonIgnore; polygon.ignore = polygonIgnore; polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), { fill: color, opacity: 0.7 })); polygon.hoverStyle = hoverAreaStyleModel.getAreaStyle(); var itemStyle = itemModel.getModel('itemStyle').getItemStyle(['color']); var itemHoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle(); var labelModel = itemModel.getModel('label'); var labelHoverModel = itemModel.getModel('emphasis.label'); symbolGroup.eachChild(function (symbolPath) { symbolPath.setStyle(itemStyle); symbolPath.hoverStyle = zrUtil.clone(itemHoverStyle); var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx); (defaultText == null || isNaN(defaultText)) && (defaultText = ''); graphic.setLabelStyle(symbolPath.style, symbolPath.hoverStyle, labelModel, labelHoverModel, { labelFetcher: data.hostModel, labelDataIndex: idx, labelDimIndex: symbolPath.__dimIdx, defaultText: defaultText, autoColor: color, isRectText: true }); }); itemGroup.highDownOnUpdate = function (fromState, toState) { polygon.attr('ignore', toState === 'emphasis' ? hoverPolygonIgnore : polygonIgnore); }; graphic.setHoverStyle(itemGroup); }); this._data = data; }, remove: function remove() { this.group.removeAll(); this._data = null; }, dispose: function dispose() {} }); module.exports = _default; /***/ }), /* 608 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/radar/radarLayout.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { ecModel.eachSeriesByType('radar', function (seriesModel) { var data = seriesModel.getData(); var points = []; var coordSys = seriesModel.coordinateSystem; if (!coordSys) { return; } var axes = coordSys.getIndicatorAxes(); zrUtil.each(axes, function (axis, axisIndex) { data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) { points[dataIndex] = points[dataIndex] || []; var point = coordSys.dataToPoint(val, axisIndex); points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys); }); }); // Close polygon data.each(function (idx) { // TODO // Is it appropriate to connect to the next data when some data is missing? // Or, should trade it like `connectNull` in line chart? var firstPoint = zrUtil.find(points[idx], function (point) { return isValidPoint(point); }) || getValueMissingPoint(coordSys); // Copy the first actual point to the end of the array points[idx].push(firstPoint.slice()); data.setItemLayout(idx, points[idx]); }); }); } function isValidPoint(point) { return !isNaN(point[0]) && !isNaN(point[1]); } function getValueMissingPoint(coordSys) { // It is error-prone to input [NaN, NaN] into polygon, polygon. // (probably cause problem when refreshing or animating) return [coordSys.cx, coordSys.cy]; } module.exports = _default; /***/ }), /* 609 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/radar/backwardCompat.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Backward compat for radar chart in 2 function _default(option) { var polarOptArr = option.polar; if (polarOptArr) { if (!zrUtil.isArray(polarOptArr)) { polarOptArr = [polarOptArr]; } var polarNotRadar = []; zrUtil.each(polarOptArr, function (polarOpt, idx) { if (polarOpt.indicator) { if (polarOpt.type && !polarOpt.shape) { polarOpt.shape = polarOpt.type; } option.radar = option.radar || []; if (!zrUtil.isArray(option.radar)) { option.radar = [option.radar]; } option.radar.push(polarOpt); } else { polarNotRadar.push(polarOpt); } }); option.polar = polarNotRadar; } zrUtil.each(option.series, function (seriesOpt) { if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) { seriesOpt.radarIndex = seriesOpt.polarIndex; } }); } module.exports = _default; /***/ }), /* 610 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/map.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./map/MapSeries */ 611); __webpack_require__(/*! ./map/MapView */ 619); __webpack_require__(/*! ../action/geoRoam */ 625); __webpack_require__(/*! ../coord/geo/geoCreator */ 627); var mapSymbolLayout = __webpack_require__(/*! ./map/mapSymbolLayout */ 630); var mapVisual = __webpack_require__(/*! ./map/mapVisual */ 631); var mapDataStatistic = __webpack_require__(/*! ./map/mapDataStatistic */ 632); var backwardCompat = __webpack_require__(/*! ./map/backwardCompat */ 633); var createDataSelectAction = __webpack_require__(/*! ../action/createDataSelectAction */ 591); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerLayout(mapSymbolLayout); echarts.registerVisual(mapVisual); echarts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic); echarts.registerPreprocessor(backwardCompat); createDataSelectAction('map', [{ type: 'mapToggleSelect', event: 'mapselectchanged', method: 'toggleSelected' }, { type: 'mapSelect', event: 'mapselected', method: 'select' }, { type: 'mapUnSelect', event: 'mapunselected', method: 'unSelect' }]); /***/ }), /* 611 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/map/MapSeries.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var createListSimply = __webpack_require__(/*! ../helper/createListSimply */ 587); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var addCommas = _format.addCommas; var dataSelectableMixin = __webpack_require__(/*! ../../component/helper/selectableMixin */ 588); var _dataProvider = __webpack_require__(/*! ../../data/helper/dataProvider */ 505); var retrieveRawAttr = _dataProvider.retrieveRawAttr; var geoSourceManager = __webpack_require__(/*! ../../coord/geo/geoSourceManager */ 612); var _sourceHelper = __webpack_require__(/*! ../../data/helper/sourceHelper */ 494); var makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var MapSeries = SeriesModel.extend({ type: 'series.map', dependencies: ['geo'], layoutMode: 'box', /** * Only first map series of same mapType will drawMap * @type {boolean} */ needsDrawMap: false, /** * Group of all map series with same mapType * @type {boolean} */ seriesGroup: [], getInitialData: function getInitialData(option) { var data = createListSimply(this, { coordDimensions: ['value'], encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this) }); var valueDim = data.mapDimension('value'); var dataNameMap = zrUtil.createHashMap(); var selectTargetList = []; var toAppendNames = []; for (var i = 0, len = data.count(); i < len; i++) { var name = data.getName(i); dataNameMap.set(name, true); selectTargetList.push({ name: name, value: data.get(valueDim, i), selected: retrieveRawAttr(data, i, 'selected') }); } var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty); zrUtil.each(geoSource.regions, function (region) { var name = region.name; if (!dataNameMap.get(name)) { selectTargetList.push({ name: name }); toAppendNames.push(name); } }); this.updateSelectedMap(selectTargetList); // Complete data with missing regions. The consequent processes (like visual // map and render) can not be performed without a "full data". For example, // find `dataIndex` by name. data.appendValues([], toAppendNames); return data; }, /** * If no host geo model, return null, which means using a * inner exclusive geo model. */ getHostGeoModel: function getHostGeoModel() { var geoIndex = this.option.geoIndex; return geoIndex != null ? this.dependentModels.geo[geoIndex] : null; }, getMapType: function getMapType() { return (this.getHostGeoModel() || this).option.map; }, // _fillOption: function (option, mapName) { // Shallow clone // option = zrUtil.extend({}, option); // option.data = geoCreator.getFilledRegions(option.data, mapName, option.nameMap); // return option; // }, getRawValue: function getRawValue(dataIndex) { // Use value stored in data instead because it is calculated from multiple series // FIXME Provide all value of multiple series ? var data = this.getData(); return data.get(data.mapDimension('value'), dataIndex); }, /** * Get model of region * @param {string} name * @return {module:echarts/model/Model} */ getRegionModel: function getRegionModel(regionName) { var data = this.getData(); return data.getItemModel(data.indexOfName(regionName)); }, /** * Map tooltip formatter * * @param {number} dataIndex */ formatTooltip: function formatTooltip(dataIndex, multipleSeries, dataType, renderMode) { // FIXME orignalData and data is a bit confusing var data = this.getData(); var formattedValue = addCommas(this.getRawValue(dataIndex)); var name = data.getName(dataIndex); var seriesGroup = this.seriesGroup; var seriesNames = []; for (var i = 0; i < seriesGroup.length; i++) { var otherIndex = seriesGroup[i].originalData.indexOfName(name); var valueDim = data.mapDimension('value'); if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) { seriesNames.push(encodeHTML(seriesGroup[i].name)); } } var newLine = renderMode === 'html' ? '
' : '\n'; return seriesNames.join(', ') + newLine + encodeHTML(name + ' : ' + formattedValue); }, /** * @implement */ getTooltipPosition: function getTooltipPosition(dataIndex) { if (dataIndex != null) { var name = this.getData().getName(dataIndex); var geo = this.coordinateSystem; var region = geo.getRegion(name); return region && geo.dataToPoint(region.center); } }, setZoom: function setZoom(zoom) { this.option.zoom = zoom; }, setCenter: function setCenter(center) { this.option.center = center; }, defaultOption: { // 一级层叠 zlevel: 0, // 二级层叠 z: 2, coordinateSystem: 'geo', // map should be explicitly specified since ec3. map: '', // If `geoIndex` is not specified, a exclusive geo will be // created. Otherwise use the specified geo component, and // `map` and `mapType` are ignored. // geoIndex: 0, // 'center' | 'left' | 'right' | 'x%' | {number} left: 'center', // 'center' | 'top' | 'bottom' | 'x%' | {number} top: 'center', // right // bottom // width: // height // Aspect is width / height. Inited to be geoJson bbox aspect // This parameter is used for scale this aspect aspectScale: 0.75, ///// Layout with center and size // If you wan't to put map in a fixed size box with right aspect ratio // This two properties may more conveninet // layoutCenter: [50%, 50%] // layoutSize: 100 // 数值合并方式,默认加和,可选为: // 'sum' | 'average' | 'max' | 'min' // mapValueCalculation: 'sum', // 地图数值计算结果小数精度 // mapValuePrecision: 0, // 显示图例颜色标识(系列标识的小圆点),图例开启时有效 showLegendSymbol: true, // 选择模式,默认关闭,可选single,multiple // selectedMode: false, dataRangeHoverLink: true, // 是否开启缩放及漫游模式 // roam: false, // Define left-top, right-bottom coords to control view // For example, [ [180, 90], [-180, -90] ], // higher priority than center and zoom boundingCoords: null, // Default on center of map center: null, zoom: 1, scaleLimit: null, label: { show: false, color: '#000' }, // scaleLimit: null, itemStyle: { borderWidth: 0.5, borderColor: '#444', areaColor: '#eee' }, emphasis: { label: { show: true, color: 'rgb(100,0,0)' }, itemStyle: { areaColor: 'rgba(255,215,0,0.8)' } }, nameProperty: 'name' } }); zrUtil.mixin(MapSeries, dataSelectableMixin); var _default = MapSeries; module.exports = _default; /***/ }), /* 612 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/geoSourceManager.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var createHashMap = _util.createHashMap; var mapDataStorage = __webpack_require__(/*! ./mapDataStorage */ 519); var geoJSONLoader = __webpack_require__(/*! ./geoJSONLoader */ 613); var geoSVGLoader = __webpack_require__(/*! ./geoSVGLoader */ 618); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var loaders = { geoJSON: geoJSONLoader, svg: geoSVGLoader }; var _default = { /** * @param {string} mapName * @param {Object} nameMap * @param {string} nameProperty * @return {Object} source {regions, regionsMap, nameCoordMap, boundingRect} */ load: function load(mapName, nameMap, nameProperty) { var regions = []; var regionsMap = createHashMap(); var nameCoordMap = createHashMap(); var boundingRect; var mapRecords = retrieveMap(mapName); each(mapRecords, function (record) { var singleSource = loaders[record.type].load(mapName, record, nameProperty); each(singleSource.regions, function (region) { var regionName = region.name; // Try use the alias in geoNameMap if (nameMap && nameMap.hasOwnProperty(regionName)) { region = region.cloneShallow(regionName = nameMap[regionName]); } regions.push(region); regionsMap.set(regionName, region); nameCoordMap.set(regionName, region.center); }); var rect = singleSource.boundingRect; if (rect) { boundingRect ? boundingRect.union(rect) : boundingRect = rect.clone(); } }); return { regions: regions, regionsMap: regionsMap, nameCoordMap: nameCoordMap, // FIXME Always return new ? boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0) }; }, /** * @param {string} mapName * @param {string} hostKey For cache. * @return {Array.} Roots. */ makeGraphic: makeInvoker('makeGraphic'), /** * @param {string} mapName * @param {string} hostKey For cache. */ removeGraphic: makeInvoker('removeGraphic') }; function makeInvoker(methodName) { return function (mapName, hostKey) { var mapRecords = retrieveMap(mapName); var results = []; each(mapRecords, function (record) { var method = loaders[record.type][methodName]; method && results.push(method(mapName, record, hostKey)); }); return results; }; } function mapNotExistsError(mapName) {} function retrieveMap(mapName) { var mapRecords = mapDataStorage.retrieveMap(mapName) || []; return mapRecords; } module.exports = _default; /***/ }), /* 613 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/geoJSONLoader.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var parseGeoJson = __webpack_require__(/*! ./parseGeoJson */ 544); var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; var fixNanhai = __webpack_require__(/*! ./fix/nanhai */ 614); var fixTextCoord = __webpack_require__(/*! ./fix/textCoord */ 615); var fixGeoCoord = __webpack_require__(/*! ./fix/geoCoord */ 616); var fixDiaoyuIsland = __webpack_require__(/*! ./fix/diaoyuIsland */ 617); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Built-in GEO fixer. var inner = makeInner(); var _default = { /** * @param {string} mapName * @param {Object} mapRecord {specialAreas, geoJSON} * @param {string} nameProperty * @return {Object} {regions, boundingRect} */ load: function load(mapName, mapRecord, nameProperty) { var parsed = inner(mapRecord).parsed; if (parsed) { return parsed; } var specialAreas = mapRecord.specialAreas || {}; var geoJSON = mapRecord.geoJSON; var regions; // https://jsperf.com/try-catch-performance-overhead try { regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : []; } catch (e) { throw new Error('Invalid geoJson format\n' + e.message); } fixNanhai(mapName, regions); each(regions, function (region) { var regionName = region.name; fixTextCoord(mapName, region); fixGeoCoord(mapName, region); fixDiaoyuIsland(mapName, region); // Some area like Alaska in USA map needs to be tansformed // to look better var specialArea = specialAreas[regionName]; if (specialArea) { region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height); } }); return inner(mapRecord).parsed = { regions: regions, boundingRect: getBoundingRect(regions) }; } }; function getBoundingRect(regions) { var rect; for (var i = 0; i < regions.length; i++) { var regionRect = regions[i].getBoundingRect(); rect = rect || regionRect.clone(); rect.union(regionRect); } return rect; } module.exports = _default; /***/ }), /* 614 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/fix/nanhai.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Region = __webpack_require__(/*! ../Region */ 545); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Fix for 南海诸岛 var geoCoord = [126, 25]; var points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]]; for (var i = 0; i < points.length; i++) { for (var k = 0; k < points[i].length; k++) { points[i][k][0] /= 10.5; points[i][k][1] /= -10.5 / 0.75; points[i][k][0] += geoCoord[0]; points[i][k][1] += geoCoord[1]; } } function _default(mapType, regions) { if (mapType === 'china') { regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) { return { type: 'polygon', exterior: exterior }; }), geoCoord)); } } module.exports = _default; /***/ }), /* 615 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/fix/textCoord.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var coordsOffsetMap = { '南海诸岛': [32, 80], // 全国 '广东': [0, -10], '香港': [10, 5], '澳门': [-10, 10], //'北京': [-10, 0], '天津': [5, 5] }; function _default(mapType, region) { if (mapType === 'china') { var coordFix = coordsOffsetMap[region.name]; if (coordFix) { var cp = region.center; cp[0] += coordFix[0] / 10.5; cp[1] += -coordFix[1] / (10.5 / 0.75); } } } module.exports = _default; /***/ }), /* 616 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/fix/geoCoord.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var geoCoordMap = { 'Russia': [100, 60], 'United States': [-99, 38], 'United States of America': [-99, 38] }; function _default(mapType, region) { if (mapType === 'world') { var geoCoord = geoCoordMap[region.name]; if (geoCoord) { var cp = region.center; cp[0] = geoCoord[0]; cp[1] = geoCoord[1]; } } } module.exports = _default; /***/ }), /* 617 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Fix for 钓鱼岛 // var Region = require('../Region'); // var zrUtil = require('zrender/src/core/util'); // var geoCoord = [126, 25]; var points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]]; function _default(mapType, region) { if (mapType === 'china' && region.name === '台湾') { region.geometries.push({ type: 'polygon', exterior: points[0] }); } } module.exports = _default; /***/ }), /* 618 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/geoSVGLoader.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _parseSVG = __webpack_require__(/*! zrender/lib/tool/parseSVG */ 520); var parseSVG = _parseSVG.parseSVG; var makeViewBoxTransform = _parseSVG.makeViewBoxTransform; var Group = __webpack_require__(/*! zrender/lib/container/Group */ 413); var Rect = __webpack_require__(/*! zrender/lib/graphic/shape/Rect */ 475); var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var assert = _util.assert; var createHashMap = _util.createHashMap; var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = makeInner(); var _default = { /** * @param {string} mapName * @param {Object} mapRecord {specialAreas, geoJSON} * @return {Object} {root, boundingRect} */ load: function load(mapName, mapRecord) { var originRoot = inner(mapRecord).originRoot; if (originRoot) { return { root: originRoot, boundingRect: inner(mapRecord).boundingRect }; } var graphic = buildGraphic(mapRecord); inner(mapRecord).originRoot = graphic.root; inner(mapRecord).boundingRect = graphic.boundingRect; return graphic; }, makeGraphic: function makeGraphic(mapName, mapRecord, hostKey) { // For performance consideration (in large SVG), graphic only maked // when necessary and reuse them according to hostKey. var field = inner(mapRecord); var rootMap = field.rootMap || (field.rootMap = createHashMap()); var root = rootMap.get(hostKey); if (root) { return root; } var originRoot = field.originRoot; var boundingRect = field.boundingRect; // For performance, if originRoot is not used by a view, // assign it to a view, but not reproduce graphic elements. if (!field.originRootHostKey) { field.originRootHostKey = hostKey; root = originRoot; } else { root = buildGraphic(mapRecord, boundingRect).root; } return rootMap.set(hostKey, root); }, removeGraphic: function removeGraphic(mapName, mapRecord, hostKey) { var field = inner(mapRecord); var rootMap = field.rootMap; rootMap && rootMap.removeKey(hostKey); if (hostKey === field.originRootHostKey) { field.originRootHostKey = null; } } }; function buildGraphic(mapRecord, boundingRect) { var svgXML = mapRecord.svgXML; var result; var root; try { result = svgXML && parseSVG(svgXML, { ignoreViewBox: true, ignoreRootClip: true }) || {}; root = result.root; assert(root != null); } catch (e) { throw new Error('Invalid svg format\n' + e.message); } var svgWidth = result.width; var svgHeight = result.height; var viewBoxRect = result.viewBoxRect; if (!boundingRect) { boundingRect = svgWidth == null || svgHeight == null ? // If svg width / height not specified, calculate // bounding rect as the width / height root.getBoundingRect() : new BoundingRect(0, 0, 0, 0); if (svgWidth != null) { boundingRect.width = svgWidth; } if (svgHeight != null) { boundingRect.height = svgHeight; } } if (viewBoxRect) { var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height); var elRoot = root; root = new Group(); root.add(elRoot); elRoot.scale = viewBoxTransform.scale; elRoot.position = viewBoxTransform.position; } root.setClipPath(new Rect({ shape: boundingRect.plain() })); return { root: root, boundingRect: boundingRect }; } module.exports = _default; /***/ }), /* 619 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/map/MapView.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var MapDraw = __webpack_require__(/*! ../../component/helper/MapDraw */ 620); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var HIGH_DOWN_PROP = '__seriesMapHighDown'; var RECORD_VERSION_PROP = '__seriesMapCallKey'; var _default = echarts.extendChartView({ type: 'map', render: function render(mapModel, ecModel, api, payload) { // Not render if it is an toggleSelect action from self if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) { return; } var group = this.group; group.removeAll(); if (mapModel.getHostGeoModel()) { return; } // Not update map if it is an roam action from self if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) { if (mapModel.needsDrawMap) { var mapDraw = this._mapDraw || new MapDraw(api, true); group.add(mapDraw.group); mapDraw.draw(mapModel, ecModel, api, this, payload); this._mapDraw = mapDraw; } else { // Remove drawed map this._mapDraw && this._mapDraw.remove(); this._mapDraw = null; } } else { var mapDraw = this._mapDraw; mapDraw && group.add(mapDraw.group); } mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api); }, remove: function remove() { this._mapDraw && this._mapDraw.remove(); this._mapDraw = null; this.group.removeAll(); }, dispose: function dispose() { this._mapDraw && this._mapDraw.remove(); this._mapDraw = null; }, _renderSymbols: function _renderSymbols(mapModel, ecModel, api) { var originalData = mapModel.originalData; var group = this.group; originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) { if (isNaN(value)) { return; } var layout = originalData.getItemLayout(originalDataIndex); if (!layout || !layout.point) { // Not exists in map return; } var point = layout.point; var offset = layout.offset; var circle = new graphic.Circle({ style: { // Because the special of map draw. // Which needs statistic of multiple series and draw on one map. // And each series also need a symbol with legend color // // Layout and visual are put one the different data fill: mapModel.getData().getVisual('color') }, shape: { cx: point[0] + offset * 9, cy: point[1], r: 3 }, silent: true, // Do not overlap the first series, on which labels are displayed. z2: 8 + (!offset ? graphic.Z2_EMPHASIS_LIFT + 1 : 0) }); // Only the series that has the first value on the same region is in charge of rendering the label. // But consider the case: // series: [ // {id: 'X', type: 'map', map: 'm', {data: [{name: 'A', value: 11}, {name: 'B', {value: 22}]}, // {id: 'Y', type: 'map', map: 'm', {data: [{name: 'A', value: 21}, {name: 'C', {value: 33}]} // ] // The offset `0` of item `A` is at series `X`, but of item `C` is at series `Y`. // For backward compatibility, we follow the rule that render label `A` by the // settings on series `X` but render label `C` by the settings on series `Y`. if (!offset) { var fullData = mapModel.mainSeries.getData(); var name = originalData.getName(originalDataIndex); var fullIndex = fullData.indexOfName(name); var itemModel = originalData.getItemModel(originalDataIndex); var labelModel = itemModel.getModel('label'); var hoverLabelModel = itemModel.getModel('emphasis.label'); var regionGroup = fullData.getItemGraphicEl(fullIndex); // `getFormattedLabel` needs to use `getData` inside. Here // `mapModel.getData()` is shallow cloned from `mainSeries.getData()`. // FIXME // If this is not the `mainSeries`, the item model (like label formatter) // set on original data item will never get. But it has been working // like that from the begining, and this scenario is rarely encountered. // So it won't be fixed until have to. var normalText = zrUtil.retrieve2(mapModel.getFormattedLabel(fullIndex, 'normal'), name); var emphasisText = zrUtil.retrieve2(mapModel.getFormattedLabel(fullIndex, 'emphasis'), normalText); var highDownRecord = regionGroup[HIGH_DOWN_PROP]; var recordVersion = Math.random(); // Prevent from register listeners duplicatedly when roaming. if (!highDownRecord) { highDownRecord = regionGroup[HIGH_DOWN_PROP] = {}; var onEmphasis = zrUtil.curry(onRegionHighDown, true); var onNormal = zrUtil.curry(onRegionHighDown, false); regionGroup.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal); } // Prevent removed regions effect current grapics. regionGroup[RECORD_VERSION_PROP] = recordVersion; zrUtil.extend(highDownRecord, { recordVersion: recordVersion, circle: circle, labelModel: labelModel, hoverLabelModel: hoverLabelModel, emphasisText: emphasisText, normalText: normalText }); // FIXME // Consider set option when emphasis. enterRegionHighDown(highDownRecord, false); } group.add(circle); }); } }); function onRegionHighDown(toHighOrDown) { var highDownRecord = this[HIGH_DOWN_PROP]; if (highDownRecord && highDownRecord.recordVersion === this[RECORD_VERSION_PROP]) { enterRegionHighDown(highDownRecord, toHighOrDown); } } function enterRegionHighDown(highDownRecord, toHighOrDown) { var circle = highDownRecord.circle; var labelModel = highDownRecord.labelModel; var hoverLabelModel = highDownRecord.hoverLabelModel; var emphasisText = highDownRecord.emphasisText; var normalText = highDownRecord.normalText; if (toHighOrDown) { circle.style.extendFrom(graphic.setTextStyle({}, hoverLabelModel, { text: hoverLabelModel.get('show') ? emphasisText : null }, { isRectText: true, useInsideStyle: false }, true)); // Make label upper than others if overlaps. circle.__mapOriginalZ2 = circle.z2; circle.z2 += graphic.Z2_EMPHASIS_LIFT; } else { graphic.setTextStyle(circle.style, labelModel, { text: labelModel.get('show') ? normalText : null, textPosition: labelModel.getShallow('position') || 'bottom' }, { isRectText: true, useInsideStyle: false }); // Trigger normalize style like padding. circle.dirty(false); if (circle.__mapOriginalZ2 != null) { circle.z2 = circle.__mapOriginalZ2; circle.__mapOriginalZ2 = null; } } } module.exports = _default; /***/ }), /* 620 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/MapDraw.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var RoamController = __webpack_require__(/*! ./RoamController */ 621); var roamHelper = __webpack_require__(/*! ../../component/helper/roamHelper */ 623); var _cursorHelper = __webpack_require__(/*! ../../component/helper/cursorHelper */ 624); var onIrrelevantElement = _cursorHelper.onIrrelevantElement; var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var geoSourceManager = __webpack_require__(/*! ../../coord/geo/geoSourceManager */ 612); var _component = __webpack_require__(/*! ../../util/component */ 487); var getUID = _component.getUID; var Transformable = __webpack_require__(/*! zrender/lib/mixin/Transformable */ 415); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function getFixedItemStyle(model) { var itemStyle = model.getItemStyle(); var areaColor = model.get('areaColor'); // If user want the color not to be changed when hover, // they should both set areaColor and color to be null. if (areaColor != null) { itemStyle.fill = areaColor; } return itemStyle; } function updateMapSelectHandler(mapDraw, mapOrGeoModel, regionsGroup, api, fromView) { regionsGroup.off('click'); regionsGroup.off('mousedown'); if (mapOrGeoModel.get('selectedMode')) { regionsGroup.on('mousedown', function () { mapDraw._mouseDownFlag = true; }); regionsGroup.on('click', function (e) { if (!mapDraw._mouseDownFlag) { return; } mapDraw._mouseDownFlag = false; var el = e.target; while (!el.__regions) { el = el.parent; } if (!el) { return; } var action = { type: (mapOrGeoModel.mainType === 'geo' ? 'geo' : 'map') + 'ToggleSelect', batch: zrUtil.map(el.__regions, function (region) { return { name: region.name, from: fromView.uid }; }) }; action[mapOrGeoModel.mainType + 'Id'] = mapOrGeoModel.id; api.dispatchAction(action); updateMapSelected(mapOrGeoModel, regionsGroup); }); } } function updateMapSelected(mapOrGeoModel, regionsGroup) { // FIXME regionsGroup.eachChild(function (otherRegionEl) { zrUtil.each(otherRegionEl.__regions, function (region) { otherRegionEl.trigger(mapOrGeoModel.isSelected(region.name) ? 'emphasis' : 'normal'); }); }); } /** * @alias module:echarts/component/helper/MapDraw * @param {module:echarts/ExtensionAPI} api * @param {boolean} updateGroup */ function MapDraw(api, updateGroup) { var group = new graphic.Group(); /** * @type {string} * @private */ this.uid = getUID('ec_map_draw'); /** * @type {module:echarts/component/helper/RoamController} * @private */ this._controller = new RoamController(api.getZr()); /** * @type {Object} {target, zoom, zoomLimit} * @private */ this._controllerHost = { target: updateGroup ? group : null }; /** * @type {module:zrender/container/Group} * @readOnly */ this.group = group; /** * @type {boolean} * @private */ this._updateGroup = updateGroup; /** * This flag is used to make sure that only one among * `pan`, `zoom`, `click` can occurs, otherwise 'selected' * action may be triggered when `pan`, which is unexpected. * @type {booelan} */ this._mouseDownFlag; /** * @type {string} */ this._mapName; /** * @type {boolean} */ this._initialized; /** * @type {module:zrender/container/Group} */ group.add(this._regionsGroup = new graphic.Group()); /** * @type {module:zrender/container/Group} */ group.add(this._backgroundGroup = new graphic.Group()); } MapDraw.prototype = { constructor: MapDraw, draw: function draw(mapOrGeoModel, ecModel, api, fromView, payload) { var isGeo = mapOrGeoModel.mainType === 'geo'; // Map series has data. GEO model that controlled by map series // will be assigned with map data. Other GEO model has no data. var data = mapOrGeoModel.getData && mapOrGeoModel.getData(); isGeo && ecModel.eachComponent({ mainType: 'series', subType: 'map' }, function (mapSeries) { if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) { data = mapSeries.getData(); } }); var geo = mapOrGeoModel.coordinateSystem; this._updateBackground(geo); var regionsGroup = this._regionsGroup; var group = this.group; var transformInfo = geo.getTransformInfo(); // No animation when first draw or in action var isFirstDraw = !regionsGroup.childAt(0) || payload; var targetScale; if (isFirstDraw) { group.transform = transformInfo.roamTransform; group.decomposeTransform(); group.dirty(); } else { var target = new Transformable(); target.transform = transformInfo.roamTransform; target.decomposeTransform(); var props = { scale: target.scale, position: target.position }; targetScale = target.scale; graphic.updateProps(group, props, mapOrGeoModel); } var scale = transformInfo.rawScale; var position = transformInfo.rawPosition; regionsGroup.removeAll(); var itemStyleAccessPath = ['itemStyle']; var hoverItemStyleAccessPath = ['emphasis', 'itemStyle']; var labelAccessPath = ['label']; var hoverLabelAccessPath = ['emphasis', 'label']; var nameMap = zrUtil.createHashMap(); zrUtil.each(geo.regions, function (region) { // Consider in GeoJson properties.name may be duplicated, for example, // there is multiple region named "United Kindom" or "France" (so many // colonies). And it is not appropriate to merge them in geo, which // will make them share the same label and bring trouble in label // location calculation. var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group()); var compoundPath = new graphic.CompoundPath({ segmentIgnoreThreshold: 1, shape: { paths: [] } }); regionGroup.add(compoundPath); var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel; var itemStyleModel = regionModel.getModel(itemStyleAccessPath); var hoverItemStyleModel = regionModel.getModel(hoverItemStyleAccessPath); var itemStyle = getFixedItemStyle(itemStyleModel); var hoverItemStyle = getFixedItemStyle(hoverItemStyleModel); var labelModel = regionModel.getModel(labelAccessPath); var hoverLabelModel = regionModel.getModel(hoverLabelAccessPath); var dataIdx; // Use the itemStyle in data if has data if (data) { dataIdx = data.indexOfName(region.name); // Only visual color of each item will be used. It can be encoded by dataRange // But visual color of series is used in symbol drawing // // Visual color for each series is for the symbol draw var visualColor = data.getItemVisual(dataIdx, 'color', true); if (visualColor) { itemStyle.fill = visualColor; } } var transformPoint = function transformPoint(point) { return [point[0] * scale[0] + position[0], point[1] * scale[1] + position[1]]; }; zrUtil.each(region.geometries, function (geometry) { if (geometry.type !== 'polygon') { return; } var points = []; for (var i = 0; i < geometry.exterior.length; ++i) { points.push(transformPoint(geometry.exterior[i])); } compoundPath.shape.paths.push(new graphic.Polygon({ segmentIgnoreThreshold: 1, shape: { points: points } })); for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) { var interior = geometry.interiors[i]; var points = []; for (var j = 0; j < interior.length; ++j) { points.push(transformPoint(interior[j])); } compoundPath.shape.paths.push(new graphic.Polygon({ segmentIgnoreThreshold: 1, shape: { points: points } })); } }); compoundPath.setStyle(itemStyle); compoundPath.style.strokeNoScale = true; compoundPath.culling = true; // Label var showLabel = labelModel.get('show'); var hoverShowLabel = hoverLabelModel.get('show'); var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx)); var itemLayout = data && data.getItemLayout(dataIdx); // In the following cases label will be drawn // 1. In map series and data value is NaN // 2. In geo component // 4. Region has no series legendSymbol, which will be add a showLabel flag in mapSymbolLayout if (isGeo || isDataNaN && (showLabel || hoverShowLabel) || itemLayout && itemLayout.showLabel) { var query = !isGeo ? dataIdx : region.name; var labelFetcher; // Consider dataIdx not found. if (!data || dataIdx >= 0) { labelFetcher = mapOrGeoModel; } var textEl = new graphic.Text({ position: transformPoint(region.center.slice()), // FIXME // label rotation is not support yet in geo or regions of series-map // that has no data. The rotation will be effected by this `scale`. // So needed to change to RectText? scale: [1 / group.scale[0], 1 / group.scale[1]], z2: 10, silent: true }); graphic.setLabelStyle(textEl.style, textEl.hoverStyle = {}, labelModel, hoverLabelModel, { labelFetcher: labelFetcher, labelDataIndex: query, defaultText: region.name, useInsideStyle: false }, { textAlign: 'center', textVerticalAlign: 'middle' }); if (!isFirstDraw) { // Text animation var textScale = [1 / targetScale[0], 1 / targetScale[1]]; graphic.updateProps(textEl, { scale: textScale }, mapOrGeoModel); } regionGroup.add(textEl); } // setItemGraphicEl, setHoverStyle after all polygons and labels // are added to the rigionGroup if (data) { data.setItemGraphicEl(dataIdx, regionGroup); } else { var regionModel = mapOrGeoModel.getRegionModel(region.name); // Package custom mouse event for geo component compoundPath.eventData = { componentType: 'geo', componentIndex: mapOrGeoModel.componentIndex, geoIndex: mapOrGeoModel.componentIndex, name: region.name, region: regionModel && regionModel.option || {} }; } var groupRegions = regionGroup.__regions || (regionGroup.__regions = []); groupRegions.push(region); regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode'); graphic.setHoverStyle(regionGroup, hoverItemStyle); regionsGroup.add(regionGroup); }); this._updateController(mapOrGeoModel, ecModel, api); updateMapSelectHandler(this, mapOrGeoModel, regionsGroup, api, fromView); updateMapSelected(mapOrGeoModel, regionsGroup); }, remove: function remove() { this._regionsGroup.removeAll(); this._backgroundGroup.removeAll(); this._controller.dispose(); this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid); this._mapName = null; this._controllerHost = {}; }, _updateBackground: function _updateBackground(geo) { var mapName = geo.map; if (this._mapName !== mapName) { zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) { this._backgroundGroup.add(root); }, this); } this._mapName = mapName; }, _updateController: function _updateController(mapOrGeoModel, ecModel, api) { var geo = mapOrGeoModel.coordinateSystem; var controller = this._controller; var controllerHost = this._controllerHost; controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit'); controllerHost.zoom = geo.getZoom(); // roamType is will be set default true if it is null controller.enable(mapOrGeoModel.get('roam') || false); var mainType = mapOrGeoModel.mainType; function makeActionBase() { var action = { type: 'geoRoam', componentType: mainType }; action[mainType + 'Id'] = mapOrGeoModel.id; return action; } controller.off('pan').on('pan', function (e) { this._mouseDownFlag = false; roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy); api.dispatchAction(zrUtil.extend(makeActionBase(), { dx: e.dx, dy: e.dy })); }, this); controller.off('zoom').on('zoom', function (e) { this._mouseDownFlag = false; roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY); api.dispatchAction(zrUtil.extend(makeActionBase(), { zoom: e.scale, originX: e.originX, originY: e.originY })); if (this._updateGroup) { var scale = this.group.scale; this._regionsGroup.traverse(function (el) { if (el.type === 'text') { el.attr('scale', [1 / scale[0], 1 / scale[1]]); } }); } }, this); controller.setPointerChecker(function (e, x, y) { return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel); }); } }; var _default = MapDraw; module.exports = _default; /***/ }), /* 621 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/RoamController.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Eventful = __webpack_require__(/*! zrender/lib/mixin/Eventful */ 407); var eventTool = __webpack_require__(/*! zrender/lib/core/event */ 408); var interactionMutex = __webpack_require__(/*! ./interactionMutex */ 622); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @alias module:echarts/component/helper/RoamController * @constructor * @mixin {module:zrender/mixin/Eventful} * * @param {module:zrender/zrender~ZRender} zr */ function RoamController(zr) { /** * @type {Function} */ this.pointerChecker; /** * @type {module:zrender} */ this._zr = zr; /** * @type {Object} */ this._opt = {}; // Avoid two roamController bind the same handler var bind = zrUtil.bind; var mousedownHandler = bind(mousedown, this); var mousemoveHandler = bind(mousemove, this); var mouseupHandler = bind(mouseup, this); var mousewheelHandler = bind(mousewheel, this); var pinchHandler = bind(pinch, this); Eventful.call(this); /** * @param {Function} pointerChecker * input: x, y * output: boolean */ this.setPointerChecker = function (pointerChecker) { this.pointerChecker = pointerChecker; }; /** * Notice: only enable needed types. For example, if 'zoom' * is not needed, 'zoom' should not be enabled, otherwise * default mousewheel behaviour (scroll page) will be disabled. * * @param {boolean|string} [controlType=true] Specify the control type, * which can be null/undefined or true/false * or 'pan/move' or 'zoom'/'scale' * @param {Object} [opt] * @param {Object} [opt.zoomOnMouseWheel=true] The value can be: true / false / 'shift' / 'ctrl' / 'alt'. * @param {Object} [opt.moveOnMouseMove=true] The value can be: true / false / 'shift' / 'ctrl' / 'alt'. * @param {Object} [opt.moveOnMouseWheel=false] The value can be: true / false / 'shift' / 'ctrl' / 'alt'. * @param {Object} [opt.preventDefaultMouseMove=true] When pan. */ this.enable = function (controlType, opt) { // Disable previous first this.disable(); this._opt = zrUtil.defaults(zrUtil.clone(opt) || {}, { zoomOnMouseWheel: true, moveOnMouseMove: true, // By default, wheel do not trigger move. moveOnMouseWheel: false, preventDefaultMouseMove: true }); if (controlType == null) { controlType = true; } if (controlType === true || controlType === 'move' || controlType === 'pan') { zr.on('mousedown', mousedownHandler); zr.on('mousemove', mousemoveHandler); zr.on('mouseup', mouseupHandler); } if (controlType === true || controlType === 'scale' || controlType === 'zoom') { zr.on('mousewheel', mousewheelHandler); zr.on('pinch', pinchHandler); } }; this.disable = function () { zr.off('mousedown', mousedownHandler); zr.off('mousemove', mousemoveHandler); zr.off('mouseup', mouseupHandler); zr.off('mousewheel', mousewheelHandler); zr.off('pinch', pinchHandler); }; this.dispose = this.disable; this.isDragging = function () { return this._dragging; }; this.isPinching = function () { return this._pinching; }; } zrUtil.mixin(RoamController, Eventful); function mousedown(e) { if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) { return; } var x = e.offsetX; var y = e.offsetY; // Only check on mosedown, but not mousemove. // Mouse can be out of target when mouse moving. if (this.pointerChecker && this.pointerChecker(e, x, y)) { this._x = x; this._y = y; this._dragging = true; } } function mousemove(e) { if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) { return; } var x = e.offsetX; var y = e.offsetY; var oldX = this._x; var oldY = this._y; var dx = x - oldX; var dy = y - oldY; this._x = x; this._y = y; this._opt.preventDefaultMouseMove && eventTool.stop(e.event); trigger(this, 'pan', 'moveOnMouseMove', e, { dx: dx, dy: dy, oldX: oldX, oldY: oldY, newX: x, newY: y }); } function mouseup(e) { if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) { this._dragging = false; } } function mousewheel(e) { var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt); var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt); var wheelDelta = e.wheelDelta; var absWheelDeltaDelta = Math.abs(wheelDelta); var originX = e.offsetX; var originY = e.offsetY; // wheelDelta maybe -0 in chrome mac. if (wheelDelta === 0 || !shouldZoom && !shouldMove) { return; } // If both `shouldZoom` and `shouldMove` is true, trigger // their event both, and the final behavior is determined // by event listener themselves. if (shouldZoom) { // Convenience: // Mac and VM Windows on Mac: scroll up: zoom out. // Windows: scroll up: zoom in. // FIXME: Should do more test in different environment. // wheelDelta is too complicated in difference nvironment // (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel), // although it has been normallized by zrender. // wheelDelta of mouse wheel is bigger than touch pad. var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1; var scale = wheelDelta > 0 ? factor : 1 / factor; checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, { scale: scale, originX: originX, originY: originY }); } if (shouldMove) { // FIXME: Should do more test in different environment. var absDelta = Math.abs(wheelDelta); // wheelDelta of mouse wheel is bigger than touch pad. var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05); checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, { scrollDelta: scrollDelta, originX: originX, originY: originY }); } } function pinch(e) { if (interactionMutex.isTaken(this._zr, 'globalPan')) { return; } var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1; checkPointerAndTrigger(this, 'zoom', null, e, { scale: scale, originX: e.pinchX, originY: e.pinchY }); } function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) { if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) { // When mouse is out of roamController rect, // default befavoius should not be be disabled, otherwise // page sliding is disabled, contrary to expectation. eventTool.stop(e.event); trigger(controller, eventName, behaviorToCheck, e, contollerEvent); } } function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) { // Also provide behavior checker for event listener, for some case that // multiple components share one listener. contollerEvent.isAvailableBehavior = zrUtil.bind(isAvailableBehavior, null, behaviorToCheck, e); controller.trigger(eventName, contollerEvent); } // settings: { // zoomOnMouseWheel // moveOnMouseMove // moveOnMouseWheel // } // The value can be: true / false / 'shift' / 'ctrl' / 'alt'. function isAvailableBehavior(behaviorToCheck, e, settings) { var setting = settings[behaviorToCheck]; return !behaviorToCheck || setting && (!zrUtil.isString(setting) || e.event[setting + 'Key']); } var _default = RoamController; module.exports = _default; /***/ }), /* 622 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/interactionMutex.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ATTR = '\0_ec_interaction_mutex'; function take(zr, resourceKey, userKey) { var store = getStore(zr); store[resourceKey] = userKey; } function release(zr, resourceKey, userKey) { var store = getStore(zr); var uKey = store[resourceKey]; if (uKey === userKey) { store[resourceKey] = null; } } function isTaken(zr, resourceKey) { return !!getStore(zr)[resourceKey]; } function getStore(zr) { return zr[ATTR] || (zr[ATTR] = {}); } /** * payload: { * type: 'takeGlobalCursor', * key: 'dataZoomSelect', or 'brush', or ..., * If no userKey, release global cursor. * } */ echarts.registerAction({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, function () {}); exports.take = take; exports.release = release; exports.isTaken = isTaken; /***/ }), /* 623 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/roamHelper.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * For geo and graph. * * @param {Object} controllerHost * @param {module:zrender/Element} controllerHost.target */ function updateViewOnPan(controllerHost, dx, dy) { var target = controllerHost.target; var pos = target.position; pos[0] += dx; pos[1] += dy; target.dirty(); } /** * For geo and graph. * * @param {Object} controllerHost * @param {module:zrender/Element} controllerHost.target * @param {number} controllerHost.zoom * @param {number} controllerHost.zoomLimit like: {min: 1, max: 2} */ function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) { var target = controllerHost.target; var zoomLimit = controllerHost.zoomLimit; var pos = target.position; var scale = target.scale; var newZoom = controllerHost.zoom = controllerHost.zoom || 1; newZoom *= zoomDelta; if (zoomLimit) { var zoomMin = zoomLimit.min || 0; var zoomMax = zoomLimit.max || Infinity; newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin); } var zoomScale = newZoom / controllerHost.zoom; controllerHost.zoom = newZoom; // Keep the mouse center when scaling pos[0] -= (zoomX - pos[0]) * (zoomScale - 1); pos[1] -= (zoomY - pos[1]) * (zoomScale - 1); scale[0] *= zoomScale; scale[1] *= zoomScale; target.dirty(); } exports.updateViewOnPan = updateViewOnPan; exports.updateViewOnZoom = updateViewOnZoom; /***/ }), /* 624 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/cursorHelper.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var IRRELEVANT_EXCLUDES = { 'axisPointer': 1, 'tooltip': 1, 'brush': 1 }; /** * Avoid that: mouse click on a elements that is over geo or graph, * but roam is triggered. */ function onIrrelevantElement(e, api, targetCoordSysModel) { var model = api.getComponentByElement(e.topTarget); // If model is axisModel, it works only if it is injected with coordinateSystem. var coordSys = model && model.coordinateSystem; return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES[model.mainType] && coordSys && coordSys.model !== targetCoordSysModel; } exports.onIrrelevantElement = onIrrelevantElement; /***/ }), /* 625 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/action/geoRoam.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _roamHelper = __webpack_require__(/*! ./roamHelper */ 626); var updateCenterAndZoom = _roamHelper.updateCenterAndZoom; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @payload * @property {string} [componentType=series] * @property {number} [dx] * @property {number} [dy] * @property {number} [zoom] * @property {number} [originX] * @property {number} [originY] */ echarts.registerAction({ type: 'geoRoam', event: 'geoRoam', update: 'updateTransform' }, function (payload, ecModel) { var componentType = payload.componentType || 'series'; ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) { var geo = componentModel.coordinateSystem; if (geo.type !== 'geo') { return; } var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit')); componentModel.setCenter && componentModel.setCenter(res.center); componentModel.setZoom && componentModel.setZoom(res.zoom); // All map series with same `map` use the same geo coordinate system // So the center and zoom must be in sync. Include the series not selected by legend if (componentType === 'series') { zrUtil.each(componentModel.seriesGroup, function (seriesModel) { seriesModel.setCenter(res.center); seriesModel.setZoom(res.zoom); }); } }); }); /***/ }), /* 626 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/action/roamHelper.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {module:echarts/coord/View} view * @param {Object} payload * @param {Object} [zoomLimit] */ function updateCenterAndZoom(view, payload, zoomLimit) { var previousZoom = view.getZoom(); var center = view.getCenter(); var zoom = payload.zoom; var point = view.dataToPoint(center); if (payload.dx != null && payload.dy != null) { point[0] -= payload.dx; point[1] -= payload.dy; var center = view.pointToData(point); view.setCenter(center); } if (zoom != null) { if (zoomLimit) { var zoomMin = zoomLimit.min || 0; var zoomMax = zoomLimit.max || Infinity; zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom; } // Zoom on given point(originX, originY) view.scale[0] *= zoom; view.scale[1] *= zoom; var position = view.position; var fixX = (payload.originX - position[0]) * (zoom - 1); var fixY = (payload.originY - position[1]) * (zoom - 1); position[0] -= fixX; position[1] -= fixY; view.updateTransform(); // Get the new center var center = view.pointToData(point); view.setCenter(center); view.setZoom(zoom * previousZoom); } return { center: view.getCenter(), zoom: view.getZoom() }; } exports.updateCenterAndZoom = updateCenterAndZoom; /***/ }), /* 627 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/geoCreator.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Geo = __webpack_require__(/*! ./Geo */ 628); var layout = __webpack_require__(/*! ../../util/layout */ 488); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var geoSourceManager = __webpack_require__(/*! ./geoSourceManager */ 612); var mapDataStorage = __webpack_require__(/*! ./mapDataStorage */ 519); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Resize method bound to the geo * @param {module:echarts/coord/geo/GeoModel|module:echarts/chart/map/MapModel} geoModel * @param {module:echarts/ExtensionAPI} api */ function resizeGeo(geoModel, api) { var boundingCoords = geoModel.get('boundingCoords'); if (boundingCoords != null) { var leftTop = boundingCoords[0]; var rightBottom = boundingCoords[1]; if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {} else { this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]); } } var rect = this.getBoundingRect(); var boxLayoutOption; var center = geoModel.get('layoutCenter'); var size = geoModel.get('layoutSize'); var viewWidth = api.getWidth(); var viewHeight = api.getHeight(); var aspect = rect.width / rect.height * this.aspectScale; var useCenterAndSize = false; if (center && size) { center = [numberUtil.parsePercent(center[0], viewWidth), numberUtil.parsePercent(center[1], viewHeight)]; size = numberUtil.parsePercent(size, Math.min(viewWidth, viewHeight)); if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) { useCenterAndSize = true; } else {} } var viewRect; if (useCenterAndSize) { var viewRect = {}; if (aspect > 1) { // Width is same with size viewRect.width = size; viewRect.height = size / aspect; } else { viewRect.height = size; viewRect.width = size * aspect; } viewRect.y = center[1] - viewRect.height / 2; viewRect.x = center[0] - viewRect.width / 2; } else { // Use left/top/width/height boxLayoutOption = geoModel.getBoxLayoutParams(); // 0.75 rate boxLayoutOption.aspect = aspect; viewRect = layout.getLayoutRect(boxLayoutOption, { width: viewWidth, height: viewHeight }); } this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height); this.setCenter(geoModel.get('center')); this.setZoom(geoModel.get('zoom')); } /** * @param {module:echarts/coord/Geo} geo * @param {module:echarts/model/Model} model * @inner */ function setGeoCoords(geo, model) { zrUtil.each(model.get('geoCoord'), function (geoCoord, name) { geo.addGeoCoord(name, geoCoord); }); } var geoCreator = { // For deciding which dimensions to use when creating list data dimensions: Geo.prototype.dimensions, create: function create(ecModel, api) { var geoList = []; // FIXME Create each time may be slow ecModel.eachComponent('geo', function (geoModel, idx) { var name = geoModel.get('map'); var aspectScale = geoModel.get('aspectScale'); var invertLongitute = true; var mapRecords = mapDataStorage.retrieveMap(name); if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') { aspectScale == null && (aspectScale = 1); invertLongitute = false; } else { aspectScale == null && (aspectScale = 0.75); } var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute); geo.aspectScale = aspectScale; geo.zoomLimit = geoModel.get('scaleLimit'); geoList.push(geo); setGeoCoords(geo, geoModel); geoModel.coordinateSystem = geo; geo.model = geoModel; // Inject resize method geo.resize = resizeGeo; geo.resize(geoModel, api); }); ecModel.eachSeries(function (seriesModel) { var coordSys = seriesModel.get('coordinateSystem'); if (coordSys === 'geo') { var geoIndex = seriesModel.get('geoIndex') || 0; seriesModel.coordinateSystem = geoList[geoIndex]; } }); // If has map series var mapModelGroupBySeries = {}; ecModel.eachSeriesByType('map', function (seriesModel) { if (!seriesModel.getHostGeoModel()) { var mapType = seriesModel.getMapType(); mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || []; mapModelGroupBySeries[mapType].push(seriesModel); } }); zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) { var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) { return singleMapSeries.get('nameMap'); }); var geo = new Geo(mapType, mapType, zrUtil.mergeAll(nameMapList)); geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) { return singleMapSeries.get('scaleLimit'); })); geoList.push(geo); // Inject resize method geo.resize = resizeGeo; geo.aspectScale = mapSeries[0].get('aspectScale'); geo.resize(mapSeries[0], api); zrUtil.each(mapSeries, function (singleMapSeries) { singleMapSeries.coordinateSystem = geo; setGeoCoords(geo, singleMapSeries); }); }); return geoList; }, /** * Fill given regions array * @param {Array.} originRegionArr * @param {string} mapName * @param {Object} [nameMap] * @return {Array} */ getFilledRegions: function getFilledRegions(originRegionArr, mapName, nameMap) { // Not use the original var regionsArr = (originRegionArr || []).slice(); var dataNameMap = zrUtil.createHashMap(); for (var i = 0; i < regionsArr.length; i++) { dataNameMap.set(regionsArr[i].name, regionsArr[i]); } var source = geoSourceManager.load(mapName, nameMap); zrUtil.each(source.regions, function (region) { var name = region.name; !dataNameMap.get(name) && regionsArr.push({ name: name }); }); return regionsArr; } }; echarts.registerCoordinateSystem('geo', geoCreator); var _default = geoCreator; module.exports = _default; /***/ }), /* 628 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/Geo.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var View = __webpack_require__(/*! ../View */ 629); var geoSourceManager = __webpack_require__(/*! ./geoSourceManager */ 612); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * [Geo description] * For backward compatibility, the orginal interface: * `name, map, geoJson, specialAreas, nameMap` is kept. * * @param {string|Object} name * @param {string} map Map type * Specify the positioned areas by left, top, width, height * @param {Object.} [nameMap] * Specify name alias * @param {boolean} [invertLongitute=true] */ function Geo(name, map, nameMap, invertLongitute) { View.call(this, name); /** * Map type * @type {string} */ this.map = map; var source = geoSourceManager.load(map, nameMap); this._nameCoordMap = source.nameCoordMap; this._regionsMap = source.regionsMap; this._invertLongitute = invertLongitute == null ? true : invertLongitute; /** * @readOnly */ this.regions = source.regions; /** * @type {module:zrender/src/core/BoundingRect} */ this._rect = source.boundingRect; } Geo.prototype = { constructor: Geo, type: 'geo', /** * @param {Array.} * @readOnly */ dimensions: ['lng', 'lat'], /** * If contain given lng,lat coord * @param {Array.} * @readOnly */ containCoord: function containCoord(coord) { var regions = this.regions; for (var i = 0; i < regions.length; i++) { if (regions[i].contain(coord)) { return true; } } return false; }, /** * @override */ transformTo: function transformTo(x, y, width, height) { var rect = this.getBoundingRect(); var invertLongitute = this._invertLongitute; rect = rect.clone(); if (invertLongitute) { // Longitute is inverted rect.y = -rect.y - rect.height; } var rawTransformable = this._rawTransformable; rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height)); rawTransformable.decomposeTransform(); if (invertLongitute) { var scale = rawTransformable.scale; scale[1] = -scale[1]; } rawTransformable.updateTransform(); this._updateTransform(); }, /** * @param {string} name * @return {module:echarts/coord/geo/Region} */ getRegion: function getRegion(name) { return this._regionsMap.get(name); }, getRegionByCoord: function getRegionByCoord(coord) { var regions = this.regions; for (var i = 0; i < regions.length; i++) { if (regions[i].contain(coord)) { return regions[i]; } } }, /** * Add geoCoord for indexing by name * @param {string} name * @param {Array.} geoCoord */ addGeoCoord: function addGeoCoord(name, geoCoord) { this._nameCoordMap.set(name, geoCoord); }, /** * Get geoCoord by name * @param {string} name * @return {Array.} */ getGeoCoord: function getGeoCoord(name) { return this._nameCoordMap.get(name); }, /** * @override */ getBoundingRect: function getBoundingRect() { return this._rect; }, /** * @param {string|Array.} data * @param {boolean} noRoam * @param {Array.} [out] * @return {Array.} */ dataToPoint: function dataToPoint(data, noRoam, out) { if (typeof data === 'string') { // Map area name to geoCoord data = this.getGeoCoord(data); } if (data) { return View.prototype.dataToPoint.call(this, data, noRoam, out); } }, /** * @override */ convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'), /** * @override */ convertFromPixel: zrUtil.curry(doConvert, 'pointToData') }; zrUtil.mixin(Geo, View); function doConvert(methodName, ecModel, finder, value) { var geoModel = finder.geoModel; var seriesModel = finder.seriesModel; var coordSys = geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map. || (seriesModel.getReferringComponents('geo')[0] || {}).coordinateSystem : null; return coordSys === this ? coordSys[methodName](value) : null; } var _default = Geo; module.exports = _default; /***/ }), /* 629 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/View.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var vector = __webpack_require__(/*! zrender/lib/core/vector */ 405); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var Transformable = __webpack_require__(/*! zrender/lib/mixin/Transformable */ 415); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Simple view coordinate system * Mapping given x, y to transformd view x, y */ var v2ApplyTransform = vector.applyTransform; // Dummy transform node function TransformDummy() { Transformable.call(this); } zrUtil.mixin(TransformDummy, Transformable); function View(name) { /** * @type {string} */ this.name = name; /** * @type {Object} */ this.zoomLimit; Transformable.call(this); this._roamTransformable = new TransformDummy(); this._rawTransformable = new TransformDummy(); this._center; this._zoom; } View.prototype = { constructor: View, type: 'view', /** * @param {Array.} * @readOnly */ dimensions: ['x', 'y'], /** * Set bounding rect * @param {number} x * @param {number} y * @param {number} width * @param {number} height */ // PENDING to getRect setBoundingRect: function setBoundingRect(x, y, width, height) { this._rect = new BoundingRect(x, y, width, height); return this._rect; }, /** * @return {module:zrender/core/BoundingRect} */ // PENDING to getRect getBoundingRect: function getBoundingRect() { return this._rect; }, /** * @param {number} x * @param {number} y * @param {number} width * @param {number} height */ setViewRect: function setViewRect(x, y, width, height) { this.transformTo(x, y, width, height); this._viewRect = new BoundingRect(x, y, width, height); }, /** * Transformed to particular position and size * @param {number} x * @param {number} y * @param {number} width * @param {number} height */ transformTo: function transformTo(x, y, width, height) { var rect = this.getBoundingRect(); var rawTransform = this._rawTransformable; rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height)); rawTransform.decomposeTransform(); this._updateTransform(); }, /** * Set center of view * @param {Array.} [centerCoord] */ setCenter: function setCenter(centerCoord) { if (!centerCoord) { return; } this._center = centerCoord; this._updateCenterAndZoom(); }, /** * @param {number} zoom */ setZoom: function setZoom(zoom) { zoom = zoom || 1; var zoomLimit = this.zoomLimit; if (zoomLimit) { if (zoomLimit.max != null) { zoom = Math.min(zoomLimit.max, zoom); } if (zoomLimit.min != null) { zoom = Math.max(zoomLimit.min, zoom); } } this._zoom = zoom; this._updateCenterAndZoom(); }, /** * Get default center without roam */ getDefaultCenter: function getDefaultCenter() { // Rect before any transform var rawRect = this.getBoundingRect(); var cx = rawRect.x + rawRect.width / 2; var cy = rawRect.y + rawRect.height / 2; return [cx, cy]; }, getCenter: function getCenter() { return this._center || this.getDefaultCenter(); }, getZoom: function getZoom() { return this._zoom || 1; }, /** * @return {Array.} data * @param {boolean} noRoam * @param {Array.} [out] * @return {Array.} */ dataToPoint: function dataToPoint(data, noRoam, out) { var transform = noRoam ? this._rawTransform : this.transform; out = out || []; return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data); }, /** * Convert a (x, y) point to (lon, lat) data * @param {Array.} point * @return {Array.} */ pointToData: function pointToData(point) { var invTransform = this.invTransform; return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]]; }, /** * @implements * see {module:echarts/CoodinateSystem} */ convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'), /** * @implements * see {module:echarts/CoodinateSystem} */ convertFromPixel: zrUtil.curry(doConvert, 'pointToData'), /** * @implements * see {module:echarts/CoodinateSystem} */ containPoint: function containPoint(point) { return this.getViewRectAfterRoam().contain(point[0], point[1]); } /** * @return {number} */ // getScalarScale: function () { // // Use determinant square root of transform to mutiply scalar // var m = this.transform; // var det = Math.sqrt(Math.abs(m[0] * m[3] - m[2] * m[1])); // return det; // } }; zrUtil.mixin(View, Transformable); function doConvert(methodName, ecModel, finder, value) { var seriesModel = finder.seriesModel; var coordSys = seriesModel ? seriesModel.coordinateSystem : null; // e.g., graph. return coordSys === this ? coordSys[methodName](value) : null; } var _default = View; module.exports = _default; /***/ }), /* 630 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/map/mapSymbolLayout.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { var processedMapType = {}; ecModel.eachSeriesByType('map', function (mapSeries) { var mapType = mapSeries.getMapType(); if (mapSeries.getHostGeoModel() || processedMapType[mapType]) { return; } var mapSymbolOffsets = {}; zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) { var geo = subMapSeries.coordinateSystem; var data = subMapSeries.originalData; if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) { data.each(data.mapDimension('value'), function (value, idx) { var name = data.getName(idx); var region = geo.getRegion(name); // If input series.data is [11, 22, '-'/null/undefined, 44], // it will be filled with NaN: [11, 22, NaN, 44] and NaN will // not be drawn. So here must validate if value is NaN. if (!region || isNaN(value)) { return; } var offset = mapSymbolOffsets[name] || 0; var point = geo.dataToPoint(region.center); mapSymbolOffsets[name] = offset + 1; data.setItemLayout(idx, { point: point, offset: offset }); }); } }); // Show label of those region not has legendSymbol(which is offset 0) var data = mapSeries.getData(); data.each(function (idx) { var name = data.getName(idx); var layout = data.getItemLayout(idx) || {}; layout.showLabel = !mapSymbolOffsets[name]; data.setItemLayout(idx, layout); }); processedMapType[mapType] = true; }); } module.exports = _default; /***/ }), /* 631 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/map/mapVisual.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { ecModel.eachSeriesByType('map', function (seriesModel) { var colorList = seriesModel.get('color'); var itemStyleModel = seriesModel.getModel('itemStyle'); var areaColor = itemStyleModel.get('areaColor'); var color = itemStyleModel.get('color') || colorList[seriesModel.seriesIndex % colorList.length]; seriesModel.getData().setVisual({ 'areaColor': areaColor, 'color': color }); }); } module.exports = _default; /***/ }), /* 632 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/map/mapDataStatistic.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // FIXME 公用? /** * @param {Array.} datas * @param {string} statisticType 'average' 'sum' * @inner */ function dataStatistics(datas, statisticType) { var dataNameMap = {}; zrUtil.each(datas, function (data) { data.each(data.mapDimension('value'), function (value, idx) { // Add prefix to avoid conflict with Object.prototype. var mapKey = 'ec-' + data.getName(idx); dataNameMap[mapKey] = dataNameMap[mapKey] || []; if (!isNaN(value)) { dataNameMap[mapKey].push(value); } }); }); return datas[0].map(datas[0].mapDimension('value'), function (value, idx) { var mapKey = 'ec-' + datas[0].getName(idx); var sum = 0; var min = Infinity; var max = -Infinity; var len = dataNameMap[mapKey].length; for (var i = 0; i < len; i++) { min = Math.min(min, dataNameMap[mapKey][i]); max = Math.max(max, dataNameMap[mapKey][i]); sum += dataNameMap[mapKey][i]; } var result; if (statisticType === 'min') { result = min; } else if (statisticType === 'max') { result = max; } else if (statisticType === 'average') { result = sum / len; } else { result = sum; } return len === 0 ? NaN : result; }); } function _default(ecModel) { var seriesGroups = {}; ecModel.eachSeriesByType('map', function (seriesModel) { var hostGeoModel = seriesModel.getHostGeoModel(); var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType(); (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel); }); zrUtil.each(seriesGroups, function (seriesList, key) { var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) { return seriesModel.getData(); }), seriesList[0].get('mapValueCalculation')); for (var i = 0; i < seriesList.length; i++) { seriesList[i].originalData = seriesList[i].getData(); } // FIXME Put where? for (var i = 0; i < seriesList.length; i++) { seriesList[i].seriesGroup = seriesList; seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel(); seriesList[i].setData(data.cloneShallow()); seriesList[i].mainSeries = seriesList[0]; } }); } module.exports = _default; /***/ }), /* 633 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/map/backwardCompat.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(option) { // Save geoCoord var mapSeries = []; zrUtil.each(option.series, function (seriesOpt) { if (seriesOpt && seriesOpt.type === 'map') { mapSeries.push(seriesOpt); seriesOpt.map = seriesOpt.map || seriesOpt.mapType; // Put x, y, width, height, x2, y2 in the top level zrUtil.defaults(seriesOpt, seriesOpt.mapLocation); } }); } module.exports = _default; /***/ }), /* 634 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/tree.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./tree/TreeSeries */ 635); __webpack_require__(/*! ./tree/TreeView */ 638); __webpack_require__(/*! ./tree/treeAction */ 640); var visualSymbol = __webpack_require__(/*! ../visual/symbol */ 559); var treeLayout = __webpack_require__(/*! ./tree/treeLayout */ 641); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerVisual(visualSymbol('tree', 'circle')); echarts.registerLayout(treeLayout); /***/ }), /* 635 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/tree/TreeSeries.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var Tree = __webpack_require__(/*! ../../data/Tree */ 636); var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var Model = __webpack_require__(/*! ../../model/Model */ 445); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.tree', layoutInfo: null, // can support the position parameters 'left', 'top','right','bottom', 'width', // 'height' in the setOption() with 'merge' mode normal. layoutMode: 'box', /** * Init a tree data structure from data in option series * @param {Object} option the object used to config echarts view * @return {module:echarts/data/List} storage initial data */ getInitialData: function getInitialData(option) { //create an virtual root var root = { name: option.name, children: option.data }; var leaves = option.leaves || {}; var leavesModel = new Model(leaves, this, this.ecModel); var tree = Tree.createTree(root, this, beforeLink); function beforeLink(nodeData) { nodeData.wrapMethod('getItemModel', function (model, idx) { var node = tree.getNodeByDataIndex(idx); if (!node.children.length || !node.isExpand) { model.parentModel = leavesModel; } return model; }); } var treeDepth = 0; tree.eachNode('preorder', function (node) { if (node.depth > treeDepth) { treeDepth = node.depth; } }); var expandAndCollapse = option.expandAndCollapse; var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth; tree.root.eachNode('preorder', function (node) { var item = node.hostTree.data.getRawDataItem(node.dataIndex); // Add item.collapsed != null, because users can collapse node original in the series.data. node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth; }); return tree.data; }, /** * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'. * @returns {string} orient */ getOrient: function getOrient() { var orient = this.get('orient'); if (orient === 'horizontal') { orient = 'LR'; } else if (orient === 'vertical') { orient = 'TB'; } return orient; }, setZoom: function setZoom(zoom) { this.option.zoom = zoom; }, setCenter: function setCenter(center) { this.option.center = center; }, /** * @override * @param {number} dataIndex */ formatTooltip: function formatTooltip(dataIndex) { var tree = this.getData().tree; var realRoot = tree.root.children[0]; var node = tree.getNodeByDataIndex(dataIndex); var value = node.getValue(); var name = node.name; while (node && node !== realRoot) { name = node.parentNode.name + '.' + name; node = node.parentNode; } return encodeHTML(name + (isNaN(value) || value == null ? '' : ' : ' + value)); }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: 'view', // the position of the whole view left: '12%', top: '12%', right: '12%', bottom: '12%', // the layout of the tree, two value can be selected, 'orthogonal' or 'radial' layout: 'orthogonal', // value can be 'polyline' edgeShape: 'curve', edgeForkPosition: '50%', // true | false | 'move' | 'scale', see module:component/helper/RoamController. roam: false, // Symbol size scale ratio in roam nodeScaleRatio: 0.4, // Default on center of graph center: null, zoom: 1, // The orient of orthoginal layout, can be setted to 'LR', 'TB', 'RL', 'BT'. // and the backward compatibility configuration 'horizontal = LR', 'vertical = TB'. orient: 'LR', symbol: 'emptyCircle', symbolSize: 7, expandAndCollapse: true, initialTreeDepth: 2, lineStyle: { color: '#ccc', width: 1.5, curveness: 0.5 }, itemStyle: { color: 'lightsteelblue', borderColor: '#c23531', borderWidth: 1.5 }, label: { show: true, color: '#555' }, leaves: { label: { show: true } }, animationEasing: 'linear', animationDuration: 700, animationDurationUpdate: 1000 } }); module.exports = _default; /***/ }), /* 636 */ /*!**********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/Tree.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var linkList = __webpack_require__(/*! ./helper/linkList */ 637); var List = __webpack_require__(/*! ./List */ 525); var createDimensions = __webpack_require__(/*! ./helper/createDimensions */ 529); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Tree data structure * * @module echarts/data/Tree */ /** * @constructor module:echarts/data/Tree~TreeNode * @param {string} name * @param {module:echarts/data/Tree} hostTree */ var TreeNode = function TreeNode(name, hostTree) { /** * @type {string} */ this.name = name || ''; /** * Depth of node * * @type {number} * @readOnly */ this.depth = 0; /** * Height of the subtree rooted at this node. * @type {number} * @readOnly */ this.height = 0; /** * @type {module:echarts/data/Tree~TreeNode} * @readOnly */ this.parentNode = null; /** * Reference to list item. * Do not persistent dataIndex outside, * besause it may be changed by list. * If dataIndex -1, * this node is logical deleted (filtered) in list. * * @type {Object} * @readOnly */ this.dataIndex = -1; /** * @type {Array.} * @readOnly */ this.children = []; /** * @type {Array.} * @pubilc */ this.viewChildren = []; /** * @type {moduel:echarts/data/Tree} * @readOnly */ this.hostTree = hostTree; }; TreeNode.prototype = { constructor: TreeNode, /** * The node is removed. * @return {boolean} is removed. */ isRemoved: function isRemoved() { return this.dataIndex < 0; }, /** * Travel this subtree (include this node). * Usage: * node.eachNode(function () { ... }); // preorder * node.eachNode('preorder', function () { ... }); // preorder * node.eachNode('postorder', function () { ... }); // postorder * node.eachNode( * {order: 'postorder', attr: 'viewChildren'}, * function () { ... } * ); // postorder * * @param {(Object|string)} options If string, means order. * @param {string=} options.order 'preorder' or 'postorder' * @param {string=} options.attr 'children' or 'viewChildren' * @param {Function} cb If in preorder and return false, * its subtree will not be visited. * @param {Object} [context] */ eachNode: function eachNode(options, cb, context) { if (typeof options === 'function') { context = cb; cb = options; options = null; } options = options || {}; if (zrUtil.isString(options)) { options = { order: options }; } var order = options.order || 'preorder'; var children = this[options.attr || 'children']; var suppressVisitSub; order === 'preorder' && (suppressVisitSub = cb.call(context, this)); for (var i = 0; !suppressVisitSub && i < children.length; i++) { children[i].eachNode(options, cb, context); } order === 'postorder' && cb.call(context, this); }, /** * Update depth and height of this subtree. * * @param {number} depth */ updateDepthAndHeight: function updateDepthAndHeight(depth) { var height = 0; this.depth = depth; for (var i = 0; i < this.children.length; i++) { var child = this.children[i]; child.updateDepthAndHeight(depth + 1); if (child.height > height) { height = child.height; } } this.height = height + 1; }, /** * @param {string} id * @return {module:echarts/data/Tree~TreeNode} */ getNodeById: function getNodeById(id) { if (this.getId() === id) { return this; } for (var i = 0, children = this.children, len = children.length; i < len; i++) { var res = children[i].getNodeById(id); if (res) { return res; } } }, /** * @param {module:echarts/data/Tree~TreeNode} node * @return {boolean} */ contains: function contains(node) { if (node === this) { return true; } for (var i = 0, children = this.children, len = children.length; i < len; i++) { var res = children[i].contains(node); if (res) { return res; } } }, /** * @param {boolean} includeSelf Default false. * @return {Array.} order: [root, child, grandchild, ...] */ getAncestors: function getAncestors(includeSelf) { var ancestors = []; var node = includeSelf ? this : this.parentNode; while (node) { ancestors.push(node); node = node.parentNode; } ancestors.reverse(); return ancestors; }, /** * @param {string|Array=} [dimension='value'] Default 'value'. can be 0, 1, 2, 3 * @return {number} Value. */ getValue: function getValue(dimension) { var data = this.hostTree.data; return data.get(data.getDimension(dimension || 'value'), this.dataIndex); }, /** * @param {Object} layout * @param {boolean=} [merge=false] */ setLayout: function setLayout(layout, merge) { this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge); }, /** * @return {Object} layout */ getLayout: function getLayout() { return this.hostTree.data.getItemLayout(this.dataIndex); }, /** * @param {string} [path] * @return {module:echarts/model/Model} */ getModel: function getModel(path) { if (this.dataIndex < 0) { return; } var hostTree = this.hostTree; var itemModel = hostTree.data.getItemModel(this.dataIndex); return itemModel.getModel(path); }, /** * @example * setItemVisual('color', color); * setItemVisual({ * 'color': color * }); */ setVisual: function setVisual(key, value) { this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value); }, /** * Get item visual */ getVisual: function getVisual(key, ignoreParent) { return this.hostTree.data.getItemVisual(this.dataIndex, key, ignoreParent); }, /** * @public * @return {number} */ getRawIndex: function getRawIndex() { return this.hostTree.data.getRawIndex(this.dataIndex); }, /** * @public * @return {string} */ getId: function getId() { return this.hostTree.data.getId(this.dataIndex); }, /** * if this is an ancestor of another node * * @public * @param {TreeNode} node another node * @return {boolean} if is ancestor */ isAncestorOf: function isAncestorOf(node) { var parent = node.parentNode; while (parent) { if (parent === this) { return true; } parent = parent.parentNode; } return false; }, /** * if this is an descendant of another node * * @public * @param {TreeNode} node another node * @return {boolean} if is descendant */ isDescendantOf: function isDescendantOf(node) { return node !== this && node.isAncestorOf(this); } }; /** * @constructor * @alias module:echarts/data/Tree * @param {module:echarts/model/Model} hostModel */ function Tree(hostModel) { /** * @type {module:echarts/data/Tree~TreeNode} * @readOnly */ this.root; /** * @type {module:echarts/data/List} * @readOnly */ this.data; /** * Index of each item is the same as the raw index of coresponding list item. * @private * @type {Array. rootLayout.x; if (!isLeft) { rad = rad - Math.PI; } } } var textPosition = isLeft ? 'left' : 'right'; var rotate = seriesScope.labelModel.get('rotate'); var labelRotateRadian = rotate * (Math.PI / 180); symbolPath.setStyle({ textPosition: seriesScope.labelModel.get('position') || textPosition, textRotation: rotate == null ? -rad : labelRotateRadian, textOrigin: 'center', verticalAlign: 'middle' }); } drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group, seriesScope); } function drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group, seriesScope) { var edgeShape = seriesScope.edgeShape; var edge = symbolEl.__edge; if (edgeShape === 'curve') { if (node.parentNode && node.parentNode !== virtualRoot) { if (!edge) { edge = symbolEl.__edge = new graphic.BezierCurve({ shape: getEdgeShape(seriesScope, sourceOldLayout, sourceOldLayout), style: zrUtil.defaults({ opacity: 0, strokeNoScale: true }, seriesScope.lineStyle) }); } graphic.updateProps(edge, { shape: getEdgeShape(seriesScope, sourceLayout, targetLayout), style: zrUtil.defaults({ opacity: 1 }, seriesScope.lineStyle) }, seriesModel); } } else if (edgeShape === 'polyline') { if (seriesScope.layout === 'orthogonal') { if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) { var children = node.children; var childPoints = []; for (var i = 0; i < children.length; i++) { var childLayout = children[i].getLayout(); childPoints.push([childLayout.x, childLayout.y]); } if (!edge) { edge = symbolEl.__edge = new TreeShape({ shape: { parentPoint: [targetLayout.x, targetLayout.y], childPoints: [[targetLayout.x, targetLayout.y]], orient: seriesScope.orient, forkPosition: seriesScope.edgeForkPosition }, style: zrUtil.defaults({ opacity: 0, strokeNoScale: true }, seriesScope.lineStyle) }); } graphic.updateProps(edge, { shape: { parentPoint: [targetLayout.x, targetLayout.y], childPoints: childPoints }, style: zrUtil.defaults({ opacity: 1 }, seriesScope.lineStyle) }, seriesModel); } } else {} } group.add(edge); } function removeNode(data, dataIndex, symbolEl, group, seriesModel, seriesScope) { var node = data.tree.getNodeByDataIndex(dataIndex); var virtualRoot = data.tree.root; var itemModel = node.getModel(); var seriesScope = getTreeNodeStyle(node, itemModel, seriesScope); var source = node.parentNode === virtualRoot ? node : node.parentNode || node; var edgeShape = seriesScope.edgeShape; var sourceLayout; while (sourceLayout = source.getLayout(), sourceLayout == null) { source = source.parentNode === virtualRoot ? source : source.parentNode || source; } graphic.updateProps(symbolEl, { position: [sourceLayout.x + 1, sourceLayout.y + 1] }, seriesModel, function () { group.remove(symbolEl); data.setItemGraphicEl(dataIndex, null); }); symbolEl.fadeOut(null, { keepLabel: true }); var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex); var sourceEdge = sourceSymbolEl.__edge; // 1. when expand the sub tree, delete the children node should delete the edge of // the source at the same time. because the polyline edge shape is only owned by the source. // 2.when the node is the only children of the source, delete the node should delete the edge of // the source at the same time. the same reason as above. var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined); var edgeShape = seriesScope.edgeShape; if (edge) { if (edgeShape === 'curve') { graphic.updateProps(edge, { shape: getEdgeShape(seriesScope, sourceLayout, sourceLayout), style: { opacity: 0 } }, seriesModel, function () { group.remove(edge); }); } else if (edgeShape === 'polyline' && seriesScope.layout === 'orthogonal') { graphic.updateProps(edge, { shape: { parentPoint: [sourceLayout.x, sourceLayout.y], childPoints: [[sourceLayout.x, sourceLayout.y]] }, style: { opacity: 0 } }, seriesModel, function () { group.remove(edge); }); } } } function getEdgeShape(seriesScope, sourceLayout, targetLayout) { var cpx1; var cpy1; var cpx2; var cpy2; var orient = seriesScope.orient; var x1; var x2; var y1; var y2; if (seriesScope.layout === 'radial') { x1 = sourceLayout.rawX; y1 = sourceLayout.rawY; x2 = targetLayout.rawX; y2 = targetLayout.rawY; var radialCoor1 = radialCoordinate(x1, y1); var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * seriesScope.curvature); var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * seriesScope.curvature); var radialCoor4 = radialCoordinate(x2, y2); return { x1: radialCoor1.x, y1: radialCoor1.y, x2: radialCoor4.x, y2: radialCoor4.y, cpx1: radialCoor2.x, cpy1: radialCoor2.y, cpx2: radialCoor3.x, cpy2: radialCoor3.y }; } else { x1 = sourceLayout.x; y1 = sourceLayout.y; x2 = targetLayout.x; y2 = targetLayout.y; if (orient === 'LR' || orient === 'RL') { cpx1 = x1 + (x2 - x1) * seriesScope.curvature; cpy1 = y1; cpx2 = x2 + (x1 - x2) * seriesScope.curvature; cpy2 = y2; } if (orient === 'TB' || orient === 'BT') { cpx1 = x1; cpy1 = y1 + (y2 - y1) * seriesScope.curvature; cpx2 = x2; cpy2 = y2 + (y1 - y2) * seriesScope.curvature; } } return { x1: x1, y1: y1, x2: x2, y2: y2, cpx1: cpx1, cpy1: cpy1, cpx2: cpx2, cpy2: cpy2 }; } module.exports = _default; /***/ }), /* 639 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/tree/layoutHelper.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var layout = __webpack_require__(/*! ../../util/layout */ 488); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * A third-party license is embeded for some of the code in this file: * The tree layoutHelper implementation was originally copied from * "d3.js"(https://github.com/d3/d3-hierarchy) with * some modifications made for this project. * (see more details in the comment of the specific method below.) * The use of the source code of this file is also subject to the terms * and consitions of the licence of "d3.js" (BSD-3Clause, see * ). */ /** * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing * the tree. */ /** * Initialize all computational message for following algorithm. * * @param {module:echarts/data/Tree~TreeNode} root The virtual root of the tree. */ function init(root) { root.hierNode = { defaultAncestor: null, ancestor: root, prelim: 0, modifier: 0, change: 0, shift: 0, i: 0, thread: null }; var nodes = [root]; var node; var children; while (node = nodes.pop()) { // jshint ignore:line children = node.children; if (node.isExpand && children.length) { var n = children.length; for (var i = n - 1; i >= 0; i--) { var child = children[i]; child.hierNode = { defaultAncestor: null, ancestor: child, prelim: 0, modifier: 0, change: 0, shift: 0, i: i, thread: null }; nodes.push(child); } } } } /** * The implementation of this function was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. * * Computes a preliminary x coordinate for node. Before that, this function is * applied recursively to the children of node, as well as the function * apportion(). After spacing out the children by calling executeShifts(), the * node is placed to the midpoint of its outermost children. * * @param {module:echarts/data/Tree~TreeNode} node * @param {Function} separation */ function firstWalk(node, separation) { var children = node.isExpand ? node.children : []; var siblings = node.parentNode.children; var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null; if (children.length) { executeShifts(node); var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2; if (subtreeW) { node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW); node.hierNode.modifier = node.hierNode.prelim - midPoint; } else { node.hierNode.prelim = midPoint; } } else if (subtreeW) { node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW); } node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation); } /** * The implementation of this function was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. * * Computes all real x-coordinates by summing up the modifiers recursively. * * @param {module:echarts/data/Tree~TreeNode} node */ function secondWalk(node) { var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier; node.setLayout({ x: nodeX }, true); node.hierNode.modifier += node.parentNode.hierNode.modifier; } function separation(cb) { return arguments.length ? cb : defaultSeparation; } /** * Transform the common coordinate to radial coordinate. * * @param {number} x * @param {number} y * @return {Object} */ function radialCoordinate(x, y) { var radialCoor = {}; x -= Math.PI / 2; radialCoor.x = y * Math.cos(x); radialCoor.y = y * Math.sin(x); return radialCoor; } /** * Get the layout position of the whole view. * * @param {module:echarts/model/Series} seriesModel the model object of sankey series * @param {module:echarts/ExtensionAPI} api provide the API list that the developer can call * @return {module:zrender/core/BoundingRect} size of rect to draw the sankey view */ function getViewRect(seriesModel, api) { return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); } /** * All other shifts, applied to the smaller subtrees between w- and w+, are * performed by this function. * * The implementation of this function was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. * * @param {module:echarts/data/Tree~TreeNode} node */ function executeShifts(node) { var children = node.children; var n = children.length; var shift = 0; var change = 0; while (--n >= 0) { var child = children[n]; child.hierNode.prelim += shift; child.hierNode.modifier += shift; change += child.hierNode.change; shift += child.hierNode.shift + change; } } /** * The implementation of this function was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. * * The core of the algorithm. Here, a new subtree is combined with the * previous subtrees. Threads are used to traverse the inside and outside * contours of the left and right subtree up to the highest common level. * Whenever two nodes of the inside contours conflict, we compute the left * one of the greatest uncommon ancestors using the function nextAncestor() * and call moveSubtree() to shift the subtree and prepare the shifts of * smaller subtrees. Finally, we add a new thread (if necessary). * * @param {module:echarts/data/Tree~TreeNode} subtreeV * @param {module:echarts/data/Tree~TreeNode} subtreeW * @param {module:echarts/data/Tree~TreeNode} ancestor * @param {Function} separation * @return {module:echarts/data/Tree~TreeNode} */ function apportion(subtreeV, subtreeW, ancestor, separation) { if (subtreeW) { var nodeOutRight = subtreeV; var nodeInRight = subtreeV; var nodeOutLeft = nodeInRight.parentNode.children[0]; var nodeInLeft = subtreeW; var sumOutRight = nodeOutRight.hierNode.modifier; var sumInRight = nodeInRight.hierNode.modifier; var sumOutLeft = nodeOutLeft.hierNode.modifier; var sumInLeft = nodeInLeft.hierNode.modifier; while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) { nodeOutRight = nextRight(nodeOutRight); nodeOutLeft = nextLeft(nodeOutLeft); nodeOutRight.hierNode.ancestor = subtreeV; var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight); if (shift > 0) { moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift); sumInRight += shift; sumOutRight += shift; } sumInLeft += nodeInLeft.hierNode.modifier; sumInRight += nodeInRight.hierNode.modifier; sumOutRight += nodeOutRight.hierNode.modifier; sumOutLeft += nodeOutLeft.hierNode.modifier; } if (nodeInLeft && !nextRight(nodeOutRight)) { nodeOutRight.hierNode.thread = nodeInLeft; nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight; } if (nodeInRight && !nextLeft(nodeOutLeft)) { nodeOutLeft.hierNode.thread = nodeInRight; nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft; ancestor = subtreeV; } } return ancestor; } /** * This function is used to traverse the right contour of a subtree. * It returns the rightmost child of node or the thread of node. The function * returns null if and only if node is on the highest depth of its subtree. * * @param {module:echarts/data/Tree~TreeNode} node * @return {module:echarts/data/Tree~TreeNode} */ function nextRight(node) { var children = node.children; return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread; } /** * This function is used to traverse the left contour of a subtree (or a subforest). * It returns the leftmost child of node or the thread of node. The function * returns null if and only if node is on the highest depth of its subtree. * * @param {module:echarts/data/Tree~TreeNode} node * @return {module:echarts/data/Tree~TreeNode} */ function nextLeft(node) { var children = node.children; return children.length && node.isExpand ? children[0] : node.hierNode.thread; } /** * If nodeInLeft’s ancestor is a sibling of node, returns nodeInLeft’s ancestor. * Otherwise, returns the specified ancestor. * * @param {module:echarts/data/Tree~TreeNode} nodeInLeft * @param {module:echarts/data/Tree~TreeNode} node * @param {module:echarts/data/Tree~TreeNode} ancestor * @return {module:echarts/data/Tree~TreeNode} */ function nextAncestor(nodeInLeft, node, ancestor) { return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor; } /** * The implementation of this function was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. * * Shifts the current subtree rooted at wr. * This is done by increasing prelim(w+) and modifier(w+) by shift. * * @param {module:echarts/data/Tree~TreeNode} wl * @param {module:echarts/data/Tree~TreeNode} wr * @param {number} shift [description] */ function moveSubtree(wl, wr, shift) { var change = shift / (wr.hierNode.i - wl.hierNode.i); wr.hierNode.change -= change; wr.hierNode.shift += shift; wr.hierNode.modifier += shift; wr.hierNode.prelim += shift; wl.hierNode.change += change; } /** * The implementation of this function was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. */ function defaultSeparation(node1, node2) { return node1.parentNode === node2.parentNode ? 1 : 2; } exports.init = init; exports.firstWalk = firstWalk; exports.secondWalk = secondWalk; exports.separation = separation; exports.radialCoordinate = radialCoordinate; exports.getViewRect = getViewRect; /***/ }), /* 640 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/tree/treeAction.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var _roamHelper = __webpack_require__(/*! ../../action/roamHelper */ 626); var updateCenterAndZoom = _roamHelper.updateCenterAndZoom; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerAction({ type: 'treeExpandAndCollapse', event: 'treeExpandAndCollapse', update: 'update' }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', subType: 'tree', query: payload }, function (seriesModel) { var dataIndex = payload.dataIndex; var tree = seriesModel.getData().tree; var node = tree.getNodeByDataIndex(dataIndex); node.isExpand = !node.isExpand; }); }); echarts.registerAction({ type: 'treeRoam', event: 'treeRoam', // Here we set 'none' instead of 'update', because roam action // just need to update the transform matrix without having to recalculate // the layout. So don't need to go through the whole update process, such // as 'dataPrcocess', 'coordSystemUpdate', 'layout' and so on. update: 'none' }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', subType: 'tree', query: payload }, function (seriesModel) { var coordSys = seriesModel.coordinateSystem; var res = updateCenterAndZoom(coordSys, payload); seriesModel.setCenter && seriesModel.setCenter(res.center); seriesModel.setZoom && seriesModel.setZoom(res.zoom); }); }); /***/ }), /* 641 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/tree/treeLayout.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _traversalHelper = __webpack_require__(/*! ./traversalHelper */ 642); var eachAfter = _traversalHelper.eachAfter; var eachBefore = _traversalHelper.eachBefore; var _layoutHelper = __webpack_require__(/*! ./layoutHelper */ 639); var init = _layoutHelper.init; var firstWalk = _layoutHelper.firstWalk; var secondWalk = _layoutHelper.secondWalk; var sep = _layoutHelper.separation; var radialCoordinate = _layoutHelper.radialCoordinate; var getViewRect = _layoutHelper.getViewRect; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel, api) { ecModel.eachSeriesByType('tree', function (seriesModel) { commonLayout(seriesModel, api); }); } function commonLayout(seriesModel, api) { var layoutInfo = getViewRect(seriesModel, api); seriesModel.layoutInfo = layoutInfo; var layout = seriesModel.get('layout'); var width = 0; var height = 0; var separation = null; if (layout === 'radial') { width = 2 * Math.PI; height = Math.min(layoutInfo.height, layoutInfo.width) / 2; separation = sep(function (node1, node2) { return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth; }); } else { width = layoutInfo.width; height = layoutInfo.height; separation = sep(); } var virtualRoot = seriesModel.getData().tree.root; var realRoot = virtualRoot.children[0]; if (realRoot) { init(virtualRoot); eachAfter(realRoot, firstWalk, separation); virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim; eachBefore(realRoot, secondWalk); var left = realRoot; var right = realRoot; var bottom = realRoot; eachBefore(realRoot, function (node) { var x = node.getLayout().x; if (x < left.getLayout().x) { left = node; } if (x > right.getLayout().x) { right = node; } if (node.depth > bottom.depth) { bottom = node; } }); var delta = left === right ? 1 : separation(left, right) / 2; var tx = delta - left.getLayout().x; var kx = 0; var ky = 0; var coorX = 0; var coorY = 0; if (layout === 'radial') { kx = width / (right.getLayout().x + delta + tx); // here we use (node.depth - 1), bucause the real root's depth is 1 ky = height / (bottom.depth - 1 || 1); eachBefore(realRoot, function (node) { coorX = (node.getLayout().x + tx) * kx; coorY = (node.depth - 1) * ky; var finalCoor = radialCoordinate(coorX, coorY); node.setLayout({ x: finalCoor.x, y: finalCoor.y, rawX: coorX, rawY: coorY }, true); }); } else { var orient = seriesModel.getOrient(); if (orient === 'RL' || orient === 'LR') { ky = height / (right.getLayout().x + delta + tx); kx = width / (bottom.depth - 1 || 1); eachBefore(realRoot, function (node) { coorY = (node.getLayout().x + tx) * ky; coorX = orient === 'LR' ? (node.depth - 1) * kx : width - (node.depth - 1) * kx; node.setLayout({ x: coorX, y: coorY }, true); }); } else if (orient === 'TB' || orient === 'BT') { kx = width / (right.getLayout().x + delta + tx); ky = height / (bottom.depth - 1 || 1); eachBefore(realRoot, function (node) { coorX = (node.getLayout().x + tx) * kx; coorY = orient === 'TB' ? (node.depth - 1) * ky : height - (node.depth - 1) * ky; node.setLayout({ x: coorX, y: coorY }, true); }); } } } } module.exports = _default; /***/ }), /* 642 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/tree/traversalHelper.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Traverse the tree from bottom to top and do something * @param {module:echarts/data/Tree~TreeNode} root The real root of the tree * @param {Function} callback */ function eachAfter(root, callback, separation) { var nodes = [root]; var next = []; var node; while (node = nodes.pop()) { // jshint ignore:line next.push(node); if (node.isExpand) { var children = node.children; if (children.length) { for (var i = 0; i < children.length; i++) { nodes.push(children[i]); } } } } while (node = next.pop()) { // jshint ignore:line callback(node, separation); } } /** * Traverse the tree from top to bottom and do something * @param {module:echarts/data/Tree~TreeNode} root The real root of the tree * @param {Function} callback */ function eachBefore(root, callback) { var nodes = [root]; var node; while (node = nodes.pop()) { // jshint ignore:line callback(node); if (node.isExpand) { var children = node.children; if (children.length) { for (var i = children.length - 1; i >= 0; i--) { nodes.push(children[i]); } } } } } exports.eachAfter = eachAfter; exports.eachBefore = eachBefore; /***/ }), /* 643 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/treemap.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./treemap/TreemapSeries */ 644); __webpack_require__(/*! ./treemap/TreemapView */ 646); __webpack_require__(/*! ./treemap/treemapAction */ 649); var treemapVisual = __webpack_require__(/*! ./treemap/treemapVisual */ 650); var treemapLayout = __webpack_require__(/*! ./treemap/treemapLayout */ 652); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerVisual(treemapVisual); echarts.registerLayout(treemapLayout); /***/ }), /* 644 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/treemap/TreemapSeries.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var Tree = __webpack_require__(/*! ../../data/Tree */ 636); var Model = __webpack_require__(/*! ../../model/Model */ 445); var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var addCommas = _format.addCommas; var _treeHelper = __webpack_require__(/*! ../helper/treeHelper */ 645); var wrapTreePathInfo = _treeHelper.wrapTreePathInfo; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.treemap', layoutMode: 'box', dependencies: ['grid', 'polar'], preventUsingHoverLayer: true, /** * @type {module:echarts/data/Tree~Node} */ _viewRoot: null, defaultOption: { // Disable progressive rendering progressive: 0, // center: ['50%', '50%'], // not supported in ec3. // size: ['80%', '80%'], // deprecated, compatible with ec2. left: 'center', top: 'middle', right: null, bottom: null, width: '80%', height: '80%', sort: true, // Can be null or false or true // (order by desc default, asc not supported yet (strange effect)) clipWindow: 'origin', // Size of clipped window when zooming. 'origin' or 'fullscreen' squareRatio: 0.5 * (1 + Math.sqrt(5)), // golden ratio leafDepth: null, // Nodes on depth from root are regarded as leaves. // Count from zero (zero represents only view root). drillDownIcon: '▶', // Use html character temporarily because it is complicated // to align specialized icon. ▷▶❒❐▼✚ zoomToNodeRatio: 0.32 * 0.32, // Be effective when using zoomToNode. Specify the proportion of the // target node area in the view area. roam: true, // true, false, 'scale' or 'zoom', 'move'. nodeClick: 'zoomToNode', // Leaf node click behaviour: 'zoomToNode', 'link', false. // If leafDepth is set and clicking a node which has children but // be on left depth, the behaviour would be changing root. Otherwise // use behavious defined above. animation: true, animationDurationUpdate: 900, animationEasing: 'quinticInOut', breadcrumb: { show: true, height: 22, left: 'center', top: 'bottom', // right // bottom emptyItemWidth: 25, // Width of empty node. itemStyle: { color: 'rgba(0,0,0,0.7)', //'#5793f3', borderColor: 'rgba(255,255,255,0.7)', borderWidth: 1, shadowColor: 'rgba(150,150,150,1)', shadowBlur: 3, shadowOffsetX: 0, shadowOffsetY: 0, textStyle: { color: '#fff' } }, emphasis: { textStyle: {} } }, label: { show: true, // Do not use textDistance, for ellipsis rect just the same as treemap node rect. distance: 0, padding: 5, position: 'inside', // Can be [5, '5%'] or position stirng like 'insideTopLeft', ... // formatter: null, color: '#fff', ellipsis: true // align // verticalAlign }, upperLabel: { // Label when node is parent. show: false, position: [0, '50%'], height: 20, // formatter: null, color: '#fff', ellipsis: true, // align: null, verticalAlign: 'middle' }, itemStyle: { color: null, // Can be 'none' if not necessary. colorAlpha: null, // Can be 'none' if not necessary. colorSaturation: null, // Can be 'none' if not necessary. borderWidth: 0, gapWidth: 0, borderColor: '#fff', borderColorSaturation: null // If specified, borderColor will be ineffective, and the // border color is evaluated by color of current node and // borderColorSaturation. }, emphasis: { upperLabel: { show: true, position: [0, '50%'], color: '#fff', ellipsis: true, verticalAlign: 'middle' } }, visualDimension: 0, // Can be 0, 1, 2, 3. visualMin: null, visualMax: null, color: [], // + treemapSeries.color should not be modified. Please only modified // level[n].color (if necessary). // + Specify color list of each level. level[0].color would be global // color list if not specified. (see method `setDefault`). // + But set as a empty array to forbid fetch color from global palette // when using nodeModel.get('color'), otherwise nodes on deep level // will always has color palette set and are not able to inherit color // from parent node. // + TreemapSeries.color can not be set as 'none', otherwise effect // legend color fetching (see seriesColor.js). colorAlpha: null, // Array. Specify color alpha range of each level, like [0.2, 0.8] colorSaturation: null, // Array. Specify color saturation of each level, like [0.2, 0.5] colorMappingBy: 'index', // 'value' or 'index' or 'id'. visibleMin: 10, // If area less than this threshold (unit: pixel^2), node will not // be rendered. Only works when sort is 'asc' or 'desc'. childrenVisibleMin: null, // If area of a node less than this threshold (unit: pixel^2), // grandchildren will not show. // Why grandchildren? If not grandchildren but children, // some siblings show children and some not, // the appearance may be mess and not consistent, levels: [] // Each item: { // visibleMin, itemStyle, visualDimension, label // } // data: { // value: [], // children: [], // link: 'http://xxx.xxx.xxx', // target: 'blank' or 'self' // } }, /** * @override */ getInitialData: function getInitialData(option, ecModel) { // Create a virtual root. var root = { name: option.name, children: option.data }; completeTreeValue(root); var levels = option.levels || []; // Used in "visual priority" in `treemapVisual.js`. // This way is a little tricky, must satisfy the precondition: // 1. There is no `treeNode.getModel('itemStyle.xxx')` used. // 2. The `Model.prototype.getModel()` will not use any clone-like way. var designatedVisualItemStyle = this.designatedVisualItemStyle = {}; var designatedVisualModel = new Model({ itemStyle: designatedVisualItemStyle }, this, ecModel); levels = option.levels = setDefault(levels, ecModel); var levelModels = zrUtil.map(levels || [], function (levelDefine) { return new Model(levelDefine, designatedVisualModel, ecModel); }, this); // Make sure always a new tree is created when setOption, // in TreemapView, we check whether oldTree === newTree // to choose mappings approach among old shapes and new shapes. var tree = Tree.createTree(root, this, beforeLink); function beforeLink(nodeData) { nodeData.wrapMethod('getItemModel', function (model, idx) { var node = tree.getNodeByDataIndex(idx); var levelModel = levelModels[node.depth]; // If no levelModel, we also need `designatedVisualModel`. model.parentModel = levelModel || designatedVisualModel; return model; }); } return tree.data; }, optionUpdated: function optionUpdated() { this.resetViewRoot(); }, /** * @override * @param {number} dataIndex * @param {boolean} [mutipleSeries=false] */ formatTooltip: function formatTooltip(dataIndex) { var data = this.getData(); var value = this.getRawValue(dataIndex); var formattedValue = zrUtil.isArray(value) ? addCommas(value[0]) : addCommas(value); var name = data.getName(dataIndex); return encodeHTML(name + ': ' + formattedValue); }, /** * Add tree path to tooltip param * * @override * @param {number} dataIndex * @return {Object} */ getDataParams: function getDataParams(dataIndex) { var params = SeriesModel.prototype.getDataParams.apply(this, arguments); var node = this.getData().tree.getNodeByDataIndex(dataIndex); params.treePathInfo = wrapTreePathInfo(node, this); return params; }, /** * @public * @param {Object} layoutInfo { * x: containerGroup x * y: containerGroup y * width: containerGroup width * height: containerGroup height * } */ setLayoutInfo: function setLayoutInfo(layoutInfo) { /** * @readOnly * @type {Object} */ this.layoutInfo = this.layoutInfo || {}; zrUtil.extend(this.layoutInfo, layoutInfo); }, /** * @param {string} id * @return {number} index */ mapIdToIndex: function mapIdToIndex(id) { // A feature is implemented: // index is monotone increasing with the sequence of // input id at the first time. // This feature can make sure that each data item and its // mapped color have the same index between data list and // color list at the beginning, which is useful for user // to adjust data-color mapping. /** * @private * @type {Object} */ var idIndexMap = this._idIndexMap; if (!idIndexMap) { idIndexMap = this._idIndexMap = zrUtil.createHashMap(); /** * @private * @type {number} */ this._idIndexMapCount = 0; } var index = idIndexMap.get(id); if (index == null) { idIndexMap.set(id, index = this._idIndexMapCount++); } return index; }, getViewRoot: function getViewRoot() { return this._viewRoot; }, /** * @param {module:echarts/data/Tree~Node} [viewRoot] */ resetViewRoot: function resetViewRoot(viewRoot) { viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot; var root = this.getRawData().tree.root; if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) { this._viewRoot = root; } } }); /** * @param {Object} dataNode */ function completeTreeValue(dataNode) { // Postorder travel tree. // If value of none-leaf node is not set, // calculate it by suming up the value of all children. var sum = 0; zrUtil.each(dataNode.children, function (child) { completeTreeValue(child); var childValue = child.value; zrUtil.isArray(childValue) && (childValue = childValue[0]); sum += childValue; }); var thisValue = dataNode.value; if (zrUtil.isArray(thisValue)) { thisValue = thisValue[0]; } if (thisValue == null || isNaN(thisValue)) { thisValue = sum; } // Value should not less than 0. if (thisValue < 0) { thisValue = 0; } zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue; } /** * set default to level configuration */ function setDefault(levels, ecModel) { var globalColorList = ecModel.get('color'); if (!globalColorList) { return; } levels = levels || []; var hasColorDefine; zrUtil.each(levels, function (levelDefine) { var model = new Model(levelDefine); var modelColor = model.get('color'); if (model.get('itemStyle.color') || modelColor && modelColor !== 'none') { hasColorDefine = true; } }); if (!hasColorDefine) { var level0 = levels[0] || (levels[0] = {}); level0.color = globalColorList.slice(); } return levels; } module.exports = _default; /***/ }), /* 645 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/treeHelper.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) { if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) { var root = seriesModel.getData().tree.root; var targetNode = payload.targetNode; if (typeof targetNode === 'string') { targetNode = root.getNodeById(targetNode); } if (targetNode && root.contains(targetNode)) { return { node: targetNode }; } var targetNodeId = payload.targetNodeId; if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) { return { node: targetNode }; } } } // Not includes the given node at the last item. function getPathToRoot(node) { var path = []; while (node) { node = node.parentNode; node && path.push(node); } return path.reverse(); } function aboveViewRoot(viewRoot, node) { var viewPath = getPathToRoot(viewRoot); return zrUtil.indexOf(viewPath, node) >= 0; } // From root to the input node (the input node will be included). function wrapTreePathInfo(node, seriesModel) { var treePathInfo = []; while (node) { var nodeDataIndex = node.dataIndex; treePathInfo.push({ name: node.name, dataIndex: nodeDataIndex, value: seriesModel.getRawValue(nodeDataIndex) }); node = node.parentNode; } treePathInfo.reverse(); return treePathInfo; } exports.retrieveTargetInfo = retrieveTargetInfo; exports.getPathToRoot = getPathToRoot; exports.aboveViewRoot = aboveViewRoot; exports.wrapTreePathInfo = wrapTreePathInfo; /***/ }), /* 646 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/treemap/TreemapView.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var DataDiffer = __webpack_require__(/*! ../../data/DataDiffer */ 526); var helper = __webpack_require__(/*! ../helper/treeHelper */ 645); var Breadcrumb = __webpack_require__(/*! ./Breadcrumb */ 647); var RoamController = __webpack_require__(/*! ../../component/helper/RoamController */ 621); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var animationUtil = __webpack_require__(/*! ../../util/animation */ 648); var makeStyleMapper = __webpack_require__(/*! ../../model/mixin/makeStyleMapper */ 448); var _format = __webpack_require__(/*! ../../util/format */ 490); var windowOpen = _format.windowOpen; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var bind = zrUtil.bind; var Group = graphic.Group; var Rect = graphic.Rect; var each = zrUtil.each; var DRAG_THRESHOLD = 3; var PATH_LABEL_NOAMAL = ['label']; var PATH_LABEL_EMPHASIS = ['emphasis', 'label']; var PATH_UPPERLABEL_NORMAL = ['upperLabel']; var PATH_UPPERLABEL_EMPHASIS = ['emphasis', 'upperLabel']; var Z_BASE = 10; // Should bigger than every z. var Z_BG = 1; var Z_CONTENT = 2; var getItemStyleEmphasis = makeStyleMapper([['fill', 'color'], // `borderColor` and `borderWidth` has been occupied, // so use `stroke` to indicate the stroke of the rect. ['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]); var getItemStyleNormal = function getItemStyleNormal(model) { // Normal style props should include emphasis style props. var itemStyle = getItemStyleEmphasis(model); // Clear styles set by emphasis. itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null; return itemStyle; }; var _default = echarts.extendChartView({ type: 'treemap', /** * @override */ init: function init(o, api) { /** * @private * @type {module:zrender/container/Group} */ this._containerGroup; /** * @private * @type {Object.>} */ this._storage = createStorage(); /** * @private * @type {module:echarts/data/Tree} */ this._oldTree; /** * @private * @type {module:echarts/chart/treemap/Breadcrumb} */ this._breadcrumb; /** * @private * @type {module:echarts/component/helper/RoamController} */ this._controller; /** * 'ready', 'animating' * @private */ this._state = 'ready'; }, /** * @override */ render: function render(seriesModel, ecModel, api, payload) { var models = ecModel.findComponents({ mainType: 'series', subType: 'treemap', query: payload }); if (zrUtil.indexOf(models, seriesModel) < 0) { return; } this.seriesModel = seriesModel; this.api = api; this.ecModel = ecModel; var types = ['treemapZoomToNode', 'treemapRootToNode']; var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel); var payloadType = payload && payload.type; var layoutInfo = seriesModel.layoutInfo; var isInit = !this._oldTree; var thisStorage = this._storage; // Mark new root when action is treemapRootToNode. var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? { rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()], direction: payload.direction } : null; var containerGroup = this._giveContainerGroup(layoutInfo); var renderResult = this._doRender(containerGroup, seriesModel, reRoot); !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally(); this._resetController(api); this._renderBreadcrumb(seriesModel, api, targetInfo); }, /** * @private */ _giveContainerGroup: function _giveContainerGroup(layoutInfo) { var containerGroup = this._containerGroup; if (!containerGroup) { // FIXME // 加一层containerGroup是为了clip,但是现在clip功能并没有实现。 containerGroup = this._containerGroup = new Group(); this._initEvents(containerGroup); this.group.add(containerGroup); } containerGroup.attr('position', [layoutInfo.x, layoutInfo.y]); return containerGroup; }, /** * @private */ _doRender: function _doRender(containerGroup, seriesModel, reRoot) { var thisTree = seriesModel.getData().tree; var oldTree = this._oldTree; // Clear last shape records. var lastsForAnimation = createStorage(); var thisStorage = createStorage(); var oldStorage = this._storage; var willInvisibleEls = []; var doRenderNode = zrUtil.curry(renderNode, seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls); // Notice: when thisTree and oldTree are the same tree (see list.cloneShallow), // the oldTree is actually losted, so we can not find all of the old graphic // elements from tree. So we use this stragegy: make element storage, move // from old storage to new storage, clear old storage. dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0); // Process all removing. var willDeleteEls = clearStorage(oldStorage); this._oldTree = thisTree; this._storage = thisStorage; return { lastsForAnimation: lastsForAnimation, willDeleteEls: willDeleteEls, renderFinally: renderFinally }; function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) { // When 'render' is triggered by action, // 'this' and 'old' may be the same tree, // we use rawIndex in that case. if (sameTree) { oldViewChildren = thisViewChildren; each(thisViewChildren, function (child, index) { !child.isRemoved() && processNode(index, index); }); } // Diff hierarchically (diff only in each subtree, but not whole). // because, consistency of view is important. else { new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute(); } function getKey(node) { // Identify by name or raw index. return node.getId(); } function processNode(newIndex, oldIndex) { var thisNode = newIndex != null ? thisViewChildren[newIndex] : null; var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null; var group = doRenderNode(thisNode, oldNode, parentGroup, depth); group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1); } } function clearStorage(storage) { var willDeleteEls = createStorage(); storage && each(storage, function (store, storageName) { var delEls = willDeleteEls[storageName]; each(store, function (el) { el && (delEls.push(el), el.__tmWillDelete = 1); }); }); return willDeleteEls; } function renderFinally() { each(willDeleteEls, function (els) { each(els, function (el) { el.parent && el.parent.remove(el); }); }); each(willInvisibleEls, function (el) { el.invisible = true; // Setting invisible is for optimizing, so no need to set dirty, // just mark as invisible. el.dirty(); }); } }, /** * @private */ _doAnimation: function _doAnimation(containerGroup, renderResult, seriesModel, reRoot) { if (!seriesModel.get('animation')) { return; } var duration = seriesModel.get('animationDurationUpdate'); var easing = seriesModel.get('animationEasing'); var animationWrap = animationUtil.createWrap(); // Make delete animations. each(renderResult.willDeleteEls, function (store, storageName) { each(store, function (el, rawIndex) { if (el.invisible) { return; } var parent = el.parent; // Always has parent, and parent is nodeGroup. var target; if (reRoot && reRoot.direction === 'drillDown') { target = parent === reRoot.rootNodeGroup // This is the content element of view root. // Only `content` will enter this branch, because // `background` and `nodeGroup` will not be deleted. ? { shape: { x: 0, y: 0, width: parent.__tmNodeWidth, height: parent.__tmNodeHeight }, style: { opacity: 0 } // Others. } : { style: { opacity: 0 } }; } else { var targetX = 0; var targetY = 0; if (!parent.__tmWillDelete) { // Let node animate to right-bottom corner, cooperating with fadeout, // which is appropriate for user understanding. // Divided by 2 for reRoot rolling up effect. targetX = parent.__tmNodeWidth / 2; targetY = parent.__tmNodeHeight / 2; } target = storageName === 'nodeGroup' ? { position: [targetX, targetY], style: { opacity: 0 } } : { shape: { x: targetX, y: targetY, width: 0, height: 0 }, style: { opacity: 0 } }; } target && animationWrap.add(el, target, duration, easing); }); }); // Make other animations each(this._storage, function (store, storageName) { each(store, function (el, rawIndex) { var last = renderResult.lastsForAnimation[storageName][rawIndex]; var target = {}; if (!last) { return; } if (storageName === 'nodeGroup') { if (last.old) { target.position = el.position.slice(); el.attr('position', last.old); } } else { if (last.old) { target.shape = zrUtil.extend({}, el.shape); el.setShape(last.old); } if (last.fadein) { el.setStyle('opacity', 0); target.style = { opacity: 1 }; } // When animation is stopped for succedent animation starting, // el.style.opacity might not be 1 else if (el.style.opacity !== 1) { target.style = { opacity: 1 }; } } animationWrap.add(el, target, duration, easing); }); }, this); this._state = 'animating'; animationWrap.done(bind(function () { this._state = 'ready'; renderResult.renderFinally(); }, this)).start(); }, /** * @private */ _resetController: function _resetController(api) { var controller = this._controller; // Init controller. if (!controller) { controller = this._controller = new RoamController(api.getZr()); controller.enable(this.seriesModel.get('roam')); controller.on('pan', bind(this._onPan, this)); controller.on('zoom', bind(this._onZoom, this)); } var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight()); controller.setPointerChecker(function (e, x, y) { return rect.contain(x, y); }); }, /** * @private */ _clearController: function _clearController() { var controller = this._controller; if (controller) { controller.dispose(); controller = null; } }, /** * @private */ _onPan: function _onPan(e) { if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) { // These param must not be cached. var root = this.seriesModel.getData().tree.root; if (!root) { return; } var rootLayout = root.getLayout(); if (!rootLayout) { return; } this.api.dispatchAction({ type: 'treemapMove', from: this.uid, seriesId: this.seriesModel.id, rootRect: { x: rootLayout.x + e.dx, y: rootLayout.y + e.dy, width: rootLayout.width, height: rootLayout.height } }); } }, /** * @private */ _onZoom: function _onZoom(e) { var mouseX = e.originX; var mouseY = e.originY; if (this._state !== 'animating') { // These param must not be cached. var root = this.seriesModel.getData().tree.root; if (!root) { return; } var rootLayout = root.getLayout(); if (!rootLayout) { return; } var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height); var layoutInfo = this.seriesModel.layoutInfo; // Transform mouse coord from global to containerGroup. mouseX -= layoutInfo.x; mouseY -= layoutInfo.y; // Scale root bounding rect. var m = matrix.create(); matrix.translate(m, m, [-mouseX, -mouseY]); matrix.scale(m, m, [e.scale, e.scale]); matrix.translate(m, m, [mouseX, mouseY]); rect.applyTransform(m); this.api.dispatchAction({ type: 'treemapRender', from: this.uid, seriesId: this.seriesModel.id, rootRect: { x: rect.x, y: rect.y, width: rect.width, height: rect.height } }); } }, /** * @private */ _initEvents: function _initEvents(containerGroup) { containerGroup.on('click', function (e) { if (this._state !== 'ready') { return; } var nodeClick = this.seriesModel.get('nodeClick', true); if (!nodeClick) { return; } var targetInfo = this.findTarget(e.offsetX, e.offsetY); if (!targetInfo) { return; } var node = targetInfo.node; if (node.getLayout().isLeafRoot) { this._rootToNode(targetInfo); } else { if (nodeClick === 'zoomToNode') { this._zoomToNode(targetInfo); } else if (nodeClick === 'link') { var itemModel = node.hostTree.data.getItemModel(node.dataIndex); var link = itemModel.get('link', true); var linkTarget = itemModel.get('target', true) || 'blank'; link && windowOpen(link, linkTarget); } } }, this); }, /** * @private */ _renderBreadcrumb: function _renderBreadcrumb(seriesModel, api, targetInfo) { if (!targetInfo) { targetInfo = seriesModel.get('leafDepth', true) != null ? { node: seriesModel.getViewRoot() // FIXME // better way? // Find breadcrumb tail on center of containerGroup. } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2); if (!targetInfo) { targetInfo = { node: seriesModel.getData().tree.root }; } } (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, bind(onSelect, this)); function onSelect(node) { if (this._state !== 'animating') { helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? this._rootToNode({ node: node }) : this._zoomToNode({ node: node }); } } }, /** * @override */ remove: function remove() { this._clearController(); this._containerGroup && this._containerGroup.removeAll(); this._storage = createStorage(); this._state = 'ready'; this._breadcrumb && this._breadcrumb.remove(); }, dispose: function dispose() { this._clearController(); }, /** * @private */ _zoomToNode: function _zoomToNode(targetInfo) { this.api.dispatchAction({ type: 'treemapZoomToNode', from: this.uid, seriesId: this.seriesModel.id, targetNode: targetInfo.node }); }, /** * @private */ _rootToNode: function _rootToNode(targetInfo) { this.api.dispatchAction({ type: 'treemapRootToNode', from: this.uid, seriesId: this.seriesModel.id, targetNode: targetInfo.node }); }, /** * @public * @param {number} x Global coord x. * @param {number} y Global coord y. * @return {Object} info If not found, return undefined; * @return {number} info.node Target node. * @return {number} info.offsetX x refer to target node. * @return {number} info.offsetY y refer to target node. */ findTarget: function findTarget(x, y) { var targetInfo; var viewRoot = this.seriesModel.getViewRoot(); viewRoot.eachNode({ attr: 'viewChildren', order: 'preorder' }, function (node) { var bgEl = this._storage.background[node.getRawIndex()]; // If invisible, there might be no element. if (bgEl) { var point = bgEl.transformCoordToLocal(x, y); var shape = bgEl.shape; // For performance consideration, dont use 'getBoundingRect'. if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) { targetInfo = { node: node, offsetX: point[0], offsetY: point[1] }; } else { return false; // Suppress visit subtree. } } }, this); return targetInfo; } }); /** * @inner */ function createStorage() { return { nodeGroup: [], background: [], content: [] }; } /** * @inner * @return Return undefined means do not travel further. */ function renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) { // Whether under viewRoot. if (!thisNode) { // Deleting nodes will be performed finally. This method just find // element from old storage, or create new element, set them to new // storage, and set styles. return; } // ------------------------------------------------------------------- // Start of closure variables available in "Procedures in renderNode". var thisLayout = thisNode.getLayout(); var data = seriesModel.getData(); // Only for enabling highlight/downplay. Clear firstly. // Because some node will not be rendered. data.setItemGraphicEl(thisNode.dataIndex, null); if (!thisLayout || !thisLayout.isInView) { return; } var thisWidth = thisLayout.width; var thisHeight = thisLayout.height; var borderWidth = thisLayout.borderWidth; var thisInvisible = thisLayout.invisible; var thisRawIndex = thisNode.getRawIndex(); var oldRawIndex = oldNode && oldNode.getRawIndex(); var thisViewChildren = thisNode.viewChildren; var upperHeight = thisLayout.upperHeight; var isParent = thisViewChildren && thisViewChildren.length; var itemStyleNormalModel = thisNode.getModel('itemStyle'); var itemStyleEmphasisModel = thisNode.getModel('emphasis.itemStyle'); // End of closure ariables available in "Procedures in renderNode". // ----------------------------------------------------------------- // Node group var group = giveGraphic('nodeGroup', Group); if (!group) { return; } parentGroup.add(group); // x,y are not set when el is above view root. group.attr('position', [thisLayout.x || 0, thisLayout.y || 0]); group.__tmNodeWidth = thisWidth; group.__tmNodeHeight = thisHeight; if (thisLayout.isAboveViewRoot) { return group; } var nodeModel = thisNode.getModel(); // Background var bg = giveGraphic('background', Rect, depth, Z_BG); bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight); // No children, render content. if (isParent) { // Because of the implementation about "traverse" in graphic hover style, we // can not set hover listener on the "group" of non-leaf node. Otherwise the // hover event from the descendents will be listenered. if (graphic.isHighDownDispatcher(group)) { graphic.setAsHighDownDispatcher(group, false); } if (bg) { graphic.setAsHighDownDispatcher(bg, true); // Only for enabling highlight/downplay. data.setItemGraphicEl(thisNode.dataIndex, bg); } } else { var content = giveGraphic('content', Rect, depth, Z_CONTENT); content && renderContent(group, content); if (bg && graphic.isHighDownDispatcher(bg)) { graphic.setAsHighDownDispatcher(bg, false); } graphic.setAsHighDownDispatcher(group, true); // Only for enabling highlight/downplay. data.setItemGraphicEl(thisNode.dataIndex, group); } return group; // ---------------------------- // | Procedures in renderNode | // ---------------------------- function renderBackground(group, bg, useUpperLabel) { // For tooltip. bg.dataIndex = thisNode.dataIndex; bg.seriesIndex = seriesModel.seriesIndex; bg.setShape({ x: 0, y: 0, width: thisWidth, height: thisHeight }); if (thisInvisible) { // If invisible, do not set visual, otherwise the element will // change immediately before animation. We think it is OK to // remain its origin color when moving out of the view window. processInvisible(bg); } else { bg.invisible = false; var visualBorderColor = thisNode.getVisual('borderColor', true); var emphasisBorderColor = itemStyleEmphasisModel.get('borderColor'); var normalStyle = getItemStyleNormal(itemStyleNormalModel); normalStyle.fill = visualBorderColor; var emphasisStyle = getItemStyleEmphasis(itemStyleEmphasisModel); emphasisStyle.fill = emphasisBorderColor; if (useUpperLabel) { var upperLabelWidth = thisWidth - 2 * borderWidth; prepareText(normalStyle, emphasisStyle, visualBorderColor, upperLabelWidth, upperHeight, { x: borderWidth, y: 0, width: upperLabelWidth, height: upperHeight }); } // For old bg. else { normalStyle.text = emphasisStyle.text = null; } bg.setStyle(normalStyle); graphic.setElementHoverStyle(bg, emphasisStyle); } group.add(bg); } function renderContent(group, content) { // For tooltip. content.dataIndex = thisNode.dataIndex; content.seriesIndex = seriesModel.seriesIndex; var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0); var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0); content.culling = true; content.setShape({ x: borderWidth, y: borderWidth, width: contentWidth, height: contentHeight }); if (thisInvisible) { // If invisible, do not set visual, otherwise the element will // change immediately before animation. We think it is OK to // remain its origin color when moving out of the view window. processInvisible(content); } else { content.invisible = false; var visualColor = thisNode.getVisual('color', true); var normalStyle = getItemStyleNormal(itemStyleNormalModel); normalStyle.fill = visualColor; var emphasisStyle = getItemStyleEmphasis(itemStyleEmphasisModel); prepareText(normalStyle, emphasisStyle, visualColor, contentWidth, contentHeight); content.setStyle(normalStyle); graphic.setElementHoverStyle(content, emphasisStyle); } group.add(content); } function processInvisible(element) { // Delay invisible setting utill animation finished, // avoid element vanish suddenly before animation. !element.invisible && willInvisibleEls.push(element); } function prepareText(normalStyle, emphasisStyle, visualColor, width, height, upperLabelRect) { var defaultText = nodeModel.get('name'); var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL); var emphasisLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_EMPHASIS : PATH_LABEL_EMPHASIS); var isShow = normalLabelModel.getShallow('show'); graphic.setLabelStyle(normalStyle, emphasisStyle, normalLabelModel, emphasisLabelModel, { defaultText: isShow ? defaultText : null, autoColor: visualColor, isRectText: true, labelFetcher: seriesModel, labelDataIndex: thisNode.dataIndex, labelProp: upperLabelRect ? 'upperLabel' : 'label' }); addDrillDownIcon(normalStyle, upperLabelRect, thisLayout); addDrillDownIcon(emphasisStyle, upperLabelRect, thisLayout); upperLabelRect && (normalStyle.textRect = zrUtil.clone(upperLabelRect)); normalStyle.truncate = isShow && normalLabelModel.get('ellipsis') ? { outerWidth: width, outerHeight: height, minChar: 2 } : null; } function addDrillDownIcon(style, upperLabelRect, thisLayout) { var text = style.text; if (!upperLabelRect && thisLayout.isLeafRoot && text != null) { var iconChar = seriesModel.get('drillDownIcon', true); style.text = iconChar ? iconChar + ' ' + text : text; } } function giveGraphic(storageName, Ctor, depth, z) { var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex]; var lasts = lastsForAnimation[storageName]; if (element) { // Remove from oldStorage oldStorage[storageName][oldRawIndex] = null; prepareAnimationWhenHasOld(lasts, element, storageName); } // If invisible and no old element, do not create new element (for optimizing). else if (!thisInvisible) { element = new Ctor({ z: calculateZ(depth, z) }); element.__tmDepth = depth; element.__tmStorageName = storageName; prepareAnimationWhenNoOld(lasts, element, storageName); } // Set to thisStorage return thisStorage[storageName][thisRawIndex] = element; } function prepareAnimationWhenHasOld(lasts, element, storageName) { var lastCfg = lasts[thisRawIndex] = {}; lastCfg.old = storageName === 'nodeGroup' ? element.position.slice() : zrUtil.extend({}, element.shape); } // If a element is new, we need to find the animation start point carefully, // otherwise it will looks strange when 'zoomToNode'. function prepareAnimationWhenNoOld(lasts, element, storageName) { var lastCfg = lasts[thisRawIndex] = {}; var parentNode = thisNode.parentNode; if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) { var parentOldX = 0; var parentOldY = 0; // New nodes appear from right-bottom corner in 'zoomToNode' animation. // For convenience, get old bounding rect from background. var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()]; if (!reRoot && parentOldBg && parentOldBg.old) { parentOldX = parentOldBg.old.width; parentOldY = parentOldBg.old.height; } // When no parent old shape found, its parent is new too, // so we can just use {x:0, y:0}. lastCfg.old = storageName === 'nodeGroup' ? [0, parentOldY] : { x: parentOldX, y: parentOldY, width: 0, height: 0 }; } // Fade in, user can be aware that these nodes are new. lastCfg.fadein = storageName !== 'nodeGroup'; } } // We can not set all backgroud with the same z, Because the behaviour of // drill down and roll up differ background creation sequence from tree // hierarchy sequence, which cause that lowser background element overlap // upper ones. So we calculate z based on depth. // Moreover, we try to shrink down z interval to [0, 1] to avoid that // treemap with large z overlaps other components. function calculateZ(depth, zInLevel) { var zb = depth * Z_BASE + zInLevel; return (zb - 1) / zb; } module.exports = _default; /***/ }), /* 647 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/treemap/Breadcrumb.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var layout = __webpack_require__(/*! ../../util/layout */ 488); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _treeHelper = __webpack_require__(/*! ../helper/treeHelper */ 645); var wrapTreePathInfo = _treeHelper.wrapTreePathInfo; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var TEXT_PADDING = 8; var ITEM_GAP = 8; var ARRAY_LENGTH = 5; function Breadcrumb(containerGroup) { /** * @private * @type {module:zrender/container/Group} */ this.group = new graphic.Group(); containerGroup.add(this.group); } Breadcrumb.prototype = { constructor: Breadcrumb, render: function render(seriesModel, api, targetNode, onSelect) { var model = seriesModel.getModel('breadcrumb'); var thisGroup = this.group; thisGroup.removeAll(); if (!model.get('show') || !targetNode) { return; } var normalStyleModel = model.getModel('itemStyle'); // var emphasisStyleModel = model.getModel('emphasis.itemStyle'); var textStyleModel = normalStyleModel.getModel('textStyle'); var layoutParam = { pos: { left: model.get('left'), right: model.get('right'), top: model.get('top'), bottom: model.get('bottom') }, box: { width: api.getWidth(), height: api.getHeight() }, emptyItemWidth: model.get('emptyItemWidth'), totalWidth: 0, renderList: [] }; this._prepare(targetNode, layoutParam, textStyleModel); this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect); layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box); }, /** * Prepare render list and total width * @private */ _prepare: function _prepare(targetNode, layoutParam, textStyleModel) { for (var node = targetNode; node; node = node.parentNode) { var text = node.getModel().get('name'); var textRect = textStyleModel.getTextRect(text); var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth); layoutParam.totalWidth += itemWidth + ITEM_GAP; layoutParam.renderList.push({ node: node, text: text, width: itemWidth }); } }, /** * @private */ _renderContent: function _renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) { // Start rendering. var lastX = 0; var emptyItemWidth = layoutParam.emptyItemWidth; var height = seriesModel.get('breadcrumb.height'); var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box); var totalWidth = layoutParam.totalWidth; var renderList = layoutParam.renderList; for (var i = renderList.length - 1; i >= 0; i--) { var item = renderList[i]; var itemNode = item.node; var itemWidth = item.width; var text = item.text; // Hdie text and shorten width if necessary. if (totalWidth > availableSize.width) { totalWidth -= itemWidth - emptyItemWidth; itemWidth = emptyItemWidth; text = null; } var el = new graphic.Polygon({ shape: { points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0) }, style: zrUtil.defaults(normalStyleModel.getItemStyle(), { lineJoin: 'bevel', text: text, textFill: textStyleModel.getTextColor(), textFont: textStyleModel.getFont() }), z: 10, onclick: zrUtil.curry(onSelect, itemNode) }); this.group.add(el); packEventData(el, seriesModel, itemNode); lastX += itemWidth + ITEM_GAP; } }, /** * @override */ remove: function remove() { this.group.removeAll(); } }; function makeItemPoints(x, y, itemWidth, itemHeight, head, tail) { var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]]; !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]); !head && points.push([x, y + itemHeight / 2]); return points; } // Package custom mouse event. function packEventData(el, seriesModel, itemNode) { el.eventData = { componentType: 'series', componentSubType: 'treemap', componentIndex: seriesModel.componentIndex, seriesIndex: seriesModel.componentIndex, seriesName: seriesModel.name, seriesType: 'treemap', selfType: 'breadcrumb', // Distinguish with click event on treemap node. nodeData: { dataIndex: itemNode && itemNode.dataIndex, name: itemNode && itemNode.name }, treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel) }; } var _default = Breadcrumb; module.exports = _default; /***/ }), /* 648 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/util/animation.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {number} [time=500] Time in ms * @param {string} [easing='linear'] * @param {number} [delay=0] * @param {Function} [callback] * * @example * // Animate position * animation * .createWrap() * .add(el1, {position: [10, 10]}) * .add(el2, {shape: {width: 500}, style: {fill: 'red'}}, 400) * .done(function () { // done }) * .start('cubicOut'); */ function createWrap() { var storage = []; var elExistsMap = {}; var doneCallback; return { /** * Caution: a el can only be added once, otherwise 'done' * might not be called. This method checks this (by el.id), * suppresses adding and returns false when existing el found. * * @param {modele:zrender/Element} el * @param {Object} target * @param {number} [time=500] * @param {number} [delay=0] * @param {string} [easing='linear'] * @return {boolean} Whether adding succeeded. * * @example * add(el, target, time, delay, easing); * add(el, target, time, easing); * add(el, target, time); * add(el, target); */ add: function add(el, target, time, delay, easing) { if (zrUtil.isString(delay)) { easing = delay; delay = 0; } if (elExistsMap[el.id]) { return false; } elExistsMap[el.id] = 1; storage.push({ el: el, target: target, time: time, delay: delay, easing: easing }); return true; }, /** * Only execute when animation finished. Will not execute when any * of 'stop' or 'stopAnimation' called. * * @param {Function} callback */ done: function done(callback) { doneCallback = callback; return this; }, /** * Will stop exist animation firstly. */ start: function start() { var count = storage.length; for (var i = 0, len = storage.length; i < len; i++) { var item = storage[i]; item.el.animateTo(item.target, item.time, item.delay, item.easing, done); } return this; function done() { count--; if (!count) { storage.length = 0; elExistsMap = {}; doneCallback && doneCallback(); } } } }; } exports.createWrap = createWrap; /***/ }), /* 649 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/treemap/treemapAction.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var helper = __webpack_require__(/*! ../helper/treeHelper */ 645); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @file Treemap action */ var noop = function noop() {}; var actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove']; for (var i = 0; i < actionTypes.length; i++) { echarts.registerAction({ type: actionTypes[i], update: 'updateView' }, noop); } echarts.registerAction({ type: 'treemapRootToNode', update: 'updateView' }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', subType: 'treemap', query: payload }, handleRootToNode); function handleRootToNode(model, index) { var types = ['treemapZoomToNode', 'treemapRootToNode']; var targetInfo = helper.retrieveTargetInfo(payload, types, model); if (targetInfo) { var originViewRoot = model.getViewRoot(); if (originViewRoot) { payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown'; } model.resetViewRoot(targetInfo.node); } } }); /***/ }), /* 650 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/treemap/treemapVisual.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var VisualMapping = __webpack_require__(/*! ../../visual/VisualMapping */ 651); var zrColor = __webpack_require__(/*! zrender/lib/tool/color */ 421); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var isArray = zrUtil.isArray; var ITEM_STYLE_NORMAL = 'itemStyle'; var _default = { seriesType: 'treemap', reset: function reset(seriesModel, ecModel, api, payload) { var tree = seriesModel.getData().tree; var root = tree.root; if (root.isRemoved()) { return; } travelTree(root, // Visual should calculate from tree root but not view root. {}, seriesModel.getViewRoot().getAncestors(), seriesModel); } }; function travelTree(node, designatedVisual, viewRootAncestors, seriesModel) { var nodeModel = node.getModel(); var nodeLayout = node.getLayout(); // Optimize if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) { return; } var nodeItemStyleModel = node.getModel(ITEM_STYLE_NORMAL); var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel); // calculate border color var borderColor = nodeItemStyleModel.get('borderColor'); var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation'); var thisNodeColor; if (borderColorSaturation != null) { // For performance, do not always execute 'calculateColor'. thisNodeColor = calculateColor(visuals, node); borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor); } node.setVisual('borderColor', borderColor); var viewChildren = node.viewChildren; if (!viewChildren || !viewChildren.length) { thisNodeColor = calculateColor(visuals, node); // Apply visual to this node. node.setVisual('color', thisNodeColor); } else { var mapping = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren); // Designate visual to children. zrUtil.each(viewChildren, function (child, index) { // If higher than viewRoot, only ancestors of viewRoot is needed to visit. if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) { var childVisual = mapVisual(nodeModel, visuals, child, index, mapping, seriesModel); travelTree(child, childVisual, viewRootAncestors, seriesModel); } }); } } function buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) { var visuals = zrUtil.extend({}, designatedVisual); var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle; zrUtil.each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) { // Priority: thisNode > thisLevel > parentNodeDesignated > seriesModel designatedVisualItemStyle[visualName] = designatedVisual[visualName]; var val = nodeItemStyleModel.get(visualName); designatedVisualItemStyle[visualName] = null; val != null && (visuals[visualName] = val); }); return visuals; } function calculateColor(visuals) { var color = getValueVisualDefine(visuals, 'color'); if (color) { var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha'); var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation'); if (colorSaturation) { color = zrColor.modifyHSL(color, null, null, colorSaturation); } if (colorAlpha) { color = zrColor.modifyAlpha(color, colorAlpha); } return color; } } function calculateBorderColor(borderColorSaturation, thisNodeColor) { return thisNodeColor != null ? zrColor.modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null; } function getValueVisualDefine(visuals, name) { var value = visuals[name]; if (value != null && value !== 'none') { return value; } } function buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) { if (!viewChildren || !viewChildren.length) { return; } var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation')); if (!rangeVisual) { return; } var visualMin = nodeModel.get('visualMin'); var visualMax = nodeModel.get('visualMax'); var dataExtent = nodeLayout.dataExtent.slice(); visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin); visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax); var colorMappingBy = nodeModel.get('colorMappingBy'); var opt = { type: rangeVisual.name, dataExtent: dataExtent, visual: rangeVisual.range }; if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) { opt.mappingMethod = 'category'; opt.loop = true; // categories is ordinal, so do not set opt.categories. } else { opt.mappingMethod = 'linear'; } var mapping = new VisualMapping(opt); mapping.__drColorMappingBy = colorMappingBy; return mapping; } // Notice: If we dont have the attribute 'colorRange', but only use // attribute 'color' to represent both concepts of 'colorRange' and 'color', // (It means 'colorRange' when 'color' is Array, means 'color' when not array), // this problem will be encountered: // If a level-1 node dont have children, and its siblings has children, // and colorRange is set on level-1, then the node can not be colored. // So we separate 'colorRange' and 'color' to different attributes. function getRangeVisual(nodeModel, name) { // 'colorRange', 'colorARange', 'colorSRange'. // If not exsits on this node, fetch from levels and series. var range = nodeModel.get(name); return isArray(range) && range.length ? { name: name, range: range } : null; } function mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) { var childVisuals = zrUtil.extend({}, visuals); if (mapping) { var mappingType = mapping.type; var colorMappingBy = mappingType === 'color' && mapping.__drColorMappingBy; var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension')); childVisuals[mappingType] = mapping.mapValueToVisual(value); } return childVisuals; } module.exports = _default; /***/ }), /* 651 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/VisualMapping.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var zrColor = __webpack_require__(/*! zrender/lib/tool/color */ 421); var _number = __webpack_require__(/*! ../util/number */ 489); var linearMap = _number.linearMap; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var isObject = zrUtil.isObject; var CATEGORY_DEFAULT_VISUAL_INDEX = -1; /** * @param {Object} option * @param {string} [option.type] See visualHandlers. * @param {string} [option.mappingMethod] 'linear' or 'piecewise' or 'category' or 'fixed' * @param {Array.=} [option.dataExtent] [minExtent, maxExtent], * required when mappingMethod is 'linear' * @param {Array.=} [option.pieceList] [ * {value: someValue}, * {interval: [min1, max1], visual: {...}}, * {interval: [min2, max2]} * ], * required when mappingMethod is 'piecewise'. * Visual for only each piece can be specified. * @param {Array.=} [option.categories] ['cate1', 'cate2'] * required when mappingMethod is 'category'. * If no option.categories, categories is set * as [0, 1, 2, ...]. * @param {boolean} [option.loop=false] Whether loop mapping when mappingMethod is 'category'. * @param {(Array|Object|*)} [option.visual] Visual data. * when mappingMethod is 'category', * visual data can be array or object * (like: {cate1: '#222', none: '#fff'}) * or primary types (which represents * default category visual), otherwise visual * can be array or primary (which will be * normalized to array). * */ var VisualMapping = function VisualMapping(option) { var mappingMethod = option.mappingMethod; var visualType = option.type; /** * @readOnly * @type {Object} */ var thisOption = this.option = zrUtil.clone(option); /** * @readOnly * @type {string} */ this.type = visualType; /** * @readOnly * @type {string} */ this.mappingMethod = mappingMethod; /** * @private * @type {Function} */ this._normalizeData = normalizers[mappingMethod]; var visualHandler = visualHandlers[visualType]; /** * @public * @type {Function} */ this.applyVisual = visualHandler.applyVisual; /** * @public * @type {Function} */ this.getColorMapper = visualHandler.getColorMapper; /** * @private * @type {Function} */ this._doMap = visualHandler._doMap[mappingMethod]; if (mappingMethod === 'piecewise') { normalizeVisualRange(thisOption); preprocessForPiecewise(thisOption); } else if (mappingMethod === 'category') { thisOption.categories ? preprocessForSpecifiedCategory(thisOption) // categories is ordinal when thisOption.categories not specified, // which need no more preprocess except normalize visual. : normalizeVisualRange(thisOption, true); } else { // mappingMethod === 'linear' or 'fixed' zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent); normalizeVisualRange(thisOption); } }; VisualMapping.prototype = { constructor: VisualMapping, mapValueToVisual: function mapValueToVisual(value) { var normalized = this._normalizeData(value); return this._doMap(normalized, value); }, getNormalizer: function getNormalizer() { return zrUtil.bind(this._normalizeData, this); } }; var visualHandlers = VisualMapping.visualHandlers = { color: { applyVisual: makeApplyVisual('color'), /** * Create a mapper function * @return {Function} */ getColorMapper: function getColorMapper() { var thisOption = this.option; return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) { !isNormalized && (value = this._normalizeData(value)); return doMapCategory.call(this, value); } : function (value, isNormalized, out) { // If output rgb array // which will be much faster and useful in pixel manipulation var returnRGBArray = !!out; !isNormalized && (value = this._normalizeData(value)); out = zrColor.fastLerp(value, thisOption.parsedVisual, out); return returnRGBArray ? out : zrColor.stringify(out, 'rgba'); }, this); }, _doMap: { linear: function linear(normalized) { return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba'); }, category: doMapCategory, piecewise: function piecewise(normalized, value) { var result = getSpecifiedVisual.call(this, value); if (result == null) { result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba'); } return result; }, fixed: doMapFixed } }, colorHue: makePartialColorVisualHandler(function (color, value) { return zrColor.modifyHSL(color, value); }), colorSaturation: makePartialColorVisualHandler(function (color, value) { return zrColor.modifyHSL(color, null, value); }), colorLightness: makePartialColorVisualHandler(function (color, value) { return zrColor.modifyHSL(color, null, null, value); }), colorAlpha: makePartialColorVisualHandler(function (color, value) { return zrColor.modifyAlpha(color, value); }), opacity: { applyVisual: makeApplyVisual('opacity'), _doMap: makeDoMap([0, 1]) }, liftZ: { applyVisual: makeApplyVisual('liftZ'), _doMap: { linear: doMapFixed, category: doMapFixed, piecewise: doMapFixed, fixed: doMapFixed } }, symbol: { applyVisual: function applyVisual(value, getter, setter) { var symbolCfg = this.mapValueToVisual(value); if (zrUtil.isString(symbolCfg)) { setter('symbol', symbolCfg); } else if (isObject(symbolCfg)) { for (var name in symbolCfg) { if (symbolCfg.hasOwnProperty(name)) { setter(name, symbolCfg[name]); } } } }, _doMap: { linear: doMapToArray, category: doMapCategory, piecewise: function piecewise(normalized, value) { var result = getSpecifiedVisual.call(this, value); if (result == null) { result = doMapToArray.call(this, normalized); } return result; }, fixed: doMapFixed } }, symbolSize: { applyVisual: makeApplyVisual('symbolSize'), _doMap: makeDoMap([0, 1]) } }; function preprocessForPiecewise(thisOption) { var pieceList = thisOption.pieceList; thisOption.hasSpecialVisual = false; zrUtil.each(pieceList, function (piece, index) { piece.originIndex = index; // piece.visual is "result visual value" but not // a visual range, so it does not need to be normalized. if (piece.visual != null) { thisOption.hasSpecialVisual = true; } }); } function preprocessForSpecifiedCategory(thisOption) { // Hash categories. var categories = thisOption.categories; var visual = thisOption.visual; var categoryMap = thisOption.categoryMap = {}; each(categories, function (cate, index) { categoryMap[cate] = index; }); // Process visual map input. if (!zrUtil.isArray(visual)) { var visualArr = []; if (zrUtil.isObject(visual)) { each(visual, function (v, cate) { var index = categoryMap[cate]; visualArr[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v; }); } else { // Is primary type, represents default visual. visualArr[CATEGORY_DEFAULT_VISUAL_INDEX] = visual; } visual = setVisualToOption(thisOption, visualArr); } // Remove categories that has no visual, // then we can mapping them to CATEGORY_DEFAULT_VISUAL_INDEX. for (var i = categories.length - 1; i >= 0; i--) { if (visual[i] == null) { delete categoryMap[categories[i]]; categories.pop(); } } } function normalizeVisualRange(thisOption, isCategory) { var visual = thisOption.visual; var visualArr = []; if (zrUtil.isObject(visual)) { each(visual, function (v) { visualArr.push(v); }); } else if (visual != null) { visualArr.push(visual); } var doNotNeedPair = { color: 1, symbol: 1 }; if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) { // Do not care visualArr.length === 0, which is illegal. visualArr[1] = visualArr[0]; } setVisualToOption(thisOption, visualArr); } function makePartialColorVisualHandler(applyValue) { return { applyVisual: function applyVisual(value, getter, setter) { value = this.mapValueToVisual(value); // Must not be array value setter('color', applyValue(getter('color'), value)); }, _doMap: makeDoMap([0, 1]) }; } function doMapToArray(normalized) { var visual = this.option.visual; return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {}; } function makeApplyVisual(visualType) { return function (value, getter, setter) { setter(visualType, this.mapValueToVisual(value)); }; } function doMapCategory(normalized) { var visual = this.option.visual; return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized]; } function doMapFixed() { return this.option.visual[0]; } function makeDoMap(sourceExtent) { return { linear: function linear(normalized) { return linearMap(normalized, sourceExtent, this.option.visual, true); }, category: doMapCategory, piecewise: function piecewise(normalized, value) { var result = getSpecifiedVisual.call(this, value); if (result == null) { result = linearMap(normalized, sourceExtent, this.option.visual, true); } return result; }, fixed: doMapFixed }; } function getSpecifiedVisual(value) { var thisOption = this.option; var pieceList = thisOption.pieceList; if (thisOption.hasSpecialVisual) { var pieceIndex = VisualMapping.findPieceIndex(value, pieceList); var piece = pieceList[pieceIndex]; if (piece && piece.visual) { return piece.visual[this.type]; } } } function setVisualToOption(thisOption, visualArr) { thisOption.visual = visualArr; if (thisOption.type === 'color') { thisOption.parsedVisual = zrUtil.map(visualArr, function (item) { return zrColor.parse(item); }); } return visualArr; } /** * Normalizers by mapping methods. */ var normalizers = { linear: function linear(value) { return linearMap(value, this.option.dataExtent, [0, 1], true); }, piecewise: function piecewise(value) { var pieceList = this.option.pieceList; var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true); if (pieceIndex != null) { return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true); } }, category: function category(value) { var index = this.option.categories ? this.option.categoryMap[value] : value; // ordinal return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index; }, fixed: zrUtil.noop }; /** * List available visual types. * * @public * @return {Array.} */ VisualMapping.listVisualTypes = function () { var visualTypes = []; zrUtil.each(visualHandlers, function (handler, key) { visualTypes.push(key); }); return visualTypes; }; /** * @public */ VisualMapping.addVisualHandler = function (name, handler) { visualHandlers[name] = handler; }; /** * @public */ VisualMapping.isValidType = function (visualType) { return visualHandlers.hasOwnProperty(visualType); }; /** * Convinent method. * Visual can be Object or Array or primary type. * * @public */ VisualMapping.eachVisual = function (visual, callback, context) { if (zrUtil.isObject(visual)) { zrUtil.each(visual, callback, context); } else { callback.call(context, visual); } }; VisualMapping.mapVisual = function (visual, callback, context) { var isPrimary; var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null); VisualMapping.eachVisual(visual, function (v, key) { var newVal = callback.call(context, v, key); isPrimary ? newVisual = newVal : newVisual[key] = newVal; }); return newVisual; }; /** * @public * @param {Object} obj * @return {Object} new object containers visual values. * If no visuals, return null. */ VisualMapping.retrieveVisuals = function (obj) { var ret = {}; var hasVisual; obj && each(visualHandlers, function (h, visualType) { if (obj.hasOwnProperty(visualType)) { ret[visualType] = obj[visualType]; hasVisual = true; } }); return hasVisual ? ret : null; }; /** * Give order to visual types, considering colorSaturation, colorAlpha depends on color. * * @public * @param {(Object|Array)} visualTypes If Object, like: {color: ..., colorSaturation: ...} * IF Array, like: ['color', 'symbol', 'colorSaturation'] * @return {Array.} Sorted visual types. */ VisualMapping.prepareVisualTypes = function (visualTypes) { if (isObject(visualTypes)) { var types = []; each(visualTypes, function (item, type) { types.push(type); }); visualTypes = types; } else if (zrUtil.isArray(visualTypes)) { visualTypes = visualTypes.slice(); } else { return []; } visualTypes.sort(function (type1, type2) { // color should be front of colorSaturation, colorAlpha, ... // symbol and symbolSize do not matter. return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1; }); return visualTypes; }; /** * 'color', 'colorSaturation', 'colorAlpha', ... are depends on 'color'. * Other visuals are only depends on themself. * * @public * @param {string} visualType1 * @param {string} visualType2 * @return {boolean} */ VisualMapping.dependsOn = function (visualType1, visualType2) { return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2; }; /** * @param {number} value * @param {Array.} pieceList [{value: ..., interval: [min, max]}, ...] * Always from small to big. * @param {boolean} [findClosestWhenOutside=false] * @return {number} index */ VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) { var possibleI; var abs = Infinity; // value has the higher priority. for (var i = 0, len = pieceList.length; i < len; i++) { var pieceValue = pieceList[i].value; if (pieceValue != null) { if (pieceValue === value // FIXME // It is supposed to compare value according to value type of dimension, // but currently value type can exactly be string or number. // Compromise for numeric-like string (like '12'), especially // in the case that visualMap.categories is ['22', '33']. || typeof pieceValue === 'string' && pieceValue === value + '') { return i; } findClosestWhenOutside && updatePossible(pieceValue, i); } } for (var i = 0, len = pieceList.length; i < len; i++) { var piece = pieceList[i]; var interval = piece.interval; var close = piece.close; if (interval) { if (interval[0] === -Infinity) { if (littleThan(close[1], value, interval[1])) { return i; } } else if (interval[1] === Infinity) { if (littleThan(close[0], interval[0], value)) { return i; } } else if (littleThan(close[0], interval[0], value) && littleThan(close[1], value, interval[1])) { return i; } findClosestWhenOutside && updatePossible(interval[0], i); findClosestWhenOutside && updatePossible(interval[1], i); } } if (findClosestWhenOutside) { return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI; } function updatePossible(val, index) { var newAbs = Math.abs(val - value); if (newAbs < abs) { abs = newAbs; possibleI = index; } } }; function littleThan(close, a, b) { return close ? a <= b : a < b; } var _default = VisualMapping; module.exports = _default; /***/ }), /* 652 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/treemap/treemapLayout.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var MAX_SAFE_INTEGER = _number.MAX_SAFE_INTEGER; var layout = __webpack_require__(/*! ../../util/layout */ 488); var helper = __webpack_require__(/*! ../helper/treeHelper */ 645); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * A third-party license is embeded for some of the code in this file: * The treemap layout implementation was originally copied from * "d3.js" with some modifications made for this project. * (See more details in the comment of the method "squarify" below.) * The use of the source code of this file is also subject to the terms * and consitions of the license of "d3.js" (BSD-3Clause, see * ). */ var mathMax = Math.max; var mathMin = Math.min; var retrieveValue = zrUtil.retrieve; var each = zrUtil.each; var PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth']; var PATH_GAP_WIDTH = ['itemStyle', 'gapWidth']; var PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show']; var PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height']; /** * @public */ var _default = { seriesType: 'treemap', reset: function reset(seriesModel, ecModel, api, payload) { // Layout result in each node: // {x, y, width, height, area, borderWidth} var ecWidth = api.getWidth(); var ecHeight = api.getHeight(); var seriesOption = seriesModel.option; var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); var size = seriesOption.size || []; // Compatible with ec2. var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth); var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight); // Fetch payload info. var payloadType = payload && payload.type; var types = ['treemapZoomToNode', 'treemapRootToNode']; var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel); var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null; var viewRoot = seriesModel.getViewRoot(); var viewAbovePath = helper.getPathToRoot(viewRoot); if (payloadType !== 'treemapMove') { var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight]; var sort = seriesOption.sort; if (sort && sort !== 'asc' && sort !== 'desc') { sort = 'desc'; } var options = { squareRatio: seriesOption.squareRatio, sort: sort, leafDepth: seriesOption.leafDepth }; // layout should be cleared because using updateView but not update. viewRoot.hostTree.clearLayouts(); // TODO // optimize: if out of view clip, do not layout. // But take care that if do not render node out of view clip, // how to calculate start po var viewRootLayout = { x: 0, y: 0, width: rootSize[0], height: rootSize[1], area: rootSize[0] * rootSize[1] }; viewRoot.setLayout(viewRootLayout); squarify(viewRoot, options, false, 0); // Supplement layout. var viewRootLayout = viewRoot.getLayout(); each(viewAbovePath, function (node, index) { var childValue = (viewAbovePath[index + 1] || viewRoot).getValue(); node.setLayout(zrUtil.extend({ dataExtent: [childValue, childValue], borderWidth: 0, upperHeight: 0 }, viewRootLayout)); }); } var treeRoot = seriesModel.getData().tree.root; treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true); seriesModel.setLayoutInfo(layoutInfo); // FIXME // 现在没有clip功能,暂时取ec高宽。 prunning(treeRoot, // Transform to base element coordinate system. new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0); } }; /** * Layout treemap with squarify algorithm. * The original presentation of this algorithm * was made by Mark Bruls, Kees Huizing, and Jarke J. van Wijk * . * The implementation of this algorithm was originally copied from "d3.js" * * with some modifications made for this program. * See the license statement at the head of this file. * * @protected * @param {module:echarts/data/Tree~TreeNode} node * @param {Object} options * @param {string} options.sort 'asc' or 'desc' * @param {number} options.squareRatio * @param {boolean} hideChildren * @param {number} depth */ function squarify(node, options, hideChildren, depth) { var width; var height; if (node.isRemoved()) { return; } var thisLayout = node.getLayout(); width = thisLayout.width; height = thisLayout.height; // Considering border and gap var nodeModel = node.getModel(); var borderWidth = nodeModel.get(PATH_BORDER_WIDTH); var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2; var upperLabelHeight = getUpperLabelHeight(nodeModel); var upperHeight = Math.max(borderWidth, upperLabelHeight); var layoutOffset = borderWidth - halfGapWidth; var layoutOffsetUpper = upperHeight - halfGapWidth; var nodeModel = node.getModel(); node.setLayout({ borderWidth: borderWidth, upperHeight: upperHeight, upperLabelHeight: upperLabelHeight }, true); width = mathMax(width - 2 * layoutOffset, 0); height = mathMax(height - layoutOffset - layoutOffsetUpper, 0); var totalArea = width * height; var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth); if (!viewChildren.length) { return; } var rect = { x: layoutOffset, y: layoutOffsetUpper, width: width, height: height }; var rowFixedLength = mathMin(width, height); var best = Infinity; // the best row score so far var row = []; row.area = 0; for (var i = 0, len = viewChildren.length; i < len;) { var child = viewChildren[i]; row.push(child); row.area += child.getLayout().area; var score = worst(row, rowFixedLength, options.squareRatio); // continue with this orientation if (score <= best) { i++; best = score; } // abort, and try a different orientation else { row.area -= row.pop().getLayout().area; position(row, rowFixedLength, rect, halfGapWidth, false); rowFixedLength = mathMin(rect.width, rect.height); row.length = row.area = 0; best = Infinity; } } if (row.length) { position(row, rowFixedLength, rect, halfGapWidth, true); } if (!hideChildren) { var childrenVisibleMin = nodeModel.get('childrenVisibleMin'); if (childrenVisibleMin != null && totalArea < childrenVisibleMin) { hideChildren = true; } } for (var i = 0, len = viewChildren.length; i < len; i++) { squarify(viewChildren[i], options, hideChildren, depth + 1); } } /** * Set area to each child, and calculate data extent for visual coding. */ function initChildren(node, nodeModel, totalArea, options, hideChildren, depth) { var viewChildren = node.children || []; var orderBy = options.sort; orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null); var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth; // leafDepth has higher priority. if (hideChildren && !overLeafDepth) { return node.viewChildren = []; } // Sort children, order by desc. viewChildren = zrUtil.filter(viewChildren, function (child) { return !child.isRemoved(); }); sort(viewChildren, orderBy); var info = statistic(nodeModel, viewChildren, orderBy); if (info.sum === 0) { return node.viewChildren = []; } info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren); if (info.sum === 0) { return node.viewChildren = []; } // Set area to each child. for (var i = 0, len = viewChildren.length; i < len; i++) { var area = viewChildren[i].getValue() / info.sum * totalArea; // Do not use setLayout({...}, true), because it is needed to clear last layout. viewChildren[i].setLayout({ area: area }); } if (overLeafDepth) { viewChildren.length && node.setLayout({ isLeafRoot: true }, true); viewChildren.length = 0; } node.viewChildren = viewChildren; node.setLayout({ dataExtent: info.dataExtent }, true); return viewChildren; } /** * Consider 'visibleMin'. Modify viewChildren and get new sum. */ function filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) { // visibleMin is not supported yet when no option.sort. if (!orderBy) { return sum; } var visibleMin = nodeModel.get('visibleMin'); var len = orderedChildren.length; var deletePoint = len; // Always travel from little value to big value. for (var i = len - 1; i >= 0; i--) { var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue(); if (value / sum * totalArea < visibleMin) { deletePoint = i; sum -= value; } } orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint); return sum; } /** * Sort */ function sort(viewChildren, orderBy) { if (orderBy) { viewChildren.sort(function (a, b) { var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue(); return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff; }); } return viewChildren; } /** * Statistic */ function statistic(nodeModel, children, orderBy) { // Calculate sum. var sum = 0; for (var i = 0, len = children.length; i < len; i++) { sum += children[i].getValue(); } // Statistic data extent for latter visual coding. // Notice: data extent should be calculate based on raw children // but not filtered view children, otherwise visual mapping will not // be stable when zoom (where children is filtered by visibleMin). var dimension = nodeModel.get('visualDimension'); var dataExtent; // The same as area dimension. if (!children || !children.length) { dataExtent = [NaN, NaN]; } else if (dimension === 'value' && orderBy) { dataExtent = [children[children.length - 1].getValue(), children[0].getValue()]; orderBy === 'asc' && dataExtent.reverse(); } // Other dimension. else { var dataExtent = [Infinity, -Infinity]; each(children, function (child) { var value = child.getValue(dimension); value < dataExtent[0] && (dataExtent[0] = value); value > dataExtent[1] && (dataExtent[1] = value); }); } return { sum: sum, dataExtent: dataExtent }; } /** * Computes the score for the specified row, * as the worst aspect ratio. */ function worst(row, rowFixedLength, ratio) { var areaMax = 0; var areaMin = Infinity; for (var i = 0, area, len = row.length; i < len; i++) { area = row[i].getLayout().area; if (area) { area < areaMin && (areaMin = area); area > areaMax && (areaMax = area); } } var squareArea = row.area * row.area; var f = rowFixedLength * rowFixedLength * ratio; return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity; } /** * Positions the specified row of nodes. Modifies `rect`. */ function position(row, rowFixedLength, rect, halfGapWidth, flush) { // When rowFixedLength === rect.width, // it is horizontal subdivision, // rowFixedLength is the width of the subdivision, // rowOtherLength is the height of the subdivision, // and nodes will be positioned from left to right. // wh[idx0WhenH] means: when horizontal, // wh[idx0WhenH] => wh[0] => 'width'. // xy[idx1WhenH] => xy[1] => 'y'. var idx0WhenH = rowFixedLength === rect.width ? 0 : 1; var idx1WhenH = 1 - idx0WhenH; var xy = ['x', 'y']; var wh = ['width', 'height']; var last = rect[xy[idx0WhenH]]; var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0; if (flush || rowOtherLength > rect[wh[idx1WhenH]]) { rowOtherLength = rect[wh[idx1WhenH]]; // over+underflow } for (var i = 0, rowLen = row.length; i < rowLen; i++) { var node = row[i]; var nodeLayout = {}; var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0; var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0); // We use Math.max/min to avoid negative width/height when considering gap width. var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last; var modWH = i === rowLen - 1 || remain < step ? remain : step; var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0); nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2); nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2); last += modWH; node.setLayout(nodeLayout, true); } rect[xy[idx1WhenH]] += rowOtherLength; rect[wh[idx1WhenH]] -= rowOtherLength; } // Return [containerWidth, containerHeight] as default. function estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) { // If targetInfo.node exists, we zoom to the node, // so estimate whold width and heigth by target node. var currNode = (targetInfo || {}).node; var defaultSize = [containerWidth, containerHeight]; if (!currNode || currNode === viewRoot) { return defaultSize; } var parent; var viewArea = containerWidth * containerHeight; var area = viewArea * seriesModel.option.zoomToNodeRatio; while (parent = currNode.parentNode) { // jshint ignore:line var sum = 0; var siblings = parent.children; for (var i = 0, len = siblings.length; i < len; i++) { sum += siblings[i].getValue(); } var currNodeValue = currNode.getValue(); if (currNodeValue === 0) { return defaultSize; } area *= sum / currNodeValue; // Considering border, suppose aspect ratio is 1. var parentModel = parent.getModel(); var borderWidth = parentModel.get(PATH_BORDER_WIDTH); var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel, borderWidth)); area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5); area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER); currNode = parent; } area < viewArea && (area = viewArea); var scale = Math.pow(area / viewArea, 0.5); return [containerWidth * scale, containerHeight * scale]; } // Root postion base on coord of containerGroup function calculateRootPosition(layoutInfo, rootRect, targetInfo) { if (rootRect) { return { x: rootRect.x, y: rootRect.y }; } var defaultPosition = { x: 0, y: 0 }; if (!targetInfo) { return defaultPosition; } // If targetInfo is fetched by 'retrieveTargetInfo', // old tree and new tree are the same tree, // so the node still exists and we can visit it. var targetNode = targetInfo.node; var layout = targetNode.getLayout(); if (!layout) { return defaultPosition; } // Transform coord from local to container. var targetCenter = [layout.width / 2, layout.height / 2]; var node = targetNode; while (node) { var nodeLayout = node.getLayout(); targetCenter[0] += nodeLayout.x; targetCenter[1] += nodeLayout.y; node = node.parentNode; } return { x: layoutInfo.width / 2 - targetCenter[0], y: layoutInfo.height / 2 - targetCenter[1] }; } // Mark nodes visible for prunning when visual coding and rendering. // Prunning depends on layout and root position, so we have to do it after layout. function prunning(node, clipRect, viewAbovePath, viewRoot, depth) { var nodeLayout = node.getLayout(); var nodeInViewAbovePath = viewAbovePath[depth]; var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node; if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) { return; } node.setLayout({ // isInView means: viewRoot sub tree + viewAbovePath isInView: true, // invisible only means: outside view clip so that the node can not // see but still layout for animation preparation but not render. invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout), isAboveViewRoot: isAboveViewRoot }, true); // Transform to child coordinate. var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height); each(node.viewChildren || [], function (child) { prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1); }); } function getUpperLabelHeight(model) { return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0; } module.exports = _default; /***/ }), /* 653 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./graph/GraphSeries */ 654); __webpack_require__(/*! ./graph/GraphView */ 658); __webpack_require__(/*! ./graph/graphAction */ 664); var categoryFilter = __webpack_require__(/*! ./graph/categoryFilter */ 666); var visualSymbol = __webpack_require__(/*! ../visual/symbol */ 559); var categoryVisual = __webpack_require__(/*! ./graph/categoryVisual */ 667); var edgeVisual = __webpack_require__(/*! ./graph/edgeVisual */ 668); var simpleLayout = __webpack_require__(/*! ./graph/simpleLayout */ 669); var circularLayout = __webpack_require__(/*! ./graph/circularLayout */ 671); var forceLayout = __webpack_require__(/*! ./graph/forceLayout */ 673); var createView = __webpack_require__(/*! ./graph/createView */ 675); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerProcessor(categoryFilter); echarts.registerVisual(visualSymbol('graph', 'circle', null)); echarts.registerVisual(categoryVisual); echarts.registerVisual(edgeVisual); echarts.registerLayout(simpleLayout); echarts.registerLayout(echarts.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout); echarts.registerLayout(forceLayout); // Graph view coordinate system echarts.registerCoordinateSystem('graphView', { create: createView }); /***/ }), /* 654 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/GraphSeries.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var List = __webpack_require__(/*! ../../data/List */ 525); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _model = __webpack_require__(/*! ../../util/model */ 444); var defaultEmphasis = _model.defaultEmphasis; var Model = __webpack_require__(/*! ../../model/Model */ 445); var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var createGraphFromNodeEdge = __webpack_require__(/*! ../helper/createGraphFromNodeEdge */ 655); var LegendVisualProvider = __webpack_require__(/*! ../../visual/LegendVisualProvider */ 589); var _multipleGraphEdgeHelper = __webpack_require__(/*! ../helper/multipleGraphEdgeHelper */ 657); var initCurvenessList = _multipleGraphEdgeHelper.initCurvenessList; var createEdgeMapForCurveness = _multipleGraphEdgeHelper.createEdgeMapForCurveness; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var GraphSeries = echarts.extendSeriesModel({ type: 'series.graph', init: function init(option) { GraphSeries.superApply(this, 'init', arguments); var self = this; function getCategoriesData() { return self._categoriesData; } // Provide data for legend select this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData); this.fillDataTextStyle(option.edges || option.links); this._updateCategoriesData(); }, mergeOption: function mergeOption(option) { GraphSeries.superApply(this, 'mergeOption', arguments); this.fillDataTextStyle(option.edges || option.links); this._updateCategoriesData(); }, mergeDefaultAndTheme: function mergeDefaultAndTheme(option) { GraphSeries.superApply(this, 'mergeDefaultAndTheme', arguments); defaultEmphasis(option, ['edgeLabel'], ['show']); }, getInitialData: function getInitialData(option, ecModel) { var edges = option.edges || option.links || []; var nodes = option.data || option.nodes || []; var self = this; if (nodes && edges) { // auto curveness initCurvenessList(this); var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink); zrUtil.each(graph.edges, function (edge) { createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex); }, this); return graph.data; } function beforeLink(nodeData, edgeData) { // Overwrite nodeData.getItemModel to nodeData.wrapMethod('getItemModel', function (model) { var categoriesModels = self._categoriesModels; var categoryIdx = model.getShallow('category'); var categoryModel = categoriesModels[categoryIdx]; if (categoryModel) { categoryModel.parentModel = model.parentModel; model.parentModel = categoryModel; } return model; }); var edgeLabelModel = self.getModel('edgeLabel'); // For option `edgeLabel` can be found by label.xxx.xxx on item mode. var fakeSeriesModel = new Model({ label: edgeLabelModel.option }, edgeLabelModel.parentModel, ecModel); var emphasisEdgeLabelModel = self.getModel('emphasis.edgeLabel'); var emphasisFakeSeriesModel = new Model({ emphasis: { label: emphasisEdgeLabelModel.option } }, emphasisEdgeLabelModel.parentModel, ecModel); edgeData.wrapMethod('getItemModel', function (model) { model.customizeGetParent(edgeGetParent); return model; }); function edgeGetParent(path) { path = this.parsePath(path); return path && path[0] === 'label' ? fakeSeriesModel : path && path[0] === 'emphasis' && path[1] === 'label' ? emphasisFakeSeriesModel : this.parentModel; } } }, /** * @return {module:echarts/data/Graph} */ getGraph: function getGraph() { return this.getData().graph; }, /** * @return {module:echarts/data/List} */ getEdgeData: function getEdgeData() { return this.getGraph().edgeData; }, /** * @return {module:echarts/data/List} */ getCategoriesData: function getCategoriesData() { return this._categoriesData; }, /** * @override */ formatTooltip: function formatTooltip(dataIndex, multipleSeries, dataType) { if (dataType === 'edge') { var nodeData = this.getData(); var params = this.getDataParams(dataIndex, dataType); var edge = nodeData.graph.getEdgeByIndex(dataIndex); var sourceName = nodeData.getName(edge.node1.dataIndex); var targetName = nodeData.getName(edge.node2.dataIndex); var html = []; sourceName != null && html.push(sourceName); targetName != null && html.push(targetName); html = encodeHTML(html.join(' > ')); if (params.value) { html += ' : ' + encodeHTML(params.value); } return html; } else { // dataType === 'node' or empty return GraphSeries.superApply(this, 'formatTooltip', arguments); } }, _updateCategoriesData: function _updateCategoriesData() { var categories = zrUtil.map(this.option.categories || [], function (category) { // Data must has value return category.value != null ? category : zrUtil.extend({ value: 0 }, category); }); var categoriesData = new List(['value'], this); categoriesData.initData(categories); this._categoriesData = categoriesData; this._categoriesModels = categoriesData.mapArray(function (idx) { return categoriesData.getItemModel(idx, true); }); }, setZoom: function setZoom(zoom) { this.option.zoom = zoom; }, setCenter: function setCenter(center) { this.option.center = center; }, isAnimationEnabled: function isAnimationEnabled() { return GraphSeries.superCall(this, 'isAnimationEnabled') // Not enable animation when do force layout && !(this.get('layout') === 'force' && this.get('force.layoutAnimation')); }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: 'view', // Default option for all coordinate systems // xAxisIndex: 0, // yAxisIndex: 0, // polarIndex: 0, // geoIndex: 0, legendHoverLink: true, hoverAnimation: true, layout: null, focusNodeAdjacency: false, // Configuration of circular layout circular: { rotateLabel: false }, // Configuration of force directed layout force: { initLayout: null, // Node repulsion. Can be an array to represent range. repulsion: [0, 50], gravity: 0.1, // Initial friction friction: 0.6, // Edge length. Can be an array to represent range. edgeLength: 30, layoutAnimation: true }, left: 'center', top: 'center', // right: null, // bottom: null, // width: '80%', // height: '80%', symbol: 'circle', symbolSize: 10, edgeSymbol: ['none', 'none'], edgeSymbolSize: 10, edgeLabel: { position: 'middle', distance: 5 }, draggable: false, roam: false, // Default on center of graph center: null, zoom: 1, // Symbol size scale ratio in roam nodeScaleRatio: 0.6, // cursor: null, // categories: [], // data: [] // Or // nodes: [] // // links: [] // Or // edges: [] label: { show: false, formatter: '{b}' }, itemStyle: {}, lineStyle: { color: '#aaa', width: 1, opacity: 0.5 }, emphasis: { label: { show: true } } } }); var _default = GraphSeries; module.exports = _default; /***/ }), /* 655 */ /*!*************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/createGraphFromNodeEdge.js ***! \*************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var List = __webpack_require__(/*! ../../data/List */ 525); var Graph = __webpack_require__(/*! ../../data/Graph */ 656); var linkList = __webpack_require__(/*! ../../data/helper/linkList */ 637); var createDimensions = __webpack_require__(/*! ../../data/helper/createDimensions */ 529); var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); var createListFromArray = __webpack_require__(/*! ./createListFromArray */ 524); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(nodes, edges, seriesModel, directed, beforeLink) { // ??? TODO // support dataset? var graph = new Graph(directed); for (var i = 0; i < nodes.length; i++) { graph.addNode(zrUtil.retrieve( // Id, name, dataIndex nodes[i].id, nodes[i].name, i), i); } var linkNameList = []; var validEdges = []; var linkCount = 0; for (var i = 0; i < edges.length; i++) { var link = edges[i]; var source = link.source; var target = link.target; // addEdge may fail when source or target not exists if (graph.addEdge(source, target, linkCount)) { validEdges.push(link); linkNameList.push(zrUtil.retrieve(link.id, source + ' > ' + target)); linkCount++; } } var coordSys = seriesModel.get('coordinateSystem'); var nodeData; if (coordSys === 'cartesian2d' || coordSys === 'polar') { nodeData = createListFromArray(nodes, seriesModel); } else { var coordSysCtor = CoordinateSystem.get(coordSys); var coordDimensions = coordSysCtor && coordSysCtor.type !== 'view' ? coordSysCtor.dimensions || [] : []; // FIXME: Some geo do not need `value` dimenson, whereas `calendar` needs // `value` dimension, but graph need `value` dimension. It's better to // uniform this behavior. if (zrUtil.indexOf(coordDimensions, 'value') < 0) { coordDimensions.concat(['value']); } var dimensionNames = createDimensions(nodes, { coordDimensions: coordDimensions }); nodeData = new List(dimensionNames, seriesModel); nodeData.initData(nodes); } var edgeData = new List(['value'], seriesModel); edgeData.initData(validEdges, linkNameList); beforeLink && beforeLink(nodeData, edgeData); linkList({ mainData: nodeData, struct: graph, structAttr: 'graph', datas: { node: nodeData, edge: edgeData }, datasAttr: { node: 'data', edge: 'edgeData' } }); // Update dataIndex of nodes and edges because invalid edge may be removed graph.update(); return graph; } module.exports = _default; /***/ }), /* 656 */ /*!***********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/data/Graph.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _clazz = __webpack_require__(/*! ../util/clazz */ 446); var enableClassCheck = _clazz.enableClassCheck; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // id may be function name of Object, add a prefix to avoid this problem. function generateNodeKey(id) { return '_EC_' + id; } /** * @alias module:echarts/data/Graph * @constructor * @param {boolean} directed */ var Graph = function Graph(directed) { /** * 是否是有向图 * @type {boolean} * @private */ this._directed = directed || false; /** * @type {Array.} * @readOnly */ this.nodes = []; /** * @type {Array.} * @readOnly */ this.edges = []; /** * @type {Object.} * @private */ this._nodesMap = {}; /** * @type {Object.} * @private */ this._edgesMap = {}; /** * @type {module:echarts/data/List} * @readOnly */ this.data; /** * @type {module:echarts/data/List} * @readOnly */ this.edgeData; }; var graphProto = Graph.prototype; /** * @type {string} */ graphProto.type = 'graph'; /** * If is directed graph * @return {boolean} */ graphProto.isDirected = function () { return this._directed; }; /** * Add a new node * @param {string} id * @param {number} [dataIndex] */ graphProto.addNode = function (id, dataIndex) { id = id == null ? '' + dataIndex : '' + id; var nodesMap = this._nodesMap; if (nodesMap[generateNodeKey(id)]) { return; } var node = new Node(id, dataIndex); node.hostGraph = this; this.nodes.push(node); nodesMap[generateNodeKey(id)] = node; return node; }; /** * Get node by data index * @param {number} dataIndex * @return {module:echarts/data/Graph~Node} */ graphProto.getNodeByIndex = function (dataIndex) { var rawIdx = this.data.getRawIndex(dataIndex); return this.nodes[rawIdx]; }; /** * Get node by id * @param {string} id * @return {module:echarts/data/Graph.Node} */ graphProto.getNodeById = function (id) { return this._nodesMap[generateNodeKey(id)]; }; /** * Add a new edge * @param {number|string|module:echarts/data/Graph.Node} n1 * @param {number|string|module:echarts/data/Graph.Node} n2 * @param {number} [dataIndex=-1] * @return {module:echarts/data/Graph.Edge} */ graphProto.addEdge = function (n1, n2, dataIndex) { var nodesMap = this._nodesMap; var edgesMap = this._edgesMap; // PNEDING if (typeof n1 === 'number') { n1 = this.nodes[n1]; } if (typeof n2 === 'number') { n2 = this.nodes[n2]; } if (!Node.isInstance(n1)) { n1 = nodesMap[generateNodeKey(n1)]; } if (!Node.isInstance(n2)) { n2 = nodesMap[generateNodeKey(n2)]; } if (!n1 || !n2) { return; } var key = n1.id + '-' + n2.id; var edge = new Edge(n1, n2, dataIndex); edge.hostGraph = this; if (this._directed) { n1.outEdges.push(edge); n2.inEdges.push(edge); } n1.edges.push(edge); if (n1 !== n2) { n2.edges.push(edge); } this.edges.push(edge); edgesMap[key] = edge; return edge; }; /** * Get edge by data index * @param {number} dataIndex * @return {module:echarts/data/Graph~Node} */ graphProto.getEdgeByIndex = function (dataIndex) { var rawIdx = this.edgeData.getRawIndex(dataIndex); return this.edges[rawIdx]; }; /** * Get edge by two linked nodes * @param {module:echarts/data/Graph.Node|string} n1 * @param {module:echarts/data/Graph.Node|string} n2 * @return {module:echarts/data/Graph.Edge} */ graphProto.getEdge = function (n1, n2) { if (Node.isInstance(n1)) { n1 = n1.id; } if (Node.isInstance(n2)) { n2 = n2.id; } var edgesMap = this._edgesMap; if (this._directed) { return edgesMap[n1 + '-' + n2]; } else { return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1]; } }; /** * Iterate all nodes * @param {Function} cb * @param {*} [context] */ graphProto.eachNode = function (cb, context) { var nodes = this.nodes; var len = nodes.length; for (var i = 0; i < len; i++) { if (nodes[i].dataIndex >= 0) { cb.call(context, nodes[i], i); } } }; /** * Iterate all edges * @param {Function} cb * @param {*} [context] */ graphProto.eachEdge = function (cb, context) { var edges = this.edges; var len = edges.length; for (var i = 0; i < len; i++) { if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) { cb.call(context, edges[i], i); } } }; /** * Breadth first traverse * @param {Function} cb * @param {module:echarts/data/Graph.Node} startNode * @param {string} [direction='none'] 'none'|'in'|'out' * @param {*} [context] */ graphProto.breadthFirstTraverse = function (cb, startNode, direction, context) { if (!Node.isInstance(startNode)) { startNode = this._nodesMap[generateNodeKey(startNode)]; } if (!startNode) { return; } var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges'; for (var i = 0; i < this.nodes.length; i++) { this.nodes[i].__visited = false; } if (cb.call(context, startNode, null)) { return; } var queue = [startNode]; while (queue.length) { var currentNode = queue.shift(); var edges = currentNode[edgeType]; for (var i = 0; i < edges.length; i++) { var e = edges[i]; var otherNode = e.node1 === currentNode ? e.node2 : e.node1; if (!otherNode.__visited) { if (cb.call(context, otherNode, currentNode)) { // Stop traversing return; } queue.push(otherNode); otherNode.__visited = true; } } } }; // TODO // graphProto.depthFirstTraverse = function ( // cb, startNode, direction, context // ) { // }; // Filter update graphProto.update = function () { var data = this.data; var edgeData = this.edgeData; var nodes = this.nodes; var edges = this.edges; for (var i = 0, len = nodes.length; i < len; i++) { nodes[i].dataIndex = -1; } for (var i = 0, len = data.count(); i < len; i++) { nodes[data.getRawIndex(i)].dataIndex = i; } edgeData.filterSelf(function (idx) { var edge = edges[edgeData.getRawIndex(idx)]; return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0; }); // Update edge for (var i = 0, len = edges.length; i < len; i++) { edges[i].dataIndex = -1; } for (var i = 0, len = edgeData.count(); i < len; i++) { edges[edgeData.getRawIndex(i)].dataIndex = i; } }; /** * @return {module:echarts/data/Graph} */ graphProto.clone = function () { var graph = new Graph(this._directed); var nodes = this.nodes; var edges = this.edges; for (var i = 0; i < nodes.length; i++) { graph.addNode(nodes[i].id, nodes[i].dataIndex); } for (var i = 0; i < edges.length; i++) { var e = edges[i]; graph.addEdge(e.node1.id, e.node2.id, e.dataIndex); } return graph; }; /** * @alias module:echarts/data/Graph.Node */ function Node(id, dataIndex) { /** * @type {string} */ this.id = id == null ? '' : id; /** * @type {Array.} */ this.inEdges = []; /** * @type {Array.} */ this.outEdges = []; /** * @type {Array.} */ this.edges = []; /** * @type {module:echarts/data/Graph} */ this.hostGraph; /** * @type {number} */ this.dataIndex = dataIndex == null ? -1 : dataIndex; } Node.prototype = { constructor: Node, /** * @return {number} */ degree: function degree() { return this.edges.length; }, /** * @return {number} */ inDegree: function inDegree() { return this.inEdges.length; }, /** * @return {number} */ outDegree: function outDegree() { return this.outEdges.length; }, /** * @param {string} [path] * @return {module:echarts/model/Model} */ getModel: function getModel(path) { if (this.dataIndex < 0) { return; } var graph = this.hostGraph; var itemModel = graph.data.getItemModel(this.dataIndex); return itemModel.getModel(path); } }; /** * 图边 * @alias module:echarts/data/Graph.Edge * @param {module:echarts/data/Graph.Node} n1 * @param {module:echarts/data/Graph.Node} n2 * @param {number} [dataIndex=-1] */ function Edge(n1, n2, dataIndex) { /** * 节点1,如果是有向图则为源节点 * @type {module:echarts/data/Graph.Node} */ this.node1 = n1; /** * 节点2,如果是有向图则为目标节点 * @type {module:echarts/data/Graph.Node} */ this.node2 = n2; this.dataIndex = dataIndex == null ? -1 : dataIndex; } /** * @param {string} [path] * @return {module:echarts/model/Model} */ Edge.prototype.getModel = function (path) { if (this.dataIndex < 0) { return; } var graph = this.hostGraph; var itemModel = graph.edgeData.getItemModel(this.dataIndex); return itemModel.getModel(path); }; var createGraphDataProxyMixin = function createGraphDataProxyMixin(hostName, dataName) { return { /** * @param {string=} [dimension='value'] Default 'value'. can be 'a', 'b', 'c', 'd', 'e'. * @return {number} */ getValue: function getValue(dimension) { var data = this[hostName][dataName]; return data.get(data.getDimension(dimension || 'value'), this.dataIndex); }, /** * @param {Object|string} key * @param {*} [value] */ setVisual: function setVisual(key, value) { this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value); }, /** * @param {string} key * @return {boolean} */ getVisual: function getVisual(key, ignoreParent) { return this[hostName][dataName].getItemVisual(this.dataIndex, key, ignoreParent); }, /** * @param {Object} layout * @return {boolean} [merge=false] */ setLayout: function setLayout(layout, merge) { this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge); }, /** * @return {Object} */ getLayout: function getLayout() { return this[hostName][dataName].getItemLayout(this.dataIndex); }, /** * @return {module:zrender/Element} */ getGraphicEl: function getGraphicEl() { return this[hostName][dataName].getItemGraphicEl(this.dataIndex); }, /** * @return {number} */ getRawIndex: function getRawIndex() { return this[hostName][dataName].getRawIndex(this.dataIndex); } }; }; zrUtil.mixin(Node, createGraphDataProxyMixin('hostGraph', 'data')); zrUtil.mixin(Edge, createGraphDataProxyMixin('hostGraph', 'edgeData')); Graph.Node = Node; Graph.Edge = Edge; enableClassCheck(Node); enableClassCheck(Edge); var _default = Graph; module.exports = _default; /***/ }), /* 657 */ /*!*************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/multipleGraphEdgeHelper.js ***! \*************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var KEY_DELIMITER = '-->'; /** * params handler * @param {module:echarts/model/SeriesModel} seriesModel * @returns {*} */ var getAutoCurvenessParams = function getAutoCurvenessParams(seriesModel) { return seriesModel.get('autoCurveness') || null; }; /** * Generate a list of edge curvatures, 20 is the default * @param {module:echarts/model/SeriesModel} seriesModel * @param {number} appendLength * @return 20 => [0, -0.2, 0.2, -0.4, 0.4, -0.6, 0.6, -0.8, 0.8, -1, 1, -1.2, 1.2, -1.4, 1.4, -1.6, 1.6, -1.8, 1.8, -2] */ var createCurveness = function createCurveness(seriesModel, appendLength) { var autoCurvenessParmas = getAutoCurvenessParams(seriesModel); var length = 20; var curvenessList = []; // handler the function set if (typeof autoCurvenessParmas === 'number') { length = autoCurvenessParmas; } else if (zrUtil.isArray(autoCurvenessParmas)) { seriesModel.__curvenessList = autoCurvenessParmas; return; } // append length if (appendLength > length) { length = appendLength; } // make sure the length is even var len = length % 2 ? length + 2 : length + 3; curvenessList = []; for (var i = 0; i < len; i++) { curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1)); } seriesModel.__curvenessList = curvenessList; }; /** * Create different cache key data in the positive and negative directions, in order to set the curvature later * @param {number|string|module:echarts/data/Graph.Node} n1 * @param {number|string|module:echarts/data/Graph.Node} n2 * @param {module:echarts/model/SeriesModel} seriesModel * @returns {string} key */ var getKeyOfEdges = function getKeyOfEdges(n1, n2, seriesModel) { var source = [n1.id, n1.dataIndex].join('.'); var target = [n2.id, n2.dataIndex].join('.'); return [seriesModel.uid, source, target].join(KEY_DELIMITER); }; /** * get opposite key * @param {string} key * @returns {string} */ var getOppositeKey = function getOppositeKey(key) { var keys = key.split(KEY_DELIMITER); return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER); }; /** * get edgeMap with key * @param edge * @param {module:echarts/model/SeriesModel} seriesModel */ var getEdgeFromMap = function getEdgeFromMap(edge, seriesModel) { var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel); return seriesModel.__edgeMap[key]; }; /** * calculate all cases total length * @param edge * @param seriesModel * @returns {number} */ var getTotalLengthBetweenNodes = function getTotalLengthBetweenNodes(edge, seriesModel) { var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel); var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel); return len + lenV; }; /** * * @param key */ var getEdgeMapLengthWithKey = function getEdgeMapLengthWithKey(key, seriesModel) { var edgeMap = seriesModel.__edgeMap; return edgeMap[key] ? edgeMap[key].length : 0; }; /** * Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge * @see /graph/GraphSeries.js@getInitialData * @param {module:echarts/model/SeriesModel} seriesModel */ function initCurvenessList(seriesModel) { if (!getAutoCurvenessParams(seriesModel)) { return; } seriesModel.__curvenessList = []; seriesModel.__edgeMap = {}; // calc the array of curveness List createCurveness(seriesModel); } /** * set edgeMap with key * @param {number|string|module:echarts/data/Graph.Node} n1 * @param {number|string|module:echarts/data/Graph.Node} n2 * @param {module:echarts/model/SeriesModel} seriesModel * @param {number} index */ function createEdgeMapForCurveness(n1, n2, seriesModel, index) { if (!getAutoCurvenessParams(seriesModel)) { return; } var key = getKeyOfEdges(n1, n2, seriesModel); var edgeMap = seriesModel.__edgeMap; var oppositeEdges = edgeMap[getOppositeKey(key)]; // set direction if (edgeMap[key] && !oppositeEdges) { edgeMap[key].isForward = true; } else if (oppositeEdges && edgeMap[key]) { oppositeEdges.isForward = true; edgeMap[key].isForward = false; } edgeMap[key] = edgeMap[key] || []; edgeMap[key].push(index); } /** * get curvature for edge * @param edge * @param {module:echarts/model/SeriesModel} seriesModel * @param index */ function getCurvenessForEdge(edge, seriesModel, index, needReverse) { var autoCurvenessParams = getAutoCurvenessParams(seriesModel); var isArrayParam = zrUtil.isArray(autoCurvenessParams); if (!autoCurvenessParams) { return null; } var edgeArray = getEdgeFromMap(edge, seriesModel); if (!edgeArray) { return null; } var edgeIndex = -1; for (var i = 0; i < edgeArray.length; i++) { if (edgeArray[i] === index) { edgeIndex = i; break; } } // if totalLen is Longer createCurveness var totalLen = getTotalLengthBetweenNodes(edge, seriesModel); createCurveness(seriesModel, totalLen); edge.lineStyle = edge.lineStyle || {}; // if is opposite edge, must set curvenss to opposite number var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel); var curvenessList = seriesModel.__curvenessList; // if pass array no need parity var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1; if (!edgeArray.isForward) { // the opposite edge show outside var oppositeKey = getOppositeKey(curKey); var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel); var resValue = curvenessList[edgeIndex + len + parityCorrection]; // isNeedReverse, simple, force type need reverse the curveness in the junction of the forword and the opposite if (needReverse) { // set as array may make the parity handle with the len of opposite if (isArrayParam) { if (autoCurvenessParams && autoCurvenessParams[0] === 0) { return (len + parityCorrection) % 2 ? resValue : -resValue; } else { return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue; } } else { return (len + parityCorrection) % 2 ? resValue : -resValue; } } else { return curvenessList[edgeIndex + len + parityCorrection]; } } else { return curvenessList[parityCorrection + edgeIndex]; } } exports.initCurvenessList = initCurvenessList; exports.createEdgeMapForCurveness = createEdgeMapForCurveness; exports.getCurvenessForEdge = getCurvenessForEdge; /***/ }), /* 658 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/GraphView.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var SymbolDraw = __webpack_require__(/*! ../helper/SymbolDraw */ 552); var LineDraw = __webpack_require__(/*! ../helper/LineDraw */ 659); var RoamController = __webpack_require__(/*! ../../component/helper/RoamController */ 621); var roamHelper = __webpack_require__(/*! ../../component/helper/roamHelper */ 623); var _cursorHelper = __webpack_require__(/*! ../../component/helper/cursorHelper */ 624); var onIrrelevantElement = _cursorHelper.onIrrelevantElement; var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var adjustEdge = __webpack_require__(/*! ./adjustEdge */ 662); var _graphHelper = __webpack_require__(/*! ./graphHelper */ 663); var getNodeGlobalScale = _graphHelper.getNodeGlobalScale; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var FOCUS_ADJACENCY = '__focusNodeAdjacency'; var UNFOCUS_ADJACENCY = '__unfocusNodeAdjacency'; var nodeOpacityPath = ['itemStyle', 'opacity']; var lineOpacityPath = ['lineStyle', 'opacity']; function getItemOpacity(item, opacityPath) { var opacity = item.getVisual('opacity'); return opacity != null ? opacity : item.getModel().get(opacityPath); } function fadeOutItem(item, opacityPath, opacityRatio) { var el = item.getGraphicEl(); var opacity = getItemOpacity(item, opacityPath); if (opacityRatio != null) { opacity == null && (opacity = 1); opacity *= opacityRatio; } el.downplay && el.downplay(); el.traverse(function (child) { if (!child.isGroup) { var opct = child.lineLabelOriginalOpacity; if (opct == null || opacityRatio != null) { opct = opacity; } child.setStyle('opacity', opct); } }); } function fadeInItem(item, opacityPath) { var opacity = getItemOpacity(item, opacityPath); var el = item.getGraphicEl(); // Should go back to normal opacity first, consider hoverLayer, // where current state is copied to elMirror, and support // emphasis opacity here. el.traverse(function (child) { !child.isGroup && child.setStyle('opacity', opacity); }); el.highlight && el.highlight(); } var _default = echarts.extendChartView({ type: 'graph', init: function init(ecModel, api) { var symbolDraw = new SymbolDraw(); var lineDraw = new LineDraw(); var group = this.group; this._controller = new RoamController(api.getZr()); this._controllerHost = { target: group }; group.add(symbolDraw.group); group.add(lineDraw.group); this._symbolDraw = symbolDraw; this._lineDraw = lineDraw; this._firstRender = true; }, render: function render(seriesModel, ecModel, api) { var graphView = this; var coordSys = seriesModel.coordinateSystem; this._model = seriesModel; var symbolDraw = this._symbolDraw; var lineDraw = this._lineDraw; var group = this.group; if (coordSys.type === 'view') { var groupNewProp = { position: coordSys.position, scale: coordSys.scale }; if (this._firstRender) { group.attr(groupNewProp); } else { graphic.updateProps(group, groupNewProp, seriesModel); } } // Fix edge contact point with node adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel)); var data = seriesModel.getData(); symbolDraw.updateData(data); var edgeData = seriesModel.getEdgeData(); lineDraw.updateData(edgeData); this._updateNodeAndLinkScale(); this._updateController(seriesModel, ecModel, api); clearTimeout(this._layoutTimeout); var forceLayout = seriesModel.forceLayout; var layoutAnimation = seriesModel.get('force.layoutAnimation'); if (forceLayout) { this._startForceLayoutIteration(forceLayout, layoutAnimation); } data.eachItemGraphicEl(function (el, idx) { var itemModel = data.getItemModel(idx); // Update draggable el.off('drag').off('dragend'); var draggable = itemModel.get('draggable'); if (draggable) { el.on('drag', function () { if (forceLayout) { forceLayout.warmUp(); !this._layouting && this._startForceLayoutIteration(forceLayout, layoutAnimation); forceLayout.setFixed(idx); // Write position back to layout data.setItemLayout(idx, el.position); } }, this).on('dragend', function () { if (forceLayout) { forceLayout.setUnfixed(idx); } }, this); } el.setDraggable(draggable && forceLayout); el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]); el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]); if (itemModel.get('focusNodeAdjacency')) { el.on('mouseover', el[FOCUS_ADJACENCY] = function () { graphView._clearTimer(); api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, dataIndex: el.dataIndex }); }); el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () { graphView._dispatchUnfocus(api); }); } }, this); data.graph.eachEdge(function (edge) { var el = edge.getGraphicEl(); el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]); el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]); if (edge.getModel().get('focusNodeAdjacency')) { el.on('mouseover', el[FOCUS_ADJACENCY] = function () { graphView._clearTimer(); api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, edgeDataIndex: edge.dataIndex }); }); el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () { graphView._dispatchUnfocus(api); }); } }); var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get('circular.rotateLabel'); var cx = data.getLayout('cx'); var cy = data.getLayout('cy'); data.eachItemGraphicEl(function (el, idx) { var itemModel = data.getItemModel(idx); var labelRotate = itemModel.get('label.rotate') || 0; var symbolPath = el.getSymbolPath(); if (circularRotateLabel) { var pos = data.getItemLayout(idx); var rad = Math.atan2(pos[1] - cy, pos[0] - cx); if (rad < 0) { rad = Math.PI * 2 + rad; } var isLeft = pos[0] < cx; if (isLeft) { rad = rad - Math.PI; } var textPosition = isLeft ? 'left' : 'right'; graphic.modifyLabelStyle(symbolPath, { textRotation: -rad, textPosition: textPosition, textOrigin: 'center' }, { textPosition: textPosition }); } else { graphic.modifyLabelStyle(symbolPath, { textRotation: labelRotate *= Math.PI / 180 }); } }); this._firstRender = false; }, dispose: function dispose() { this._controller && this._controller.dispose(); this._controllerHost = {}; this._clearTimer(); }, _dispatchUnfocus: function _dispatchUnfocus(api, opt) { var self = this; this._clearTimer(); this._unfocusDelayTimer = setTimeout(function () { self._unfocusDelayTimer = null; api.dispatchAction({ type: 'unfocusNodeAdjacency', seriesId: self._model.id }); }, 500); }, _clearTimer: function _clearTimer() { if (this._unfocusDelayTimer) { clearTimeout(this._unfocusDelayTimer); this._unfocusDelayTimer = null; } }, focusNodeAdjacency: function focusNodeAdjacency(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(); var graph = data.graph; var dataIndex = payload.dataIndex; var edgeDataIndex = payload.edgeDataIndex; var node = graph.getNodeByIndex(dataIndex); var edge = graph.getEdgeByIndex(edgeDataIndex); if (!node && !edge) { return; } graph.eachNode(function (node) { fadeOutItem(node, nodeOpacityPath, 0.1); }); graph.eachEdge(function (edge) { fadeOutItem(edge, lineOpacityPath, 0.1); }); if (node) { fadeInItem(node, nodeOpacityPath); zrUtil.each(node.edges, function (adjacentEdge) { if (adjacentEdge.dataIndex < 0) { return; } fadeInItem(adjacentEdge, lineOpacityPath); fadeInItem(adjacentEdge.node1, nodeOpacityPath); fadeInItem(adjacentEdge.node2, nodeOpacityPath); }); } if (edge) { fadeInItem(edge, lineOpacityPath); fadeInItem(edge.node1, nodeOpacityPath); fadeInItem(edge.node2, nodeOpacityPath); } }, unfocusNodeAdjacency: function unfocusNodeAdjacency(seriesModel, ecModel, api, payload) { var graph = seriesModel.getData().graph; graph.eachNode(function (node) { fadeOutItem(node, nodeOpacityPath); }); graph.eachEdge(function (edge) { fadeOutItem(edge, lineOpacityPath); }); }, _startForceLayoutIteration: function _startForceLayoutIteration(forceLayout, layoutAnimation) { var self = this; (function step() { forceLayout.step(function (stopped) { self.updateLayout(self._model); (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step()); }); })(); }, _updateController: function _updateController(seriesModel, ecModel, api) { var controller = this._controller; var controllerHost = this._controllerHost; var group = this.group; controller.setPointerChecker(function (e, x, y) { var rect = group.getBoundingRect(); rect.applyTransform(group.transform); return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel); }); if (seriesModel.coordinateSystem.type !== 'view') { controller.disable(); return; } controller.enable(seriesModel.get('roam')); controllerHost.zoomLimit = seriesModel.get('scaleLimit'); controllerHost.zoom = seriesModel.coordinateSystem.getZoom(); controller.off('pan').off('zoom').on('pan', function (e) { roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy); api.dispatchAction({ seriesId: seriesModel.id, type: 'graphRoam', dx: e.dx, dy: e.dy }); }).on('zoom', function (e) { roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY); api.dispatchAction({ seriesId: seriesModel.id, type: 'graphRoam', zoom: e.scale, originX: e.originX, originY: e.originY }); this._updateNodeAndLinkScale(); adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel)); this._lineDraw.updateLayout(); }, this); }, _updateNodeAndLinkScale: function _updateNodeAndLinkScale() { var seriesModel = this._model; var data = seriesModel.getData(); var nodeScale = getNodeGlobalScale(seriesModel); var invScale = [nodeScale, nodeScale]; data.eachItemGraphicEl(function (el, idx) { el.attr('scale', invScale); }); }, updateLayout: function updateLayout(seriesModel) { adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel)); this._symbolDraw.updateLayout(); this._lineDraw.updateLayout(); }, remove: function remove(ecModel, api) { this._symbolDraw && this._symbolDraw.remove(); this._lineDraw && this._lineDraw.remove(); } }); module.exports = _default; /***/ }), /* 659 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/LineDraw.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var LineGroup = __webpack_require__(/*! ./Line */ 660); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/chart/helper/LineDraw */ // import IncrementalDisplayable from 'zrender/src/graphic/IncrementalDisplayable'; /** * @alias module:echarts/component/marker/LineDraw * @constructor */ function LineDraw(ctor) { this._ctor = ctor || LineGroup; this.group = new graphic.Group(); } var lineDrawProto = LineDraw.prototype; lineDrawProto.isPersistent = function () { return true; }; /** * @param {module:echarts/data/List} lineData */ lineDrawProto.updateData = function (lineData) { var lineDraw = this; var group = lineDraw.group; var oldLineData = lineDraw._lineData; lineDraw._lineData = lineData; // There is no oldLineData only when first rendering or switching from // stream mode to normal mode, where previous elements should be removed. if (!oldLineData) { group.removeAll(); } var seriesScope = makeSeriesScope(lineData); lineData.diff(oldLineData).add(function (idx) { doAdd(lineDraw, lineData, idx, seriesScope); }).update(function (newIdx, oldIdx) { doUpdate(lineDraw, oldLineData, lineData, oldIdx, newIdx, seriesScope); }).remove(function (idx) { group.remove(oldLineData.getItemGraphicEl(idx)); }).execute(); }; function doAdd(lineDraw, lineData, idx, seriesScope) { var itemLayout = lineData.getItemLayout(idx); if (!lineNeedsDraw(itemLayout)) { return; } var el = new lineDraw._ctor(lineData, idx, seriesScope); lineData.setItemGraphicEl(idx, el); lineDraw.group.add(el); } function doUpdate(lineDraw, oldLineData, newLineData, oldIdx, newIdx, seriesScope) { var itemEl = oldLineData.getItemGraphicEl(oldIdx); if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) { lineDraw.group.remove(itemEl); return; } if (!itemEl) { itemEl = new lineDraw._ctor(newLineData, newIdx, seriesScope); } else { itemEl.updateData(newLineData, newIdx, seriesScope); } newLineData.setItemGraphicEl(newIdx, itemEl); lineDraw.group.add(itemEl); } lineDrawProto.updateLayout = function () { var lineData = this._lineData; // Do not support update layout in incremental mode. if (!lineData) { return; } lineData.eachItemGraphicEl(function (el, idx) { el.updateLayout(lineData, idx); }, this); }; lineDrawProto.incrementalPrepareUpdate = function (lineData) { this._seriesScope = makeSeriesScope(lineData); this._lineData = null; this.group.removeAll(); }; function isEffectObject(el) { return el.animators && el.animators.length > 0; } lineDrawProto.incrementalUpdate = function (taskParams, lineData) { function updateIncrementalAndHover(el) { if (!el.isGroup && !isEffectObject(el)) { el.incremental = el.useHoverLayer = true; } } for (var idx = taskParams.start; idx < taskParams.end; idx++) { var itemLayout = lineData.getItemLayout(idx); if (lineNeedsDraw(itemLayout)) { var el = new this._ctor(lineData, idx, this._seriesScope); el.traverse(updateIncrementalAndHover); this.group.add(el); lineData.setItemGraphicEl(idx, el); } } }; function makeSeriesScope(lineData) { var hostModel = lineData.hostModel; return { lineStyle: hostModel.getModel('lineStyle').getLineStyle(), hoverLineStyle: hostModel.getModel('emphasis.lineStyle').getLineStyle(), labelModel: hostModel.getModel('label'), hoverLabelModel: hostModel.getModel('emphasis.label') }; } lineDrawProto.remove = function () { this._clearIncremental(); this._incremental = null; this.group.removeAll(); }; lineDrawProto._clearIncremental = function () { var incremental = this._incremental; if (incremental) { incremental.clearDisplaybles(); } }; function isPointNaN(pt) { return isNaN(pt[0]) || isNaN(pt[1]); } function lineNeedsDraw(pts) { return !isPointNaN(pts[0]) && !isPointNaN(pts[1]); } var _default = LineDraw; module.exports = _default; /***/ }), /* 660 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/Line.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var vector = __webpack_require__(/*! zrender/lib/core/vector */ 405); var symbolUtil = __webpack_require__(/*! ../../util/symbol */ 543); var LinePath = __webpack_require__(/*! ./LinePath */ 661); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _number = __webpack_require__(/*! ../../util/number */ 489); var round = _number.round; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/chart/helper/Line */ var SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol']; function makeSymbolTypeKey(symbolCategory) { return '_' + symbolCategory + 'Type'; } /** * @inner */ function createSymbol(name, lineData, idx) { var symbolType = lineData.getItemVisual(idx, name); if (!symbolType || symbolType === 'none') { return; } var color = lineData.getItemVisual(idx, 'color'); var symbolSize = lineData.getItemVisual(idx, name + 'Size'); var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate'); if (!zrUtil.isArray(symbolSize)) { symbolSize = [symbolSize, symbolSize]; } var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSize[0] / 2, -symbolSize[1] / 2, symbolSize[0], symbolSize[1], color); // rotate by default if symbolRotate is not specified or NaN symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0; symbolPath.name = name; return symbolPath; } function createLine(points) { var line = new LinePath({ name: 'line', subPixelOptimize: true }); setLinePoints(line.shape, points); return line; } function setLinePoints(targetShape, points) { targetShape.x1 = points[0][0]; targetShape.y1 = points[0][1]; targetShape.x2 = points[1][0]; targetShape.y2 = points[1][1]; targetShape.percent = 1; var cp1 = points[2]; if (cp1) { targetShape.cpx1 = cp1[0]; targetShape.cpy1 = cp1[1]; } else { targetShape.cpx1 = NaN; targetShape.cpy1 = NaN; } } function updateSymbolAndLabelBeforeLineUpdate() { var lineGroup = this; var symbolFrom = lineGroup.childOfName('fromSymbol'); var symbolTo = lineGroup.childOfName('toSymbol'); var label = lineGroup.childOfName('label'); // Quick reject if (!symbolFrom && !symbolTo && label.ignore) { return; } var invScale = 1; var parentNode = this.parent; while (parentNode) { if (parentNode.scale) { invScale /= parentNode.scale[0]; } parentNode = parentNode.parent; } var line = lineGroup.childOfName('line'); // If line not changed // FIXME Parent scale changed if (!this.__dirty && !line.__dirty) { return; } var percent = line.shape.percent; var fromPos = line.pointAt(0); var toPos = line.pointAt(percent); var d = vector.sub([], toPos, fromPos); vector.normalize(d, d); if (symbolFrom) { symbolFrom.attr('position', fromPos); // Fix #12388 // when symbol is set to be 'arrow' in markLine, // symbolRotate value will be ignored, and compulsively use tangent angle. // rotate by default if symbol rotation is not specified var specifiedRotation = symbolFrom.__specifiedRotation; if (specifiedRotation == null) { var tangent = line.tangentAt(0); symbolFrom.attr('rotation', Math.PI / 2 - Math.atan2(tangent[1], tangent[0])); } else { symbolFrom.attr('rotation', specifiedRotation); } symbolFrom.attr('scale', [invScale * percent, invScale * percent]); } if (symbolTo) { symbolTo.attr('position', toPos); // Fix #12388 // when symbol is set to be 'arrow' in markLine, // symbolRotate value will be ignored, and compulsively use tangent angle. // rotate by default if symbol rotation is not specified var specifiedRotation = symbolTo.__specifiedRotation; if (specifiedRotation == null) { var tangent = line.tangentAt(1); symbolTo.attr('rotation', -Math.PI / 2 - Math.atan2(tangent[1], tangent[0])); } else { symbolTo.attr('rotation', specifiedRotation); } symbolTo.attr('scale', [invScale * percent, invScale * percent]); } if (!label.ignore) { label.attr('position', toPos); var textPosition; var textAlign; var textVerticalAlign; var textOrigin; var distance = label.__labelDistance; var distanceX = distance[0] * invScale; var distanceY = distance[1] * invScale; var halfPercent = percent / 2; var tangent = line.tangentAt(halfPercent); var n = [tangent[1], -tangent[0]]; var cp = line.pointAt(halfPercent); if (n[1] > 0) { n[0] = -n[0]; n[1] = -n[1]; } var dir = tangent[0] < 0 ? -1 : 1; if (label.__position !== 'start' && label.__position !== 'end') { var rotation = -Math.atan2(tangent[1], tangent[0]); if (toPos[0] < fromPos[0]) { rotation = Math.PI + rotation; } label.attr('rotation', rotation); } var dy; switch (label.__position) { case 'insideStartTop': case 'insideMiddleTop': case 'insideEndTop': case 'middle': dy = -distanceY; textVerticalAlign = 'bottom'; break; case 'insideStartBottom': case 'insideMiddleBottom': case 'insideEndBottom': dy = distanceY; textVerticalAlign = 'top'; break; default: dy = 0; textVerticalAlign = 'middle'; } switch (label.__position) { case 'end': textPosition = [d[0] * distanceX + toPos[0], d[1] * distanceY + toPos[1]]; textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center'; textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle'; break; case 'start': textPosition = [-d[0] * distanceX + fromPos[0], -d[1] * distanceY + fromPos[1]]; textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center'; textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle'; break; case 'insideStartTop': case 'insideStart': case 'insideStartBottom': textPosition = [distanceX * dir + fromPos[0], fromPos[1] + dy]; textAlign = tangent[0] < 0 ? 'right' : 'left'; textOrigin = [-distanceX * dir, -dy]; break; case 'insideMiddleTop': case 'insideMiddle': case 'insideMiddleBottom': case 'middle': textPosition = [cp[0], cp[1] + dy]; textAlign = 'center'; textOrigin = [0, -dy]; break; case 'insideEndTop': case 'insideEnd': case 'insideEndBottom': textPosition = [-distanceX * dir + toPos[0], toPos[1] + dy]; textAlign = tangent[0] >= 0 ? 'right' : 'left'; textOrigin = [distanceX * dir, -dy]; break; } label.attr({ style: { // Use the user specified text align and baseline first textVerticalAlign: label.__verticalAlign || textVerticalAlign, textAlign: label.__textAlign || textAlign }, position: textPosition, scale: [invScale, invScale], origin: textOrigin }); } } /** * @constructor * @extends {module:zrender/graphic/Group} * @alias {module:echarts/chart/helper/Line} */ function Line(lineData, idx, seriesScope) { graphic.Group.call(this); this._createLine(lineData, idx, seriesScope); } var lineProto = Line.prototype; // Update symbol position and rotation lineProto.beforeUpdate = updateSymbolAndLabelBeforeLineUpdate; lineProto._createLine = function (lineData, idx, seriesScope) { var seriesModel = lineData.hostModel; var linePoints = lineData.getItemLayout(idx); var line = createLine(linePoints); line.shape.percent = 0; graphic.initProps(line, { shape: { percent: 1 } }, seriesModel, idx); this.add(line); var label = new graphic.Text({ name: 'label', // FIXME // Temporary solution for `focusNodeAdjacency`. // line label do not use the opacity of lineStyle. lineLabelOriginalOpacity: 1 }); this.add(label); zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) { var symbol = createSymbol(symbolCategory, lineData, idx); // symbols must added after line to make sure // it will be updated after line#update. // Or symbol position and rotation update in line#beforeUpdate will be one frame slow this.add(symbol); this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory); }, this); this._updateCommonStl(lineData, idx, seriesScope); }; lineProto.updateData = function (lineData, idx, seriesScope) { var seriesModel = lineData.hostModel; var line = this.childOfName('line'); var linePoints = lineData.getItemLayout(idx); var target = { shape: {} }; setLinePoints(target.shape, linePoints); graphic.updateProps(line, target, seriesModel, idx); zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) { var symbolType = lineData.getItemVisual(idx, symbolCategory); var key = makeSymbolTypeKey(symbolCategory); // Symbol changed if (this[key] !== symbolType) { this.remove(this.childOfName(symbolCategory)); var symbol = createSymbol(symbolCategory, lineData, idx); this.add(symbol); } this[key] = symbolType; }, this); this._updateCommonStl(lineData, idx, seriesScope); }; lineProto._updateCommonStl = function (lineData, idx, seriesScope) { var seriesModel = lineData.hostModel; var line = this.childOfName('line'); var lineStyle = seriesScope && seriesScope.lineStyle; var hoverLineStyle = seriesScope && seriesScope.hoverLineStyle; var labelModel = seriesScope && seriesScope.labelModel; var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel; // Optimization for large dataset if (!seriesScope || lineData.hasItemOption) { var itemModel = lineData.getItemModel(idx); lineStyle = itemModel.getModel('lineStyle').getLineStyle(); hoverLineStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle(); labelModel = itemModel.getModel('label'); hoverLabelModel = itemModel.getModel('emphasis.label'); } var visualColor = lineData.getItemVisual(idx, 'color'); var visualOpacity = zrUtil.retrieve3(lineData.getItemVisual(idx, 'opacity'), lineStyle.opacity, 1); line.useStyle(zrUtil.defaults({ strokeNoScale: true, fill: 'none', stroke: visualColor, opacity: visualOpacity }, lineStyle)); line.hoverStyle = hoverLineStyle; // Update symbol zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) { var symbol = this.childOfName(symbolCategory); if (symbol) { symbol.setColor(visualColor); symbol.setStyle({ opacity: visualOpacity }); } }, this); var showLabel = labelModel.getShallow('show'); var hoverShowLabel = hoverLabelModel.getShallow('show'); var label = this.childOfName('label'); var defaultLabelColor; var baseText; // FIXME: the logic below probably should be merged to `graphic.setLabelStyle`. if (showLabel || hoverShowLabel) { defaultLabelColor = visualColor || '#000'; baseText = seriesModel.getFormattedLabel(idx, 'normal', lineData.dataType); if (baseText == null) { var rawVal = seriesModel.getRawValue(idx); baseText = rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal; } } var normalText = showLabel ? baseText : null; var emphasisText = hoverShowLabel ? zrUtil.retrieve2(seriesModel.getFormattedLabel(idx, 'emphasis', lineData.dataType), baseText) : null; var labelStyle = label.style; // Always set `textStyle` even if `normalStyle.text` is null, because default // values have to be set on `normalStyle`. if (normalText != null || emphasisText != null) { graphic.setTextStyle(label.style, labelModel, { text: normalText }, { autoColor: defaultLabelColor }); label.__textAlign = labelStyle.textAlign; label.__verticalAlign = labelStyle.textVerticalAlign; // 'start', 'middle', 'end' label.__position = labelModel.get('position') || 'middle'; var distance = labelModel.get('distance'); if (!zrUtil.isArray(distance)) { distance = [distance, distance]; } label.__labelDistance = distance; } if (emphasisText != null) { // Only these properties supported in this emphasis style here. label.hoverStyle = { text: emphasisText, textFill: hoverLabelModel.getTextColor(true), // For merging hover style to normal style, do not use // `hoverLabelModel.getFont()` here. fontStyle: hoverLabelModel.getShallow('fontStyle'), fontWeight: hoverLabelModel.getShallow('fontWeight'), fontSize: hoverLabelModel.getShallow('fontSize'), fontFamily: hoverLabelModel.getShallow('fontFamily') }; } else { label.hoverStyle = { text: null }; } label.ignore = !showLabel && !hoverShowLabel; graphic.setHoverStyle(this); }; lineProto.highlight = function () { this.trigger('emphasis'); }; lineProto.downplay = function () { this.trigger('normal'); }; lineProto.updateLayout = function (lineData, idx) { this.setLinePoints(lineData.getItemLayout(idx)); }; lineProto.setLinePoints = function (points) { var linePath = this.childOfName('line'); setLinePoints(linePath.shape, points); linePath.dirty(); }; zrUtil.inherits(Line, graphic.Group); var _default = Line; module.exports = _default; /***/ }), /* 661 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/LinePath.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Line path for bezier and straight line draw */ var straightLineProto = graphic.Line.prototype; var bezierCurveProto = graphic.BezierCurve.prototype; function isLine(shape) { return isNaN(+shape.cpx1) || isNaN(+shape.cpy1); } var _default = graphic.extendShape({ type: 'ec-line', style: { stroke: '#000', fill: null }, shape: { x1: 0, y1: 0, x2: 0, y2: 0, percent: 1, cpx1: null, cpy1: null }, buildPath: function buildPath(ctx, shape) { this[isLine(shape) ? '_buildPathLine' : '_buildPathCurve'](ctx, shape); }, _buildPathLine: straightLineProto.buildPath, _buildPathCurve: bezierCurveProto.buildPath, pointAt: function pointAt(t) { return this[isLine(this.shape) ? '_pointAtLine' : '_pointAtCurve'](t); }, _pointAtLine: straightLineProto.pointAt, _pointAtCurve: bezierCurveProto.pointAt, tangentAt: function tangentAt(t) { var shape = this.shape; var p = isLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : this._tangentAtCurve(t); return vec2.normalize(p, p); }, _tangentAtCurve: bezierCurveProto.tangentAt }); module.exports = _default; /***/ }), /* 662 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/adjustEdge.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var curveTool = __webpack_require__(/*! zrender/lib/core/curve */ 455); var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); var _graphHelper = __webpack_require__(/*! ./graphHelper */ 663); var getSymbolSize = _graphHelper.getSymbolSize; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var v1 = []; var v2 = []; var v3 = []; var quadraticAt = curveTool.quadraticAt; var v2DistSquare = vec2.distSquare; var mathAbs = Math.abs; function intersectCurveCircle(curvePoints, center, radius) { var p0 = curvePoints[0]; var p1 = curvePoints[1]; var p2 = curvePoints[2]; var d = Infinity; var t; var radiusSquare = radius * radius; var interval = 0.1; for (var _t = 0.1; _t <= 0.9; _t += 0.1) { v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t); v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t); var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare); if (diff < d) { d = diff; t = _t; } } // Assume the segment is monotone,Find root through Bisection method // At most 32 iteration for (var i = 0; i < 32; i++) { // var prev = t - interval; var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev); // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev); v2[0] = quadraticAt(p0[0], p1[0], p2[0], t); v2[1] = quadraticAt(p0[1], p1[1], p2[1], t); v3[0] = quadraticAt(p0[0], p1[0], p2[0], next); v3[1] = quadraticAt(p0[1], p1[1], p2[1], next); var diff = v2DistSquare(v2, center) - radiusSquare; if (mathAbs(diff) < 1e-2) { break; } // var prevDiff = v2DistSquare(v1, center) - radiusSquare; var nextDiff = v2DistSquare(v3, center) - radiusSquare; interval /= 2; if (diff < 0) { if (nextDiff >= 0) { t = t + interval; } else { t = t - interval; } } else { if (nextDiff >= 0) { t = t - interval; } else { t = t + interval; } } } return t; } // Adjust edge to avoid function _default(graph, scale) { var tmp0 = []; var quadraticSubdivide = curveTool.quadraticSubdivide; var pts = [[], [], []]; var pts2 = [[], []]; var v = []; scale /= 2; graph.eachEdge(function (edge, idx) { var linePoints = edge.getLayout(); var fromSymbol = edge.getVisual('fromSymbol'); var toSymbol = edge.getVisual('toSymbol'); if (!linePoints.__original) { linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])]; if (linePoints[2]) { linePoints.__original.push(vec2.clone(linePoints[2])); } } var originalPoints = linePoints.__original; // Quadratic curve if (linePoints[2] != null) { vec2.copy(pts[0], originalPoints[0]); vec2.copy(pts[1], originalPoints[2]); vec2.copy(pts[2], originalPoints[1]); if (fromSymbol && fromSymbol !== 'none') { var symbolSize = getSymbolSize(edge.node1); var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0); pts[0][0] = tmp0[3]; pts[1][0] = tmp0[4]; quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0); pts[0][1] = tmp0[3]; pts[1][1] = tmp0[4]; } if (toSymbol && toSymbol !== 'none') { var symbolSize = getSymbolSize(edge.node2); var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0); pts[1][0] = tmp0[1]; pts[2][0] = tmp0[2]; quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0); pts[1][1] = tmp0[1]; pts[2][1] = tmp0[2]; } // Copy back to layout vec2.copy(linePoints[0], pts[0]); vec2.copy(linePoints[1], pts[2]); vec2.copy(linePoints[2], pts[1]); } // Line else { vec2.copy(pts2[0], originalPoints[0]); vec2.copy(pts2[1], originalPoints[1]); vec2.sub(v, pts2[1], pts2[0]); vec2.normalize(v, v); if (fromSymbol && fromSymbol !== 'none') { var symbolSize = getSymbolSize(edge.node1); vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale); } if (toSymbol && toSymbol !== 'none') { var symbolSize = getSymbolSize(edge.node2); vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale); } vec2.copy(linePoints[0], pts2[0]); vec2.copy(linePoints[1], pts2[1]); } }); } module.exports = _default; /***/ }), /* 663 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/graphHelper.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function getNodeGlobalScale(seriesModel) { var coordSys = seriesModel.coordinateSystem; if (coordSys.type !== 'view') { return 1; } var nodeScaleRatio = seriesModel.option.nodeScaleRatio; var groupScale = coordSys.scale; var groupZoom = groupScale && groupScale[0] || 1; // Scale node when zoom changes var roamZoom = coordSys.getZoom(); var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1; return nodeScale / groupZoom; } function getSymbolSize(node) { var symbolSize = node.getVisual('symbolSize'); if (symbolSize instanceof Array) { symbolSize = (symbolSize[0] + symbolSize[1]) / 2; } return +symbolSize; } exports.getNodeGlobalScale = getNodeGlobalScale; exports.getSymbolSize = getSymbolSize; /***/ }), /* 664 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/graphAction.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var _roamHelper = __webpack_require__(/*! ../../action/roamHelper */ 626); var updateCenterAndZoom = _roamHelper.updateCenterAndZoom; __webpack_require__(/*! ../helper/focusNodeAdjacencyAction */ 665); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var actionInfo = { type: 'graphRoam', event: 'graphRoam', update: 'none' }; /** * @payload * @property {string} name Series name * @property {number} [dx] * @property {number} [dy] * @property {number} [zoom] * @property {number} [originX] * @property {number} [originY] */ echarts.registerAction(actionInfo, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', query: payload }, function (seriesModel) { var coordSys = seriesModel.coordinateSystem; var res = updateCenterAndZoom(coordSys, payload); seriesModel.setCenter && seriesModel.setCenter(res.center); seriesModel.setZoom && seriesModel.setZoom(res.zoom); }); }); /***/ }), /* 665 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/focusNodeAdjacencyAction.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @payload * @property {number} [seriesIndex] * @property {string} [seriesId] * @property {string} [seriesName] * @property {number} [dataIndex] */ echarts.registerAction({ type: 'focusNodeAdjacency', event: 'focusNodeAdjacency', update: 'series:focusNodeAdjacency' }, function () {}); /** * @payload * @property {number} [seriesIndex] * @property {string} [seriesId] * @property {string} [seriesName] */ echarts.registerAction({ type: 'unfocusNodeAdjacency', event: 'unfocusNodeAdjacency', update: 'series:unfocusNodeAdjacency' }, function () {}); /***/ }), /* 666 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/categoryFilter.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { var legendModels = ecModel.findComponents({ mainType: 'legend' }); if (!legendModels || !legendModels.length) { return; } ecModel.eachSeriesByType('graph', function (graphSeries) { var categoriesData = graphSeries.getCategoriesData(); var graph = graphSeries.getGraph(); var data = graph.data; var categoryNames = categoriesData.mapArray(categoriesData.getName); data.filterSelf(function (idx) { var model = data.getItemModel(idx); var category = model.getShallow('category'); if (category != null) { if (typeof category === 'number') { category = categoryNames[category]; } // If in any legend component the status is not selected. for (var i = 0; i < legendModels.length; i++) { if (!legendModels[i].isSelected(category)) { return false; } } } return true; }); }, this); } module.exports = _default; /***/ }), /* 667 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/categoryVisual.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { var paletteScope = {}; ecModel.eachSeriesByType('graph', function (seriesModel) { var categoriesData = seriesModel.getCategoriesData(); var data = seriesModel.getData(); var categoryNameIdxMap = {}; categoriesData.each(function (idx) { var name = categoriesData.getName(idx); // Add prefix to avoid conflict with Object.prototype. categoryNameIdxMap['ec-' + name] = idx; var itemModel = categoriesData.getItemModel(idx); var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(name, paletteScope); categoriesData.setItemVisual(idx, 'color', color); var itemStyleList = ['opacity', 'symbol', 'symbolSize', 'symbolKeepAspect']; for (var i = 0; i < itemStyleList.length; i++) { var itemStyle = itemModel.getShallow(itemStyleList[i], true); if (itemStyle != null) { categoriesData.setItemVisual(idx, itemStyleList[i], itemStyle); } } }); // Assign category color to visual if (categoriesData.count()) { data.each(function (idx) { var model = data.getItemModel(idx); var category = model.getShallow('category'); if (category != null) { if (typeof category === 'string') { category = categoryNameIdxMap['ec-' + category]; } var itemStyleList = ['color', 'opacity', 'symbol', 'symbolSize', 'symbolKeepAspect']; for (var i = 0; i < itemStyleList.length; i++) { if (data.getItemVisual(idx, itemStyleList[i], true) == null) { data.setItemVisual(idx, itemStyleList[i], categoriesData.getItemVisual(category, itemStyleList[i])); } } } }); } }); } module.exports = _default; /***/ }), /* 668 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/edgeVisual.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function normalize(a) { if (!(a instanceof Array)) { a = [a, a]; } return a; } function _default(ecModel) { ecModel.eachSeriesByType('graph', function (seriesModel) { var graph = seriesModel.getGraph(); var edgeData = seriesModel.getEdgeData(); var symbolType = normalize(seriesModel.get('edgeSymbol')); var symbolSize = normalize(seriesModel.get('edgeSymbolSize')); var colorQuery = 'lineStyle.color'.split('.'); var opacityQuery = 'lineStyle.opacity'.split('.'); edgeData.setVisual('fromSymbol', symbolType && symbolType[0]); edgeData.setVisual('toSymbol', symbolType && symbolType[1]); edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]); edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]); edgeData.setVisual('color', seriesModel.get(colorQuery)); edgeData.setVisual('opacity', seriesModel.get(opacityQuery)); edgeData.each(function (idx) { var itemModel = edgeData.getItemModel(idx); var edge = graph.getEdgeByIndex(idx); var symbolType = normalize(itemModel.getShallow('symbol', true)); var symbolSize = normalize(itemModel.getShallow('symbolSize', true)); // Edge visual must after node visual var color = itemModel.get(colorQuery); var opacity = itemModel.get(opacityQuery); switch (color) { case 'source': color = edge.node1.getVisual('color'); break; case 'target': color = edge.node2.getVisual('color'); break; } symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]); symbolType[1] && edge.setVisual('toSymbol', symbolType[1]); symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]); symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]); edge.setVisual('color', color); edge.setVisual('opacity', opacity); }); }); } module.exports = _default; /***/ }), /* 669 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/simpleLayout.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var _simpleLayoutHelper = __webpack_require__(/*! ./simpleLayoutHelper */ 670); var simpleLayout = _simpleLayoutHelper.simpleLayout; var simpleLayoutEdge = _simpleLayoutHelper.simpleLayoutEdge; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel, api) { ecModel.eachSeriesByType('graph', function (seriesModel) { var layout = seriesModel.get('layout'); var coordSys = seriesModel.coordinateSystem; if (coordSys && coordSys.type !== 'view') { var data = seriesModel.getData(); var dimensions = []; each(coordSys.dimensions, function (coordDim) { dimensions = dimensions.concat(data.mapDimension(coordDim, true)); }); for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) { var value = []; var hasValue = false; for (var i = 0; i < dimensions.length; i++) { var val = data.get(dimensions[i], dataIndex); if (!isNaN(val)) { hasValue = true; } value.push(val); } if (hasValue) { data.setItemLayout(dataIndex, coordSys.dataToPoint(value)); } else { // Also {Array.}, not undefined to avoid if...else... statement data.setItemLayout(dataIndex, [NaN, NaN]); } } simpleLayoutEdge(data.graph, seriesModel); } else if (!layout || layout === 'none') { simpleLayout(seriesModel); } }); } module.exports = _default; /***/ }), /* 670 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/simpleLayoutHelper.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _multipleGraphEdgeHelper = __webpack_require__(/*! ../helper/multipleGraphEdgeHelper */ 657); var getCurvenessForEdge = _multipleGraphEdgeHelper.getCurvenessForEdge; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function simpleLayout(seriesModel) { var coordSys = seriesModel.coordinateSystem; if (coordSys && coordSys.type !== 'view') { return; } var graph = seriesModel.getGraph(); graph.eachNode(function (node) { var model = node.getModel(); node.setLayout([+model.get('x'), +model.get('y')]); }); simpleLayoutEdge(graph, seriesModel); } function simpleLayoutEdge(graph, seriesModel) { graph.eachEdge(function (edge, index) { var curveness = zrUtil.retrieve3(edge.getModel().get('lineStyle.curveness'), -getCurvenessForEdge(edge, seriesModel, index, true), 0); var p1 = vec2.clone(edge.node1.getLayout()); var p2 = vec2.clone(edge.node2.getLayout()); var points = [p1, p2]; if (+curveness) { points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]); } edge.setLayout(points); }); } exports.simpleLayout = simpleLayout; exports.simpleLayoutEdge = simpleLayoutEdge; /***/ }), /* 671 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/circularLayout.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _circularLayoutHelper = __webpack_require__(/*! ./circularLayoutHelper */ 672); var circularLayout = _circularLayoutHelper.circularLayout; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { ecModel.eachSeriesByType('graph', function (seriesModel) { if (seriesModel.get('layout') === 'circular') { circularLayout(seriesModel, 'symbolSize'); } }); } module.exports = _default; /***/ }), /* 672 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/circularLayoutHelper.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); var _graphHelper = __webpack_require__(/*! ./graphHelper */ 663); var getSymbolSize = _graphHelper.getSymbolSize; var getNodeGlobalScale = _graphHelper.getNodeGlobalScale; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _multipleGraphEdgeHelper = __webpack_require__(/*! ../helper/multipleGraphEdgeHelper */ 657); var getCurvenessForEdge = _multipleGraphEdgeHelper.getCurvenessForEdge; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PI = Math.PI; var _symbolRadiansHalf = []; /** * `basedOn` can be: * 'value': * This layout is not accurate and have same bad case. For example, * if the min value is very smaller than the max value, the nodes * with the min value probably overlap even though there is enough * space to layout them. So we only use this approach in the as the * init layout of the force layout. * FIXME * Probably we do not need this method any more but use * `basedOn: 'symbolSize'` in force layout if * delay its init operations to GraphView. * 'symbolSize': * This approach work only if all of the symbol size calculated. * That is, the progressive rendering is not applied to graph. * FIXME * If progressive rendering is applied to graph some day, * probably we have to use `basedOn: 'value'`. * * @param {module:echarts/src/model/Series} seriesModel * @param {string} basedOn 'value' or 'symbolSize' */ function circularLayout(seriesModel, basedOn) { var coordSys = seriesModel.coordinateSystem; if (coordSys && coordSys.type !== 'view') { return; } var rect = coordSys.getBoundingRect(); var nodeData = seriesModel.getData(); var graph = nodeData.graph; var cx = rect.width / 2 + rect.x; var cy = rect.height / 2 + rect.y; var r = Math.min(rect.width, rect.height) / 2; var count = nodeData.count(); nodeData.setLayout({ cx: cx, cy: cy }); if (!count) { return; } _layoutNodesBasedOn[basedOn](seriesModel, coordSys, graph, nodeData, r, cx, cy, count); graph.eachEdge(function (edge, index) { var curveness = zrUtil.retrieve3(edge.getModel().get('lineStyle.curveness'), getCurvenessForEdge(edge, seriesModel, index), 0); var p1 = vec2.clone(edge.node1.getLayout()); var p2 = vec2.clone(edge.node2.getLayout()); var cp1; var x12 = (p1[0] + p2[0]) / 2; var y12 = (p1[1] + p2[1]) / 2; if (+curveness) { curveness *= 3; cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)]; } edge.setLayout([p1, p2, cp1]); }); } var _layoutNodesBasedOn = { value: function value(seriesModel, coordSys, graph, nodeData, r, cx, cy, count) { var angle = 0; var sum = nodeData.getSum('value'); var unitAngle = Math.PI * 2 / (sum || count); graph.eachNode(function (node) { var value = node.getValue('value'); var radianHalf = unitAngle * (sum ? value : 1) / 2; angle += radianHalf; node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]); angle += radianHalf; }); }, symbolSize: function symbolSize(seriesModel, coordSys, graph, nodeData, r, cx, cy, count) { var sumRadian = 0; _symbolRadiansHalf.length = count; var nodeScale = getNodeGlobalScale(seriesModel); graph.eachNode(function (node) { var symbolSize = getSymbolSize(node); // Normally this case will not happen, but we still add // some the defensive code (2px is an arbitrary value). isNaN(symbolSize) && (symbolSize = 2); symbolSize < 0 && (symbolSize = 0); symbolSize *= nodeScale; var symbolRadianHalf = Math.asin(symbolSize / 2 / r); // when `symbolSize / 2` is bigger than `r`. isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2); _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf; sumRadian += symbolRadianHalf * 2; }); var halfRemainRadian = (2 * PI - sumRadian) / count / 2; var angle = 0; graph.eachNode(function (node) { var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex]; angle += radianHalf; node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]); angle += radianHalf; }); } }; exports.circularLayout = circularLayout; /***/ }), /* 673 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/forceLayout.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _forceHelper = __webpack_require__(/*! ./forceHelper */ 674); var forceLayout = _forceHelper.forceLayout; var _simpleLayoutHelper = __webpack_require__(/*! ./simpleLayoutHelper */ 670); var simpleLayout = _simpleLayoutHelper.simpleLayout; var _circularLayoutHelper = __webpack_require__(/*! ./circularLayoutHelper */ 672); var circularLayout = _circularLayoutHelper.circularLayout; var _number = __webpack_require__(/*! ../../util/number */ 489); var linearMap = _number.linearMap; var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _multipleGraphEdgeHelper = __webpack_require__(/*! ../helper/multipleGraphEdgeHelper */ 657); var getCurvenessForEdge = _multipleGraphEdgeHelper.getCurvenessForEdge; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { ecModel.eachSeriesByType('graph', function (graphSeries) { var coordSys = graphSeries.coordinateSystem; if (coordSys && coordSys.type !== 'view') { return; } if (graphSeries.get('layout') === 'force') { var preservedPoints = graphSeries.preservedPoints || {}; var graph = graphSeries.getGraph(); var nodeData = graph.data; var edgeData = graph.edgeData; var forceModel = graphSeries.getModel('force'); var initLayout = forceModel.get('initLayout'); if (graphSeries.preservedPoints) { nodeData.each(function (idx) { var id = nodeData.getId(idx); nodeData.setItemLayout(idx, preservedPoints[id] || [NaN, NaN]); }); } else if (!initLayout || initLayout === 'none') { simpleLayout(graphSeries); } else if (initLayout === 'circular') { circularLayout(graphSeries, 'value'); } var nodeDataExtent = nodeData.getDataExtent('value'); var edgeDataExtent = edgeData.getDataExtent('value'); // var edgeDataExtent = edgeData.getDataExtent('value'); var repulsion = forceModel.get('repulsion'); var edgeLength = forceModel.get('edgeLength'); if (!zrUtil.isArray(repulsion)) { repulsion = [repulsion, repulsion]; } if (!zrUtil.isArray(edgeLength)) { edgeLength = [edgeLength, edgeLength]; } // Larger value has smaller length edgeLength = [edgeLength[1], edgeLength[0]]; var nodes = nodeData.mapArray('value', function (value, idx) { var point = nodeData.getItemLayout(idx); var rep = linearMap(value, nodeDataExtent, repulsion); if (isNaN(rep)) { rep = (repulsion[0] + repulsion[1]) / 2; } return { w: rep, rep: rep, fixed: nodeData.getItemModel(idx).get('fixed'), p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point }; }); var edges = edgeData.mapArray('value', function (value, idx) { var edge = graph.getEdgeByIndex(idx); var d = linearMap(value, edgeDataExtent, edgeLength); if (isNaN(d)) { d = (edgeLength[0] + edgeLength[1]) / 2; } var edgeModel = edge.getModel(); var curveness = zrUtil.retrieve3(edgeModel.get('lineStyle.curveness'), -getCurvenessForEdge(edge, graphSeries, idx, true), 0); return { n1: nodes[edge.node1.dataIndex], n2: nodes[edge.node2.dataIndex], d: d, curveness: curveness, ignoreForceLayout: edgeModel.get('ignoreForceLayout') }; }); var coordSys = graphSeries.coordinateSystem; var rect = coordSys.getBoundingRect(); var forceInstance = forceLayout(nodes, edges, { rect: rect, gravity: forceModel.get('gravity'), friction: forceModel.get('friction') }); var oldStep = forceInstance.step; forceInstance.step = function (cb) { for (var i = 0, l = nodes.length; i < l; i++) { if (nodes[i].fixed) { // Write back to layout instance vec2.copy(nodes[i].p, graph.getNodeByIndex(i).getLayout()); } } oldStep(function (nodes, edges, stopped) { for (var i = 0, l = nodes.length; i < l; i++) { if (!nodes[i].fixed) { graph.getNodeByIndex(i).setLayout(nodes[i].p); } preservedPoints[nodeData.getId(i)] = nodes[i].p; } for (var i = 0, l = edges.length; i < l; i++) { var e = edges[i]; var edge = graph.getEdgeByIndex(i); var p1 = e.n1.p; var p2 = e.n2.p; var points = edge.getLayout(); points = points ? points.slice() : []; points[0] = points[0] || []; points[1] = points[1] || []; vec2.copy(points[0], p1); vec2.copy(points[1], p2); if (+e.curveness) { points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness]; } edge.setLayout(points); } // Update layout cb && cb(stopped); }); }; graphSeries.forceLayout = forceInstance; graphSeries.preservedPoints = preservedPoints; // Step to get the layout forceInstance.step(); } else { // Remove prev injected forceLayout instance graphSeries.forceLayout = null; } }); } module.exports = _default; /***/ }), /* 674 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/forceHelper.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * A third-party license is embeded for some of the code in this file: * Some formulas were originally copied from "d3.js" with some * modifications made for this project. * (See more details in the comment of the method "step" below.) * The use of the source code of this file is also subject to the terms * and consitions of the license of "d3.js" (BSD-3Clause, see * ). */ var scaleAndAdd = vec2.scaleAndAdd; // function adjacentNode(n, e) { // return e.n1 === n ? e.n2 : e.n1; // } function forceLayout(nodes, edges, opts) { var rect = opts.rect; var width = rect.width; var height = rect.height; var center = [rect.x + width / 2, rect.y + height / 2]; // var scale = opts.scale || 1; var gravity = opts.gravity == null ? 0.1 : opts.gravity; // for (var i = 0; i < edges.length; i++) { // var e = edges[i]; // var n1 = e.n1; // var n2 = e.n2; // n1.edges = n1.edges || []; // n2.edges = n2.edges || []; // n1.edges.push(e); // n2.edges.push(e); // } // Init position for (var i = 0; i < nodes.length; i++) { var n = nodes[i]; if (!n.p) { n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]); } n.pp = vec2.clone(n.p); n.edges = null; } // Formula in 'Graph Drawing by Force-directed Placement' // var k = scale * Math.sqrt(width * height / nodes.length); // var k2 = k * k; var initialFriction = opts.friction == null ? 0.6 : opts.friction; var friction = initialFriction; return { warmUp: function warmUp() { friction = initialFriction * 0.8; }, setFixed: function setFixed(idx) { nodes[idx].fixed = true; }, setUnfixed: function setUnfixed(idx) { nodes[idx].fixed = false; }, /** * Some formulas were originally copied from "d3.js" * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js * with some modifications made for this project. * See the license statement at the head of this file. */ step: function step(cb) { var v12 = []; var nLen = nodes.length; for (var i = 0; i < edges.length; i++) { var e = edges[i]; if (e.ignoreForceLayout) { continue; } var n1 = e.n1; var n2 = e.n2; vec2.sub(v12, n2.p, n1.p); var d = vec2.len(v12) - e.d; var w = n2.w / (n1.w + n2.w); if (isNaN(w)) { w = 0; } vec2.normalize(v12, v12); !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction); !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction); } // Gravity for (var i = 0; i < nLen; i++) { var n = nodes[i]; if (!n.fixed) { vec2.sub(v12, center, n.p); // var d = vec2.len(v12); // vec2.scale(v12, v12, 1 / d); // var gravityFactor = gravity; scaleAndAdd(n.p, n.p, v12, gravity * friction); } } // Repulsive // PENDING for (var i = 0; i < nLen; i++) { var n1 = nodes[i]; for (var j = i + 1; j < nLen; j++) { var n2 = nodes[j]; vec2.sub(v12, n2.p, n1.p); var d = vec2.len(v12); if (d === 0) { // Random repulse vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5); d = 1; } var repFact = (n1.rep + n2.rep) / d / d; !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact); !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact); } } var v = []; for (var i = 0; i < nLen; i++) { var n = nodes[i]; if (!n.fixed) { vec2.sub(v, n.p, n.pp); scaleAndAdd(n.p, n.p, v, friction); vec2.copy(n.pp, n.p); } } friction = friction * 0.992; cb && cb(nodes, edges, friction < 0.01); } }; } exports.forceLayout = forceLayout; /***/ }), /* 675 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/graph/createView.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var View = __webpack_require__(/*! ../../coord/View */ 629); var _layout = __webpack_require__(/*! ../../util/layout */ 488); var getLayoutRect = _layout.getLayoutRect; var bbox = __webpack_require__(/*! zrender/lib/core/bbox */ 456); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // FIXME Where to create the simple view coordinate system function getViewRect(seriesModel, api, aspect) { var option = seriesModel.getBoxLayoutParams(); option.aspect = aspect; return getLayoutRect(option, { width: api.getWidth(), height: api.getHeight() }); } function _default(ecModel, api) { var viewList = []; ecModel.eachSeriesByType('graph', function (seriesModel) { var coordSysType = seriesModel.get('coordinateSystem'); if (!coordSysType || coordSysType === 'view') { var data = seriesModel.getData(); var positions = data.mapArray(function (idx) { var itemModel = data.getItemModel(idx); return [+itemModel.get('x'), +itemModel.get('y')]; }); var min = []; var max = []; bbox.fromPoints(positions, min, max); // If width or height is 0 if (max[0] - min[0] === 0) { max[0] += 1; min[0] -= 1; } if (max[1] - min[1] === 0) { max[1] += 1; min[1] -= 1; } var aspect = (max[0] - min[0]) / (max[1] - min[1]); // FIXME If get view rect after data processed? var viewRect = getViewRect(seriesModel, api, aspect); // Position may be NaN, use view rect instead if (isNaN(aspect)) { min = [viewRect.x, viewRect.y]; max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height]; } var bbWidth = max[0] - min[0]; var bbHeight = max[1] - min[1]; var viewWidth = viewRect.width; var viewHeight = viewRect.height; var viewCoordSys = seriesModel.coordinateSystem = new View(); viewCoordSys.zoomLimit = seriesModel.get('scaleLimit'); viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight); viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight); // Update roam info viewCoordSys.setCenter(seriesModel.get('center')); viewCoordSys.setZoom(seriesModel.get('zoom')); viewList.push(viewCoordSys); } }); return viewList; } module.exports = _default; /***/ }), /* 676 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/gauge.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./gauge/GaugeSeries */ 677); __webpack_require__(/*! ./gauge/GaugeView */ 678); /***/ }), /* 677 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/gauge/GaugeSeries.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var createListSimply = __webpack_require__(/*! ../helper/createListSimply */ 587); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var GaugeSeries = SeriesModel.extend({ type: 'series.gauge', getInitialData: function getInitialData(option, ecModel) { return createListSimply(this, ['value']); }, defaultOption: { zlevel: 0, z: 2, // 默认全局居中 center: ['50%', '50%'], legendHoverLink: true, radius: '75%', startAngle: 225, endAngle: -45, clockwise: true, // 最小值 min: 0, // 最大值 max: 100, // 分割段数,默认为10 splitNumber: 10, // 坐标轴线 axisLine: { // 默认显示,属性show控制显示与否 show: true, lineStyle: { // 属性lineStyle控制线条样式 color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']], width: 30 } }, // 分隔线 splitLine: { // 默认显示,属性show控制显示与否 show: true, // 属性length控制线长 length: 30, // 属性lineStyle(详见lineStyle)控制线条样式 lineStyle: { color: '#eee', width: 2, type: 'solid' } }, // 坐标轴小标记 axisTick: { // 属性show控制显示与否,默认不显示 show: true, // 每份split细分多少段 splitNumber: 5, // 属性length控制线长 length: 8, // 属性lineStyle控制线条样式 lineStyle: { color: '#eee', width: 1, type: 'solid' } }, axisLabel: { show: true, distance: 5, // formatter: null, color: 'auto' }, pointer: { show: true, length: '80%', width: 8 }, itemStyle: { color: 'auto' }, title: { show: true, // x, y,单位px offsetCenter: [0, '-40%'], // 其余属性默认使用全局文本样式,详见TEXTSTYLE color: '#333', fontSize: 15 }, detail: { show: true, backgroundColor: 'rgba(0,0,0,0)', borderWidth: 0, borderColor: '#ccc', width: 100, height: null, // self-adaption padding: [5, 10], // x, y,单位px offsetCenter: [0, '40%'], // formatter: null, // 其余属性默认使用全局文本样式,详见TEXTSTYLE color: 'auto', fontSize: 30 } } }); var _default = GaugeSeries; module.exports = _default; /***/ }), /* 678 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/gauge/GaugeView.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PointerPath = __webpack_require__(/*! ./PointerPath */ 679); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var round = _number.round; var linearMap = _number.linearMap; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function parsePosition(seriesModel, api) { var center = seriesModel.get('center'); var width = api.getWidth(); var height = api.getHeight(); var size = Math.min(width, height); var cx = parsePercent(center[0], api.getWidth()); var cy = parsePercent(center[1], api.getHeight()); var r = parsePercent(seriesModel.get('radius'), size / 2); return { cx: cx, cy: cy, r: r }; } function formatLabel(label, labelFormatter) { if (labelFormatter) { if (typeof labelFormatter === 'string') { label = labelFormatter.replace('{value}', label != null ? label : ''); } else if (typeof labelFormatter === 'function') { label = labelFormatter(label); } } return label; } var PI2 = Math.PI * 2; var GaugeView = ChartView.extend({ type: 'gauge', render: function render(seriesModel, ecModel, api) { this.group.removeAll(); var colorList = seriesModel.get('axisLine.lineStyle.color'); var posInfo = parsePosition(seriesModel, api); this._renderMain(seriesModel, ecModel, api, colorList, posInfo); }, dispose: function dispose() {}, _renderMain: function _renderMain(seriesModel, ecModel, api, colorList, posInfo) { var group = this.group; var axisLineModel = seriesModel.getModel('axisLine'); var lineStyleModel = axisLineModel.getModel('lineStyle'); var clockwise = seriesModel.get('clockwise'); var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI; var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI; var angleRangeSpan = (endAngle - startAngle) % PI2; var prevEndAngle = startAngle; var axisLineWidth = lineStyleModel.get('width'); var showAxis = axisLineModel.get('show'); for (var i = 0; showAxis && i < colorList.length; i++) { // Clamp var percent = Math.min(Math.max(colorList[i][0], 0), 1); var endAngle = startAngle + angleRangeSpan * percent; var sector = new graphic.Sector({ shape: { startAngle: prevEndAngle, endAngle: endAngle, cx: posInfo.cx, cy: posInfo.cy, clockwise: clockwise, r0: posInfo.r - axisLineWidth, r: posInfo.r }, silent: true }); sector.setStyle({ fill: colorList[i][1] }); sector.setStyle(lineStyleModel.getLineStyle( // Because we use sector to simulate arc // so the properties for stroking are useless ['color', 'borderWidth', 'borderColor'])); group.add(sector); prevEndAngle = endAngle; } var getColor = function getColor(percent) { // Less than 0 if (percent <= 0) { return colorList[0][1]; } for (var i = 0; i < colorList.length; i++) { if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) { return colorList[i][1]; } } // More than 1 return colorList[i - 1][1]; }; if (!clockwise) { var tmp = startAngle; startAngle = endAngle; endAngle = tmp; } this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise); this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise); this._renderTitle(seriesModel, ecModel, api, getColor, posInfo); this._renderDetail(seriesModel, ecModel, api, getColor, posInfo); }, _renderTicks: function _renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) { var group = this.group; var cx = posInfo.cx; var cy = posInfo.cy; var r = posInfo.r; var minVal = +seriesModel.get('min'); var maxVal = +seriesModel.get('max'); var splitLineModel = seriesModel.getModel('splitLine'); var tickModel = seriesModel.getModel('axisTick'); var labelModel = seriesModel.getModel('axisLabel'); var splitNumber = seriesModel.get('splitNumber'); var subSplitNumber = tickModel.get('splitNumber'); var splitLineLen = parsePercent(splitLineModel.get('length'), r); var tickLen = parsePercent(tickModel.get('length'), r); var angle = startAngle; var step = (endAngle - startAngle) / splitNumber; var subStep = step / subSplitNumber; var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle(); var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle(); for (var i = 0; i <= splitNumber; i++) { var unitX = Math.cos(angle); var unitY = Math.sin(angle); // Split line if (splitLineModel.get('show')) { var splitLine = new graphic.Line({ shape: { x1: unitX * r + cx, y1: unitY * r + cy, x2: unitX * (r - splitLineLen) + cx, y2: unitY * (r - splitLineLen) + cy }, style: splitLineStyle, silent: true }); if (splitLineStyle.stroke === 'auto') { splitLine.setStyle({ stroke: getColor(i / splitNumber) }); } group.add(splitLine); } // Label if (labelModel.get('show')) { var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter')); var distance = labelModel.get('distance'); var autoColor = getColor(i / splitNumber); group.add(new graphic.Text({ style: graphic.setTextStyle({}, labelModel, { text: label, x: unitX * (r - splitLineLen - distance) + cx, y: unitY * (r - splitLineLen - distance) + cy, textVerticalAlign: unitY < -0.4 ? 'top' : unitY > 0.4 ? 'bottom' : 'middle', textAlign: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center' }, { autoColor: autoColor }), silent: true })); } // Axis tick if (tickModel.get('show') && i !== splitNumber) { for (var j = 0; j <= subSplitNumber; j++) { var unitX = Math.cos(angle); var unitY = Math.sin(angle); var tickLine = new graphic.Line({ shape: { x1: unitX * r + cx, y1: unitY * r + cy, x2: unitX * (r - tickLen) + cx, y2: unitY * (r - tickLen) + cy }, silent: true, style: tickLineStyle }); if (tickLineStyle.stroke === 'auto') { tickLine.setStyle({ stroke: getColor((i + j / subSplitNumber) / splitNumber) }); } group.add(tickLine); angle += subStep; } angle -= subStep; } else { angle += step; } } }, _renderPointer: function _renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) { var group = this.group; var oldData = this._data; if (!seriesModel.get('pointer.show')) { // Remove old element oldData && oldData.eachItemGraphicEl(function (el) { group.remove(el); }); return; } var valueExtent = [+seriesModel.get('min'), +seriesModel.get('max')]; var angleExtent = [startAngle, endAngle]; var data = seriesModel.getData(); var valueDim = data.mapDimension('value'); data.diff(oldData).add(function (idx) { var pointer = new PointerPath({ shape: { angle: startAngle } }); graphic.initProps(pointer, { shape: { angle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true) } }, seriesModel); group.add(pointer); data.setItemGraphicEl(idx, pointer); }).update(function (newIdx, oldIdx) { var pointer = oldData.getItemGraphicEl(oldIdx); graphic.updateProps(pointer, { shape: { angle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true) } }, seriesModel); group.add(pointer); data.setItemGraphicEl(newIdx, pointer); }).remove(function (idx) { var pointer = oldData.getItemGraphicEl(idx); group.remove(pointer); }).execute(); data.eachItemGraphicEl(function (pointer, idx) { var itemModel = data.getItemModel(idx); var pointerModel = itemModel.getModel('pointer'); pointer.setShape({ x: posInfo.cx, y: posInfo.cy, width: parsePercent(pointerModel.get('width'), posInfo.r), r: parsePercent(pointerModel.get('length'), posInfo.r) }); pointer.useStyle(itemModel.getModel('itemStyle').getItemStyle()); if (pointer.style.fill === 'auto') { pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true))); } graphic.setHoverStyle(pointer, itemModel.getModel('emphasis.itemStyle').getItemStyle()); }); this._data = data; }, _renderTitle: function _renderTitle(seriesModel, ecModel, api, getColor, posInfo) { var data = seriesModel.getData(); var valueDim = data.mapDimension('value'); var titleModel = seriesModel.getModel('title'); if (titleModel.get('show')) { var offsetCenter = titleModel.get('offsetCenter'); var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r); var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r); var minVal = +seriesModel.get('min'); var maxVal = +seriesModel.get('max'); var value = seriesModel.getData().get(valueDim, 0); var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true)); this.group.add(new graphic.Text({ silent: true, style: graphic.setTextStyle({}, titleModel, { x: x, y: y, // FIXME First data name ? text: data.getName(0), textAlign: 'center', textVerticalAlign: 'middle' }, { autoColor: autoColor, forceRich: true }) })); } }, _renderDetail: function _renderDetail(seriesModel, ecModel, api, getColor, posInfo) { var detailModel = seriesModel.getModel('detail'); var minVal = +seriesModel.get('min'); var maxVal = +seriesModel.get('max'); if (detailModel.get('show')) { var offsetCenter = detailModel.get('offsetCenter'); var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r); var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r); var width = parsePercent(detailModel.get('width'), posInfo.r); var height = parsePercent(detailModel.get('height'), posInfo.r); var data = seriesModel.getData(); var value = data.get(data.mapDimension('value'), 0); var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true)); this.group.add(new graphic.Text({ silent: true, style: graphic.setTextStyle({}, detailModel, { x: x, y: y, text: formatLabel( // FIXME First data name ? value, detailModel.get('formatter')), textWidth: isNaN(width) ? null : width, textHeight: isNaN(height) ? null : height, textAlign: 'center', textVerticalAlign: 'middle' }, { autoColor: autoColor, forceRich: true }) })); } } }); var _default = GaugeView; module.exports = _default; /***/ }), /* 679 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/gauge/PointerPath.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Path = __webpack_require__(/*! zrender/lib/graphic/Path */ 453); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = Path.extend({ type: 'echartsGaugePointer', shape: { angle: 0, width: 10, r: 10, x: 0, y: 0 }, buildPath: function buildPath(ctx, shape) { var mathCos = Math.cos; var mathSin = Math.sin; var r = shape.r; var width = shape.width; var angle = shape.angle; var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2); var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2); angle = shape.angle - Math.PI / 2; ctx.moveTo(x, y); ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width); ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r); ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width); ctx.lineTo(x, y); return; } }); module.exports = _default; /***/ }), /* 680 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/funnel.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./funnel/FunnelSeries */ 681); __webpack_require__(/*! ./funnel/FunnelView */ 682); var dataColor = __webpack_require__(/*! ../visual/dataColor */ 592); var funnelLayout = __webpack_require__(/*! ./funnel/funnelLayout */ 683); var dataFilter = __webpack_require__(/*! ../processor/dataFilter */ 595); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerVisual(dataColor('funnel')); echarts.registerLayout(funnelLayout); echarts.registerProcessor(dataFilter('funnel')); /***/ }), /* 681 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/funnel/FunnelSeries.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var createListSimply = __webpack_require__(/*! ../helper/createListSimply */ 587); var _model = __webpack_require__(/*! ../../util/model */ 444); var defaultEmphasis = _model.defaultEmphasis; var _sourceHelper = __webpack_require__(/*! ../../data/helper/sourceHelper */ 494); var makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased; var LegendVisualProvider = __webpack_require__(/*! ../../visual/LegendVisualProvider */ 589); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var FunnelSeries = echarts.extendSeriesModel({ type: 'series.funnel', init: function init(option) { FunnelSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item // Use a function instead of direct access because data reference may changed this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); // Extend labelLine emphasis this._defaultLabelLine(option); }, getInitialData: function getInitialData(option, ecModel) { return createListSimply(this, { coordDimensions: ['value'], encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this) }); }, _defaultLabelLine: function _defaultLabelLine(option) { // Extend labelLine emphasis defaultEmphasis(option, 'labelLine', ['show']); var labelLineNormalOpt = option.labelLine; var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false` labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show; labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show; }, // Overwrite getDataParams: function getDataParams(dataIndex) { var data = this.getData(); var params = FunnelSeries.superCall(this, 'getDataParams', dataIndex); var valueDim = data.mapDimension('value'); var sum = data.getSum(valueDim); // Percent is 0 if sum is 0 params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2); params.$vars.push('percent'); return params; }, defaultOption: { zlevel: 0, // 一级层叠 z: 2, // 二级层叠 legendHoverLink: true, left: 80, top: 60, right: 80, bottom: 60, // width: {totalWidth} - left - right, // height: {totalHeight} - top - bottom, // 默认取数据最小最大值 // min: 0, // max: 100, minSize: '0%', maxSize: '100%', sort: 'descending', // 'ascending', 'descending' orient: 'vertical', gap: 0, funnelAlign: 'center', label: { show: true, position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调 }, labelLine: { show: true, length: 20, lineStyle: { // color: 各异, width: 1, type: 'solid' } }, itemStyle: { // color: 各异, borderColor: '#fff', borderWidth: 1 }, emphasis: { label: { show: true } } } }); var _default = FunnelSeries; module.exports = _default; /***/ }), /* 682 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/funnel/FunnelView.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Piece of pie including Sector, Label, LabelLine * @constructor * @extends {module:zrender/graphic/Group} */ function FunnelPiece(data, idx) { graphic.Group.call(this); var polygon = new graphic.Polygon(); var labelLine = new graphic.Polyline(); var text = new graphic.Text(); this.add(polygon); this.add(labelLine); this.add(text); this.highDownOnUpdate = function (fromState, toState) { if (toState === 'emphasis') { labelLine.ignore = labelLine.hoverIgnore; text.ignore = text.hoverIgnore; } else { labelLine.ignore = labelLine.normalIgnore; text.ignore = text.normalIgnore; } }; this.updateData(data, idx, true); } var funnelPieceProto = FunnelPiece.prototype; var opacityAccessPath = ['itemStyle', 'opacity']; funnelPieceProto.updateData = function (data, idx, firstCreate) { var polygon = this.childAt(0); var seriesModel = data.hostModel; var itemModel = data.getItemModel(idx); var layout = data.getItemLayout(idx); var opacity = data.getItemModel(idx).get(opacityAccessPath); opacity = opacity == null ? 1 : opacity; // Reset style polygon.useStyle({}); if (firstCreate) { polygon.setShape({ points: layout.points }); polygon.setStyle({ opacity: 0 }); graphic.initProps(polygon, { style: { opacity: opacity } }, seriesModel, idx); } else { graphic.updateProps(polygon, { style: { opacity: opacity }, shape: { points: layout.points } }, seriesModel, idx); } // Update common style var itemStyleModel = itemModel.getModel('itemStyle'); var visualColor = data.getItemVisual(idx, 'color'); polygon.setStyle(zrUtil.defaults({ lineJoin: 'round', fill: visualColor }, itemStyleModel.getItemStyle(['opacity']))); polygon.hoverStyle = itemStyleModel.getModel('emphasis').getItemStyle(); this._updateLabel(data, idx); graphic.setHoverStyle(this); }; funnelPieceProto._updateLabel = function (data, idx) { var labelLine = this.childAt(1); var labelText = this.childAt(2); var seriesModel = data.hostModel; var itemModel = data.getItemModel(idx); var layout = data.getItemLayout(idx); var labelLayout = layout.label; var visualColor = data.getItemVisual(idx, 'color'); graphic.updateProps(labelLine, { shape: { points: labelLayout.linePoints || labelLayout.linePoints } }, seriesModel, idx); graphic.updateProps(labelText, { style: { x: labelLayout.x, y: labelLayout.y } }, seriesModel, idx); labelText.attr({ rotation: labelLayout.rotation, origin: [labelLayout.x, labelLayout.y], z2: 10 }); var labelModel = itemModel.getModel('label'); var labelHoverModel = itemModel.getModel('emphasis.label'); var labelLineModel = itemModel.getModel('labelLine'); var labelLineHoverModel = itemModel.getModel('emphasis.labelLine'); var visualColor = data.getItemVisual(idx, 'color'); graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, { labelFetcher: data.hostModel, labelDataIndex: idx, defaultText: data.getName(idx), autoColor: visualColor, useInsideStyle: !!labelLayout.inside }, { textAlign: labelLayout.textAlign, textVerticalAlign: labelLayout.verticalAlign }); labelText.ignore = labelText.normalIgnore = !labelModel.get('show'); labelText.hoverIgnore = !labelHoverModel.get('show'); labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show'); labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color labelLine.setStyle({ stroke: visualColor }); labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle()); labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle(); }; zrUtil.inherits(FunnelPiece, graphic.Group); var FunnelView = ChartView.extend({ type: 'funnel', render: function render(seriesModel, ecModel, api) { var data = seriesModel.getData(); var oldData = this._data; var group = this.group; data.diff(oldData).add(function (idx) { var funnelPiece = new FunnelPiece(data, idx); data.setItemGraphicEl(idx, funnelPiece); group.add(funnelPiece); }).update(function (newIdx, oldIdx) { var piePiece = oldData.getItemGraphicEl(oldIdx); piePiece.updateData(data, newIdx); group.add(piePiece); data.setItemGraphicEl(newIdx, piePiece); }).remove(function (idx) { var piePiece = oldData.getItemGraphicEl(idx); group.remove(piePiece); }).execute(); this._data = data; }, remove: function remove() { this.group.removeAll(); this._data = null; }, dispose: function dispose() {} }); var _default = FunnelView; module.exports = _default; /***/ }), /* 683 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/funnel/funnelLayout.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var layout = __webpack_require__(/*! ../../util/layout */ 488); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var linearMap = _number.linearMap; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function getViewRect(seriesModel, api) { return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); } function getSortedIndices(data, sort) { var valueDim = data.mapDimension('value'); var valueArr = data.mapArray(valueDim, function (val) { return val; }); var indices = []; var isAscending = sort === 'ascending'; for (var i = 0, len = data.count(); i < len; i++) { indices[i] = i; } // Add custom sortable function & none sortable opetion by "options.sort" if (typeof sort === 'function') { indices.sort(sort); } else if (sort !== 'none') { indices.sort(function (a, b) { return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a]; }); } return indices; } function labelLayout(data) { data.each(function (idx) { var itemModel = data.getItemModel(idx); var labelModel = itemModel.getModel('label'); var labelPosition = labelModel.get('position'); var orient = itemModel.get('orient'); var labelLineModel = itemModel.getModel('labelLine'); var layout = data.getItemLayout(idx); var points = layout.points; var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight'; var textAlign; var textX; var textY; var linePoints; if (isLabelInside) { if (labelPosition === 'insideLeft') { textX = (points[0][0] + points[3][0]) / 2 + 5; textY = (points[0][1] + points[3][1]) / 2; textAlign = 'left'; } else if (labelPosition === 'insideRight') { textX = (points[1][0] + points[2][0]) / 2 - 5; textY = (points[1][1] + points[2][1]) / 2; textAlign = 'right'; } else { textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4; textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4; textAlign = 'center'; } linePoints = [[textX, textY], [textX, textY]]; } else { var x1; var y1; var x2; var y2; var labelLineLen = labelLineModel.get('length'); if (labelPosition === 'left') { // Left side x1 = (points[3][0] + points[0][0]) / 2; y1 = (points[3][1] + points[0][1]) / 2; x2 = x1 - labelLineLen; textX = x2 - 5; textAlign = 'right'; } else if (labelPosition === 'right') { // Right side x1 = (points[1][0] + points[2][0]) / 2; y1 = (points[1][1] + points[2][1]) / 2; x2 = x1 + labelLineLen; textX = x2 + 5; textAlign = 'left'; } else if (labelPosition === 'top') { // Top side x1 = (points[3][0] + points[0][0]) / 2; y1 = (points[3][1] + points[0][1]) / 2; y2 = y1 - labelLineLen; textY = y2 - 5; textAlign = 'center'; } else if (labelPosition === 'bottom') { // Bottom side x1 = (points[1][0] + points[2][0]) / 2; y1 = (points[1][1] + points[2][1]) / 2; y2 = y1 + labelLineLen; textY = y2 + 5; textAlign = 'center'; } else if (labelPosition === 'rightTop') { // RightTop side x1 = orient === 'horizontal' ? points[3][0] : points[1][0]; y1 = orient === 'horizontal' ? points[3][1] : points[1][1]; if (orient === 'horizontal') { y2 = y1 - labelLineLen; textY = y2 - 5; textAlign = 'center'; } else { x2 = x1 + labelLineLen; textX = x2 + 5; textAlign = 'top'; } } else if (labelPosition === 'rightBottom') { // RightBottom side x1 = points[2][0]; y1 = points[2][1]; if (orient === 'horizontal') { y2 = y1 + labelLineLen; textY = y2 + 5; textAlign = 'center'; } else { x2 = x1 + labelLineLen; textX = x2 + 5; textAlign = 'bottom'; } } else if (labelPosition === 'leftTop') { // LeftTop side x1 = points[0][0]; y1 = orient === 'horizontal' ? points[0][1] : points[1][1]; if (orient === 'horizontal') { y2 = y1 - labelLineLen; textY = y2 - 5; textAlign = 'center'; } else { x2 = x1 - labelLineLen; textX = x2 - 5; textAlign = 'right'; } } else if (labelPosition === 'leftBottom') { // LeftBottom side x1 = orient === 'horizontal' ? points[1][0] : points[3][0]; y1 = orient === 'horizontal' ? points[1][1] : points[2][1]; if (orient === 'horizontal') { y2 = y1 + labelLineLen; textY = y2 + 5; textAlign = 'center'; } else { x2 = x1 - labelLineLen; textX = x2 - 5; textAlign = 'right'; } } else { // Right side or Bottom side x1 = (points[1][0] + points[2][0]) / 2; y1 = (points[1][1] + points[2][1]) / 2; if (orient === 'horizontal') { y2 = y1 + labelLineLen; textY = y2 + 5; textAlign = 'center'; } else { x2 = x1 + labelLineLen; textX = x2 + 5; textAlign = 'left'; } } if (orient === 'horizontal') { x2 = x1; textX = x2; } else { y2 = y1; textY = y2; } linePoints = [[x1, y1], [x2, y2]]; } layout.label = { linePoints: linePoints, x: textX, y: textY, verticalAlign: 'middle', textAlign: textAlign, inside: isLabelInside }; }); } function _default(ecModel, api, payload) { ecModel.eachSeriesByType('funnel', function (seriesModel) { var data = seriesModel.getData(); var valueDim = data.mapDimension('value'); var sort = seriesModel.get('sort'); var viewRect = getViewRect(seriesModel, api); var indices = getSortedIndices(data, sort); var orient = seriesModel.get('orient'); var viewWidth = viewRect.width; var viewHeight = viewRect.height; var x = viewRect.x; var y = viewRect.y; var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)]; var dataExtent = data.getDataExtent(valueDim); var min = seriesModel.get('min'); var max = seriesModel.get('max'); if (min == null) { min = Math.min(dataExtent[0], 0); } if (max == null) { max = dataExtent[1]; } var funnelAlign = seriesModel.get('funnelAlign'); var gap = seriesModel.get('gap'); var viewSize = orient === 'horizontal' ? viewWidth : viewHeight; var itemSize = (viewSize - gap * (data.count() - 1)) / data.count(); var getLinePoints = function getLinePoints(idx, offset) { // End point index is data.count() and we assign it 0 if (orient === 'horizontal') { var val = data.get(valueDim, idx) || 0; var itemHeight = linearMap(val, [min, max], sizeExtent, true); var y0; switch (funnelAlign) { case 'top': y0 = y; break; case 'center': y0 = y + (viewHeight - itemHeight) / 2; break; case 'bottom': y0 = y + (viewHeight - itemHeight); break; } return [[offset, y0], [offset, y0 + itemHeight]]; } var val = data.get(valueDim, idx) || 0; var itemWidth = linearMap(val, [min, max], sizeExtent, true); var x0; switch (funnelAlign) { case 'left': x0 = x; break; case 'center': x0 = x + (viewWidth - itemWidth) / 2; break; case 'right': x0 = x + viewWidth - itemWidth; break; } return [[x0, offset], [x0 + itemWidth, offset]]; }; if (sort === 'ascending') { // From bottom to top itemSize = -itemSize; gap = -gap; if (orient === 'horizontal') { x += viewWidth; } else { y += viewHeight; } indices = indices.reverse(); } for (var i = 0; i < indices.length; i++) { var idx = indices[i]; var nextIdx = indices[i + 1]; var itemModel = data.getItemModel(idx); if (orient === 'horizontal') { var width = itemModel.get('itemStyle.width'); if (width == null) { width = itemSize; } else { width = parsePercent(width, viewWidth); if (sort === 'ascending') { width = -width; } } var start = getLinePoints(idx, x); var end = getLinePoints(nextIdx, x + width); x += width + gap; data.setItemLayout(idx, { points: start.concat(end.slice().reverse()) }); } else { var height = itemModel.get('itemStyle.height'); if (height == null) { height = itemSize; } else { height = parsePercent(height, viewHeight); if (sort === 'ascending') { height = -height; } } var start = orient === 'horizontal' ? getLinePoints(idx, x) : getLinePoints(idx, y); var end = orient === 'horizontal' ? getLinePoints(nextIdx, x + width) : getLinePoints(nextIdx, y + height); y += height + gap; data.setItemLayout(idx, { points: start.concat(end.slice().reverse()) }); } } labelLayout(data); }); } module.exports = _default; /***/ }), /* 684 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/parallel.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ../component/parallel */ 685); __webpack_require__(/*! ./parallel/ParallelSeries */ 698); __webpack_require__(/*! ./parallel/ParallelView */ 699); var parallelVisual = __webpack_require__(/*! ./parallel/parallelVisual */ 700); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerVisual(parallelVisual); /***/ }), /* 685 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/parallel.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var throttleUtil = __webpack_require__(/*! ../util/throttle */ 510); var parallelPreprocessor = __webpack_require__(/*! ../coord/parallel/parallelPreprocessor */ 686); __webpack_require__(/*! ../coord/parallel/parallelCreator */ 687); __webpack_require__(/*! ../coord/parallel/ParallelModel */ 691); __webpack_require__(/*! ./parallelAxis */ 693); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var CLICK_THRESHOLD = 5; // > 4 // Parallel view echarts.extendComponentView({ type: 'parallel', render: function render(parallelModel, ecModel, api) { this._model = parallelModel; this._api = api; if (!this._handlers) { this._handlers = {}; zrUtil.each(handlers, function (handler, eventName) { api.getZr().on(eventName, this._handlers[eventName] = zrUtil.bind(handler, this)); }, this); } throttleUtil.createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate'); }, dispose: function dispose(ecModel, api) { zrUtil.each(this._handlers, function (handler, eventName) { api.getZr().off(eventName, handler); }); this._handlers = null; }, /** * @param {Object} [opt] If null, cancle the last action triggering for debounce. */ _throttledDispatchExpand: function _throttledDispatchExpand(opt) { this._dispatchExpand(opt); }, _dispatchExpand: function _dispatchExpand(opt) { opt && this._api.dispatchAction(zrUtil.extend({ type: 'parallelAxisExpand' }, opt)); } }); var handlers = { mousedown: function mousedown(e) { if (checkTrigger(this, 'click')) { this._mouseDownPoint = [e.offsetX, e.offsetY]; } }, mouseup: function mouseup(e) { var mouseDownPoint = this._mouseDownPoint; if (checkTrigger(this, 'click') && mouseDownPoint) { var point = [e.offsetX, e.offsetY]; var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2); if (dist > CLICK_THRESHOLD) { return; } var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]); result.behavior !== 'none' && this._dispatchExpand({ axisExpandWindow: result.axisExpandWindow }); } this._mouseDownPoint = null; }, mousemove: function mousemove(e) { // Should do nothing when brushing. if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) { return; } var model = this._model; var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]); var behavior = result.behavior; behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce')); this._throttledDispatchExpand(behavior === 'none' ? null // Cancle the last trigger, in case that mouse slide out of the area quickly. : { axisExpandWindow: result.axisExpandWindow, // Jumping uses animation, and sliding suppresses animation. animation: behavior === 'jump' ? null : false }); } }; function checkTrigger(view, triggerOn) { var model = view._model; return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn; } echarts.registerPreprocessor(parallelPreprocessor); /***/ }), /* 686 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/parallel/parallelPreprocessor.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(option) { createParallelIfNeeded(option); mergeAxisOptionFromParallel(option); } /** * Create a parallel coordinate if not exists. * @inner */ function createParallelIfNeeded(option) { if (option.parallel) { return; } var hasParallelSeries = false; zrUtil.each(option.series, function (seriesOpt) { if (seriesOpt && seriesOpt.type === 'parallel') { hasParallelSeries = true; } }); if (hasParallelSeries) { option.parallel = [{}]; } } /** * Merge aixs definition from parallel option (if exists) to axis option. * @inner */ function mergeAxisOptionFromParallel(option) { var axes = modelUtil.normalizeToArray(option.parallelAxis); zrUtil.each(axes, function (axisOption) { if (!zrUtil.isObject(axisOption)) { return; } var parallelIndex = axisOption.parallelIndex || 0; var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex]; if (parallelOption && parallelOption.parallelAxisDefault) { zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false); } }); } module.exports = _default; /***/ }), /* 687 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/parallel/parallelCreator.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Parallel = __webpack_require__(/*! ./Parallel */ 688); var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Parallel coordinate system creater. */ function create(ecModel, api) { var coordSysList = []; ecModel.eachComponent('parallel', function (parallelModel, idx) { var coordSys = new Parallel(parallelModel, ecModel, api); coordSys.name = 'parallel_' + idx; coordSys.resize(parallelModel, api); parallelModel.coordinateSystem = coordSys; coordSys.model = parallelModel; coordSysList.push(coordSys); }); // Inject the coordinateSystems into seriesModel ecModel.eachSeries(function (seriesModel) { if (seriesModel.get('coordinateSystem') === 'parallel') { var parallelModel = ecModel.queryComponents({ mainType: 'parallel', index: seriesModel.get('parallelIndex'), id: seriesModel.get('parallelId') })[0]; seriesModel.coordinateSystem = parallelModel.coordinateSystem; } }); return coordSysList; } CoordinateSystem.register('parallel', { create: create }); /***/ }), /* 688 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/parallel/Parallel.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var layoutUtil = __webpack_require__(/*! ../../util/layout */ 488); var axisHelper = __webpack_require__(/*! ../../coord/axisHelper */ 533); var ParallelAxis = __webpack_require__(/*! ./ParallelAxis */ 689); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var sliderMove = __webpack_require__(/*! ../../component/helper/sliderMove */ 690); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Parallel Coordinates * */ var each = zrUtil.each; var mathMin = Math.min; var mathMax = Math.max; var mathFloor = Math.floor; var mathCeil = Math.ceil; var round = numberUtil.round; var PI = Math.PI; function Parallel(parallelModel, ecModel, api) { /** * key: dimension * @type {Object.} * @private */ this._axesMap = zrUtil.createHashMap(); /** * key: dimension * value: {position: [], rotation, } * @type {Object.} * @private */ this._axesLayout = {}; /** * Always follow axis order. * @type {Array.} * @readOnly */ this.dimensions = parallelModel.dimensions; /** * @type {module:zrender/core/BoundingRect} */ this._rect; /** * @type {module:echarts/coord/parallel/ParallelModel} */ this._model = parallelModel; this._init(parallelModel, ecModel, api); } Parallel.prototype = { type: 'parallel', constructor: Parallel, /** * Initialize cartesian coordinate systems * @private */ _init: function _init(parallelModel, ecModel, api) { var dimensions = parallelModel.dimensions; var parallelAxisIndex = parallelModel.parallelAxisIndex; each(dimensions, function (dim, idx) { var axisIndex = parallelAxisIndex[idx]; var axisModel = ecModel.getComponent('parallelAxis', axisIndex); var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex)); var isCategory = axis.type === 'category'; axis.onBand = isCategory && axisModel.get('boundaryGap'); axis.inverse = axisModel.get('inverse'); // Injection axisModel.axis = axis; axis.model = axisModel; axis.coordinateSystem = axisModel.coordinateSystem = this; }, this); }, /** * Update axis scale after data processed * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api */ update: function update(ecModel, api) { this._updateAxesFromSeries(this._model, ecModel); }, /** * @override */ containPoint: function containPoint(point) { var layoutInfo = this._makeLayoutInfo(); var axisBase = layoutInfo.axisBase; var layoutBase = layoutInfo.layoutBase; var pixelDimIndex = layoutInfo.pixelDimIndex; var pAxis = point[1 - pixelDimIndex]; var pLayout = point[pixelDimIndex]; return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength; }, getModel: function getModel() { return this._model; }, /** * Update properties from series * @private */ _updateAxesFromSeries: function _updateAxesFromSeries(parallelModel, ecModel) { ecModel.eachSeries(function (seriesModel) { if (!parallelModel.contains(seriesModel, ecModel)) { return; } var data = seriesModel.getData(); each(this.dimensions, function (dim) { var axis = this._axesMap.get(dim); axis.scale.unionExtentFromData(data, data.mapDimension(dim)); axisHelper.niceScaleExtent(axis.scale, axis.model); }, this); }, this); }, /** * Resize the parallel coordinate system. * @param {module:echarts/coord/parallel/ParallelModel} parallelModel * @param {module:echarts/ExtensionAPI} api */ resize: function resize(parallelModel, api) { this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); this._layoutAxes(); }, /** * @return {module:zrender/core/BoundingRect} */ getRect: function getRect() { return this._rect; }, /** * @private */ _makeLayoutInfo: function _makeLayoutInfo() { var parallelModel = this._model; var rect = this._rect; var xy = ['x', 'y']; var wh = ['width', 'height']; var layout = parallelModel.get('layout'); var pixelDimIndex = layout === 'horizontal' ? 0 : 1; var layoutLength = rect[wh[pixelDimIndex]]; var layoutExtent = [0, layoutLength]; var axisCount = this.dimensions.length; var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent); var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]); var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0; // `axisExpandWindow` is According to the coordinates of [0, axisExpandLength], // for sake of consider the case that axisCollapseWidth is 0 (when screen is narrow), // where collapsed axes should be overlapped. var axisExpandWindow = parallelModel.get('axisExpandWindow'); var winSize; if (!axisExpandWindow) { winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent); var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2); axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2]; axisExpandWindow[1] = axisExpandWindow[0] + winSize; } else { winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent); axisExpandWindow[1] = axisExpandWindow[0] + winSize; } var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount); // Avoid axisCollapseWidth is too small. axisCollapseWidth < 3 && (axisCollapseWidth = 0); // Find the first and last indices > ewin[0] and < ewin[1]. var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1]; // Pos in ec coordinates. var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0]; return { layout: layout, pixelDimIndex: pixelDimIndex, layoutBase: rect[xy[pixelDimIndex]], layoutLength: layoutLength, axisBase: rect[xy[1 - pixelDimIndex]], axisLength: rect[wh[1 - pixelDimIndex]], axisExpandable: axisExpandable, axisExpandWidth: axisExpandWidth, axisCollapseWidth: axisCollapseWidth, axisExpandWindow: axisExpandWindow, axisCount: axisCount, winInnerIndices: winInnerIndices, axisExpandWindow0Pos: axisExpandWindow0Pos }; }, /** * @private */ _layoutAxes: function _layoutAxes() { var rect = this._rect; var axes = this._axesMap; var dimensions = this.dimensions; var layoutInfo = this._makeLayoutInfo(); var layout = layoutInfo.layout; axes.each(function (axis) { var axisExtent = [0, layoutInfo.axisLength]; var idx = axis.inverse ? 1 : 0; axis.setExtent(axisExtent[idx], axisExtent[1 - idx]); }); each(dimensions, function (dim, idx) { var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo); var positionTable = { horizontal: { x: posInfo.position, y: layoutInfo.axisLength }, vertical: { x: 0, y: posInfo.position } }; var rotationTable = { horizontal: PI / 2, vertical: 0 }; var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y]; var rotation = rotationTable[layout]; var transform = matrix.create(); matrix.rotate(transform, transform, rotation); matrix.translate(transform, transform, position); // TODO // tick等排布信息。 // TODO // 根据axis order 更新 dimensions顺序。 this._axesLayout[dim] = { position: position, rotation: rotation, transform: transform, axisNameAvailableWidth: posInfo.axisNameAvailableWidth, axisLabelShow: posInfo.axisLabelShow, nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth, tickDirection: 1, labelDirection: 1 }; }, this); }, /** * Get axis by dim. * @param {string} dim * @return {module:echarts/coord/parallel/ParallelAxis} [description] */ getAxis: function getAxis(dim) { return this._axesMap.get(dim); }, /** * Convert a dim value of a single item of series data to Point. * @param {*} value * @param {string} dim * @return {Array} */ dataToPoint: function dataToPoint(value, dim) { return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim); }, /** * Travel data for one time, get activeState of each data item. * @param {module:echarts/data/List} data * @param {Functio} cb param: {string} activeState 'active' or 'inactive' or 'normal' * {number} dataIndex * @param {number} [start=0] the start dataIndex that travel from. * @param {number} [end=data.count()] the next dataIndex of the last dataIndex will be travel. */ eachActiveState: function eachActiveState(data, callback, start, end) { start == null && (start = 0); end == null && (end = data.count()); var axesMap = this._axesMap; var dimensions = this.dimensions; var dataDimensions = []; var axisModels = []; zrUtil.each(dimensions, function (axisDim) { dataDimensions.push(data.mapDimension(axisDim)); axisModels.push(axesMap.get(axisDim).model); }); var hasActiveSet = this.hasAxisBrushed(); for (var dataIndex = start; dataIndex < end; dataIndex++) { var activeState; if (!hasActiveSet) { activeState = 'normal'; } else { activeState = 'active'; var values = data.getValues(dataDimensions, dataIndex); for (var j = 0, lenj = dimensions.length; j < lenj; j++) { var state = axisModels[j].getActiveState(values[j]); if (state === 'inactive') { activeState = 'inactive'; break; } } } callback(activeState, dataIndex); } }, /** * Whether has any activeSet. * @return {boolean} */ hasAxisBrushed: function hasAxisBrushed() { var dimensions = this.dimensions; var axesMap = this._axesMap; var hasActiveSet = false; for (var j = 0, lenj = dimensions.length; j < lenj; j++) { if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') { hasActiveSet = true; } } return hasActiveSet; }, /** * Convert coords of each axis to Point. * Return point. For example: [10, 20] * @param {Array.} coords * @param {string} dim * @return {Array.} */ axisCoordToPoint: function axisCoordToPoint(coord, dim) { var axisLayout = this._axesLayout[dim]; return graphic.applyTransform([coord, 0], axisLayout.transform); }, /** * Get axis layout. */ getAxisLayout: function getAxisLayout(dim) { return zrUtil.clone(this._axesLayout[dim]); }, /** * @param {Array.} point * @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}. */ getSlidedAxisExpandWindow: function getSlidedAxisExpandWindow(point) { var layoutInfo = this._makeLayoutInfo(); var pixelDimIndex = layoutInfo.pixelDimIndex; var axisExpandWindow = layoutInfo.axisExpandWindow.slice(); var winSize = axisExpandWindow[1] - axisExpandWindow[0]; var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)]; // Out of the area of coordinate system. if (!this.containPoint(point)) { return { behavior: 'none', axisExpandWindow: axisExpandWindow }; } // Conver the point from global to expand coordinates. var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos; // For dragging operation convenience, the window should not be // slided when mouse is the center area of the window. var delta; var behavior = 'slide'; var axisCollapseWidth = layoutInfo.axisCollapseWidth; var triggerArea = this._model.get('axisExpandSlideTriggerArea'); // But consider touch device, jump is necessary. var useJump = triggerArea[0] != null; if (axisCollapseWidth) { if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) { behavior = 'jump'; delta = pointCoord - winSize * triggerArea[2]; } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) { behavior = 'jump'; delta = pointCoord - winSize * (1 - triggerArea[2]); } else { (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0); } delta *= layoutInfo.axisExpandWidth / axisCollapseWidth; delta ? sliderMove(delta, axisExpandWindow, extent, 'all') // Avoid nonsense triger on mousemove. : behavior = 'none'; } // When screen is too narrow, make it visible and slidable, although it is hard to interact. else { var winSize = axisExpandWindow[1] - axisExpandWindow[0]; var pos = extent[1] * pointCoord / winSize; axisExpandWindow = [mathMax(0, pos - winSize / 2)]; axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize); axisExpandWindow[0] = axisExpandWindow[1] - winSize; } return { axisExpandWindow: axisExpandWindow, behavior: behavior }; } }; function restrict(len, extent) { return mathMin(mathMax(len, extent[0]), extent[1]); } function layoutAxisWithoutExpand(axisIndex, layoutInfo) { var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1); return { position: step * axisIndex, axisNameAvailableWidth: step, axisLabelShow: true }; } function layoutAxisWithExpand(axisIndex, layoutInfo) { var layoutLength = layoutInfo.layoutLength; var axisExpandWidth = layoutInfo.axisExpandWidth; var axisCount = layoutInfo.axisCount; var axisCollapseWidth = layoutInfo.axisCollapseWidth; var winInnerIndices = layoutInfo.winInnerIndices; var position; var axisNameAvailableWidth = axisCollapseWidth; var axisLabelShow = false; var nameTruncateMaxWidth; if (axisIndex < winInnerIndices[0]) { position = axisIndex * axisCollapseWidth; nameTruncateMaxWidth = axisCollapseWidth; } else if (axisIndex <= winInnerIndices[1]) { position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0]; axisNameAvailableWidth = axisExpandWidth; axisLabelShow = true; } else { position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth; nameTruncateMaxWidth = axisCollapseWidth; } return { position: position, axisNameAvailableWidth: axisNameAvailableWidth, axisLabelShow: axisLabelShow, nameTruncateMaxWidth: nameTruncateMaxWidth }; } var _default = Parallel; module.exports = _default; /***/ }), /* 689 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/parallel/ParallelAxis.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Axis = __webpack_require__(/*! ../Axis */ 547); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @constructor module:echarts/coord/parallel/ParallelAxis * @extends {module:echarts/coord/Axis} * @param {string} dim * @param {*} scale * @param {Array.} coordExtent * @param {string} axisType */ var ParallelAxis = function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) { Axis.call(this, dim, scale, coordExtent); /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' * @type {string} */ this.type = axisType || 'value'; /** * @type {number} * @readOnly */ this.axisIndex = axisIndex; }; ParallelAxis.prototype = { constructor: ParallelAxis, /** * Axis model * @param {module:echarts/coord/parallel/AxisModel} */ model: null, /** * @override */ isHorizontal: function isHorizontal() { return this.coordinateSystem.getModel().get('layout') !== 'horizontal'; } }; zrUtil.inherits(ParallelAxis, Axis); var _default = ParallelAxis; module.exports = _default; /***/ }), /* 690 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/sliderMove.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Calculate slider move result. * Usage: * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`. * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`. * * @param {number} delta Move length. * @param {Array.} handleEnds handleEnds[0] can be bigger then handleEnds[1]. * handleEnds will be modified in this method. * @param {Array.} extent handleEnds is restricted by extent. * extent[0] should less or equals than extent[1]. * @param {number|string} handleIndex Can be 'all', means that both move the two handleEnds. * @param {number} [minSpan] The range of dataZoom can not be smaller than that. * If not set, handle0 and cross handle1. If set as a non-negative * number (including `0`), handles will push each other when reaching * the minSpan. * @param {number} [maxSpan] The range of dataZoom can not be larger than that. * @return {Array.} The input handleEnds. */ function _default(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) { delta = delta || 0; var extentSpan = extent[1] - extent[0]; // Notice maxSpan and minSpan can be null/undefined. if (minSpan != null) { minSpan = restrict(minSpan, [0, extentSpan]); } if (maxSpan != null) { maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0); } if (handleIndex === 'all') { var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]); handleSpan = restrict(handleSpan, [0, extentSpan]); minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]); handleIndex = 0; } handleEnds[0] = restrict(handleEnds[0], extent); handleEnds[1] = restrict(handleEnds[1], extent); var originalDistSign = getSpanSign(handleEnds, handleIndex); handleEnds[handleIndex] += delta; // Restrict in extent. var extentMinSpan = minSpan || 0; var realExtent = extent.slice(); originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan; handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent); // Expand span. var currDistSign = getSpanSign(handleEnds, handleIndex); if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) { // If minSpan exists, 'cross' is forbidden. handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan; } // Shrink span. var currDistSign = getSpanSign(handleEnds, handleIndex); if (maxSpan != null && currDistSign.span > maxSpan) { handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan; } return handleEnds; } function getSpanSign(handleEnds, handleIndex) { var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0] // is at left of handleEnds[1] for non-cross case. return { span: Math.abs(dist), sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 }; } function restrict(value, extend) { return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value)); } module.exports = _default; /***/ }), /* 691 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/parallel/ParallelModel.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Component = __webpack_require__(/*! ../../model/Component */ 486); __webpack_require__(/*! ./AxisModel */ 692); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = Component.extend({ type: 'parallel', dependencies: ['parallelAxis'], /** * @type {module:echarts/coord/parallel/Parallel} */ coordinateSystem: null, /** * Each item like: 'dim0', 'dim1', 'dim2', ... * @type {Array.} * @readOnly */ dimensions: null, /** * Coresponding to dimensions. * @type {Array.} * @readOnly */ parallelAxisIndex: null, layoutMode: 'box', defaultOption: { zlevel: 0, z: 0, left: 80, top: 60, right: 80, bottom: 60, // width: {totalWidth} - left - right, // height: {totalHeight} - top - bottom, layout: 'horizontal', // 'horizontal' or 'vertical' // FIXME // naming? axisExpandable: false, axisExpandCenter: null, axisExpandCount: 0, axisExpandWidth: 50, // FIXME '10%' ? axisExpandRate: 17, axisExpandDebounce: 50, // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full. // Do not doc to user until necessary. axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4], axisExpandTriggerOn: 'click', // 'mousemove' or 'click' parallelAxisDefault: null }, /** * @override */ init: function init() { Component.prototype.init.apply(this, arguments); this.mergeOption({}); }, /** * @override */ mergeOption: function mergeOption(newOption) { var thisOption = this.option; newOption && zrUtil.merge(thisOption, newOption, true); this._initDimensions(); }, /** * Whether series or axis is in this coordinate system. * @param {module:echarts/model/Series|module:echarts/coord/parallel/AxisModel} model * @param {module:echarts/model/Global} ecModel */ contains: function contains(model, ecModel) { var parallelIndex = model.get('parallelIndex'); return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this; }, setAxisExpand: function setAxisExpand(opt) { zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) { if (opt.hasOwnProperty(name)) { this.option[name] = opt[name]; } }, this); }, /** * @private */ _initDimensions: function _initDimensions() { var dimensions = this.dimensions = []; var parallelAxisIndex = this.parallelAxisIndex = []; var axisModels = zrUtil.filter(this.dependentModels.parallelAxis, function (axisModel) { // Can not use this.contains here, because // initialization has not been completed yet. return (axisModel.get('parallelIndex') || 0) === this.componentIndex; }, this); zrUtil.each(axisModels, function (axisModel) { dimensions.push('dim' + axisModel.get('dim')); parallelAxisIndex.push(axisModel.componentIndex); }); } }); module.exports = _default; /***/ }), /* 692 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/parallel/AxisModel.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); var makeStyleMapper = __webpack_require__(/*! ../../model/mixin/makeStyleMapper */ 448); var axisModelCreator = __webpack_require__(/*! ../axisModelCreator */ 569); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var axisModelCommonMixin = __webpack_require__(/*! ../axisModelCommonMixin */ 542); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var AxisModel = ComponentModel.extend({ type: 'baseParallelAxis', /** * @type {module:echarts/coord/parallel/Axis} */ axis: null, /** * @type {Array.} * @readOnly */ activeIntervals: [], /** * @return {Object} */ getAreaSelectStyle: function getAreaSelectStyle() { return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle')); }, /** * The code of this feature is put on AxisModel but not ParallelAxis, * because axisModel can be alive after echarts updating but instance of * ParallelAxis having been disposed. this._activeInterval should be kept * when action dispatched (i.e. legend click). * * @param {Array.>} intervals interval.length === 0 * means set all active. * @public */ setActiveIntervals: function setActiveIntervals(intervals) { var activeIntervals = this.activeIntervals = zrUtil.clone(intervals); // Normalize if (activeIntervals) { for (var i = activeIntervals.length - 1; i >= 0; i--) { numberUtil.asc(activeIntervals[i]); } } }, /** * @param {number|string} [value] When attempting to detect 'no activeIntervals set', * value can not be input. * @return {string} 'normal': no activeIntervals set, * 'active', * 'inactive'. * @public */ getActiveState: function getActiveState(value) { var activeIntervals = this.activeIntervals; if (!activeIntervals.length) { return 'normal'; } if (value == null || isNaN(value)) { return 'inactive'; } // Simple optimization if (activeIntervals.length === 1) { var interval = activeIntervals[0]; if (interval[0] <= value && value <= interval[1]) { return 'active'; } } else { for (var i = 0, len = activeIntervals.length; i < len; i++) { if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) { return 'active'; } } } return 'inactive'; } }); var defaultOption = { type: 'value', /** * @type {Array.} */ dim: null, // 0, 1, 2, ... // parallelIndex: null, areaSelectStyle: { width: 20, borderWidth: 1, borderColor: 'rgba(160,197,232)', color: 'rgba(160,197,232)', opacity: 0.3 }, realtime: true, // Whether realtime update view when select. z: 10 }; zrUtil.merge(AxisModel.prototype, axisModelCommonMixin); function getAxisType(axisName, option) { return option.type || (option.data ? 'category' : 'value'); } axisModelCreator('parallel', AxisModel, getAxisType, defaultOption); var _default = AxisModel; module.exports = _default; /***/ }), /* 693 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/parallelAxis.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ../coord/parallel/parallelCreator */ 687); __webpack_require__(/*! ./axis/parallelAxisAction */ 694); __webpack_require__(/*! ./axis/ParallelAxisView */ 695); /***/ }), /* 694 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/parallelAxisAction.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @payload * @property {string} parallelAxisId * @property {Array.>} intervals */ var actionInfo = { type: 'axisAreaSelect', event: 'axisAreaSelected' // update: 'updateVisual' }; echarts.registerAction(actionInfo, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'parallelAxis', query: payload }, function (parallelAxisModel) { parallelAxisModel.axis.model.setActiveIntervals(payload.intervals); }); }); /** * @payload */ echarts.registerAction('parallelAxisExpand', function (payload, ecModel) { ecModel.eachComponent({ mainType: 'parallel', query: payload }, function (parallelModel) { parallelModel.setAxisExpand(payload); }); }); /***/ }), /* 695 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/ParallelAxisView.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var AxisBuilder = __webpack_require__(/*! ./AxisBuilder */ 573); var BrushController = __webpack_require__(/*! ../helper/BrushController */ 696); var brushHelper = __webpack_require__(/*! ../helper/brushHelper */ 697); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var elementList = ['axisLine', 'axisTickLabel', 'axisName']; var AxisView = echarts.extendComponentView({ type: 'parallelAxis', /** * @override */ init: function init(ecModel, api) { AxisView.superApply(this, 'init', arguments); /** * @type {module:echarts/component/helper/BrushController} */ (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)); }, /** * @override */ render: function render(axisModel, ecModel, api, payload) { if (fromAxisAreaSelect(axisModel, ecModel, payload)) { return; } this.axisModel = axisModel; this.api = api; this.group.removeAll(); var oldAxisGroup = this._axisGroup; this._axisGroup = new graphic.Group(); this.group.add(this._axisGroup); if (!axisModel.get('show')) { return; } var coordSysModel = getCoordSysModel(axisModel, ecModel); var coordSys = coordSysModel.coordinateSystem; var areaSelectStyle = axisModel.getAreaSelectStyle(); var areaWidth = areaSelectStyle.width; var dim = axisModel.axis.dim; var axisLayout = coordSys.getAxisLayout(dim); var builderOpt = zrUtil.extend({ strokeContainThreshold: areaWidth }, axisLayout); var axisBuilder = new AxisBuilder(axisModel, builderOpt); zrUtil.each(elementList, axisBuilder.add, axisBuilder); this._axisGroup.add(axisBuilder.getGroup()); this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api); var animationModel = payload && payload.animation === false ? null : axisModel; graphic.groupTransition(oldAxisGroup, this._axisGroup, animationModel); }, // /** // * @override // */ // updateVisual: function (axisModel, ecModel, api, payload) { // this._brushController && this._brushController // .updateCovers(getCoverInfoList(axisModel)); // }, _refreshBrushController: function _refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) { // After filtering, axis may change, select area needs to be update. var extent = axisModel.axis.getExtent(); var extentLen = extent[1] - extent[0]; var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value. // width/height might be negative, which will be // normalized in BoundingRect. var rect = graphic.BoundingRect.create({ x: extent[0], y: -areaWidth / 2, width: extentLen, height: areaWidth }); rect.x -= extra; rect.width += 2 * extra; this._brushController.mount({ enableGlobalPan: true, rotation: builderOpt.rotation, position: builderOpt.position }).setPanels([{ panelId: 'pl', clipPath: brushHelper.makeRectPanelClipPath(rect), isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel), getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0) }]).enableBrush({ brushType: 'lineX', brushStyle: areaSelectStyle, removeOnClick: true }).updateCovers(getCoverInfoList(axisModel)); }, _onBrush: function _onBrush(coverInfoList, opt) { // Do not cache these object, because the mey be changed. var axisModel = this.axisModel; var axis = axisModel.axis; var intervals = zrUtil.map(coverInfoList, function (coverInfo) { return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)]; }); // If realtime is true, action is not dispatched on drag end, because // the drag end emits the same params with the last drag move event, // and may have some delay when using touch pad. if (!axisModel.option.realtime === opt.isEnd || opt.removeOnClick) { // jshint ignore:line this.api.dispatchAction({ type: 'axisAreaSelect', parallelAxisId: axisModel.id, intervals: intervals }); } }, /** * @override */ dispose: function dispose() { this._brushController.dispose(); } }); function fromAxisAreaSelect(axisModel, ecModel, payload) { return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({ mainType: 'parallelAxis', query: payload })[0] === axisModel; } function getCoverInfoList(axisModel) { var axis = axisModel.axis; return zrUtil.map(axisModel.activeIntervals, function (interval) { return { brushType: 'lineX', panelId: 'pl', range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)] }; }); } function getCoordSysModel(axisModel, ecModel) { return ecModel.getComponent('parallel', axisModel.get('parallelIndex')); } var _default = AxisView; module.exports = _default; /***/ }), /* 696 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/BrushController.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Eventful = __webpack_require__(/*! zrender/lib/mixin/Eventful */ 407); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var interactionMutex = __webpack_require__(/*! ./interactionMutex */ 622); var DataDiffer = __webpack_require__(/*! ../../data/DataDiffer */ 526); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var curry = zrUtil.curry; var each = zrUtil.each; var map = zrUtil.map; var mathMin = Math.min; var mathMax = Math.max; var mathPow = Math.pow; var COVER_Z = 10000; var UNSELECT_THRESHOLD = 6; var MIN_RESIZE_LINE_WIDTH = 6; var MUTEX_RESOURCE_KEY = 'globalPan'; var DIRECTION_MAP = { w: [0, 0], e: [0, 1], n: [1, 0], s: [1, 1] }; var CURSOR_MAP = { w: 'ew', e: 'ew', n: 'ns', s: 'ns', ne: 'nesw', sw: 'nesw', nw: 'nwse', se: 'nwse' }; var DEFAULT_BRUSH_OPT = { brushStyle: { lineWidth: 2, stroke: 'rgba(0,0,0,0.3)', fill: 'rgba(0,0,0,0.1)' }, transformable: true, brushMode: 'single', removeOnClick: false }; var baseUID = 0; /** * @alias module:echarts/component/helper/BrushController * @constructor * @mixin {module:zrender/mixin/Eventful} * @event module:echarts/component/helper/BrushController#brush * params: * areas: Array., coord relates to container group, * If no container specified, to global. * opt { * isEnd: boolean, * removeOnClick: boolean * } * * @param {module:zrender/zrender~ZRender} zr */ function BrushController(zr) { Eventful.call(this); /** * @type {module:zrender/zrender~ZRender} * @private */ this._zr = zr; /** * @type {module:zrender/container/Group} * @readOnly */ this.group = new graphic.Group(); /** * Only for drawing (after enabledBrush). * 'line', 'rect', 'polygon' or false * If passing false/null/undefined, disable brush. * If passing 'auto', determined by panel.defaultBrushType * @private * @type {string} */ this._brushType; /** * Only for drawing (after enabledBrush). * * @private * @type {Object} */ this._brushOption; /** * @private * @type {Object} */ this._panels; /** * @private * @type {Array.} */ this._track = []; /** * @private * @type {boolean} */ this._dragging; /** * @private * @type {Array} */ this._covers = []; /** * @private * @type {moudule:zrender/container/Group} */ this._creatingCover; /** * `true` means global panel * @private * @type {module:zrender/container/Group|boolean} */ this._creatingPanel; /** * @private * @type {boolean} */ this._enableGlobalPan; /** * @private * @type {boolean} */ /** * @private * @type {string} */ this._uid = 'brushController_' + baseUID++; /** * @private * @type {Object} */ this._handlers = {}; each(pointerHandlers, function (handler, eventName) { this._handlers[eventName] = zrUtil.bind(handler, this); }, this); } BrushController.prototype = { constructor: BrushController, /** * If set to null/undefined/false, select disabled. * @param {Object} brushOption * @param {string|boolean} brushOption.brushType 'line', 'rect', 'polygon' or false * If passing false/null/undefined, disable brush. * If passing 'auto', determined by panel.defaultBrushType. * ('auto' can not be used in global panel) * @param {number} [brushOption.brushMode='single'] 'single' or 'multiple' * @param {boolean} [brushOption.transformable=true] * @param {boolean} [brushOption.removeOnClick=false] * @param {Object} [brushOption.brushStyle] * @param {number} [brushOption.brushStyle.width] * @param {number} [brushOption.brushStyle.lineWidth] * @param {string} [brushOption.brushStyle.stroke] * @param {string} [brushOption.brushStyle.fill] * @param {number} [brushOption.z] */ enableBrush: function enableBrush(brushOption) { this._brushType && doDisableBrush(this); brushOption.brushType && doEnableBrush(this, brushOption); return this; }, /** * @param {Array.} panelOpts If not pass, it is global brush. * Each items: { * panelId, // mandatory. * clipPath, // mandatory. function. * isTargetByCursor, // mandatory. function. * defaultBrushType, // optional, only used when brushType is 'auto'. * getLinearBrushOtherExtent, // optional. function. * } */ setPanels: function setPanels(panelOpts) { if (panelOpts && panelOpts.length) { var panels = this._panels = {}; zrUtil.each(panelOpts, function (panelOpts) { panels[panelOpts.panelId] = zrUtil.clone(panelOpts); }); } else { this._panels = null; } return this; }, /** * @param {Object} [opt] * @return {boolean} [opt.enableGlobalPan=false] */ mount: function mount(opt) { opt = opt || {}; this._enableGlobalPan = opt.enableGlobalPan; var thisGroup = this.group; this._zr.add(thisGroup); thisGroup.attr({ position: opt.position || [0, 0], rotation: opt.rotation || 0, scale: opt.scale || [1, 1] }); this._transform = thisGroup.getLocalTransform(); return this; }, eachCover: function eachCover(cb, context) { each(this._covers, cb, context); }, /** * Update covers. * @param {Array.} brushOptionList Like: * [ * {id: 'xx', brushType: 'line', range: [23, 44], brushStyle, transformable}, * {id: 'yy', brushType: 'rect', range: [[23, 44], [23, 54]]}, * ... * ] * `brushType` is required in each cover info. (can not be 'auto') * `id` is not mandatory. * `brushStyle`, `transformable` is not mandatory, use DEFAULT_BRUSH_OPT by default. * If brushOptionList is null/undefined, all covers removed. */ updateCovers: function updateCovers(brushOptionList) { brushOptionList = zrUtil.map(brushOptionList, function (brushOption) { return zrUtil.merge(zrUtil.clone(DEFAULT_BRUSH_OPT), brushOption, true); }); var tmpIdPrefix = '\0-brush-index-'; var oldCovers = this._covers; var newCovers = this._covers = []; var controller = this; var creatingCover = this._creatingCover; new DataDiffer(oldCovers, brushOptionList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute(); return this; function getKey(brushOption, index) { return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType; } function oldGetKey(cover, index) { return getKey(cover.__brushOption, index); } function addOrUpdate(newIndex, oldIndex) { var newBrushOption = brushOptionList[newIndex]; // Consider setOption in event listener of brushSelect, // where updating cover when creating should be forbiden. if (oldIndex != null && oldCovers[oldIndex] === creatingCover) { newCovers[newIndex] = oldCovers[oldIndex]; } else { var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushOption, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushOption)); updateCoverAfterCreation(controller, cover); } } function remove(oldIndex) { if (oldCovers[oldIndex] !== creatingCover) { controller.group.remove(oldCovers[oldIndex]); } } }, unmount: function unmount() { this.enableBrush(false); // container may 'removeAll' outside. clearCovers(this); this._zr.remove(this.group); return this; }, dispose: function dispose() { this.unmount(); this.off(); } }; zrUtil.mixin(BrushController, Eventful); function doEnableBrush(controller, brushOption) { var zr = controller._zr; // Consider roam, which takes globalPan too. if (!controller._enableGlobalPan) { interactionMutex.take(zr, MUTEX_RESOURCE_KEY, controller._uid); } mountHandlers(zr, controller._handlers); controller._brushType = brushOption.brushType; controller._brushOption = zrUtil.merge(zrUtil.clone(DEFAULT_BRUSH_OPT), brushOption, true); } function doDisableBrush(controller) { var zr = controller._zr; interactionMutex.release(zr, MUTEX_RESOURCE_KEY, controller._uid); unmountHandlers(zr, controller._handlers); controller._brushType = controller._brushOption = null; } function mountHandlers(zr, handlers) { each(handlers, function (handler, eventName) { zr.on(eventName, handler); }); } function unmountHandlers(zr, handlers) { each(handlers, function (handler, eventName) { zr.off(eventName, handler); }); } function createCover(controller, brushOption) { var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption); cover.__brushOption = brushOption; updateZ(cover, brushOption); controller.group.add(cover); return cover; } function endCreating(controller, creatingCover) { var coverRenderer = getCoverRenderer(creatingCover); if (coverRenderer.endCreating) { coverRenderer.endCreating(controller, creatingCover); updateZ(creatingCover, creatingCover.__brushOption); } return creatingCover; } function updateCoverShape(controller, cover) { var brushOption = cover.__brushOption; getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption); } function updateZ(cover, brushOption) { var z = brushOption.z; z == null && (z = COVER_Z); cover.traverse(function (el) { el.z = z; el.z2 = z; // Consider in given container. }); } function updateCoverAfterCreation(controller, cover) { getCoverRenderer(cover).updateCommon(controller, cover); updateCoverShape(controller, cover); } function getCoverRenderer(cover) { return coverRenderers[cover.__brushOption.brushType]; } // return target panel or `true` (means global panel) function getPanelByPoint(controller, e, localCursorPoint) { var panels = controller._panels; if (!panels) { return true; // Global panel } var panel; var transform = controller._transform; each(panels, function (pn) { pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn); }); return panel; } // Return a panel or true function getPanelByCover(controller, cover) { var panels = controller._panels; if (!panels) { return true; // Global panel } var panelId = cover.__brushOption.panelId; // User may give cover without coord sys info, // which is then treated as global panel. return panelId != null ? panels[panelId] : true; } function clearCovers(controller) { var covers = controller._covers; var originalLength = covers.length; each(covers, function (cover) { controller.group.remove(cover); }, controller); covers.length = 0; return !!originalLength; } function trigger(controller, opt) { var areas = map(controller._covers, function (cover) { var brushOption = cover.__brushOption; var range = zrUtil.clone(brushOption.range); return { brushType: brushOption.brushType, panelId: brushOption.panelId, range: range }; }); controller.trigger('brush', areas, { isEnd: !!opt.isEnd, removeOnClick: !!opt.removeOnClick }); } function shouldShowCover(controller) { var track = controller._track; if (!track.length) { return false; } var p2 = track[track.length - 1]; var p1 = track[0]; var dx = p2[0] - p1[0]; var dy = p2[1] - p1[1]; var dist = mathPow(dx * dx + dy * dy, 0.5); return dist > UNSELECT_THRESHOLD; } function getTrackEnds(track) { var tail = track.length - 1; tail < 0 && (tail = 0); return [track[0], track[tail]]; } function createBaseRectCover(doDrift, controller, brushOption, edgeNames) { var cover = new graphic.Group(); cover.add(new graphic.Rect({ name: 'main', style: makeStyle(brushOption), silent: true, draggable: true, cursor: 'move', drift: curry(doDrift, controller, cover, 'nswe'), ondragend: curry(trigger, controller, { isEnd: true }) })); each(edgeNames, function (name) { cover.add(new graphic.Rect({ name: name, style: { opacity: 0 }, draggable: true, silent: true, invisible: true, drift: curry(doDrift, controller, cover, name), ondragend: curry(trigger, controller, { isEnd: true }) })); }); return cover; } function updateBaseRect(controller, cover, localRange, brushOption) { var lineWidth = brushOption.brushStyle.lineWidth || 0; var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH); var x = localRange[0][0]; var y = localRange[1][0]; var xa = x - lineWidth / 2; var ya = y - lineWidth / 2; var x2 = localRange[0][1]; var y2 = localRange[1][1]; var x2a = x2 - handleSize + lineWidth / 2; var y2a = y2 - handleSize + lineWidth / 2; var width = x2 - x; var height = y2 - y; var widtha = width + lineWidth; var heighta = height + lineWidth; updateRectShape(controller, cover, 'main', x, y, width, height); if (brushOption.transformable) { updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta); updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta); updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize); updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize); updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize); updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize); updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize); updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize); } } function updateCommon(controller, cover) { var brushOption = cover.__brushOption; var transformable = brushOption.transformable; var mainEl = cover.childAt(0); mainEl.useStyle(makeStyle(brushOption)); mainEl.attr({ silent: !transformable, cursor: transformable ? 'move' : 'default' }); each(['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw'], function (name) { var el = cover.childOfName(name); var globalDir = getGlobalDirection(controller, name); el && el.attr({ silent: !transformable, invisible: !transformable, cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null }); }); } function updateRectShape(controller, cover, name, x, y, w, h) { var el = cover.childOfName(name); el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]]))); } function makeStyle(brushOption) { return zrUtil.defaults({ strokeNoScale: true }, brushOption.brushStyle); } function formatRectRange(x, y, x2, y2) { var min = [mathMin(x, x2), mathMin(y, y2)]; var max = [mathMax(x, x2), mathMax(y, y2)]; return [[min[0], max[0]], // x range [min[1], max[1]] // y range ]; } function getTransform(controller) { return graphic.getTransform(controller.group); } function getGlobalDirection(controller, localDirection) { if (localDirection.length > 1) { localDirection = localDirection.split(''); var globalDir = [getGlobalDirection(controller, localDirection[0]), getGlobalDirection(controller, localDirection[1])]; (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse(); return globalDir.join(''); } else { var map = { w: 'left', e: 'right', n: 'top', s: 'bottom' }; var inverseMap = { left: 'w', right: 'e', top: 'n', bottom: 's' }; var globalDir = graphic.transformDirection(map[localDirection], getTransform(controller)); return inverseMap[globalDir]; } } function driftRect(toRectRange, fromRectRange, controller, cover, name, dx, dy, e) { var brushOption = cover.__brushOption; var rectRange = toRectRange(brushOption.range); var localDelta = toLocalDelta(controller, dx, dy); each(name.split(''), function (namePart) { var ind = DIRECTION_MAP[namePart]; rectRange[ind[0]][ind[1]] += localDelta[ind[0]]; }); brushOption.range = fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1])); updateCoverAfterCreation(controller, cover); trigger(controller, { isEnd: false }); } function driftPolygon(controller, cover, dx, dy, e) { var range = cover.__brushOption.range; var localDelta = toLocalDelta(controller, dx, dy); each(range, function (point) { point[0] += localDelta[0]; point[1] += localDelta[1]; }); updateCoverAfterCreation(controller, cover); trigger(controller, { isEnd: false }); } function toLocalDelta(controller, dx, dy) { var thisGroup = controller.group; var localD = thisGroup.transformCoordToLocal(dx, dy); var localZero = thisGroup.transformCoordToLocal(0, 0); return [localD[0] - localZero[0], localD[1] - localZero[1]]; } function clipByPanel(controller, cover, data) { var panel = getPanelByCover(controller, cover); return panel && panel !== true ? panel.clipPath(data, controller._transform) : zrUtil.clone(data); } function pointsToRect(points) { var xmin = mathMin(points[0][0], points[1][0]); var ymin = mathMin(points[0][1], points[1][1]); var xmax = mathMax(points[0][0], points[1][0]); var ymax = mathMax(points[0][1], points[1][1]); return { x: xmin, y: ymin, width: xmax - xmin, height: ymax - ymin }; } function resetCursor(controller, e, localCursorPoint) { if ( // Check active !controller._brushType // resetCursor should be always called when mouse is in zr area, // but not called when mouse is out of zr area to avoid bad influence // if `mousemove`, `mouseup` are triggered from `document` event. || isOutsideZrArea(controller, e)) { return; } var zr = controller._zr; var covers = controller._covers; var currPanel = getPanelByPoint(controller, e, localCursorPoint); // Check whether in covers. if (!controller._dragging) { for (var i = 0; i < covers.length; i++) { var brushOption = covers[i].__brushOption; if (currPanel && (currPanel === true || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) { // Use cursor style set on cover. return; } } } currPanel && zr.setCursorStyle('crosshair'); } function preventDefault(e) { var rawE = e.event; rawE.preventDefault && rawE.preventDefault(); } function mainShapeContain(cover, x, y) { return cover.childOfName('main').contain(x, y); } function updateCoverByMouse(controller, e, localCursorPoint, isEnd) { var creatingCover = controller._creatingCover; var panel = controller._creatingPanel; var thisBrushOption = controller._brushOption; var eventParams; controller._track.push(localCursorPoint.slice()); if (shouldShowCover(controller) || creatingCover) { if (panel && !creatingCover) { thisBrushOption.brushMode === 'single' && clearCovers(controller); var brushOption = zrUtil.clone(thisBrushOption); brushOption.brushType = determineBrushType(brushOption.brushType, panel); brushOption.panelId = panel === true ? null : panel.panelId; creatingCover = controller._creatingCover = createCover(controller, brushOption); controller._covers.push(creatingCover); } if (creatingCover) { var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)]; var coverBrushOption = creatingCover.__brushOption; coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track)); if (isEnd) { endCreating(controller, creatingCover); coverRenderer.updateCommon(controller, creatingCover); } updateCoverShape(controller, creatingCover); eventParams = { isEnd: isEnd }; } } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) { // Help user to remove covers easily, only by a tiny drag, in 'single' mode. // But a single click do not clear covers, because user may have casual // clicks (for example, click on other component and do not expect covers // disappear). // Only some cover removed, trigger action, but not every click trigger action. if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) { eventParams = { isEnd: isEnd, removeOnClick: true }; } } return eventParams; } function determineBrushType(brushType, panel) { if (brushType === 'auto') { return panel.defaultBrushType; } return brushType; } var pointerHandlers = { mousedown: function mousedown(e) { if (this._dragging) { // In case some browser do not support globalOut, // and release mose out side the browser. handleDragEnd(this, e); } else if (!e.target || !e.target.draggable) { preventDefault(e); var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY); this._creatingCover = null; var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint); if (panel) { this._dragging = true; this._track = [localCursorPoint.slice()]; } } }, mousemove: function mousemove(e) { var x = e.offsetX; var y = e.offsetY; var localCursorPoint = this.group.transformCoordToLocal(x, y); resetCursor(this, e, localCursorPoint); if (this._dragging) { preventDefault(e); var eventParams = updateCoverByMouse(this, e, localCursorPoint, false); eventParams && trigger(this, eventParams); } }, mouseup: function mouseup(e) { handleDragEnd(this, e); } }; function handleDragEnd(controller, e) { if (controller._dragging) { preventDefault(e); var x = e.offsetX; var y = e.offsetY; var localCursorPoint = controller.group.transformCoordToLocal(x, y); var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true); controller._dragging = false; controller._track = []; controller._creatingCover = null; // trigger event shoule be at final, after procedure will be nested. eventParams && trigger(controller, eventParams); } } function isOutsideZrArea(controller, x, y) { var zr = controller._zr; return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight(); } /** * key: brushType * @type {Object} */ var coverRenderers = { lineX: getLineRenderer(0), lineY: getLineRenderer(1), rect: { createCover: function createCover(controller, brushOption) { return createBaseRectCover(curry(driftRect, function (range) { return range; }, function (range) { return range; }), controller, brushOption, ['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw']); }, getCreatingRange: function getCreatingRange(localTrack) { var ends = getTrackEnds(localTrack); return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]); }, updateCoverShape: function updateCoverShape(controller, cover, localRange, brushOption) { updateBaseRect(controller, cover, localRange, brushOption); }, updateCommon: updateCommon, contain: mainShapeContain }, polygon: { createCover: function createCover(controller, brushOption) { var cover = new graphic.Group(); // Do not use graphic.Polygon because graphic.Polyline do not close the // border of the shape when drawing, which is a better experience for user. cover.add(new graphic.Polyline({ name: 'main', style: makeStyle(brushOption), silent: true })); return cover; }, getCreatingRange: function getCreatingRange(localTrack) { return localTrack; }, endCreating: function endCreating(controller, cover) { cover.remove(cover.childAt(0)); // Use graphic.Polygon close the shape. cover.add(new graphic.Polygon({ name: 'main', draggable: true, drift: curry(driftPolygon, controller, cover), ondragend: curry(trigger, controller, { isEnd: true }) })); }, updateCoverShape: function updateCoverShape(controller, cover, localRange, brushOption) { cover.childAt(0).setShape({ points: clipByPanel(controller, cover, localRange) }); }, updateCommon: updateCommon, contain: mainShapeContain } }; function getLineRenderer(xyIndex) { return { createCover: function createCover(controller, brushOption) { return createBaseRectCover(curry(driftRect, function (range) { var rectRange = [range, [0, 100]]; xyIndex && rectRange.reverse(); return rectRange; }, function (rectRange) { return rectRange[xyIndex]; }), controller, brushOption, [['w', 'e'], ['n', 's']][xyIndex]); }, getCreatingRange: function getCreatingRange(localTrack) { var ends = getTrackEnds(localTrack); var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]); var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]); return [min, max]; }, updateCoverShape: function updateCoverShape(controller, cover, localRange, brushOption) { var otherExtent; // If brushWidth not specified, fit the panel. var panel = getPanelByCover(controller, cover); if (panel !== true && panel.getLinearBrushOtherExtent) { otherExtent = panel.getLinearBrushOtherExtent(xyIndex, controller._transform); } else { var zr = controller._zr; otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]]; } var rectRange = [localRange, otherExtent]; xyIndex && rectRange.reverse(); updateBaseRect(controller, cover, rectRange, brushOption); }, updateCommon: updateCommon, contain: mainShapeContain }; } var _default = BrushController; module.exports = _default; /***/ }), /* 697 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/brushHelper.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var _cursorHelper = __webpack_require__(/*! ./cursorHelper */ 624); var onIrrelevantElement = _cursorHelper.onIrrelevantElement; var graphicUtil = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function makeRectPanelClipPath(rect) { rect = normalizeRect(rect); return function (localPoints, transform) { return graphicUtil.clipPointsByRect(localPoints, rect); }; } function makeLinearBrushOtherExtent(rect, specifiedXYIndex) { rect = normalizeRect(rect); return function (xyIndex) { var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex; var brushWidth = idx ? rect.width : rect.height; var base = idx ? rect.x : rect.y; return [base, base + (brushWidth || 0)]; }; } function makeRectIsTargetByCursor(rect, api, targetModel) { rect = normalizeRect(rect); return function (e, localCursorPoint, transform) { return rect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel); }; } // Consider width/height is negative. function normalizeRect(rect) { return BoundingRect.create(rect); } exports.makeRectPanelClipPath = makeRectPanelClipPath; exports.makeLinearBrushOtherExtent = makeLinearBrushOtherExtent; exports.makeRectIsTargetByCursor = makeRectIsTargetByCursor; /***/ }), /* 698 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/parallel/ParallelSeries.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; var createHashMap = _util.createHashMap; var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var createListFromArray = __webpack_require__(/*! ../helper/createListFromArray */ 524); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.parallel', dependencies: ['parallel'], visualColorAccessPath: 'lineStyle.color', getInitialData: function getInitialData(option, ecModel) { var source = this.getSource(); setEncodeAndDimensions(source, this); return createListFromArray(source, this); }, /** * User can get data raw indices on 'axisAreaSelected' event received. * * @public * @param {string} activeState 'active' or 'inactive' or 'normal' * @return {Array.} Raw indices */ getRawIndicesByActiveState: function getRawIndicesByActiveState(activeState) { var coordSys = this.coordinateSystem; var data = this.getData(); var indices = []; coordSys.eachActiveState(data, function (theActiveState, dataIndex) { if (activeState === theActiveState) { indices.push(data.getRawIndex(dataIndex)); } }); return indices; }, defaultOption: { zlevel: 0, // 一级层叠 z: 2, // 二级层叠 coordinateSystem: 'parallel', parallelIndex: 0, label: { show: false }, inactiveOpacity: 0.05, activeOpacity: 1, lineStyle: { width: 1, opacity: 0.45, type: 'solid' }, emphasis: { label: { show: false } }, progressive: 500, smooth: false, // true | false | number animationEasing: 'linear' } }); function setEncodeAndDimensions(source, seriesModel) { // The mapping of parallelAxis dimension to data dimension can // be specified in parallelAxis.option.dim. For example, if // parallelAxis.option.dim is 'dim3', it mapping to the third // dimension of data. But `data.encode` has higher priority. // Moreover, parallelModel.dimension should not be regarded as data // dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6']; if (source.encodeDefine) { return; } var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex')); if (!parallelModel) { return; } var encodeDefine = source.encodeDefine = createHashMap(); each(parallelModel.dimensions, function (axisDim) { var dataDimIndex = convertDimNameToNumber(axisDim); encodeDefine.set(axisDim, dataDimIndex); }); } function convertDimNameToNumber(dimName) { return +dimName.replace('dim', ''); } module.exports = _default; /***/ }), /* 699 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/parallel/ParallelView.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DEFAULT_SMOOTH = 0.3; var ParallelView = ChartView.extend({ type: 'parallel', init: function init() { /** * @type {module:zrender/container/Group} * @private */ this._dataGroup = new graphic.Group(); this.group.add(this._dataGroup); /** * @type {module:echarts/data/List} */ this._data; /** * @type {boolean} */ this._initialized; }, /** * @override */ render: function render(seriesModel, ecModel, api, payload) { var dataGroup = this._dataGroup; var data = seriesModel.getData(); var oldData = this._data; var coordSys = seriesModel.coordinateSystem; var dimensions = coordSys.dimensions; var seriesScope = makeSeriesScope(seriesModel); data.diff(oldData).add(add).update(update).remove(remove).execute(); function add(newDataIndex) { var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys); updateElCommon(line, data, newDataIndex, seriesScope); } function update(newDataIndex, oldDataIndex) { var line = oldData.getItemGraphicEl(oldDataIndex); var points = createLinePoints(data, newDataIndex, dimensions, coordSys); data.setItemGraphicEl(newDataIndex, line); var animationModel = payload && payload.animation === false ? null : seriesModel; graphic.updateProps(line, { shape: { points: points } }, animationModel, newDataIndex); updateElCommon(line, data, newDataIndex, seriesScope); } function remove(oldDataIndex) { var line = oldData.getItemGraphicEl(oldDataIndex); dataGroup.remove(line); } // First create if (!this._initialized) { this._initialized = true; var clipPath = createGridClipShape(coordSys, seriesModel, function () { // Callback will be invoked immediately if there is no animation setTimeout(function () { dataGroup.removeClipPath(); }); }); dataGroup.setClipPath(clipPath); } this._data = data; }, incrementalPrepareRender: function incrementalPrepareRender(seriesModel, ecModel, api) { this._initialized = true; this._data = null; this._dataGroup.removeAll(); }, incrementalRender: function incrementalRender(taskParams, seriesModel, ecModel) { var data = seriesModel.getData(); var coordSys = seriesModel.coordinateSystem; var dimensions = coordSys.dimensions; var seriesScope = makeSeriesScope(seriesModel); for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) { var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys); line.incremental = true; updateElCommon(line, data, dataIndex, seriesScope); } }, dispose: function dispose() {}, // _renderForProgressive: function (seriesModel) { // var dataGroup = this._dataGroup; // var data = seriesModel.getData(); // var oldData = this._data; // var coordSys = seriesModel.coordinateSystem; // var dimensions = coordSys.dimensions; // var option = seriesModel.option; // var progressive = option.progressive; // var smooth = option.smooth ? SMOOTH : null; // // In progressive animation is disabled, so use simple data diff, // // which effects performance less. // // (Typically performance for data with length 7000+ like: // // simpleDiff: 60ms, addEl: 184ms, // // in RMBP 2.4GHz intel i7, OSX 10.9 chrome 50.0.2661.102 (64-bit)) // if (simpleDiff(oldData, data, dimensions)) { // dataGroup.removeAll(); // data.each(function (dataIndex) { // addEl(data, dataGroup, dataIndex, dimensions, coordSys); // }); // } // updateElCommon(data, progressive, smooth); // // Consider switch between progressive and not. // data.__plProgressive = true; // this._data = data; // }, /** * @override */ remove: function remove() { this._dataGroup && this._dataGroup.removeAll(); this._data = null; } }); function createGridClipShape(coordSys, seriesModel, cb) { var parallelModel = coordSys.model; var rect = coordSys.getRect(); var rectEl = new graphic.Rect({ shape: { x: rect.x, y: rect.y, width: rect.width, height: rect.height } }); var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height'; rectEl.setShape(dim, 0); graphic.initProps(rectEl, { shape: { width: rect.width, height: rect.height } }, seriesModel, cb); return rectEl; } function createLinePoints(data, dataIndex, dimensions, coordSys) { var points = []; for (var i = 0; i < dimensions.length; i++) { var dimName = dimensions[i]; var value = data.get(data.mapDimension(dimName), dataIndex); if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) { points.push(coordSys.dataToPoint(value, dimName)); } } return points; } function addEl(data, dataGroup, dataIndex, dimensions, coordSys) { var points = createLinePoints(data, dataIndex, dimensions, coordSys); var line = new graphic.Polyline({ shape: { points: points }, silent: true, z2: 10 }); dataGroup.add(line); data.setItemGraphicEl(dataIndex, line); return line; } function makeSeriesScope(seriesModel) { var smooth = seriesModel.get('smooth', true); smooth === true && (smooth = DEFAULT_SMOOTH); return { lineStyle: seriesModel.getModel('lineStyle').getLineStyle(), smooth: smooth != null ? smooth : DEFAULT_SMOOTH }; } function updateElCommon(el, data, dataIndex, seriesScope) { var lineStyle = seriesScope.lineStyle; if (data.hasItemOption) { var lineStyleModel = data.getItemModel(dataIndex).getModel('lineStyle'); lineStyle = lineStyleModel.getLineStyle(); } el.useStyle(lineStyle); var elStyle = el.style; elStyle.fill = null; // lineStyle.color have been set to itemVisual in module:echarts/visual/seriesColor. elStyle.stroke = data.getItemVisual(dataIndex, 'color'); // lineStyle.opacity have been set to itemVisual in parallelVisual. elStyle.opacity = data.getItemVisual(dataIndex, 'opacity'); seriesScope.smooth && (el.shape.smooth = seriesScope.smooth); } // function simpleDiff(oldData, newData, dimensions) { // var oldLen; // if (!oldData // || !oldData.__plProgressive // || (oldLen = oldData.count()) !== newData.count() // ) { // return true; // } // var dimLen = dimensions.length; // for (var i = 0; i < oldLen; i++) { // for (var j = 0; j < dimLen; j++) { // if (oldData.get(dimensions[j], i) !== newData.get(dimensions[j], i)) { // return true; // } // } // } // return false; // } // FIXME // 公用方法? function isEmptyValue(val, axisType) { return axisType === 'category' ? val == null : val == null || isNaN(val); // axisType === 'value' } var _default = ParallelView; module.exports = _default; /***/ }), /* 700 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/parallel/parallelVisual.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var opacityAccessPath = ['lineStyle', 'normal', 'opacity']; var _default = { seriesType: 'parallel', reset: function reset(seriesModel, ecModel, api) { var itemStyleModel = seriesModel.getModel('itemStyle'); var lineStyleModel = seriesModel.getModel('lineStyle'); var globalColors = ecModel.get('color'); var color = lineStyleModel.get('color') || itemStyleModel.get('color') || globalColors[seriesModel.seriesIndex % globalColors.length]; var inactiveOpacity = seriesModel.get('inactiveOpacity'); var activeOpacity = seriesModel.get('activeOpacity'); var lineStyle = seriesModel.getModel('lineStyle').getLineStyle(); var coordSys = seriesModel.coordinateSystem; var data = seriesModel.getData(); var opacityMap = { normal: lineStyle.opacity, active: activeOpacity, inactive: inactiveOpacity }; data.setVisual('color', color); function progress(params, data) { coordSys.eachActiveState(data, function (activeState, dataIndex) { var opacity = opacityMap[activeState]; if (activeState === 'normal' && data.hasItemOption) { var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true); itemOpacity != null && (opacity = itemOpacity); } data.setItemVisual(dataIndex, 'opacity', opacity); }, params.start, params.end); } return { progress: progress }; } }; module.exports = _default; /***/ }), /* 701 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sankey.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./sankey/SankeySeries */ 702); __webpack_require__(/*! ./sankey/SankeyView */ 703); __webpack_require__(/*! ./sankey/sankeyAction */ 704); var sankeyLayout = __webpack_require__(/*! ./sankey/sankeyLayout */ 705); var sankeyVisual = __webpack_require__(/*! ./sankey/sankeyVisual */ 706); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerLayout(sankeyLayout); echarts.registerVisual(sankeyVisual); /***/ }), /* 702 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sankey/SankeySeries.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var createGraphFromNodeEdge = __webpack_require__(/*! ../helper/createGraphFromNodeEdge */ 655); var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var Model = __webpack_require__(/*! ../../model/Model */ 445); var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SankeySeries = SeriesModel.extend({ type: 'series.sankey', layoutInfo: null, levelModels: null, /** * Init a graph data structure from data in option series * * @param {Object} option the object used to config echarts view * @return {module:echarts/data/List} storage initial data */ getInitialData: function getInitialData(option, ecModel) { var links = option.edges || option.links; var nodes = option.data || option.nodes; var levels = option.levels; var levelModels = this.levelModels = {}; for (var i = 0; i < levels.length; i++) { if (levels[i].depth != null && levels[i].depth >= 0) { levelModels[levels[i].depth] = new Model(levels[i], this, ecModel); } else {} } if (nodes && links) { var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink); return graph.data; } function beforeLink(nodeData, edgeData) { nodeData.wrapMethod('getItemModel', function (model, idx) { model.customizeGetParent(function (path) { var parentModel = this.parentModel; var nodeDepth = parentModel.getData().getItemLayout(idx).depth; var levelModel = parentModel.levelModels[nodeDepth]; return levelModel || this.parentModel; }); return model; }); edgeData.wrapMethod('getItemModel', function (model, idx) { model.customizeGetParent(function (path) { var parentModel = this.parentModel; var edge = parentModel.getGraph().getEdgeByIndex(idx); var depth = edge.node1.getLayout().depth; var levelModel = parentModel.levelModels[depth]; return levelModel || this.parentModel; }); return model; }); } }, setNodePosition: function setNodePosition(dataIndex, localPosition) { var dataItem = this.option.data[dataIndex]; dataItem.localX = localPosition[0]; dataItem.localY = localPosition[1]; }, /** * Return the graphic data structure * * @return {module:echarts/data/Graph} graphic data structure */ getGraph: function getGraph() { return this.getData().graph; }, /** * Get edge data of graphic data structure * * @return {module:echarts/data/List} data structure of list */ getEdgeData: function getEdgeData() { return this.getGraph().edgeData; }, /** * @override */ formatTooltip: function formatTooltip(dataIndex, multipleSeries, dataType) { // dataType === 'node' or empty do not show tooltip by default if (dataType === 'edge') { var params = this.getDataParams(dataIndex, dataType); var rawDataOpt = params.data; var html = rawDataOpt.source + ' -- ' + rawDataOpt.target; if (params.value) { html += ' : ' + params.value; } return encodeHTML(html); } else if (dataType === 'node') { var node = this.getGraph().getNodeByIndex(dataIndex); var value = node.getLayout().value; var name = this.getDataParams(dataIndex, dataType).data.name; if (value) { var html = name + ' : ' + value; } return encodeHTML(html); } return SankeySeries.superCall(this, 'formatTooltip', dataIndex, multipleSeries); }, optionUpdated: function optionUpdated() { var option = this.option; if (option.focusNodeAdjacency === true) { option.focusNodeAdjacency = 'allEdges'; } }, // Override Series.getDataParams() getDataParams: function getDataParams(dataIndex, dataType) { var params = SankeySeries.superCall(this, 'getDataParams', dataIndex, dataType); if (params.value == null && dataType === 'node') { var node = this.getGraph().getNodeByIndex(dataIndex); var nodeValue = node.getLayout().value; params.value = nodeValue; } return params; }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: 'view', layout: null, // The position of the whole view left: '5%', top: '5%', right: '20%', bottom: '5%', // Value can be 'vertical' orient: 'horizontal', // The dx of the node nodeWidth: 20, // The vertical distance between two nodes nodeGap: 8, // Control if the node can move or not draggable: true, // Value can be 'inEdges', 'outEdges', 'allEdges', true (the same as 'allEdges'). focusNodeAdjacency: false, // The number of iterations to change the position of the node layoutIterations: 32, label: { show: true, position: 'right', color: '#000', fontSize: 12 }, levels: [], // Value can be 'left' or 'right' nodeAlign: 'justify', itemStyle: { borderWidth: 1, borderColor: '#333' }, lineStyle: { color: '#314656', opacity: 0.2, curveness: 0.5 }, emphasis: { label: { show: true }, lineStyle: { opacity: 0.5 } }, animationEasing: 'linear', animationDuration: 1000 } }); var _default = SankeySeries; module.exports = _default; /***/ }), /* 703 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sankey/SankeyView.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var nodeOpacityPath = ['itemStyle', 'opacity']; var hoverNodeOpacityPath = ['emphasis', 'itemStyle', 'opacity']; var lineOpacityPath = ['lineStyle', 'opacity']; var hoverLineOpacityPath = ['emphasis', 'lineStyle', 'opacity']; function getItemOpacity(item, opacityPath) { return item.getVisual('opacity') || item.getModel().get(opacityPath); } function fadeOutItem(item, opacityPath, opacityRatio) { var el = item.getGraphicEl(); var opacity = getItemOpacity(item, opacityPath); if (opacityRatio != null) { opacity == null && (opacity = 1); opacity *= opacityRatio; } el.downplay && el.downplay(); el.traverse(function (child) { if (child.type !== 'group') { child.setStyle('opacity', opacity); } }); } function fadeInItem(item, opacityPath) { var opacity = getItemOpacity(item, opacityPath); var el = item.getGraphicEl(); el.traverse(function (child) { if (child.type !== 'group') { child.setStyle('opacity', opacity); } }); // Support emphasis here. el.highlight && el.highlight(); } var SankeyShape = graphic.extendShape({ shape: { x1: 0, y1: 0, x2: 0, y2: 0, cpx1: 0, cpy1: 0, cpx2: 0, cpy2: 0, extent: 0, orient: '' }, buildPath: function buildPath(ctx, shape) { var extent = shape.extent; ctx.moveTo(shape.x1, shape.y1); ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2); if (shape.orient === 'vertical') { ctx.lineTo(shape.x2 + extent, shape.y2); ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1); } else { ctx.lineTo(shape.x2, shape.y2 + extent); ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent); } ctx.closePath(); }, highlight: function highlight() { this.trigger('emphasis'); }, downplay: function downplay() { this.trigger('normal'); } }); var _default = echarts.extendChartView({ type: 'sankey', /** * @private * @type {module:echarts/chart/sankey/SankeySeries} */ _model: null, /** * @private * @type {boolean} */ _focusAdjacencyDisabled: false, render: function render(seriesModel, ecModel, api) { var sankeyView = this; var graph = seriesModel.getGraph(); var group = this.group; var layoutInfo = seriesModel.layoutInfo; // view width var width = layoutInfo.width; // view height var height = layoutInfo.height; var nodeData = seriesModel.getData(); var edgeData = seriesModel.getData('edge'); var orient = seriesModel.get('orient'); this._model = seriesModel; group.removeAll(); group.attr('position', [layoutInfo.x, layoutInfo.y]); // generate a bezire Curve for each edge graph.eachEdge(function (edge) { var curve = new SankeyShape(); curve.dataIndex = edge.dataIndex; curve.seriesIndex = seriesModel.seriesIndex; curve.dataType = 'edge'; var lineStyleModel = edge.getModel('lineStyle'); var curvature = lineStyleModel.get('curveness'); var n1Layout = edge.node1.getLayout(); var node1Model = edge.node1.getModel(); var dragX1 = node1Model.get('localX'); var dragY1 = node1Model.get('localY'); var n2Layout = edge.node2.getLayout(); var node2Model = edge.node2.getModel(); var dragX2 = node2Model.get('localX'); var dragY2 = node2Model.get('localY'); var edgeLayout = edge.getLayout(); var x1; var y1; var x2; var y2; var cpx1; var cpy1; var cpx2; var cpy2; curve.shape.extent = Math.max(1, edgeLayout.dy); curve.shape.orient = orient; if (orient === 'vertical') { x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy; y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy; x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty; y2 = dragY2 != null ? dragY2 * height : n2Layout.y; cpx1 = x1; cpy1 = y1 * (1 - curvature) + y2 * curvature; cpx2 = x2; cpy2 = y1 * curvature + y2 * (1 - curvature); } else { x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx; y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy; x2 = dragX2 != null ? dragX2 * width : n2Layout.x; y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty; cpx1 = x1 * (1 - curvature) + x2 * curvature; cpy1 = y1; cpx2 = x1 * curvature + x2 * (1 - curvature); cpy2 = y2; } curve.setShape({ x1: x1, y1: y1, x2: x2, y2: y2, cpx1: cpx1, cpy1: cpy1, cpx2: cpx2, cpy2: cpy2 }); curve.setStyle(lineStyleModel.getItemStyle()); // Special color, use source node color or target node color switch (curve.style.fill) { case 'source': curve.style.fill = edge.node1.getVisual('color'); break; case 'target': curve.style.fill = edge.node2.getVisual('color'); break; } graphic.setHoverStyle(curve, edge.getModel('emphasis.lineStyle').getItemStyle()); group.add(curve); edgeData.setItemGraphicEl(edge.dataIndex, curve); }); // Generate a rect for each node graph.eachNode(function (node) { var layout = node.getLayout(); var itemModel = node.getModel(); var dragX = itemModel.get('localX'); var dragY = itemModel.get('localY'); var labelModel = itemModel.getModel('label'); var labelHoverModel = itemModel.getModel('emphasis.label'); var rect = new graphic.Rect({ shape: { x: dragX != null ? dragX * width : layout.x, y: dragY != null ? dragY * height : layout.y, width: layout.dx, height: layout.dy }, style: itemModel.getModel('itemStyle').getItemStyle() }); var hoverStyle = node.getModel('emphasis.itemStyle').getItemStyle(); graphic.setLabelStyle(rect.style, hoverStyle, labelModel, labelHoverModel, { labelFetcher: seriesModel, labelDataIndex: node.dataIndex, defaultText: node.id, isRectText: true }); rect.setStyle('fill', node.getVisual('color')); graphic.setHoverStyle(rect, hoverStyle); group.add(rect); nodeData.setItemGraphicEl(node.dataIndex, rect); rect.dataType = 'node'; }); nodeData.eachItemGraphicEl(function (el, dataIndex) { var itemModel = nodeData.getItemModel(dataIndex); if (itemModel.get('draggable')) { el.drift = function (dx, dy) { sankeyView._focusAdjacencyDisabled = true; this.shape.x += dx; this.shape.y += dy; this.dirty(); api.dispatchAction({ type: 'dragNode', seriesId: seriesModel.id, dataIndex: nodeData.getRawIndex(dataIndex), localX: this.shape.x / width, localY: this.shape.y / height }); }; el.ondragend = function () { sankeyView._focusAdjacencyDisabled = false; }; el.draggable = true; el.cursor = 'move'; } el.highlight = function () { this.trigger('emphasis'); }; el.downplay = function () { this.trigger('normal'); }; el.focusNodeAdjHandler && el.off('mouseover', el.focusNodeAdjHandler); el.unfocusNodeAdjHandler && el.off('mouseout', el.unfocusNodeAdjHandler); if (itemModel.get('focusNodeAdjacency')) { el.on('mouseover', el.focusNodeAdjHandler = function () { if (!sankeyView._focusAdjacencyDisabled) { sankeyView._clearTimer(); api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, dataIndex: el.dataIndex }); } }); el.on('mouseout', el.unfocusNodeAdjHandler = function () { if (!sankeyView._focusAdjacencyDisabled) { sankeyView._dispatchUnfocus(api); } }); } }); edgeData.eachItemGraphicEl(function (el, dataIndex) { var edgeModel = edgeData.getItemModel(dataIndex); el.focusNodeAdjHandler && el.off('mouseover', el.focusNodeAdjHandler); el.unfocusNodeAdjHandler && el.off('mouseout', el.unfocusNodeAdjHandler); if (edgeModel.get('focusNodeAdjacency')) { el.on('mouseover', el.focusNodeAdjHandler = function () { if (!sankeyView._focusAdjacencyDisabled) { sankeyView._clearTimer(); api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, edgeDataIndex: el.dataIndex }); } }); el.on('mouseout', el.unfocusNodeAdjHandler = function () { if (!sankeyView._focusAdjacencyDisabled) { sankeyView._dispatchUnfocus(api); } }); } }); if (!this._data && seriesModel.get('animation')) { group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () { group.removeClipPath(); })); } this._data = seriesModel.getData(); }, dispose: function dispose() { this._clearTimer(); }, _dispatchUnfocus: function _dispatchUnfocus(api) { var self = this; this._clearTimer(); this._unfocusDelayTimer = setTimeout(function () { self._unfocusDelayTimer = null; api.dispatchAction({ type: 'unfocusNodeAdjacency', seriesId: self._model.id }); }, 500); }, _clearTimer: function _clearTimer() { if (this._unfocusDelayTimer) { clearTimeout(this._unfocusDelayTimer); this._unfocusDelayTimer = null; } }, focusNodeAdjacency: function focusNodeAdjacency(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(); var graph = data.graph; var dataIndex = payload.dataIndex; var itemModel = data.getItemModel(dataIndex); var edgeDataIndex = payload.edgeDataIndex; if (dataIndex == null && edgeDataIndex == null) { return; } var node = graph.getNodeByIndex(dataIndex); var edge = graph.getEdgeByIndex(edgeDataIndex); graph.eachNode(function (node) { fadeOutItem(node, nodeOpacityPath, 0.1); }); graph.eachEdge(function (edge) { fadeOutItem(edge, lineOpacityPath, 0.1); }); if (node) { fadeInItem(node, hoverNodeOpacityPath); var focusNodeAdj = itemModel.get('focusNodeAdjacency'); if (focusNodeAdj === 'outEdges') { zrUtil.each(node.outEdges, function (edge) { if (edge.dataIndex < 0) { return; } fadeInItem(edge, hoverLineOpacityPath); fadeInItem(edge.node2, hoverNodeOpacityPath); }); } else if (focusNodeAdj === 'inEdges') { zrUtil.each(node.inEdges, function (edge) { if (edge.dataIndex < 0) { return; } fadeInItem(edge, hoverLineOpacityPath); fadeInItem(edge.node1, hoverNodeOpacityPath); }); } else if (focusNodeAdj === 'allEdges') { zrUtil.each(node.edges, function (edge) { if (edge.dataIndex < 0) { return; } fadeInItem(edge, hoverLineOpacityPath); edge.node1 !== node && fadeInItem(edge.node1, hoverNodeOpacityPath); edge.node2 !== node && fadeInItem(edge.node2, hoverNodeOpacityPath); }); } } if (edge) { fadeInItem(edge, hoverLineOpacityPath); fadeInItem(edge.node1, hoverNodeOpacityPath); fadeInItem(edge.node2, hoverNodeOpacityPath); } }, unfocusNodeAdjacency: function unfocusNodeAdjacency(seriesModel, ecModel, api, payload) { var graph = seriesModel.getGraph(); graph.eachNode(function (node) { fadeOutItem(node, nodeOpacityPath); }); graph.eachEdge(function (edge) { fadeOutItem(edge, lineOpacityPath); }); } }); // Add animation to the view function createGridClipShape(rect, seriesModel, cb) { var rectEl = new graphic.Rect({ shape: { x: rect.x - 10, y: rect.y - 10, width: 0, height: rect.height + 20 } }); graphic.initProps(rectEl, { shape: { width: rect.width + 20 } }, seriesModel, cb); return rectEl; } module.exports = _default; /***/ }), /* 704 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sankey/sankeyAction.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); __webpack_require__(/*! ../helper/focusNodeAdjacencyAction */ 665); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerAction({ type: 'dragNode', event: 'dragnode', // here can only use 'update' now, other value is not support in echarts. update: 'update' }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', subType: 'sankey', query: payload }, function (seriesModel) { seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]); }); }); /***/ }), /* 705 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sankey/sankeyLayout.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var layout = __webpack_require__(/*! ../../util/layout */ 488); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _model = __webpack_require__(/*! ../../util/model */ 444); var groupData = _model.groupData; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel, api, payload) { ecModel.eachSeriesByType('sankey', function (seriesModel) { var nodeWidth = seriesModel.get('nodeWidth'); var nodeGap = seriesModel.get('nodeGap'); var layoutInfo = getViewRect(seriesModel, api); seriesModel.layoutInfo = layoutInfo; var width = layoutInfo.width; var height = layoutInfo.height; var graph = seriesModel.getGraph(); var nodes = graph.nodes; var edges = graph.edges; computeNodeValues(nodes); var filteredNodes = zrUtil.filter(nodes, function (node) { return node.getLayout().value === 0; }); var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations'); var orient = seriesModel.get('orient'); var nodeAlign = seriesModel.get('nodeAlign'); layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign); }); } /** * Get the layout position of the whole view * * @param {module:echarts/model/Series} seriesModel the model object of sankey series * @param {module:echarts/ExtensionAPI} api provide the API list that the developer can call * @return {module:zrender/core/BoundingRect} size of rect to draw the sankey view */ function getViewRect(seriesModel, api) { return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); } function layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) { computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign); computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient); computeEdgeDepths(nodes, orient); } /** * Compute the value of each node by summing the associated edge's value * * @param {module:echarts/data/Graph~Node} nodes node of sankey view */ function computeNodeValues(nodes) { zrUtil.each(nodes, function (node) { var value1 = sum(node.outEdges, getEdgeValue); var value2 = sum(node.inEdges, getEdgeValue); var nodeRawValue = node.getValue() || 0; var value = Math.max(value1, value2, nodeRawValue); node.setLayout({ value: value }, true); }); } /** * Compute the x-position for each node. * * Here we use Kahn algorithm to detect cycle when we traverse * the node to computer the initial x position. * * @param {module:echarts/data/Graph~Node} nodes node of sankey view * @param {number} nodeWidth the dx of the node * @param {number} width the whole width of the area to draw the view */ function computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) { // Used to mark whether the edge is deleted. if it is deleted, // the value is 0, otherwise it is 1. var remainEdges = []; // Storage each node's indegree. var indegreeArr = []; //Used to storage the node with indegree is equal to 0. var zeroIndegrees = []; var nextTargetNode = []; var x = 0; var kx = 0; for (var i = 0; i < edges.length; i++) { remainEdges[i] = 1; } for (i = 0; i < nodes.length; i++) { indegreeArr[i] = nodes[i].inEdges.length; if (indegreeArr[i] === 0) { zeroIndegrees.push(nodes[i]); } } var maxNodeDepth = -1; // Traversing nodes using topological sorting to calculate the // horizontal(if orient === 'horizontal') or vertical(if orient === 'vertical') // position of the nodes. while (zeroIndegrees.length) { for (var idx = 0; idx < zeroIndegrees.length; idx++) { var node = zeroIndegrees[idx]; var item = node.hostGraph.data.getRawDataItem(node.dataIndex); var isItemDepth = item.depth != null && item.depth >= 0; if (isItemDepth && item.depth > maxNodeDepth) { maxNodeDepth = item.depth; } node.setLayout({ depth: isItemDepth ? item.depth : x }, true); orient === 'vertical' ? node.setLayout({ dy: nodeWidth }, true) : node.setLayout({ dx: nodeWidth }, true); for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) { var edge = node.outEdges[edgeIdx]; var indexEdge = edges.indexOf(edge); remainEdges[indexEdge] = 0; var targetNode = edge.node2; var nodeIndex = nodes.indexOf(targetNode); if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) { nextTargetNode.push(targetNode); } } } ++x; zeroIndegrees = nextTargetNode; nextTargetNode = []; } for (i = 0; i < remainEdges.length; i++) { if (remainEdges[i] === 1) { throw new Error('Sankey is a DAG, the original data has cycle!'); } } var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1; if (nodeAlign && nodeAlign !== 'left') { adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth); } var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth; scaleNodeBreadths(nodes, kx, orient); } function isNodeDepth(node) { var item = node.hostGraph.data.getRawDataItem(node.dataIndex); return item.depth != null && item.depth >= 0; } function adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) { if (nodeAlign === 'right') { var nextSourceNode = []; var remainNodes = nodes; var nodeHeight = 0; while (remainNodes.length) { for (var i = 0; i < remainNodes.length; i++) { var node = remainNodes[i]; node.setLayout({ skNodeHeight: nodeHeight }, true); for (var j = 0; j < node.inEdges.length; j++) { var edge = node.inEdges[j]; if (nextSourceNode.indexOf(edge.node1) < 0) { nextSourceNode.push(edge.node1); } } } remainNodes = nextSourceNode; nextSourceNode = []; ++nodeHeight; } zrUtil.each(nodes, function (node) { if (!isNodeDepth(node)) { node.setLayout({ depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight) }, true); } }); } else if (nodeAlign === 'justify') { moveSinksRight(nodes, maxDepth); } } /** * All the node without outEgdes are assigned maximum x-position and * be aligned in the last column. * * @param {module:echarts/data/Graph~Node} nodes. node of sankey view. * @param {number} maxDepth. use to assign to node without outEdges as x-position. */ function moveSinksRight(nodes, maxDepth) { zrUtil.each(nodes, function (node) { if (!isNodeDepth(node) && !node.outEdges.length) { node.setLayout({ depth: maxDepth }, true); } }); } /** * Scale node x-position to the width * * @param {module:echarts/data/Graph~Node} nodes node of sankey view * @param {number} kx multiple used to scale nodes */ function scaleNodeBreadths(nodes, kx, orient) { zrUtil.each(nodes, function (node) { var nodeDepth = node.getLayout().depth * kx; orient === 'vertical' ? node.setLayout({ y: nodeDepth }, true) : node.setLayout({ x: nodeDepth }, true); }); } /** * Using Gauss-Seidel iterations method to compute the node depth(y-position) * * @param {module:echarts/data/Graph~Node} nodes node of sankey view * @param {module:echarts/data/Graph~Edge} edges edge of sankey view * @param {number} height the whole height of the area to draw the view * @param {number} nodeGap the vertical distance between two nodes * in the same column. * @param {number} iterations the number of iterations for the algorithm */ function computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) { var nodesByBreadth = prepareNodesByBreadth(nodes, orient); initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient); resolveCollisions(nodesByBreadth, nodeGap, height, width, orient); for (var alpha = 1; iterations > 0; iterations--) { // 0.99 is a experience parameter, ensure that each iterations of // changes as small as possible. alpha *= 0.99; relaxRightToLeft(nodesByBreadth, alpha, orient); resolveCollisions(nodesByBreadth, nodeGap, height, width, orient); relaxLeftToRight(nodesByBreadth, alpha, orient); resolveCollisions(nodesByBreadth, nodeGap, height, width, orient); } } function prepareNodesByBreadth(nodes, orient) { var nodesByBreadth = []; var keyAttr = orient === 'vertical' ? 'y' : 'x'; var groupResult = groupData(nodes, function (node) { return node.getLayout()[keyAttr]; }); groupResult.keys.sort(function (a, b) { return a - b; }); zrUtil.each(groupResult.keys, function (key) { nodesByBreadth.push(groupResult.buckets.get(key)); }); return nodesByBreadth; } /** * Compute the original y-position for each node * * @param {module:echarts/data/Graph~Node} nodes node of sankey view * @param {Array.>} nodesByBreadth * group by the array of all sankey nodes based on the nodes x-position. * @param {module:echarts/data/Graph~Edge} edges edge of sankey view * @param {number} height the whole height of the area to draw the view * @param {number} nodeGap the vertical distance between two nodes */ function initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) { var minKy = Infinity; zrUtil.each(nodesByBreadth, function (nodes) { var n = nodes.length; var sum = 0; zrUtil.each(nodes, function (node) { sum += node.getLayout().value; }); var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum; if (ky < minKy) { minKy = ky; } }); zrUtil.each(nodesByBreadth, function (nodes) { zrUtil.each(nodes, function (node, i) { var nodeDy = node.getLayout().value * minKy; if (orient === 'vertical') { node.setLayout({ x: i }, true); node.setLayout({ dx: nodeDy }, true); } else { node.setLayout({ y: i }, true); node.setLayout({ dy: nodeDy }, true); } }); }); zrUtil.each(edges, function (edge) { var edgeDy = +edge.getValue() * minKy; edge.setLayout({ dy: edgeDy }, true); }); } /** * Resolve the collision of initialized depth (y-position) * * @param {Array.>} nodesByBreadth * group by the array of all sankey nodes based on the nodes x-position. * @param {number} nodeGap the vertical distance between two nodes * @param {number} height the whole height of the area to draw the view */ function resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) { var keyAttr = orient === 'vertical' ? 'x' : 'y'; zrUtil.each(nodesByBreadth, function (nodes) { nodes.sort(function (a, b) { return a.getLayout()[keyAttr] - b.getLayout()[keyAttr]; }); var nodeX; var node; var dy; var y0 = 0; var n = nodes.length; var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy'; for (var i = 0; i < n; i++) { node = nodes[i]; dy = y0 - node.getLayout()[keyAttr]; if (dy > 0) { nodeX = node.getLayout()[keyAttr] + dy; orient === 'vertical' ? node.setLayout({ x: nodeX }, true) : node.setLayout({ y: nodeX }, true); } y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap; } var viewWidth = orient === 'vertical' ? width : height; // If the bottommost node goes outside the bounds, push it back up dy = y0 - nodeGap - viewWidth; if (dy > 0) { nodeX = node.getLayout()[keyAttr] - dy; orient === 'vertical' ? node.setLayout({ x: nodeX }, true) : node.setLayout({ y: nodeX }, true); y0 = nodeX; for (i = n - 2; i >= 0; --i) { node = nodes[i]; dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0; if (dy > 0) { nodeX = node.getLayout()[keyAttr] - dy; orient === 'vertical' ? node.setLayout({ x: nodeX }, true) : node.setLayout({ y: nodeX }, true); } y0 = node.getLayout()[keyAttr]; } } }); } /** * Change the y-position of the nodes, except most the right side nodes * * @param {Array.>} nodesByBreadth * group by the array of all sankey nodes based on the node x-position. * @param {number} alpha parameter used to adjust the nodes y-position */ function relaxRightToLeft(nodesByBreadth, alpha, orient) { zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) { zrUtil.each(nodes, function (node) { if (node.outEdges.length) { var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue, orient); if (isNaN(y)) { var len = node.outEdges.length; y = len ? sum(node.outEdges, centerTarget, orient) / len : 0; } if (orient === 'vertical') { var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha; node.setLayout({ x: nodeX }, true); } else { var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha; node.setLayout({ y: nodeY }, true); } } }); }); } function weightedTarget(edge, orient) { return center(edge.node2, orient) * edge.getValue(); } function centerTarget(edge, orient) { return center(edge.node2, orient); } function weightedSource(edge, orient) { return center(edge.node1, orient) * edge.getValue(); } function centerSource(edge, orient) { return center(edge.node1, orient); } function center(node, orient) { return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2; } function getEdgeValue(edge) { return edge.getValue(); } function sum(array, cb, orient) { var sum = 0; var len = array.length; var i = -1; while (++i < len) { var value = +cb.call(array, array[i], orient); if (!isNaN(value)) { sum += value; } } return sum; } /** * Change the y-position of the nodes, except most the left side nodes * * @param {Array.>} nodesByBreadth * group by the array of all sankey nodes based on the node x-position. * @param {number} alpha parameter used to adjust the nodes y-position */ function relaxLeftToRight(nodesByBreadth, alpha, orient) { zrUtil.each(nodesByBreadth, function (nodes) { zrUtil.each(nodes, function (node) { if (node.inEdges.length) { var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue, orient); if (isNaN(y)) { var len = node.inEdges.length; y = len ? sum(node.inEdges, centerSource, orient) / len : 0; } if (orient === 'vertical') { var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha; node.setLayout({ x: nodeX }, true); } else { var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha; node.setLayout({ y: nodeY }, true); } } }); }); } /** * Compute the depth(y-position) of each edge * * @param {module:echarts/data/Graph~Node} nodes node of sankey view */ function computeEdgeDepths(nodes, orient) { var keyAttr = orient === 'vertical' ? 'x' : 'y'; zrUtil.each(nodes, function (node) { node.outEdges.sort(function (a, b) { return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr]; }); node.inEdges.sort(function (a, b) { return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr]; }); }); zrUtil.each(nodes, function (node) { var sy = 0; var ty = 0; zrUtil.each(node.outEdges, function (edge) { edge.setLayout({ sy: sy }, true); sy += edge.getLayout().dy; }); zrUtil.each(node.inEdges, function (edge) { edge.setLayout({ ty: ty }, true); ty += edge.getLayout().dy; }); }); } module.exports = _default; /***/ }), /* 706 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sankey/sankeyVisual.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var VisualMapping = __webpack_require__(/*! ../../visual/VisualMapping */ 651); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel, payload) { ecModel.eachSeriesByType('sankey', function (seriesModel) { var graph = seriesModel.getGraph(); var nodes = graph.nodes; if (nodes.length) { var minValue = Infinity; var maxValue = -Infinity; zrUtil.each(nodes, function (node) { var nodeValue = node.getLayout().value; if (nodeValue < minValue) { minValue = nodeValue; } if (nodeValue > maxValue) { maxValue = nodeValue; } }); zrUtil.each(nodes, function (node) { var mapping = new VisualMapping({ type: 'color', mappingMethod: 'linear', dataExtent: [minValue, maxValue], visual: seriesModel.get('color') }); var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value); var customColor = node.getModel().get('itemStyle.color'); customColor != null ? node.setVisual('color', customColor) : node.setVisual('color', mapValueToColor); }); } }); } module.exports = _default; /***/ }), /* 707 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/boxplot.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./boxplot/BoxplotSeries */ 708); __webpack_require__(/*! ./boxplot/BoxplotView */ 710); var boxplotVisual = __webpack_require__(/*! ./boxplot/boxplotVisual */ 711); var boxplotLayout = __webpack_require__(/*! ./boxplot/boxplotLayout */ 712); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerVisual(boxplotVisual); echarts.registerLayout(boxplotLayout); /***/ }), /* 708 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var _whiskerBoxCommon = __webpack_require__(/*! ../helper/whiskerBoxCommon */ 709); var seriesModelMixin = _whiskerBoxCommon.seriesModelMixin; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BoxplotSeries = SeriesModel.extend({ type: 'series.boxplot', dependencies: ['xAxis', 'yAxis', 'grid'], // TODO // box width represents group size, so dimension should have 'size'. /** * @see * The meanings of 'min' and 'max' depend on user, * and echarts do not need to know it. * @readOnly */ defaultValueDimensions: [{ name: 'min', defaultTooltip: true }, { name: 'Q1', defaultTooltip: true }, { name: 'median', defaultTooltip: true }, { name: 'Q3', defaultTooltip: true }, { name: 'max', defaultTooltip: true }], /** * @type {Array.} * @readOnly */ dimensions: null, /** * @override */ defaultOption: { zlevel: 0, // 一级层叠 z: 2, // 二级层叠 coordinateSystem: 'cartesian2d', legendHoverLink: true, hoverAnimation: true, // xAxisIndex: 0, // yAxisIndex: 0, layout: null, // 'horizontal' or 'vertical' boxWidth: [7, 50], // [min, max] can be percent of band width. itemStyle: { color: '#fff', borderWidth: 1 }, emphasis: { itemStyle: { borderWidth: 2, shadowBlur: 5, shadowOffsetX: 2, shadowOffsetY: 2, shadowColor: 'rgba(0,0,0,0.4)' } }, animationEasing: 'elasticOut', animationDuration: 800 } }); zrUtil.mixin(BoxplotSeries, seriesModelMixin, true); var _default = BoxplotSeries; module.exports = _default; /***/ }), /* 709 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/whiskerBoxCommon.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var createListSimply = __webpack_require__(/*! ../helper/createListSimply */ 587); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _dimensionHelper = __webpack_require__(/*! ../../data/helper/dimensionHelper */ 527); var getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis; var _sourceHelper = __webpack_require__(/*! ../../data/helper/sourceHelper */ 494); var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var seriesModelMixin = { /** * @private * @type {string} */ _baseAxisDim: null, /** * @override */ getInitialData: function getInitialData(option, ecModel) { // When both types of xAxis and yAxis are 'value', layout is // needed to be specified by user. Otherwise, layout can be // judged by which axis is category. var ordinalMeta; var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex')); var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex')); var xAxisType = xAxisModel.get('type'); var yAxisType = yAxisModel.get('type'); var addOrdinal; // FIXME // Consider time axis. if (xAxisType === 'category') { option.layout = 'horizontal'; ordinalMeta = xAxisModel.getOrdinalMeta(); addOrdinal = true; } else if (yAxisType === 'category') { option.layout = 'vertical'; ordinalMeta = yAxisModel.getOrdinalMeta(); addOrdinal = true; } else { option.layout = option.layout || 'horizontal'; } var coordDims = ['x', 'y']; var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1; var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex]; var otherAxisDim = coordDims[1 - baseAxisDimIndex]; var axisModels = [xAxisModel, yAxisModel]; var baseAxisType = axisModels[baseAxisDimIndex].get('type'); var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type'); var data = option.data; // ??? FIXME make a stage to perform data transfrom. // MUST create a new data, consider setOption({}) again. if (data && addOrdinal) { var newOptionData = []; zrUtil.each(data, function (item, index) { var newItem; if (item.value && zrUtil.isArray(item.value)) { newItem = item.value.slice(); item.value.unshift(index); } else if (zrUtil.isArray(item)) { newItem = item.slice(); item.unshift(index); } else { newItem = item; } newOptionData.push(newItem); }); option.data = newOptionData; } var defaultValueDimensions = this.defaultValueDimensions; var coordDimensions = [{ name: baseAxisDim, type: getDimensionTypeByAxis(baseAxisType), ordinalMeta: ordinalMeta, otherDims: { tooltip: false, itemName: 0 }, dimsDef: ['base'] }, { name: otherAxisDim, type: getDimensionTypeByAxis(otherAxisType), dimsDef: defaultValueDimensions.slice() }]; return createListSimply(this, { coordDimensions: coordDimensions, dimensionsCount: defaultValueDimensions.length + 1, encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this) }); }, /** * If horizontal, base axis is x, otherwise y. * @override */ getBaseAxis: function getBaseAxis() { var dim = this._baseAxisDim; return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis; } }; exports.seriesModelMixin = seriesModelMixin; /***/ }), /* 710 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/boxplot/BoxplotView.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var Path = __webpack_require__(/*! zrender/lib/graphic/Path */ 453); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Update common properties var NORMAL_ITEM_STYLE_PATH = ['itemStyle']; var EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle']; var BoxplotView = ChartView.extend({ type: 'boxplot', render: function render(seriesModel, ecModel, api) { var data = seriesModel.getData(); var group = this.group; var oldData = this._data; // There is no old data only when first rendering or switching from // stream mode to normal mode, where previous elements should be removed. if (!this._data) { group.removeAll(); } var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0; data.diff(oldData).add(function (newIdx) { if (data.hasValue(newIdx)) { var itemLayout = data.getItemLayout(newIdx); var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true); data.setItemGraphicEl(newIdx, symbolEl); group.add(symbolEl); } }).update(function (newIdx, oldIdx) { var symbolEl = oldData.getItemGraphicEl(oldIdx); // Empty data if (!data.hasValue(newIdx)) { group.remove(symbolEl); return; } var itemLayout = data.getItemLayout(newIdx); if (!symbolEl) { symbolEl = createNormalBox(itemLayout, data, newIdx, constDim); } else { updateNormalBoxData(itemLayout, symbolEl, data, newIdx); } group.add(symbolEl); data.setItemGraphicEl(newIdx, symbolEl); }).remove(function (oldIdx) { var el = oldData.getItemGraphicEl(oldIdx); el && group.remove(el); }).execute(); this._data = data; }, remove: function remove(ecModel) { var group = this.group; var data = this._data; this._data = null; data && data.eachItemGraphicEl(function (el) { el && group.remove(el); }); }, dispose: zrUtil.noop }); var BoxPath = Path.extend({ type: 'boxplotBoxPath', shape: {}, buildPath: function buildPath(ctx, shape) { var ends = shape.points; var i = 0; ctx.moveTo(ends[i][0], ends[i][1]); i++; for (; i < 4; i++) { ctx.lineTo(ends[i][0], ends[i][1]); } ctx.closePath(); for (; i < ends.length; i++) { ctx.moveTo(ends[i][0], ends[i][1]); i++; ctx.lineTo(ends[i][0], ends[i][1]); } } }); function createNormalBox(itemLayout, data, dataIndex, constDim, isInit) { var ends = itemLayout.ends; var el = new BoxPath({ shape: { points: isInit ? transInit(ends, constDim, itemLayout) : ends } }); updateNormalBoxData(itemLayout, el, data, dataIndex, isInit); return el; } function updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) { var seriesModel = data.hostModel; var updateMethod = graphic[isInit ? 'initProps' : 'updateProps']; updateMethod(el, { shape: { points: itemLayout.ends } }, seriesModel, dataIndex); var itemModel = data.getItemModel(dataIndex); var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH); var borderColor = data.getItemVisual(dataIndex, 'color'); // Exclude borderColor. var itemStyle = normalItemStyleModel.getItemStyle(['borderColor']); itemStyle.stroke = borderColor; itemStyle.strokeNoScale = true; el.useStyle(itemStyle); el.z2 = 100; var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle(); graphic.setHoverStyle(el, hoverStyle); } function transInit(points, dim, itemLayout) { return zrUtil.map(points, function (point) { point = point.slice(); point[dim] = itemLayout.initBaseline; return point; }); } var _default = BoxplotView; module.exports = _default; /***/ }), /* 711 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/boxplot/boxplotVisual.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var borderColorQuery = ['itemStyle', 'borderColor']; function _default(ecModel, api) { var globalColors = ecModel.get('color'); ecModel.eachRawSeriesByType('boxplot', function (seriesModel) { var defaulColor = globalColors[seriesModel.seriesIndex % globalColors.length]; var data = seriesModel.getData(); data.setVisual({ legendSymbol: 'roundRect', // Use name 'color' but not 'borderColor' for legend usage and // visual coding from other component like dataRange. color: seriesModel.get(borderColorQuery) || defaulColor }); // Only visible series has each data be visual encoded if (!ecModel.isSeriesFiltered(seriesModel)) { data.each(function (idx) { var itemModel = data.getItemModel(idx); data.setItemVisual(idx, { color: itemModel.get(borderColorQuery, true) }); }); } }); } module.exports = _default; /***/ }), /* 712 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/boxplot/boxplotLayout.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; function _default(ecModel) { var groupResult = groupSeriesByAxis(ecModel); each(groupResult, function (groupItem) { var seriesModels = groupItem.seriesModels; if (!seriesModels.length) { return; } calculateBase(groupItem); each(seriesModels, function (seriesModel, idx) { layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]); }); }); } /** * Group series by axis. */ function groupSeriesByAxis(ecModel) { var result = []; var axisList = []; ecModel.eachSeriesByType('boxplot', function (seriesModel) { var baseAxis = seriesModel.getBaseAxis(); var idx = zrUtil.indexOf(axisList, baseAxis); if (idx < 0) { idx = axisList.length; axisList[idx] = baseAxis; result[idx] = { axis: baseAxis, seriesModels: [] }; } result[idx].seriesModels.push(seriesModel); }); return result; } /** * Calculate offset and box width for each series. */ function calculateBase(groupItem) { var extent; var baseAxis = groupItem.axis; var seriesModels = groupItem.seriesModels; var seriesCount = seriesModels.length; var boxWidthList = groupItem.boxWidthList = []; var boxOffsetList = groupItem.boxOffsetList = []; var boundList = []; var bandWidth; if (baseAxis.type === 'category') { bandWidth = baseAxis.getBandWidth(); } else { var maxDataCount = 0; each(seriesModels, function (seriesModel) { maxDataCount = Math.max(maxDataCount, seriesModel.getData().count()); }); extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount; } each(seriesModels, function (seriesModel) { var boxWidthBound = seriesModel.get('boxWidth'); if (!zrUtil.isArray(boxWidthBound)) { boxWidthBound = [boxWidthBound, boxWidthBound]; } boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]); }); var availableWidth = bandWidth * 0.8 - 2; var boxGap = availableWidth / seriesCount * 0.3; var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount; var base = boxWidth / 2 - availableWidth / 2; each(seriesModels, function (seriesModel, idx) { boxOffsetList.push(base); base += boxGap + boxWidth; boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1])); }); } /** * Calculate points location for each series. */ function layoutSingleSeries(seriesModel, offset, boxWidth) { var coordSys = seriesModel.coordinateSystem; var data = seriesModel.getData(); var halfWidth = boxWidth / 2; var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1; var vDimIdx = 1 - cDimIdx; var coordDims = ['x', 'y']; var cDim = data.mapDimension(coordDims[cDimIdx]); var vDims = data.mapDimension(coordDims[vDimIdx], true); if (cDim == null || vDims.length < 5) { return; } for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) { var axisDimVal = data.get(cDim, dataIndex); var median = getPoint(axisDimVal, vDims[2], dataIndex); var end1 = getPoint(axisDimVal, vDims[0], dataIndex); var end2 = getPoint(axisDimVal, vDims[1], dataIndex); var end4 = getPoint(axisDimVal, vDims[3], dataIndex); var end5 = getPoint(axisDimVal, vDims[4], dataIndex); var ends = []; addBodyEnd(ends, end2, 0); addBodyEnd(ends, end4, 1); ends.push(end1, end2, end5, end4); layEndLine(ends, end1); layEndLine(ends, end5); layEndLine(ends, median); data.setItemLayout(dataIndex, { initBaseline: median[vDimIdx], ends: ends }); } function getPoint(axisDimVal, dimIdx, dataIndex) { var val = data.get(dimIdx, dataIndex); var p = []; p[cDimIdx] = axisDimVal; p[vDimIdx] = val; var point; if (isNaN(axisDimVal) || isNaN(val)) { point = [NaN, NaN]; } else { point = coordSys.dataToPoint(p); point[cDimIdx] += offset; } return point; } function addBodyEnd(ends, point, start) { var point1 = point.slice(); var point2 = point.slice(); point1[cDimIdx] += halfWidth; point2[cDimIdx] -= halfWidth; start ? ends.push(point1, point2) : ends.push(point2, point1); } function layEndLine(ends, endCenter) { var from = endCenter.slice(); var to = endCenter.slice(); from[cDimIdx] -= halfWidth; to[cDimIdx] += halfWidth; ends.push(from, to); } } module.exports = _default; /***/ }), /* 713 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/candlestick.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./candlestick/CandlestickSeries */ 714); __webpack_require__(/*! ./candlestick/CandlestickView */ 715); var preprocessor = __webpack_require__(/*! ./candlestick/preprocessor */ 716); var candlestickVisual = __webpack_require__(/*! ./candlestick/candlestickVisual */ 717); var candlestickLayout = __webpack_require__(/*! ./candlestick/candlestickLayout */ 718); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerPreprocessor(preprocessor); echarts.registerVisual(candlestickVisual); echarts.registerLayout(candlestickLayout); /***/ }), /* 714 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var _whiskerBoxCommon = __webpack_require__(/*! ../helper/whiskerBoxCommon */ 709); var seriesModelMixin = _whiskerBoxCommon.seriesModelMixin; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var CandlestickSeries = SeriesModel.extend({ type: 'series.candlestick', dependencies: ['xAxis', 'yAxis', 'grid'], /** * @readOnly */ defaultValueDimensions: [{ name: 'open', defaultTooltip: true }, { name: 'close', defaultTooltip: true }, { name: 'lowest', defaultTooltip: true }, { name: 'highest', defaultTooltip: true }], /** * @type {Array.} * @readOnly */ dimensions: null, /** * @override */ defaultOption: { zlevel: 0, z: 2, coordinateSystem: 'cartesian2d', legendHoverLink: true, hoverAnimation: true, // xAxisIndex: 0, // yAxisIndex: 0, layout: null, // 'horizontal' or 'vertical' clip: true, itemStyle: { color: '#c23531', // 阳线 positive color0: '#314656', // 阴线 negative '#c23531', '#314656' borderWidth: 1, // FIXME // ec2中使用的是lineStyle.color 和 lineStyle.color0 borderColor: '#c23531', borderColor0: '#314656' }, emphasis: { itemStyle: { borderWidth: 2 } }, barMaxWidth: null, barMinWidth: null, barWidth: null, large: true, largeThreshold: 600, progressive: 3e3, progressiveThreshold: 1e4, progressiveChunkMode: 'mod', animationUpdate: false, animationEasing: 'linear', animationDuration: 300 }, /** * Get dimension for shadow in dataZoom * @return {string} dimension name */ getShadowDim: function getShadowDim() { return 'open'; }, brushSelector: function brushSelector(dataIndex, data, selectors) { var itemLayout = data.getItemLayout(dataIndex); return itemLayout && selectors.rect(itemLayout.brushRect); } }); zrUtil.mixin(CandlestickSeries, seriesModelMixin, true); var _default = CandlestickSeries; module.exports = _default; /***/ }), /* 715 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/candlestick/CandlestickView.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var Path = __webpack_require__(/*! zrender/lib/graphic/Path */ 453); var _createClipPathFromCoordSys = __webpack_require__(/*! ../helper/createClipPathFromCoordSys */ 558); var createClipPath = _createClipPathFromCoordSys.createClipPath; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var NORMAL_ITEM_STYLE_PATH = ['itemStyle']; var EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle']; var SKIP_PROPS = ['color', 'color0', 'borderColor', 'borderColor0']; var CandlestickView = ChartView.extend({ type: 'candlestick', render: function render(seriesModel, ecModel, api) { // If there is clipPath created in large mode. Remove it. this.group.removeClipPath(); this._updateDrawMode(seriesModel); this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel); }, incrementalPrepareRender: function incrementalPrepareRender(seriesModel, ecModel, api) { this._clear(); this._updateDrawMode(seriesModel); }, incrementalRender: function incrementalRender(params, seriesModel, ecModel, api) { this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel); }, _updateDrawMode: function _updateDrawMode(seriesModel) { var isLargeDraw = seriesModel.pipelineContext.large; if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) { this._isLargeDraw = isLargeDraw; this._clear(); } }, _renderNormal: function _renderNormal(seriesModel) { var data = seriesModel.getData(); var oldData = this._data; var group = this.group; var isSimpleBox = data.getLayout('isSimpleBox'); var needsClip = seriesModel.get('clip', true); var coord = seriesModel.coordinateSystem; var clipArea = coord.getArea && coord.getArea(); // There is no old data only when first rendering or switching from // stream mode to normal mode, where previous elements should be removed. if (!this._data) { group.removeAll(); } data.diff(oldData).add(function (newIdx) { if (data.hasValue(newIdx)) { var el; var itemLayout = data.getItemLayout(newIdx); if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) { return; } el = createNormalBox(itemLayout, newIdx, true); graphic.initProps(el, { shape: { points: itemLayout.ends } }, seriesModel, newIdx); setBoxCommon(el, data, newIdx, isSimpleBox); group.add(el); data.setItemGraphicEl(newIdx, el); } }).update(function (newIdx, oldIdx) { var el = oldData.getItemGraphicEl(oldIdx); // Empty data if (!data.hasValue(newIdx)) { group.remove(el); return; } var itemLayout = data.getItemLayout(newIdx); if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) { group.remove(el); return; } if (!el) { el = createNormalBox(itemLayout, newIdx); } else { graphic.updateProps(el, { shape: { points: itemLayout.ends } }, seriesModel, newIdx); } setBoxCommon(el, data, newIdx, isSimpleBox); group.add(el); data.setItemGraphicEl(newIdx, el); }).remove(function (oldIdx) { var el = oldData.getItemGraphicEl(oldIdx); el && group.remove(el); }).execute(); this._data = data; }, _renderLarge: function _renderLarge(seriesModel) { this._clear(); createLarge(seriesModel, this.group); var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null; if (clipPath) { this.group.setClipPath(clipPath); } else { this.group.removeClipPath(); } }, _incrementalRenderNormal: function _incrementalRenderNormal(params, seriesModel) { var data = seriesModel.getData(); var isSimpleBox = data.getLayout('isSimpleBox'); var dataIndex; while ((dataIndex = params.next()) != null) { var el; var itemLayout = data.getItemLayout(dataIndex); el = createNormalBox(itemLayout, dataIndex); setBoxCommon(el, data, dataIndex, isSimpleBox); el.incremental = true; this.group.add(el); } }, _incrementalRenderLarge: function _incrementalRenderLarge(params, seriesModel) { createLarge(seriesModel, this.group, true); }, remove: function remove(ecModel) { this._clear(); }, _clear: function _clear() { this.group.removeAll(); this._data = null; }, dispose: zrUtil.noop }); var NormalBoxPath = Path.extend({ type: 'normalCandlestickBox', shape: {}, buildPath: function buildPath(ctx, shape) { var ends = shape.points; if (this.__simpleBox) { ctx.moveTo(ends[4][0], ends[4][1]); ctx.lineTo(ends[6][0], ends[6][1]); } else { ctx.moveTo(ends[0][0], ends[0][1]); ctx.lineTo(ends[1][0], ends[1][1]); ctx.lineTo(ends[2][0], ends[2][1]); ctx.lineTo(ends[3][0], ends[3][1]); ctx.closePath(); ctx.moveTo(ends[4][0], ends[4][1]); ctx.lineTo(ends[5][0], ends[5][1]); ctx.moveTo(ends[6][0], ends[6][1]); ctx.lineTo(ends[7][0], ends[7][1]); } } }); function createNormalBox(itemLayout, dataIndex, isInit) { var ends = itemLayout.ends; return new NormalBoxPath({ shape: { points: isInit ? transInit(ends, itemLayout) : ends }, z2: 100 }); } function isNormalBoxClipped(clipArea, itemLayout) { var clipped = true; for (var i = 0; i < itemLayout.ends.length; i++) { // If any point are in the region. if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) { clipped = false; break; } } return clipped; } function setBoxCommon(el, data, dataIndex, isSimpleBox) { var itemModel = data.getItemModel(dataIndex); var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH); var color = data.getItemVisual(dataIndex, 'color'); var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color; // Color must be excluded. // Because symbol provide setColor individually to set fill and stroke var itemStyle = normalItemStyleModel.getItemStyle(SKIP_PROPS); el.useStyle(itemStyle); el.style.strokeNoScale = true; el.style.fill = color; el.style.stroke = borderColor; el.__simpleBox = isSimpleBox; var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle(); graphic.setHoverStyle(el, hoverStyle); } function transInit(points, itemLayout) { return zrUtil.map(points, function (point) { point = point.slice(); point[1] = itemLayout.initBaseline; return point; }); } var LargeBoxPath = Path.extend({ type: 'largeCandlestickBox', shape: {}, buildPath: function buildPath(ctx, shape) { // Drawing lines is more efficient than drawing // a whole line or drawing rects. var points = shape.points; for (var i = 0; i < points.length;) { if (this.__sign === points[i++]) { var x = points[i++]; ctx.moveTo(x, points[i++]); ctx.lineTo(x, points[i++]); } else { i += 3; } } } }); function createLarge(seriesModel, group, incremental) { var data = seriesModel.getData(); var largePoints = data.getLayout('largePoints'); var elP = new LargeBoxPath({ shape: { points: largePoints }, __sign: 1 }); group.add(elP); var elN = new LargeBoxPath({ shape: { points: largePoints }, __sign: -1 }); group.add(elN); setLargeStyle(1, elP, seriesModel, data); setLargeStyle(-1, elN, seriesModel, data); if (incremental) { elP.incremental = true; elN.incremental = true; } } function setLargeStyle(sign, el, seriesModel, data) { var suffix = sign > 0 ? 'P' : 'N'; var borderColor = data.getVisual('borderColor' + suffix) || data.getVisual('color' + suffix); // Color must be excluded. // Because symbol provide setColor individually to set fill and stroke var itemStyle = seriesModel.getModel(NORMAL_ITEM_STYLE_PATH).getItemStyle(SKIP_PROPS); el.useStyle(itemStyle); el.style.fill = null; el.style.stroke = borderColor; // No different // el.style.lineWidth = .5; } var _default = CandlestickView; module.exports = _default; /***/ }), /* 716 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/candlestick/preprocessor.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(option) { if (!option || !zrUtil.isArray(option.series)) { return; } // Translate 'k' to 'candlestick'. zrUtil.each(option.series, function (seriesItem) { if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') { seriesItem.type = 'candlestick'; } }); } module.exports = _default; /***/ }), /* 717 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/candlestick/candlestickVisual.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var createRenderPlanner = __webpack_require__(/*! ../helper/createRenderPlanner */ 509); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var positiveBorderColorQuery = ['itemStyle', 'borderColor']; var negativeBorderColorQuery = ['itemStyle', 'borderColor0']; var positiveColorQuery = ['itemStyle', 'color']; var negativeColorQuery = ['itemStyle', 'color0']; var _default = { seriesType: 'candlestick', plan: createRenderPlanner(), // For legend. performRawSeries: true, reset: function reset(seriesModel, ecModel) { var data = seriesModel.getData(); data.setVisual({ legendSymbol: 'roundRect', colorP: getColor(1, seriesModel), colorN: getColor(-1, seriesModel), borderColorP: getBorderColor(1, seriesModel), borderColorN: getBorderColor(-1, seriesModel) }); // Only visible series has each data be visual encoded if (ecModel.isSeriesFiltered(seriesModel)) { return; } var isLargeRender = seriesModel.pipelineContext.large; return !isLargeRender && { progress: progress }; function progress(params, data) { var dataIndex; while ((dataIndex = params.next()) != null) { var itemModel = data.getItemModel(dataIndex); var sign = data.getItemLayout(dataIndex).sign; data.setItemVisual(dataIndex, { color: getColor(sign, itemModel), borderColor: getBorderColor(sign, itemModel) }); } } function getColor(sign, model) { return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery); } function getBorderColor(sign, model) { return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery); } } }; module.exports = _default; /***/ }), /* 718 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/candlestick/candlestickLayout.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _graphic = __webpack_require__(/*! ../../util/graphic */ 451); var subPixelOptimize = _graphic.subPixelOptimize; var createRenderPlanner = __webpack_require__(/*! ../helper/createRenderPlanner */ 509); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var retrieve2 = _util.retrieve2; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Float32Array */ var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array; var _default = { seriesType: 'candlestick', plan: createRenderPlanner(), reset: function reset(seriesModel) { var coordSys = seriesModel.coordinateSystem; var data = seriesModel.getData(); var candleWidth = calculateCandleWidth(seriesModel, data); var cDimIdx = 0; var vDimIdx = 1; var coordDims = ['x', 'y']; var cDim = data.mapDimension(coordDims[cDimIdx]); var vDims = data.mapDimension(coordDims[vDimIdx], true); var openDim = vDims[0]; var closeDim = vDims[1]; var lowestDim = vDims[2]; var highestDim = vDims[3]; data.setLayout({ candleWidth: candleWidth, // The value is experimented visually. isSimpleBox: candleWidth <= 1.3 }); if (cDim == null || vDims.length < 4) { return; } return { progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress }; function normalProgress(params, data) { var dataIndex; while ((dataIndex = params.next()) != null) { var axisDimVal = data.get(cDim, dataIndex); var openVal = data.get(openDim, dataIndex); var closeVal = data.get(closeDim, dataIndex); var lowestVal = data.get(lowestDim, dataIndex); var highestVal = data.get(highestDim, dataIndex); var ocLow = Math.min(openVal, closeVal); var ocHigh = Math.max(openVal, closeVal); var ocLowPoint = getPoint(ocLow, axisDimVal); var ocHighPoint = getPoint(ocHigh, axisDimVal); var lowestPoint = getPoint(lowestVal, axisDimVal); var highestPoint = getPoint(highestVal, axisDimVal); var ends = []; addBodyEnd(ends, ocHighPoint, 0); addBodyEnd(ends, ocLowPoint, 1); ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint)); data.setItemLayout(dataIndex, { sign: getSign(data, dataIndex, openVal, closeVal, closeDim), initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx], // open point. ends: ends, brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal) }); } function getPoint(val, axisDimVal) { var p = []; p[cDimIdx] = axisDimVal; p[vDimIdx] = val; return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p); } function addBodyEnd(ends, point, start) { var point1 = point.slice(); var point2 = point.slice(); point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false); point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true); start ? ends.push(point1, point2) : ends.push(point2, point1); } function makeBrushRect(lowestVal, highestVal, axisDimVal) { var pmin = getPoint(lowestVal, axisDimVal); var pmax = getPoint(highestVal, axisDimVal); pmin[cDimIdx] -= candleWidth / 2; pmax[cDimIdx] -= candleWidth / 2; return { x: pmin[0], y: pmin[1], width: vDimIdx ? candleWidth : pmax[0] - pmin[0], height: vDimIdx ? pmax[1] - pmin[1] : candleWidth }; } function subPixelOptimizePoint(point) { point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1); return point; } } function largeProgress(params, data) { // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...] var points = new LargeArr(params.count * 4); var offset = 0; var point; var tmpIn = []; var tmpOut = []; var dataIndex; while ((dataIndex = params.next()) != null) { var axisDimVal = data.get(cDim, dataIndex); var openVal = data.get(openDim, dataIndex); var closeVal = data.get(closeDim, dataIndex); var lowestVal = data.get(lowestDim, dataIndex); var highestVal = data.get(highestDim, dataIndex); if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) { points[offset++] = NaN; offset += 3; continue; } points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim); tmpIn[cDimIdx] = axisDimVal; tmpIn[vDimIdx] = lowestVal; point = coordSys.dataToPoint(tmpIn, null, tmpOut); points[offset++] = point ? point[0] : NaN; points[offset++] = point ? point[1] : NaN; tmpIn[vDimIdx] = highestVal; point = coordSys.dataToPoint(tmpIn, null, tmpOut); points[offset++] = point ? point[1] : NaN; } data.setLayout('largePoints', points); } } }; function getSign(data, dataIndex, openVal, closeVal, closeDim) { var sign; if (openVal > closeVal) { sign = -1; } else if (openVal < closeVal) { sign = 1; } else { sign = dataIndex > 0 // If close === open, compare with close of last record ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive 1; } return sign; } function calculateCandleWidth(seriesModel, data) { var baseAxis = seriesModel.getBaseAxis(); var extent; var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count()); var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth); var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth); var barWidth = seriesModel.get('barWidth'); return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap. : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth); } module.exports = _default; /***/ }), /* 719 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/effectScatter.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./effectScatter/EffectScatterSeries */ 720); __webpack_require__(/*! ./effectScatter/EffectScatterView */ 721); var visualSymbol = __webpack_require__(/*! ../visual/symbol */ 559); var layoutPoints = __webpack_require__(/*! ../layout/points */ 560); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerVisual(visualSymbol('effectScatter', 'circle')); echarts.registerLayout(layoutPoints('effectScatter')); /***/ }), /* 720 */ /*!****************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var createListFromArray = __webpack_require__(/*! ../helper/createListFromArray */ 524); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.effectScatter', dependencies: ['grid', 'polar'], getInitialData: function getInitialData(option, ecModel) { return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true }); }, brushSelector: 'point', defaultOption: { coordinateSystem: 'cartesian2d', zlevel: 0, z: 2, legendHoverLink: true, effectType: 'ripple', progressive: 0, // When to show the effect, option: 'render'|'emphasis' showEffectOn: 'render', // Ripple effect config rippleEffect: { period: 4, // Scale of ripple scale: 2.5, // Brush type can be fill or stroke brushType: 'fill' }, // Cartesian coordinate system // xAxisIndex: 0, // yAxisIndex: 0, // Polar coordinate system // polarIndex: 0, // Geo coordinate system // geoIndex: 0, // symbol: null, // 图形类型 symbolSize: 10 // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2 // symbolRotate: null, // 图形旋转控制 // large: false, // Available when large is true // largeThreshold: 2000, // itemStyle: { // opacity: 1 // } } }); module.exports = _default; /***/ }), /* 721 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var SymbolDraw = __webpack_require__(/*! ../helper/SymbolDraw */ 552); var EffectSymbol = __webpack_require__(/*! ../helper/EffectSymbol */ 722); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var pointsLayout = __webpack_require__(/*! ../../layout/points */ 560); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendChartView({ type: 'effectScatter', init: function init() { this._symbolDraw = new SymbolDraw(EffectSymbol); }, render: function render(seriesModel, ecModel, api) { var data = seriesModel.getData(); var effectSymbolDraw = this._symbolDraw; effectSymbolDraw.updateData(data); this.group.add(effectSymbolDraw.group); }, updateTransform: function updateTransform(seriesModel, ecModel, api) { var data = seriesModel.getData(); this.group.dirty(); var res = pointsLayout().reset(seriesModel); if (res.progress) { res.progress({ start: 0, end: data.count() }, data); } this._symbolDraw.updateLayout(data); }, _updateGroupTransform: function _updateGroupTransform(seriesModel) { var coordSys = seriesModel.coordinateSystem; if (coordSys && coordSys.getRoamTransform) { this.group.transform = matrix.clone(coordSys.getRoamTransform()); this.group.decomposeTransform(); } }, remove: function remove(ecModel, api) { this._symbolDraw && this._symbolDraw.remove(api); }, dispose: function dispose() {} }); module.exports = _default; /***/ }), /* 722 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/EffectSymbol.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var _graphic = __webpack_require__(/*! ../../util/graphic */ 451); var Group = _graphic.Group; var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var SymbolClz = __webpack_require__(/*! ./Symbol */ 553); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Symbol with ripple effect * @module echarts/chart/helper/EffectSymbol */ var EFFECT_RIPPLE_NUMBER = 3; function normalizeSymbolSize(symbolSize) { if (!zrUtil.isArray(symbolSize)) { symbolSize = [+symbolSize, +symbolSize]; } return symbolSize; } function updateRipplePath(rippleGroup, effectCfg) { var color = effectCfg.rippleEffectColor || effectCfg.color; rippleGroup.eachChild(function (ripplePath) { ripplePath.attr({ z: effectCfg.z, zlevel: effectCfg.zlevel, style: { stroke: effectCfg.brushType === 'stroke' ? color : null, fill: effectCfg.brushType === 'fill' ? color : null } }); }); } /** * @constructor * @param {module:echarts/data/List} data * @param {number} idx * @extends {module:zrender/graphic/Group} */ function EffectSymbol(data, idx) { Group.call(this); var symbol = new SymbolClz(data, idx); var rippleGroup = new Group(); this.add(symbol); this.add(rippleGroup); rippleGroup.beforeUpdate = function () { this.attr(symbol.getScale()); }; this.updateData(data, idx); } var effectSymbolProto = EffectSymbol.prototype; effectSymbolProto.stopEffectAnimation = function () { this.childAt(1).removeAll(); }; effectSymbolProto.startEffectAnimation = function (effectCfg) { var symbolType = effectCfg.symbolType; var color = effectCfg.color; var rippleGroup = this.childAt(1); for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) { // If width/height are set too small (e.g., set to 1) on ios10 // and macOS Sierra, a circle stroke become a rect, no matter what // the scale is set. So we set width/height as 2. See #4136. var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color); ripplePath.attr({ style: { strokeNoScale: true }, z2: 99, silent: true, scale: [0.5, 0.5] }); var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset; // TODO Configurable effectCfg.period ripplePath.animate('', true).when(effectCfg.period, { scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2] }).delay(delay).start(); ripplePath.animateStyle(true).when(effectCfg.period, { opacity: 0 }).delay(delay).start(); rippleGroup.add(ripplePath); } updateRipplePath(rippleGroup, effectCfg); }; /** * Update effect symbol */ effectSymbolProto.updateEffectAnimation = function (effectCfg) { var oldEffectCfg = this._effectCfg; var rippleGroup = this.childAt(1); // Must reinitialize effect if following configuration changed var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale']; for (var i = 0; i < DIFFICULT_PROPS.length; i++) { var propName = DIFFICULT_PROPS[i]; if (oldEffectCfg[propName] !== effectCfg[propName]) { this.stopEffectAnimation(); this.startEffectAnimation(effectCfg); return; } } updateRipplePath(rippleGroup, effectCfg); }; /** * Highlight symbol */ effectSymbolProto.highlight = function () { this.trigger('emphasis'); }; /** * Downplay symbol */ effectSymbolProto.downplay = function () { this.trigger('normal'); }; /** * Update symbol properties * @param {module:echarts/data/List} data * @param {number} idx */ effectSymbolProto.updateData = function (data, idx) { var seriesModel = data.hostModel; this.childAt(0).updateData(data, idx); var rippleGroup = this.childAt(1); var itemModel = data.getItemModel(idx); var symbolType = data.getItemVisual(idx, 'symbol'); var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize')); var color = data.getItemVisual(idx, 'color'); rippleGroup.attr('scale', symbolSize); rippleGroup.traverse(function (ripplePath) { ripplePath.attr({ fill: color }); }); var symbolOffset = itemModel.getShallow('symbolOffset'); if (symbolOffset) { var pos = rippleGroup.position; pos[0] = parsePercent(symbolOffset[0], symbolSize[0]); pos[1] = parsePercent(symbolOffset[1], symbolSize[1]); } var symbolRotate = data.getItemVisual(idx, 'symbolRotate'); rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0; var effectCfg = {}; effectCfg.showEffectOn = seriesModel.get('showEffectOn'); effectCfg.rippleScale = itemModel.get('rippleEffect.scale'); effectCfg.brushType = itemModel.get('rippleEffect.brushType'); effectCfg.period = itemModel.get('rippleEffect.period') * 1000; effectCfg.effectOffset = idx / data.count(); effectCfg.z = itemModel.getShallow('z') || 0; effectCfg.zlevel = itemModel.getShallow('zlevel') || 0; effectCfg.symbolType = symbolType; effectCfg.color = color; effectCfg.rippleEffectColor = itemModel.get('rippleEffect.color'); this.off('mouseover').off('mouseout').off('emphasis').off('normal'); if (effectCfg.showEffectOn === 'render') { this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg); this._effectCfg = effectCfg; } else { // Not keep old effect config this._effectCfg = null; this.stopEffectAnimation(); var symbol = this.childAt(0); var onEmphasis = function onEmphasis() { symbol.highlight(); if (effectCfg.showEffectOn !== 'render') { this.startEffectAnimation(effectCfg); } }; var onNormal = function onNormal() { symbol.downplay(); if (effectCfg.showEffectOn !== 'render') { this.stopEffectAnimation(); } }; this.on('mouseover', onEmphasis, this).on('mouseout', onNormal, this).on('emphasis', onEmphasis, this).on('normal', onNormal, this); } this._effectCfg = effectCfg; }; effectSymbolProto.fadeOut = function (cb) { this.off('mouseover').off('mouseout').off('emphasis').off('normal'); cb && cb(); }; zrUtil.inherits(EffectSymbol, Group); var _default = EffectSymbol; module.exports = _default; /***/ }), /* 723 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/lines.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./lines/LinesSeries */ 724); __webpack_require__(/*! ./lines/LinesView */ 725); var linesLayout = __webpack_require__(/*! ./lines/linesLayout */ 730); var linesVisual = __webpack_require__(/*! ./lines/linesVisual */ 731); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerLayout(linesLayout); echarts.registerVisual(linesVisual); /***/ }), /* 724 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/lines/LinesSeries.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var List = __webpack_require__(/*! ../../data/List */ 525); var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var concatArray = _util.concatArray; var mergeAll = _util.mergeAll; var map = _util.map; var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Uint32Array, Float64Array, Float32Array */ var Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array; var Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array; function compatEc2(seriesOpt) { var data = seriesOpt.data; if (data && data[0] && data[0][0] && data[0][0].coord) { seriesOpt.data = map(data, function (itemOpt) { var coords = [itemOpt[0].coord, itemOpt[1].coord]; var target = { coords: coords }; if (itemOpt[0].name) { target.fromName = itemOpt[0].name; } if (itemOpt[1].name) { target.toName = itemOpt[1].name; } return mergeAll([target, itemOpt[0], itemOpt[1]]); }); } } var LinesSeries = SeriesModel.extend({ type: 'series.lines', dependencies: ['grid', 'polar'], visualColorAccessPath: 'lineStyle.color', init: function init(option) { // The input data may be null/undefined. option.data = option.data || []; // Not using preprocessor because mergeOption may not have series.type compatEc2(option); var result = this._processFlatCoordsArray(option.data); this._flatCoords = result.flatCoords; this._flatCoordsOffset = result.flatCoordsOffset; if (result.flatCoords) { option.data = new Float32Array(result.count); } LinesSeries.superApply(this, 'init', arguments); }, mergeOption: function mergeOption(option) { compatEc2(option); if (option.data) { // Only update when have option data to merge. var result = this._processFlatCoordsArray(option.data); this._flatCoords = result.flatCoords; this._flatCoordsOffset = result.flatCoordsOffset; if (result.flatCoords) { option.data = new Float32Array(result.count); } } LinesSeries.superApply(this, 'mergeOption', arguments); }, appendData: function appendData(params) { var result = this._processFlatCoordsArray(params.data); if (result.flatCoords) { if (!this._flatCoords) { this._flatCoords = result.flatCoords; this._flatCoordsOffset = result.flatCoordsOffset; } else { this._flatCoords = concatArray(this._flatCoords, result.flatCoords); this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset); } params.data = new Float32Array(result.count); } this.getRawData().appendData(params.data); }, _getCoordsFromItemModel: function _getCoordsFromItemModel(idx) { var itemModel = this.getData().getItemModel(idx); var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords'); return coords; }, getLineCoordsCount: function getLineCoordsCount(idx) { if (this._flatCoordsOffset) { return this._flatCoordsOffset[idx * 2 + 1]; } else { return this._getCoordsFromItemModel(idx).length; } }, getLineCoords: function getLineCoords(idx, out) { if (this._flatCoordsOffset) { var offset = this._flatCoordsOffset[idx * 2]; var len = this._flatCoordsOffset[idx * 2 + 1]; for (var i = 0; i < len; i++) { out[i] = out[i] || []; out[i][0] = this._flatCoords[offset + i * 2]; out[i][1] = this._flatCoords[offset + i * 2 + 1]; } return len; } else { var coords = this._getCoordsFromItemModel(idx); for (var i = 0; i < coords.length; i++) { out[i] = out[i] || []; out[i][0] = coords[i][0]; out[i][1] = coords[i][1]; } return coords.length; } }, _processFlatCoordsArray: function _processFlatCoordsArray(data) { var startOffset = 0; if (this._flatCoords) { startOffset = this._flatCoords.length; } // Stored as a typed array. In format // Points Count(2) | x | y | x | y | Points Count(3) | x | y | x | y | x | y | if (typeof data[0] === 'number') { var len = data.length; // Store offset and len of each segment var coordsOffsetAndLenStorage = new Uint32Arr(len); var coordsStorage = new Float64Arr(len); var coordsCursor = 0; var offsetCursor = 0; var dataCount = 0; for (var i = 0; i < len;) { dataCount++; var count = data[i++]; // Offset coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset; // Len coordsOffsetAndLenStorage[offsetCursor++] = count; for (var k = 0; k < count; k++) { var x = data[i++]; var y = data[i++]; coordsStorage[coordsCursor++] = x; coordsStorage[coordsCursor++] = y; if (i > len) {} } } return { flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor), flatCoords: coordsStorage, count: dataCount }; } return { flatCoordsOffset: null, flatCoords: null, count: data.length }; }, getInitialData: function getInitialData(option, ecModel) { var lineData = new List(['value'], this); lineData.hasItemOption = false; lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) { // dataItem is simply coords if (dataItem instanceof Array) { return NaN; } else { lineData.hasItemOption = true; var value = dataItem.value; if (value != null) { return value instanceof Array ? value[dimIndex] : value; } } }); return lineData; }, formatTooltip: function formatTooltip(dataIndex) { var data = this.getData(); var itemModel = data.getItemModel(dataIndex); var name = itemModel.get('name'); if (name) { return name; } var fromName = itemModel.get('fromName'); var toName = itemModel.get('toName'); var html = []; fromName != null && html.push(fromName); toName != null && html.push(toName); return encodeHTML(html.join(' > ')); }, preventIncremental: function preventIncremental() { return !!this.get('effect.show'); }, getProgressive: function getProgressive() { var progressive = this.option.progressive; if (progressive == null) { return this.option.large ? 1e4 : this.get('progressive'); } return progressive; }, getProgressiveThreshold: function getProgressiveThreshold() { var progressiveThreshold = this.option.progressiveThreshold; if (progressiveThreshold == null) { return this.option.large ? 2e4 : this.get('progressiveThreshold'); } return progressiveThreshold; }, defaultOption: { coordinateSystem: 'geo', zlevel: 0, z: 2, legendHoverLink: true, hoverAnimation: true, // Cartesian coordinate system xAxisIndex: 0, yAxisIndex: 0, symbol: ['none', 'none'], symbolSize: [10, 10], // Geo coordinate system geoIndex: 0, effect: { show: false, period: 4, // Animation delay. support callback // delay: 0, // If move with constant speed px/sec // period will be ignored if this property is > 0, constantSpeed: 0, symbol: 'circle', symbolSize: 3, loop: true, // Length of trail, 0 - 1 trailLength: 0.2 // Same with lineStyle.color // color }, large: false, // Available when large is true largeThreshold: 2000, // If lines are polyline // polyline not support curveness, label, animation polyline: false, // If clip the overflow. // Available when coordinateSystem is cartesian or polar. clip: true, label: { show: false, position: 'end' // distance: 5, // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调 }, lineStyle: { opacity: 0.5 } } }); var _default = LinesSeries; module.exports = _default; /***/ }), /* 725 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/lines/LinesView.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var LineDraw = __webpack_require__(/*! ../helper/LineDraw */ 659); var EffectLine = __webpack_require__(/*! ../helper/EffectLine */ 726); var Line = __webpack_require__(/*! ../helper/Line */ 660); var Polyline = __webpack_require__(/*! ../helper/Polyline */ 727); var EffectPolyline = __webpack_require__(/*! ../helper/EffectPolyline */ 728); var LargeLineDraw = __webpack_require__(/*! ../helper/LargeLineDraw */ 729); var linesLayout = __webpack_require__(/*! ./linesLayout */ 730); var _createClipPathFromCoordSys = __webpack_require__(/*! ../helper/createClipPathFromCoordSys */ 558); var createClipPath = _createClipPathFromCoordSys.createClipPath; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendChartView({ type: 'lines', init: function init() {}, render: function render(seriesModel, ecModel, api) { var data = seriesModel.getData(); var lineDraw = this._updateLineDraw(data, seriesModel); var zlevel = seriesModel.get('zlevel'); var trailLength = seriesModel.get('effect.trailLength'); var zr = api.getZr(); // Avoid the drag cause ghost shadow // FIXME Better way ? // SVG doesn't support var isSvg = zr.painter.getType() === 'svg'; if (!isSvg) { zr.painter.getLayer(zlevel).clear(true); } // Config layer with motion blur if (this._lastZlevel != null && !isSvg) { zr.configLayer(this._lastZlevel, { motionBlur: false }); } if (this._showEffect(seriesModel) && trailLength) { if (!isSvg) { zr.configLayer(zlevel, { motionBlur: true, lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0) }); } } lineDraw.updateData(data); var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel); if (clipPath) { this.group.setClipPath(clipPath); } else { this.group.removeClipPath(); } this._lastZlevel = zlevel; this._finished = true; }, incrementalPrepareRender: function incrementalPrepareRender(seriesModel, ecModel, api) { var data = seriesModel.getData(); var lineDraw = this._updateLineDraw(data, seriesModel); lineDraw.incrementalPrepareUpdate(data); this._clearLayer(api); this._finished = false; }, incrementalRender: function incrementalRender(taskParams, seriesModel, ecModel) { this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData()); this._finished = taskParams.end === seriesModel.getData().count(); }, updateTransform: function updateTransform(seriesModel, ecModel, api) { var data = seriesModel.getData(); var pipelineContext = seriesModel.pipelineContext; if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) { // TODO Don't have to do update in large mode. Only do it when there are millions of data. return { update: true }; } else { // TODO Use same logic with ScatterView. // Manually update layout var res = linesLayout.reset(seriesModel); if (res.progress) { res.progress({ start: 0, end: data.count() }, data); } this._lineDraw.updateLayout(); this._clearLayer(api); } }, _updateLineDraw: function _updateLineDraw(data, seriesModel) { var lineDraw = this._lineDraw; var hasEffect = this._showEffect(seriesModel); var isPolyline = !!seriesModel.get('polyline'); var pipelineContext = seriesModel.pipelineContext; var isLargeDraw = pipelineContext.large; if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) { if (lineDraw) { lineDraw.remove(); } lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line); this._hasEffet = hasEffect; this._isPolyline = isPolyline; this._isLargeDraw = isLargeDraw; this.group.removeAll(); } this.group.add(lineDraw.group); return lineDraw; }, _showEffect: function _showEffect(seriesModel) { return !!seriesModel.get('effect.show'); }, _clearLayer: function _clearLayer(api) { // Not use motion when dragging or zooming var zr = api.getZr(); var isSvg = zr.painter.getType() === 'svg'; if (!isSvg && this._lastZlevel != null) { zr.painter.getLayer(this._lastZlevel).clear(true); } }, remove: function remove(ecModel, api) { this._lineDraw && this._lineDraw.remove(); this._lineDraw = null; // Clear motion when lineDraw is removed this._clearLayer(api); }, dispose: function dispose() {} }); module.exports = _default; /***/ }), /* 726 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/EffectLine.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var Line = __webpack_require__(/*! ./Line */ 660); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); var curveUtil = __webpack_require__(/*! zrender/lib/core/curve */ 455); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Provide effect for line * @module echarts/chart/helper/EffectLine */ /** * @constructor * @extends {module:zrender/graphic/Group} * @alias {module:echarts/chart/helper/Line} */ function EffectLine(lineData, idx, seriesScope) { graphic.Group.call(this); this.add(this.createLine(lineData, idx, seriesScope)); this._updateEffectSymbol(lineData, idx); } var effectLineProto = EffectLine.prototype; effectLineProto.createLine = function (lineData, idx, seriesScope) { return new Line(lineData, idx, seriesScope); }; effectLineProto._updateEffectSymbol = function (lineData, idx) { var itemModel = lineData.getItemModel(idx); var effectModel = itemModel.getModel('effect'); var size = effectModel.get('symbolSize'); var symbolType = effectModel.get('symbol'); if (!zrUtil.isArray(size)) { size = [size, size]; } var color = effectModel.get('color') || lineData.getItemVisual(idx, 'color'); var symbol = this.childAt(1); if (this._symbolType !== symbolType) { // Remove previous this.remove(symbol); symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color); symbol.z2 = 100; symbol.culling = true; this.add(symbol); } // Symbol may be removed if loop is false if (!symbol) { return; } // Shadow color is same with color in default symbol.setStyle('shadowColor', color); symbol.setStyle(effectModel.getItemStyle(['color'])); symbol.attr('scale', size); symbol.setColor(color); symbol.attr('scale', size); this._symbolType = symbolType; this._symbolScale = size; this._updateEffectAnimation(lineData, effectModel, idx); }; effectLineProto._updateEffectAnimation = function (lineData, effectModel, idx) { var symbol = this.childAt(1); if (!symbol) { return; } var self = this; var points = lineData.getItemLayout(idx); var period = effectModel.get('period') * 1000; var loop = effectModel.get('loop'); var constantSpeed = effectModel.get('constantSpeed'); var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) { return idx / lineData.count() * period / 3; }); var isDelayFunc = typeof delayExpr === 'function'; // Ignore when updating symbol.ignore = true; this.updateAnimationPoints(symbol, points); if (constantSpeed > 0) { period = this.getLineLength(symbol) / constantSpeed * 1000; } if (period !== this._period || loop !== this._loop) { symbol.stopAnimation(); var delay = delayExpr; if (isDelayFunc) { delay = delayExpr(idx); } if (symbol.__t > 0) { delay = -period * symbol.__t; } symbol.__t = 0; var animator = symbol.animate('', loop).when(period, { __t: 1 }).delay(delay).during(function () { self.updateSymbolPosition(symbol); }); if (!loop) { animator.done(function () { self.remove(symbol); }); } animator.start(); } this._period = period; this._loop = loop; }; effectLineProto.getLineLength = function (symbol) { // Not so accurate return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2); }; effectLineProto.updateAnimationPoints = function (symbol, points) { symbol.__p1 = points[0]; symbol.__p2 = points[1]; symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2]; }; effectLineProto.updateData = function (lineData, idx, seriesScope) { this.childAt(0).updateData(lineData, idx, seriesScope); this._updateEffectSymbol(lineData, idx); }; effectLineProto.updateSymbolPosition = function (symbol) { var p1 = symbol.__p1; var p2 = symbol.__p2; var cp1 = symbol.__cp1; var t = symbol.__t; var pos = symbol.position; var lastPos = [pos[0], pos[1]]; var quadraticAt = curveUtil.quadraticAt; var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt; pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t); pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t); // Tangent var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t); var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t); symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; // enable continuity trail for 'line', 'rect', 'roundRect' symbolType if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') { if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) { var scaleY = vec2.dist(lastPos, pos) * 1.05; symbol.attr('scale', [symbol.scale[0], scaleY]); // make sure the last segment render within endPoint if (t === 1) { pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2; pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2; } } else if (symbol.__lastT === 1) { // After first loop, symbol.__t does NOT start with 0, so connect p1 to pos directly. var scaleY = 2 * vec2.dist(p1, pos); symbol.attr('scale', [symbol.scale[0], scaleY]); } else { symbol.attr('scale', this._symbolScale); } } symbol.__lastT = symbol.__t; symbol.ignore = false; }; effectLineProto.updateLayout = function (lineData, idx) { this.childAt(0).updateLayout(lineData, idx); var effectModel = lineData.getItemModel(idx).getModel('effect'); this._updateEffectAnimation(lineData, effectModel, idx); }; zrUtil.inherits(EffectLine, graphic.Group); var _default = EffectLine; module.exports = _default; /***/ }), /* 727 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/Polyline.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/chart/helper/Line */ /** * @constructor * @extends {module:zrender/graphic/Group} * @alias {module:echarts/chart/helper/Polyline} */ function Polyline(lineData, idx, seriesScope) { graphic.Group.call(this); this._createPolyline(lineData, idx, seriesScope); } var polylineProto = Polyline.prototype; polylineProto._createPolyline = function (lineData, idx, seriesScope) { // var seriesModel = lineData.hostModel; var points = lineData.getItemLayout(idx); var line = new graphic.Polyline({ shape: { points: points } }); this.add(line); this._updateCommonStl(lineData, idx, seriesScope); }; polylineProto.updateData = function (lineData, idx, seriesScope) { var seriesModel = lineData.hostModel; var line = this.childAt(0); var target = { shape: { points: lineData.getItemLayout(idx) } }; graphic.updateProps(line, target, seriesModel, idx); this._updateCommonStl(lineData, idx, seriesScope); }; polylineProto._updateCommonStl = function (lineData, idx, seriesScope) { var line = this.childAt(0); var itemModel = lineData.getItemModel(idx); var visualColor = lineData.getItemVisual(idx, 'color'); var lineStyle = seriesScope && seriesScope.lineStyle; var hoverLineStyle = seriesScope && seriesScope.hoverLineStyle; if (!seriesScope || lineData.hasItemOption) { lineStyle = itemModel.getModel('lineStyle').getLineStyle(); hoverLineStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle(); } line.useStyle(zrUtil.defaults({ strokeNoScale: true, fill: 'none', stroke: visualColor }, lineStyle)); line.hoverStyle = hoverLineStyle; graphic.setHoverStyle(this); }; polylineProto.updateLayout = function (lineData, idx) { var polyline = this.childAt(0); polyline.setShape('points', lineData.getItemLayout(idx)); }; zrUtil.inherits(Polyline, graphic.Group); var _default = Polyline; module.exports = _default; /***/ }), /* 728 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/EffectPolyline.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Polyline = __webpack_require__(/*! ./Polyline */ 727); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var EffectLine = __webpack_require__(/*! ./EffectLine */ 726); var vec2 = __webpack_require__(/*! zrender/lib/core/vector */ 405); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Provide effect for line * @module echarts/chart/helper/EffectLine */ /** * @constructor * @extends {module:echarts/chart/helper/EffectLine} * @alias {module:echarts/chart/helper/Polyline} */ function EffectPolyline(lineData, idx, seriesScope) { EffectLine.call(this, lineData, idx, seriesScope); this._lastFrame = 0; this._lastFramePercent = 0; } var effectPolylineProto = EffectPolyline.prototype; // Overwrite effectPolylineProto.createLine = function (lineData, idx, seriesScope) { return new Polyline(lineData, idx, seriesScope); }; // Overwrite effectPolylineProto.updateAnimationPoints = function (symbol, points) { this._points = points; var accLenArr = [0]; var len = 0; for (var i = 1; i < points.length; i++) { var p1 = points[i - 1]; var p2 = points[i]; len += vec2.dist(p1, p2); accLenArr.push(len); } if (len === 0) { return; } for (var i = 0; i < accLenArr.length; i++) { accLenArr[i] /= len; } this._offsets = accLenArr; this._length = len; }; // Overwrite effectPolylineProto.getLineLength = function (symbol) { return this._length; }; // Overwrite effectPolylineProto.updateSymbolPosition = function (symbol) { var t = symbol.__t; var points = this._points; var offsets = this._offsets; var len = points.length; if (!offsets) { // Has length 0 return; } var lastFrame = this._lastFrame; var frame; if (t < this._lastFramePercent) { // Start from the next frame // PENDING start from lastFrame ? var start = Math.min(lastFrame + 1, len - 1); for (frame = start; frame >= 0; frame--) { if (offsets[frame] <= t) { break; } } // PENDING really need to do this ? frame = Math.min(frame, len - 2); } else { for (var frame = lastFrame; frame < len; frame++) { if (offsets[frame] > t) { break; } } frame = Math.min(frame - 1, len - 2); } vec2.lerp(symbol.position, points[frame], points[frame + 1], (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame])); var tx = points[frame + 1][0] - points[frame][0]; var ty = points[frame + 1][1] - points[frame][1]; symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; this._lastFrame = frame; this._lastFramePercent = t; symbol.ignore = false; }; zrUtil.inherits(EffectPolyline, EffectLine); var _default = EffectPolyline; module.exports = _default; /***/ }), /* 729 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/helper/LargeLineDraw.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var IncrementalDisplayable = __webpack_require__(/*! zrender/lib/graphic/IncrementalDisplayable */ 484); var lineContain = __webpack_require__(/*! zrender/lib/contain/line */ 458); var quadraticContain = __webpack_require__(/*! zrender/lib/contain/quadratic */ 460); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // TODO Batch by color var LargeLineShape = graphic.extendShape({ shape: { polyline: false, curveness: 0, segs: [] }, buildPath: function buildPath(path, shape) { var segs = shape.segs; var curveness = shape.curveness; if (shape.polyline) { for (var i = 0; i < segs.length;) { var count = segs[i++]; if (count > 0) { path.moveTo(segs[i++], segs[i++]); for (var k = 1; k < count; k++) { path.lineTo(segs[i++], segs[i++]); } } } } else { for (var i = 0; i < segs.length;) { var x0 = segs[i++]; var y0 = segs[i++]; var x1 = segs[i++]; var y1 = segs[i++]; path.moveTo(x0, y0); if (curveness > 0) { var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness; var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness; path.quadraticCurveTo(x2, y2, x1, y1); } else { path.lineTo(x1, y1); } } } }, findDataIndex: function findDataIndex(x, y) { var shape = this.shape; var segs = shape.segs; var curveness = shape.curveness; if (shape.polyline) { var dataIndex = 0; for (var i = 0; i < segs.length;) { var count = segs[i++]; if (count > 0) { var x0 = segs[i++]; var y0 = segs[i++]; for (var k = 1; k < count; k++) { var x1 = segs[i++]; var y1 = segs[i++]; if (lineContain.containStroke(x0, y0, x1, y1)) { return dataIndex; } } } dataIndex++; } } else { var dataIndex = 0; for (var i = 0; i < segs.length;) { var x0 = segs[i++]; var y0 = segs[i++]; var x1 = segs[i++]; var y1 = segs[i++]; if (curveness > 0) { var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness; var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness; if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1)) { return dataIndex; } } else { if (lineContain.containStroke(x0, y0, x1, y1)) { return dataIndex; } } dataIndex++; } } return -1; } }); function LargeLineDraw() { this.group = new graphic.Group(); } var largeLineProto = LargeLineDraw.prototype; largeLineProto.isPersistent = function () { return !this._incremental; }; /** * Update symbols draw by new data * @param {module:echarts/data/List} data */ largeLineProto.updateData = function (data) { this.group.removeAll(); var lineEl = new LargeLineShape({ rectHover: true, cursor: 'default' }); lineEl.setShape({ segs: data.getLayout('linesPoints') }); this._setCommon(lineEl, data); // Add back this.group.add(lineEl); this._incremental = null; }; /** * @override */ largeLineProto.incrementalPrepareUpdate = function (data) { this.group.removeAll(); this._clearIncremental(); if (data.count() > 5e5) { if (!this._incremental) { this._incremental = new IncrementalDisplayable({ silent: true }); } this.group.add(this._incremental); } else { this._incremental = null; } }; /** * @override */ largeLineProto.incrementalUpdate = function (taskParams, data) { var lineEl = new LargeLineShape(); lineEl.setShape({ segs: data.getLayout('linesPoints') }); this._setCommon(lineEl, data, !!this._incremental); if (!this._incremental) { lineEl.rectHover = true; lineEl.cursor = 'default'; lineEl.__startIndex = taskParams.start; this.group.add(lineEl); } else { this._incremental.addDisplayable(lineEl, true); } }; /** * @override */ largeLineProto.remove = function () { this._clearIncremental(); this._incremental = null; this.group.removeAll(); }; largeLineProto._setCommon = function (lineEl, data, isIncremental) { var hostModel = data.hostModel; lineEl.setShape({ polyline: hostModel.get('polyline'), curveness: hostModel.get('lineStyle.curveness') }); lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle()); lineEl.style.strokeNoScale = true; var visualColor = data.getVisual('color'); if (visualColor) { lineEl.setStyle('stroke', visualColor); } lineEl.setStyle('fill'); if (!isIncremental) { // Enable tooltip // PENDING May have performance issue when path is extremely large lineEl.seriesIndex = hostModel.seriesIndex; lineEl.on('mousemove', function (e) { lineEl.dataIndex = null; var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY); if (dataIndex > 0) { // Provide dataIndex for tooltip lineEl.dataIndex = dataIndex + lineEl.__startIndex; } }); } }; largeLineProto._clearIncremental = function () { var incremental = this._incremental; if (incremental) { incremental.clearDisplaybles(); } }; var _default = LargeLineDraw; module.exports = _default; /***/ }), /* 730 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/lines/linesLayout.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var createRenderPlanner = __webpack_require__(/*! ../helper/createRenderPlanner */ 509); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Float32Array */ var _default = { seriesType: 'lines', plan: createRenderPlanner(), reset: function reset(seriesModel) { var coordSys = seriesModel.coordinateSystem; var isPolyline = seriesModel.get('polyline'); var isLarge = seriesModel.pipelineContext.large; function progress(params, lineData) { var lineCoords = []; if (isLarge) { var points; var segCount = params.end - params.start; if (isPolyline) { var totalCoordsCount = 0; for (var i = params.start; i < params.end; i++) { totalCoordsCount += seriesModel.getLineCoordsCount(i); } points = new Float32Array(segCount + totalCoordsCount * 2); } else { points = new Float32Array(segCount * 4); } var offset = 0; var pt = []; for (var i = params.start; i < params.end; i++) { var len = seriesModel.getLineCoords(i, lineCoords); if (isPolyline) { points[offset++] = len; } for (var k = 0; k < len; k++) { pt = coordSys.dataToPoint(lineCoords[k], false, pt); points[offset++] = pt[0]; points[offset++] = pt[1]; } } lineData.setLayout('linesPoints', points); } else { for (var i = params.start; i < params.end; i++) { var itemModel = lineData.getItemModel(i); var len = seriesModel.getLineCoords(i, lineCoords); var pts = []; if (isPolyline) { for (var j = 0; j < len; j++) { pts.push(coordSys.dataToPoint(lineCoords[j])); } } else { pts[0] = coordSys.dataToPoint(lineCoords[0]); pts[1] = coordSys.dataToPoint(lineCoords[1]); var curveness = itemModel.get('lineStyle.curveness'); if (+curveness) { pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness]; } } lineData.setItemLayout(i, pts); } } } return { progress: progress }; } }; module.exports = _default; /***/ }), /* 731 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/lines/linesVisual.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function normalize(a) { if (!(a instanceof Array)) { a = [a, a]; } return a; } var opacityQuery = 'lineStyle.opacity'.split('.'); var _default = { seriesType: 'lines', reset: function reset(seriesModel, ecModel, api) { var symbolType = normalize(seriesModel.get('symbol')); var symbolSize = normalize(seriesModel.get('symbolSize')); var data = seriesModel.getData(); data.setVisual('fromSymbol', symbolType && symbolType[0]); data.setVisual('toSymbol', symbolType && symbolType[1]); data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]); data.setVisual('toSymbolSize', symbolSize && symbolSize[1]); data.setVisual('opacity', seriesModel.get(opacityQuery)); function dataEach(data, idx) { var itemModel = data.getItemModel(idx); var symbolType = normalize(itemModel.getShallow('symbol', true)); var symbolSize = normalize(itemModel.getShallow('symbolSize', true)); var opacity = itemModel.get(opacityQuery); symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]); symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]); symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]); symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]); data.setItemVisual(idx, 'opacity', opacity); } return { dataEach: data.hasItemOption ? dataEach : null }; } }; module.exports = _default; /***/ }), /* 732 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/heatmap.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./heatmap/HeatmapSeries */ 733); __webpack_require__(/*! ./heatmap/HeatmapView */ 734); /***/ }), /* 733 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var createListFromArray = __webpack_require__(/*! ../helper/createListFromArray */ 524); var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.heatmap', getInitialData: function getInitialData(option, ecModel) { return createListFromArray(this.getSource(), this, { generateCoord: 'value' }); }, preventIncremental: function preventIncremental() { var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem')); if (coordSysCreator && coordSysCreator.dimensions) { return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat'; } }, defaultOption: { // Cartesian2D or geo coordinateSystem: 'cartesian2d', zlevel: 0, z: 2, // Cartesian coordinate system // xAxisIndex: 0, // yAxisIndex: 0, // Geo coordinate system geoIndex: 0, blurSize: 30, pointSize: 20, maxOpacity: 1, minOpacity: 0 } }); module.exports = _default; /***/ }), /* 734 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/heatmap/HeatmapView.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var HeatmapLayer = __webpack_require__(/*! ./HeatmapLayer */ 735); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function getIsInPiecewiseRange(dataExtent, pieceList, selected) { var dataSpan = dataExtent[1] - dataExtent[0]; pieceList = zrUtil.map(pieceList, function (piece) { return { interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan] }; }); var len = pieceList.length; var lastIndex = 0; return function (val) { // Try to find in the location of the last found for (var i = lastIndex; i < len; i++) { var interval = pieceList[i].interval; if (interval[0] <= val && val <= interval[1]) { lastIndex = i; break; } } if (i === len) { // Not found, back interation for (var i = lastIndex - 1; i >= 0; i--) { var interval = pieceList[i].interval; if (interval[0] <= val && val <= interval[1]) { lastIndex = i; break; } } } return i >= 0 && i < len && selected[i]; }; } function getIsInContinuousRange(dataExtent, range) { var dataSpan = dataExtent[1] - dataExtent[0]; range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan]; return function (val) { return val >= range[0] && val <= range[1]; }; } function isGeoCoordSys(coordSys) { var dimensions = coordSys.dimensions; // Not use coorSys.type === 'geo' because coordSys maybe extended return dimensions[0] === 'lng' && dimensions[1] === 'lat'; } var _default = echarts.extendChartView({ type: 'heatmap', render: function render(seriesModel, ecModel, api) { var visualMapOfThisSeries; ecModel.eachComponent('visualMap', function (visualMap) { visualMap.eachTargetSeries(function (targetSeries) { if (targetSeries === seriesModel) { visualMapOfThisSeries = visualMap; } }); }); this.group.removeAll(); this._incrementalDisplayable = null; var coordSys = seriesModel.coordinateSystem; if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') { this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count()); } else if (isGeoCoordSys(coordSys)) { this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api); } }, incrementalPrepareRender: function incrementalPrepareRender(seriesModel, ecModel, api) { this.group.removeAll(); }, incrementalRender: function incrementalRender(params, seriesModel, ecModel, api) { var coordSys = seriesModel.coordinateSystem; if (coordSys) { this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true); } }, _renderOnCartesianAndCalendar: function _renderOnCartesianAndCalendar(seriesModel, api, start, end, incremental) { var coordSys = seriesModel.coordinateSystem; var width; var height; if (coordSys.type === 'cartesian2d') { var xAxis = coordSys.getAxis('x'); var yAxis = coordSys.getAxis('y'); width = xAxis.getBandWidth(); height = yAxis.getBandWidth(); } var group = this.group; var data = seriesModel.getData(); var itemStyleQuery = 'itemStyle'; var hoverItemStyleQuery = 'emphasis.itemStyle'; var labelQuery = 'label'; var hoverLabelQuery = 'emphasis.label'; var style = seriesModel.getModel(itemStyleQuery).getItemStyle(['color']); var hoverStl = seriesModel.getModel(hoverItemStyleQuery).getItemStyle(); var labelModel = seriesModel.getModel(labelQuery); var hoverLabelModel = seriesModel.getModel(hoverLabelQuery); var coordSysType = coordSys.type; var dataDims = coordSysType === 'cartesian2d' ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')]; for (var idx = start; idx < end; idx++) { var rect; if (coordSysType === 'cartesian2d') { // Ignore empty data if (isNaN(data.get(dataDims[2], idx))) { continue; } var point = coordSys.dataToPoint([data.get(dataDims[0], idx), data.get(dataDims[1], idx)]); rect = new graphic.Rect({ shape: { x: Math.floor(Math.round(point[0]) - width / 2), y: Math.floor(Math.round(point[1]) - height / 2), width: Math.ceil(width), height: Math.ceil(height) }, style: { fill: data.getItemVisual(idx, 'color'), opacity: data.getItemVisual(idx, 'opacity') } }); } else { // Ignore empty data if (isNaN(data.get(dataDims[1], idx))) { continue; } rect = new graphic.Rect({ z2: 1, shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape, style: { fill: data.getItemVisual(idx, 'color'), opacity: data.getItemVisual(idx, 'opacity') } }); } var itemModel = data.getItemModel(idx); // Optimization for large datset if (data.hasItemOption) { style = itemModel.getModel(itemStyleQuery).getItemStyle(['color']); hoverStl = itemModel.getModel(hoverItemStyleQuery).getItemStyle(); labelModel = itemModel.getModel(labelQuery); hoverLabelModel = itemModel.getModel(hoverLabelQuery); } var rawValue = seriesModel.getRawValue(idx); var defaultText = '-'; if (rawValue && rawValue[2] != null) { defaultText = rawValue[2]; } graphic.setLabelStyle(style, hoverStl, labelModel, hoverLabelModel, { labelFetcher: seriesModel, labelDataIndex: idx, defaultText: defaultText, isRectText: true }); rect.setStyle(style); graphic.setHoverStyle(rect, data.hasItemOption ? hoverStl : zrUtil.extend({}, hoverStl)); rect.incremental = incremental; // PENDING if (incremental) { // Rect must use hover layer if it's incremental. rect.useHoverLayer = true; } group.add(rect); data.setItemGraphicEl(idx, rect); } }, _renderOnGeo: function _renderOnGeo(geo, seriesModel, visualMapModel, api) { var inRangeVisuals = visualMapModel.targetVisuals.inRange; var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange; // if (!visualMapping) { // throw new Error('Data range must have color visuals'); // } var data = seriesModel.getData(); var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer(); hmLayer.blurSize = seriesModel.get('blurSize'); hmLayer.pointSize = seriesModel.get('pointSize'); hmLayer.minOpacity = seriesModel.get('minOpacity'); hmLayer.maxOpacity = seriesModel.get('maxOpacity'); var rect = geo.getViewRect().clone(); var roamTransform = geo.getRoamTransform(); rect.applyTransform(roamTransform); // Clamp on viewport var x = Math.max(rect.x, 0); var y = Math.max(rect.y, 0); var x2 = Math.min(rect.width + rect.x, api.getWidth()); var y2 = Math.min(rect.height + rect.y, api.getHeight()); var width = x2 - x; var height = y2 - y; var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')]; var points = data.mapArray(dims, function (lng, lat, value) { var pt = geo.dataToPoint([lng, lat]); pt[0] -= x; pt[1] -= y; pt.push(value); return pt; }); var dataExtent = visualMapModel.getExtent(); var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected); hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), { inRange: inRangeVisuals.color.getColorMapper(), outOfRange: outOfRangeVisuals.color.getColorMapper() }, isInRange); var img = new graphic.Image({ style: { width: width, height: height, x: x, y: y, image: hmLayer.canvas }, silent: true }); this.group.add(img); }, dispose: function dispose() {} }); module.exports = _default; /***/ }), /* 735 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Uint8ClampedArray */ var GRADIENT_LEVELS = 256; /** * Heatmap Chart * * @class */ function Heatmap() { var canvas = zrUtil.createCanvas(); this.canvas = canvas; this.blurSize = 30; this.pointSize = 20; this.maxOpacity = 1; this.minOpacity = 0; this._gradientPixels = {}; } Heatmap.prototype = { /** * Renders Heatmap and returns the rendered canvas * @param {Array} data array of data, each has x, y, value * @param {number} width canvas width * @param {number} height canvas height */ update: function update(data, width, height, normalize, colorFunc, isInRange) { var brush = this._getBrush(); var gradientInRange = this._getGradient(data, colorFunc, 'inRange'); var gradientOutOfRange = this._getGradient(data, colorFunc, 'outOfRange'); var r = this.pointSize + this.blurSize; var canvas = this.canvas; var ctx = canvas.getContext('2d'); var len = data.length; canvas.width = width; canvas.height = height; for (var i = 0; i < len; ++i) { var p = data[i]; var x = p[0]; var y = p[1]; var value = p[2]; // calculate alpha using value var alpha = normalize(value); // draw with the circle brush with alpha ctx.globalAlpha = alpha; ctx.drawImage(brush, x - r, y - r); } if (!canvas.width || !canvas.height) { // Avoid "Uncaught DOMException: Failed to execute 'getImageData' on // 'CanvasRenderingContext2D': The source height is 0." return canvas; } // colorize the canvas using alpha value and set with gradient var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); var pixels = imageData.data; var offset = 0; var pixelLen = pixels.length; var minOpacity = this.minOpacity; var maxOpacity = this.maxOpacity; var diffOpacity = maxOpacity - minOpacity; while (offset < pixelLen) { var alpha = pixels[offset + 3] / 256; var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; // Simple optimize to ignore the empty data if (alpha > 0) { var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; // Any alpha > 0 will be mapped to [minOpacity, maxOpacity] alpha > 0 && (alpha = alpha * diffOpacity + minOpacity); pixels[offset++] = gradient[gradientOffset]; pixels[offset++] = gradient[gradientOffset + 1]; pixels[offset++] = gradient[gradientOffset + 2]; pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256; } else { offset += 4; } } ctx.putImageData(imageData, 0, 0); return canvas; }, /** * get canvas of a black circle brush used for canvas to draw later * @private * @returns {Object} circle brush canvas */ _getBrush: function _getBrush() { var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas()); // set brush size var r = this.pointSize + this.blurSize; var d = r * 2; brushCanvas.width = d; brushCanvas.height = d; var ctx = brushCanvas.getContext('2d'); ctx.clearRect(0, 0, d, d); // in order to render shadow without the distinct circle, // draw the distinct circle in an invisible place, // and use shadowOffset to draw shadow in the center of the canvas ctx.shadowOffsetX = d; ctx.shadowBlur = this.blurSize; // draw the shadow in black, and use alpha and shadow blur to generate // color in color map ctx.shadowColor = '#000'; // draw circle in the left to the canvas ctx.beginPath(); ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true); ctx.closePath(); ctx.fill(); return brushCanvas; }, /** * get gradient color map * @private */ _getGradient: function _getGradient(data, colorFunc, state) { var gradientPixels = this._gradientPixels; var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4)); var color = [0, 0, 0, 0]; var off = 0; for (var i = 0; i < 256; i++) { colorFunc[state](i / 255, true, color); pixelsSingleState[off++] = color[0]; pixelsSingleState[off++] = color[1]; pixelsSingleState[off++] = color[2]; pixelsSingleState[off++] = color[3]; } return pixelsSingleState; } }; var _default = Heatmap; module.exports = _default; /***/ }), /* 736 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/pictorialBar.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); __webpack_require__(/*! ../coord/cartesian/Grid */ 563); __webpack_require__(/*! ./bar/PictorialBarSeries */ 737); __webpack_require__(/*! ./bar/PictorialBarView */ 738); var _barGrid = __webpack_require__(/*! ../layout/barGrid */ 539); var layout = _barGrid.layout; var visualSymbol = __webpack_require__(/*! ../visual/symbol */ 559); __webpack_require__(/*! ../component/gridSimple */ 562); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // In case developer forget to include grid component echarts.registerLayout(zrUtil.curry(layout, 'pictorialBar')); echarts.registerVisual(visualSymbol('pictorialBar', 'roundRect')); /***/ }), /* 737 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar/PictorialBarSeries.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BaseBarSeries = __webpack_require__(/*! ./BaseBarSeries */ 580); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PictorialBarSeries = BaseBarSeries.extend({ type: 'series.pictorialBar', dependencies: ['grid'], defaultOption: { symbol: 'circle', // Customized bar shape symbolSize: null, // Can be ['100%', '100%'], null means auto. symbolRotate: null, symbolPosition: null, // 'start' or 'end' or 'center', null means auto. symbolOffset: null, symbolMargin: null, // start margin and end margin. Can be a number or a percent string. // Auto margin by default. symbolRepeat: false, // false/null/undefined, means no repeat. // Can be true, means auto calculate repeat times and cut by data. // Can be a number, specifies repeat times, and do not cut by data. // Can be 'fixed', means auto calculate repeat times but do not cut by data. symbolRepeatDirection: 'end', // 'end' means from 'start' to 'end'. symbolClip: false, symbolBoundingData: null, // Can be 60 or -40 or [-40, 60] symbolPatternSize: 400, // 400 * 400 px barGap: '-100%', // In most case, overlap is needed. // z can be set in data item, which is z2 actually. // Disable progressive progressive: 0, hoverAnimation: false // Open only when needed. }, getInitialData: function getInitialData(option) { // Disable stack. option.stack = null; return PictorialBarSeries.superApply(this, 'getInitialData', arguments); } }); var _default = PictorialBarSeries; module.exports = _default; /***/ }), /* 738 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/bar/PictorialBarView.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var isNumeric = _number.isNumeric; var _helper = __webpack_require__(/*! ./helper */ 582); var setLabel = _helper.setLabel; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth']; // index: +isHorizontal var LAYOUT_ATTRS = [{ xy: 'x', wh: 'width', index: 0, posDesc: ['left', 'right'] }, { xy: 'y', wh: 'height', index: 1, posDesc: ['top', 'bottom'] }]; var pathForLineWidth = new graphic.Circle(); var BarView = echarts.extendChartView({ type: 'pictorialBar', render: function render(seriesModel, ecModel, api) { var group = this.group; var data = seriesModel.getData(); var oldData = this._data; var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); var isHorizontal = !!baseAxis.isHorizontal(); var coordSysRect = cartesian.grid.getRect(); var opt = { ecSize: { width: api.getWidth(), height: api.getHeight() }, seriesModel: seriesModel, coordSys: cartesian, coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]], isHorizontal: isHorizontal, valueDim: LAYOUT_ATTRS[+isHorizontal], categoryDim: LAYOUT_ATTRS[1 - isHorizontal] }; data.diff(oldData).add(function (dataIndex) { if (!data.hasValue(dataIndex)) { return; } var itemModel = getItemModel(data, dataIndex); var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt); var bar = createBar(data, opt, symbolMeta); data.setItemGraphicEl(dataIndex, bar); group.add(bar); updateCommon(bar, opt, symbolMeta); }).update(function (newIndex, oldIndex) { var bar = oldData.getItemGraphicEl(oldIndex); if (!data.hasValue(newIndex)) { group.remove(bar); return; } var itemModel = getItemModel(data, newIndex); var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt); var pictorialShapeStr = getShapeStr(data, symbolMeta); if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) { group.remove(bar); data.setItemGraphicEl(newIndex, null); bar = null; } if (bar) { updateBar(bar, opt, symbolMeta); } else { bar = createBar(data, opt, symbolMeta, true); } data.setItemGraphicEl(newIndex, bar); bar.__pictorialSymbolMeta = symbolMeta; // Add back group.add(bar); updateCommon(bar, opt, symbolMeta); }).remove(function (dataIndex) { var bar = oldData.getItemGraphicEl(dataIndex); bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar); }).execute(); this._data = data; return this.group; }, dispose: zrUtil.noop, remove: function remove(ecModel, api) { var group = this.group; var data = this._data; if (ecModel.get('animation')) { if (data) { data.eachItemGraphicEl(function (bar) { removeBar(data, bar.dataIndex, ecModel, bar); }); } } else { group.removeAll(); } } }); // Set or calculate default value about symbol, and calculate layout info. function getSymbolMeta(data, dataIndex, itemModel, opt) { var layout = data.getItemLayout(dataIndex); var symbolRepeat = itemModel.get('symbolRepeat'); var symbolClip = itemModel.get('symbolClip'); var symbolPosition = itemModel.get('symbolPosition') || 'start'; var symbolRotate = itemModel.get('symbolRotate'); var rotation = (symbolRotate || 0) * Math.PI / 180 || 0; var symbolPatternSize = itemModel.get('symbolPatternSize') || 2; var isAnimationEnabled = itemModel.isAnimationEnabled(); var symbolMeta = { dataIndex: dataIndex, layout: layout, itemModel: itemModel, symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle', color: data.getItemVisual(dataIndex, 'color'), symbolClip: symbolClip, symbolRepeat: symbolRepeat, symbolRepeatDirection: itemModel.get('symbolRepeatDirection'), symbolPatternSize: symbolPatternSize, rotation: rotation, animationModel: isAnimationEnabled ? itemModel : null, hoverAnimation: isAnimationEnabled && itemModel.get('hoverAnimation'), z2: itemModel.getShallow('z', true) || 0 }; prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta); prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta); prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta); var symbolSize = symbolMeta.symbolSize; var symbolOffset = itemModel.get('symbolOffset'); if (zrUtil.isArray(symbolOffset)) { symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])]; } prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta); return symbolMeta; } // bar length can be negative. function prepareBarLength(itemModel, symbolRepeat, layout, opt, output) { var valueDim = opt.valueDim; var symbolBoundingData = itemModel.get('symbolBoundingData'); var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis()); var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0)); var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0); var boundingLength; if (zrUtil.isArray(symbolBoundingData)) { var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx]; symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse(); boundingLength = symbolBoundingExtent[pxSignIdx]; } else if (symbolBoundingData != null) { boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx; } else if (symbolRepeat) { boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx; } else { boundingLength = layout[valueDim.wh]; } output.boundingLength = boundingLength; if (symbolRepeat) { output.repeatCutLength = layout[valueDim.wh]; } output.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0; } function convertToCoordOnAxis(axis, value) { return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value))); } // Support ['100%', '100%'] function prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, output) { var valueDim = opt.valueDim; var categoryDim = opt.categoryDim; var categorySize = Math.abs(layout[categoryDim.wh]); var symbolSize = data.getItemVisual(dataIndex, 'symbolSize'); if (zrUtil.isArray(symbolSize)) { symbolSize = symbolSize.slice(); } else { if (symbolSize == null) { symbolSize = '100%'; } symbolSize = [symbolSize, symbolSize]; } // Note: percentage symbolSize (like '100%') do not consider lineWidth, because it is // to complicated to calculate real percent value if considering scaled lineWidth. // So the actual size will bigger than layout size if lineWidth is bigger than zero, // which can be tolerated in pictorial chart. symbolSize[categoryDim.index] = parsePercent(symbolSize[categoryDim.index], categorySize); symbolSize[valueDim.index] = parsePercent(symbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength)); output.symbolSize = symbolSize; // If x or y is less than zero, show reversed shape. var symbolScale = output.symbolScale = [symbolSize[0] / symbolPatternSize, symbolSize[1] / symbolPatternSize]; // Follow convention, 'right' and 'top' is the normal scale. symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign; } function prepareLineWidth(itemModel, symbolScale, rotation, opt, output) { // In symbols are drawn with scale, so do not need to care about the case that width // or height are too small. But symbol use strokeNoScale, where acture lineWidth should // be calculated. var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0; if (valueLineWidth) { pathForLineWidth.attr({ scale: symbolScale.slice(), rotation: rotation }); pathForLineWidth.updateTransform(); valueLineWidth /= pathForLineWidth.getLineScale(); valueLineWidth *= symbolScale[opt.valueDim.index]; } output.valueLineWidth = valueLineWidth; } function prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, output) { var categoryDim = opt.categoryDim; var valueDim = opt.valueDim; var pxSign = output.pxSign; var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0); var pathLen = unitLength; // Note: rotation will not effect the layout of symbols, because user may // want symbols to rotate on its center, which should not be translated // when rotating. if (symbolRepeat) { var absBoundingLength = Math.abs(boundingLength); var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + ''; var hasEndGap = false; if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) { hasEndGap = true; symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1); } symbolMargin = parsePercent(symbolMargin, symbolSize[valueDim.index]); var uLenWithMargin = Math.max(unitLength + symbolMargin * 2, 0); // When symbol margin is less than 0, margin at both ends will be subtracted // to ensure that all of the symbols will not be overflow the given area. var endFix = hasEndGap ? 0 : symbolMargin * 2; // Both final repeatTimes and final symbolMargin area calculated based on // boundingLength. var repeatSpecified = isNumeric(symbolRepeat); var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); // Adjust calculate margin, to ensure each symbol is displayed // entirely in the given layout area. var mDiff = absBoundingLength - repeatTimes * unitLength; symbolMargin = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1); uLenWithMargin = unitLength + symbolMargin * 2; endFix = hasEndGap ? 0 : symbolMargin * 2; // Update repeatTimes when not all symbol will be shown. if (!repeatSpecified && symbolRepeat !== 'fixed') { repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0; } pathLen = repeatTimes * uLenWithMargin - endFix; output.repeatTimes = repeatTimes; output.symbolMargin = symbolMargin; } var sizeFix = pxSign * (pathLen / 2); var pathPosition = output.pathPosition = []; pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2; pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2; // 'center' if (symbolOffset) { pathPosition[0] += symbolOffset[0]; pathPosition[1] += symbolOffset[1]; } var bundlePosition = output.bundlePosition = []; bundlePosition[categoryDim.index] = layout[categoryDim.xy]; bundlePosition[valueDim.index] = layout[valueDim.xy]; var barRectShape = output.barRectShape = zrUtil.extend({}, layout); barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix)); barRectShape[categoryDim.wh] = layout[categoryDim.wh]; var clipShape = output.clipShape = {}; // Consider that symbol may be overflow layout rect. clipShape[categoryDim.xy] = -layout[categoryDim.xy]; clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh]; clipShape[valueDim.xy] = 0; clipShape[valueDim.wh] = layout[valueDim.wh]; } function createPath(symbolMeta) { var symbolPatternSize = symbolMeta.symbolPatternSize; var path = createSymbol( // Consider texture img, make a big size. symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize, symbolMeta.color); path.attr({ culling: true }); path.type !== 'image' && path.setStyle({ strokeNoScale: true }); return path; } function createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) { var bundle = bar.__pictorialBundle; var symbolSize = symbolMeta.symbolSize; var valueLineWidth = symbolMeta.valueLineWidth; var pathPosition = symbolMeta.pathPosition; var valueDim = opt.valueDim; var repeatTimes = symbolMeta.repeatTimes || 0; var index = 0; var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2; eachPath(bar, function (path) { path.__pictorialAnimationIndex = index; path.__pictorialRepeatTimes = repeatTimes; if (index < repeatTimes) { updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate); } else { updateAttr(path, null, { scale: [0, 0] }, symbolMeta, isUpdate, function () { bundle.remove(path); }); } updateHoverAnimation(path, symbolMeta); index++; }); for (; index < repeatTimes; index++) { var path = createPath(symbolMeta); path.__pictorialAnimationIndex = index; path.__pictorialRepeatTimes = repeatTimes; bundle.add(path); var target = makeTarget(index); updateAttr(path, { position: target.position, scale: [0, 0] }, { scale: target.scale, rotation: target.rotation }, symbolMeta, isUpdate); // FIXME // If all emphasis/normal through action. path.on('mouseover', onMouseOver).on('mouseout', onMouseOut); updateHoverAnimation(path, symbolMeta); } function makeTarget(index) { var position = pathPosition.slice(); // (start && pxSign > 0) || (end && pxSign < 0): i = repeatTimes - index // Otherwise: i = index; var pxSign = symbolMeta.pxSign; var i = index; if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) { i = repeatTimes - 1 - index; } position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index]; return { position: position, scale: symbolMeta.symbolScale.slice(), rotation: symbolMeta.rotation }; } function onMouseOver() { eachPath(bar, function (path) { path.trigger('emphasis'); }); } function onMouseOut() { eachPath(bar, function (path) { path.trigger('normal'); }); } } function createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) { var bundle = bar.__pictorialBundle; var mainPath = bar.__pictorialMainPath; if (!mainPath) { mainPath = bar.__pictorialMainPath = createPath(symbolMeta); bundle.add(mainPath); updateAttr(mainPath, { position: symbolMeta.pathPosition.slice(), scale: [0, 0], rotation: symbolMeta.rotation }, { scale: symbolMeta.symbolScale.slice() }, symbolMeta, isUpdate); mainPath.on('mouseover', onMouseOver).on('mouseout', onMouseOut); } else { updateAttr(mainPath, null, { position: symbolMeta.pathPosition.slice(), scale: symbolMeta.symbolScale.slice(), rotation: symbolMeta.rotation }, symbolMeta, isUpdate); } updateHoverAnimation(mainPath, symbolMeta); function onMouseOver() { this.trigger('emphasis'); } function onMouseOut() { this.trigger('normal'); } } // bar rect is used for label. function createOrUpdateBarRect(bar, symbolMeta, isUpdate) { var rectShape = zrUtil.extend({}, symbolMeta.barRectShape); var barRect = bar.__pictorialBarRect; if (!barRect) { barRect = bar.__pictorialBarRect = new graphic.Rect({ z2: 2, shape: rectShape, silent: true, style: { stroke: 'transparent', fill: 'transparent', lineWidth: 0 } }); bar.add(barRect); } else { updateAttr(barRect, null, { shape: rectShape }, symbolMeta, isUpdate); } } function createOrUpdateClip(bar, opt, symbolMeta, isUpdate) { // If not clip, symbol will be remove and rebuilt. if (symbolMeta.symbolClip) { var clipPath = bar.__pictorialClipPath; var clipShape = zrUtil.extend({}, symbolMeta.clipShape); var valueDim = opt.valueDim; var animationModel = symbolMeta.animationModel; var dataIndex = symbolMeta.dataIndex; if (clipPath) { graphic.updateProps(clipPath, { shape: clipShape }, animationModel, dataIndex); } else { clipShape[valueDim.wh] = 0; clipPath = new graphic.Rect({ shape: clipShape }); bar.__pictorialBundle.setClipPath(clipPath); bar.__pictorialClipPath = clipPath; var target = {}; target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh]; graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, { shape: target }, animationModel, dataIndex); } } } function getItemModel(data, dataIndex) { var itemModel = data.getItemModel(dataIndex); itemModel.getAnimationDelayParams = getAnimationDelayParams; itemModel.isAnimationEnabled = isAnimationEnabled; return itemModel; } function getAnimationDelayParams(path) { // The order is the same as the z-order, see `symbolRepeatDiretion`. return { index: path.__pictorialAnimationIndex, count: path.__pictorialRepeatTimes }; } function isAnimationEnabled() { // `animation` prop can be set on itemModel in pictorial bar chart. return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation'); } function updateHoverAnimation(path, symbolMeta) { path.off('emphasis').off('normal'); var scale = symbolMeta.symbolScale.slice(); symbolMeta.hoverAnimation && path.on('emphasis', function () { this.animateTo({ scale: [scale[0] * 1.1, scale[1] * 1.1] }, 400, 'elasticOut'); }).on('normal', function () { this.animateTo({ scale: scale.slice() }, 400, 'elasticOut'); }); } function createBar(data, opt, symbolMeta, isUpdate) { // bar is the main element for each data. var bar = new graphic.Group(); // bundle is used for location and clip. var bundle = new graphic.Group(); bar.add(bundle); bar.__pictorialBundle = bundle; bundle.attr('position', symbolMeta.bundlePosition.slice()); if (symbolMeta.symbolRepeat) { createOrUpdateRepeatSymbols(bar, opt, symbolMeta); } else { createOrUpdateSingleSymbol(bar, opt, symbolMeta); } createOrUpdateBarRect(bar, symbolMeta, isUpdate); createOrUpdateClip(bar, opt, symbolMeta, isUpdate); bar.__pictorialShapeStr = getShapeStr(data, symbolMeta); bar.__pictorialSymbolMeta = symbolMeta; return bar; } function updateBar(bar, opt, symbolMeta) { var animationModel = symbolMeta.animationModel; var dataIndex = symbolMeta.dataIndex; var bundle = bar.__pictorialBundle; graphic.updateProps(bundle, { position: symbolMeta.bundlePosition.slice() }, animationModel, dataIndex); if (symbolMeta.symbolRepeat) { createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true); } else { createOrUpdateSingleSymbol(bar, opt, symbolMeta, true); } createOrUpdateBarRect(bar, symbolMeta, true); createOrUpdateClip(bar, opt, symbolMeta, true); } function removeBar(data, dataIndex, animationModel, bar) { // Not show text when animating var labelRect = bar.__pictorialBarRect; labelRect && (labelRect.style.text = null); var pathes = []; eachPath(bar, function (path) { pathes.push(path); }); bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath); // I do not find proper remove animation for clip yet. bar.__pictorialClipPath && (animationModel = null); zrUtil.each(pathes, function (path) { graphic.updateProps(path, { scale: [0, 0] }, animationModel, dataIndex, function () { bar.parent && bar.parent.remove(bar); }); }); data.setItemGraphicEl(dataIndex, null); } function getShapeStr(data, symbolMeta) { return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':'); } function eachPath(bar, cb, context) { // Do not use Group#eachChild, because it do not support remove. zrUtil.each(bar.__pictorialBundle.children(), function (el) { el !== bar.__pictorialBarRect && cb.call(context, el); }); } function updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) { immediateAttrs && el.attr(immediateAttrs); // when symbolCip used, only clip path has init animation, otherwise it would be weird effect. if (symbolMeta.symbolClip && !isUpdate) { animationAttrs && el.attr(animationAttrs); } else { animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb); } } function updateCommon(bar, opt, symbolMeta) { var color = symbolMeta.color; var dataIndex = symbolMeta.dataIndex; var itemModel = symbolMeta.itemModel; // Color must be excluded. // Because symbol provide setColor individually to set fill and stroke var normalStyle = itemModel.getModel('itemStyle').getItemStyle(['color']); var hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle(); var cursorStyle = itemModel.getShallow('cursor'); eachPath(bar, function (path) { // PENDING setColor should be before setStyle!!! path.setColor(color); path.setStyle(zrUtil.defaults({ fill: color, opacity: symbolMeta.opacity }, normalStyle)); graphic.setHoverStyle(path, hoverStyle); cursorStyle && (path.cursor = cursorStyle); path.z2 = symbolMeta.z2; }); var barRectHoverStyle = {}; var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)]; var barRect = bar.__pictorialBarRect; setLabel(barRect.style, barRectHoverStyle, itemModel, color, opt.seriesModel, dataIndex, barPositionOutside); graphic.setHoverStyle(barRect, barRectHoverStyle); } function toIntTimes(times) { var roundedTimes = Math.round(times); // Escapse accurate error return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times); } var _default = BarView; module.exports = _default; /***/ }), /* 739 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/themeRiver.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ../component/singleAxis */ 740); __webpack_require__(/*! ./themeRiver/ThemeRiverSeries */ 757); __webpack_require__(/*! ./themeRiver/ThemeRiverView */ 758); var themeRiverLayout = __webpack_require__(/*! ./themeRiver/themeRiverLayout */ 759); var themeRiverVisual = __webpack_require__(/*! ./themeRiver/themeRiverVisual */ 760); var dataFilter = __webpack_require__(/*! ../processor/dataFilter */ 595); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerLayout(themeRiverLayout); echarts.registerVisual(themeRiverVisual); echarts.registerProcessor(dataFilter('themeRiver')); /***/ }), /* 740 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/singleAxis.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ../coord/single/singleCreator */ 741); __webpack_require__(/*! ./axis/SingleAxisView */ 744); __webpack_require__(/*! ../coord/single/AxisModel */ 746); __webpack_require__(/*! ./axisPointer */ 747); __webpack_require__(/*! ./axisPointer/SingleAxisPointer */ 756); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.extendComponentView({ type: 'single' }); /***/ }), /* 741 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/single/singleCreator.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Single = __webpack_require__(/*! ./Single */ 742); var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Single coordinate system creator. */ /** * Create single coordinate system and inject it into seriesModel. * * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @return {Array.} */ function create(ecModel, api) { var singles = []; ecModel.eachComponent('singleAxis', function (axisModel, idx) { var single = new Single(axisModel, ecModel, api); single.name = 'single_' + idx; single.resize(axisModel, api); axisModel.coordinateSystem = single; singles.push(single); }); ecModel.eachSeries(function (seriesModel) { if (seriesModel.get('coordinateSystem') === 'singleAxis') { var singleAxisModel = ecModel.queryComponents({ mainType: 'singleAxis', index: seriesModel.get('singleAxisIndex'), id: seriesModel.get('singleAxisId') })[0]; seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem; } }); return singles; } CoordinateSystem.register('single', { create: create, dimensions: Single.prototype.dimensions }); /***/ }), /* 742 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/single/Single.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SingleAxis = __webpack_require__(/*! ./SingleAxis */ 743); var axisHelper = __webpack_require__(/*! ../axisHelper */ 533); var _layout = __webpack_require__(/*! ../../util/layout */ 488); var getLayoutRect = _layout.getLayoutRect; var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var each = _util.each; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Single coordinates system. */ /** * Create a single coordinates system. * * @param {module:echarts/coord/single/AxisModel} axisModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api */ function Single(axisModel, ecModel, api) { /** * @type {string} * @readOnly */ this.dimension = 'single'; /** * Add it just for draw tooltip. * * @type {Array.} * @readOnly */ this.dimensions = ['single']; /** * @private * @type {module:echarts/coord/single/SingleAxis}. */ this._axis = null; /** * @private * @type {module:zrender/core/BoundingRect} */ this._rect; this._init(axisModel, ecModel, api); /** * @type {module:echarts/coord/single/AxisModel} */ this.model = axisModel; } Single.prototype = { type: 'singleAxis', axisPointerEnabled: true, constructor: Single, /** * Initialize single coordinate system. * * @param {module:echarts/coord/single/AxisModel} axisModel * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @private */ _init: function _init(axisModel, ecModel, api) { var dim = this.dimension; var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position')); var isCategory = axis.type === 'category'; axis.onBand = isCategory && axisModel.get('boundaryGap'); axis.inverse = axisModel.get('inverse'); axis.orient = axisModel.get('orient'); axisModel.axis = axis; axis.model = axisModel; axis.coordinateSystem = this; this._axis = axis; }, /** * Update axis scale after data processed * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api */ update: function update(ecModel, api) { ecModel.eachSeries(function (seriesModel) { if (seriesModel.coordinateSystem === this) { var data = seriesModel.getData(); each(data.mapDimension(this.dimension, true), function (dim) { this._axis.scale.unionExtentFromData(data, dim); }, this); axisHelper.niceScaleExtent(this._axis.scale, this._axis.model); } }, this); }, /** * Resize the single coordinate system. * * @param {module:echarts/coord/single/AxisModel} axisModel * @param {module:echarts/ExtensionAPI} api */ resize: function resize(axisModel, api) { this._rect = getLayoutRect({ left: axisModel.get('left'), top: axisModel.get('top'), right: axisModel.get('right'), bottom: axisModel.get('bottom'), width: axisModel.get('width'), height: axisModel.get('height') }, { width: api.getWidth(), height: api.getHeight() }); this._adjustAxis(); }, /** * @return {module:zrender/core/BoundingRect} */ getRect: function getRect() { return this._rect; }, /** * @private */ _adjustAxis: function _adjustAxis() { var rect = this._rect; var axis = this._axis; var isHorizontal = axis.isHorizontal(); var extent = isHorizontal ? [0, rect.width] : [0, rect.height]; var idx = axis.reverse ? 1 : 0; axis.setExtent(extent[idx], extent[1 - idx]); this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y); }, /** * @param {module:echarts/coord/single/SingleAxis} axis * @param {number} coordBase */ _updateAxisTransform: function _updateAxisTransform(axis, coordBase) { var axisExtent = axis.getExtent(); var extentSum = axisExtent[0] + axisExtent[1]; var isHorizontal = axis.isHorizontal(); axis.toGlobalCoord = isHorizontal ? function (coord) { return coord + coordBase; } : function (coord) { return extentSum - coord + coordBase; }; axis.toLocalCoord = isHorizontal ? function (coord) { return coord - coordBase; } : function (coord) { return extentSum - coord + coordBase; }; }, /** * Get axis. * * @return {module:echarts/coord/single/SingleAxis} */ getAxis: function getAxis() { return this._axis; }, /** * Get axis, add it just for draw tooltip. * * @return {[type]} [description] */ getBaseAxis: function getBaseAxis() { return this._axis; }, /** * @return {Array.} */ getAxes: function getAxes() { return [this._axis]; }, /** * @return {Object} {baseAxes: [], otherAxes: []} */ getTooltipAxes: function getTooltipAxes() { return { baseAxes: [this.getAxis()] }; }, /** * If contain point. * * @param {Array.} point * @return {boolean} */ containPoint: function containPoint(point) { var rect = this.getRect(); var axis = this.getAxis(); var orient = axis.orient; if (orient === 'horizontal') { return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height; } else { return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height; } }, /** * @param {Array.} point * @return {Array.} */ pointToData: function pointToData(point) { var axis = this.getAxis(); return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))]; }, /** * Convert the series data to concrete point. * * @param {number|Array.} val * @return {Array.} */ dataToPoint: function dataToPoint(val) { var axis = this.getAxis(); var rect = this.getRect(); var pt = []; var idx = axis.orient === 'horizontal' ? 0 : 1; if (val instanceof Array) { val = val[0]; } pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val)); pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2; return pt; } }; var _default = Single; module.exports = _default; /***/ }), /* 743 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/single/SingleAxis.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Axis = __webpack_require__(/*! ../Axis */ 547); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @constructor module:echarts/coord/single/SingleAxis * @extends {module:echarts/coord/Axis} * @param {string} dim * @param {*} scale * @param {Array.} coordExtent * @param {string} axisType * @param {string} position */ var SingleAxis = function SingleAxis(dim, scale, coordExtent, axisType, position) { Axis.call(this, dim, scale, coordExtent); /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' * @type {string} */ this.type = axisType || 'value'; /** * Axis position * - 'top' * - 'bottom' * - 'left' * - 'right' * @type {string} */ this.position = position || 'bottom'; /** * Axis orient * - 'horizontal' * - 'vertical' * @type {[type]} */ this.orient = null; }; SingleAxis.prototype = { constructor: SingleAxis, /** * Axis model * @type {module:echarts/coord/single/AxisModel} */ model: null, /** * Judge the orient of the axis. * @return {boolean} */ isHorizontal: function isHorizontal() { var position = this.position; return position === 'top' || position === 'bottom'; }, /** * @override */ pointToData: function pointToData(point, clamp) { return this.coordinateSystem.pointToData(point, clamp)[0]; }, /** * Convert the local coord(processed by dataToCoord()) * to global coord(concrete pixel coord). * designated by module:echarts/coord/single/Single. * @type {Function} */ toGlobalCoord: null, /** * Convert the global coord to local coord. * designated by module:echarts/coord/single/Single. * @type {Function} */ toLocalCoord: null }; zrUtil.inherits(SingleAxis, Axis); var _default = SingleAxis; module.exports = _default; /***/ }), /* 744 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/SingleAxisView.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var AxisBuilder = __webpack_require__(/*! ./AxisBuilder */ 573); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var singleAxisHelper = __webpack_require__(/*! ../../coord/single/singleAxisHelper */ 745); var AxisView = __webpack_require__(/*! ./AxisView */ 574); var _axisSplitHelper = __webpack_require__(/*! ./axisSplitHelper */ 577); var rectCoordAxisBuildSplitArea = _axisSplitHelper.rectCoordAxisBuildSplitArea; var rectCoordAxisHandleRemove = _axisSplitHelper.rectCoordAxisHandleRemove; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName']; var selfBuilderAttrs = ['splitArea', 'splitLine']; var SingleAxisView = AxisView.extend({ type: 'singleAxis', axisPointerClass: 'SingleAxisPointer', render: function render(axisModel, ecModel, api, payload) { var group = this.group; group.removeAll(); var oldAxisGroup = this._axisGroup; this._axisGroup = new graphic.Group(); var layout = singleAxisHelper.layout(axisModel); var axisBuilder = new AxisBuilder(axisModel, layout); zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder); group.add(this._axisGroup); group.add(axisBuilder.getGroup()); zrUtil.each(selfBuilderAttrs, function (name) { if (axisModel.get(name + '.show')) { this['_' + name](axisModel); } }, this); graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel); SingleAxisView.superCall(this, 'render', axisModel, ecModel, api, payload); }, remove: function remove() { rectCoordAxisHandleRemove(this); }, _splitLine: function _splitLine(axisModel) { var axis = axisModel.axis; if (axis.scale.isBlank()) { return; } var splitLineModel = axisModel.getModel('splitLine'); var lineStyleModel = splitLineModel.getModel('lineStyle'); var lineWidth = lineStyleModel.get('width'); var lineColors = lineStyleModel.get('color'); lineColors = lineColors instanceof Array ? lineColors : [lineColors]; var gridRect = axisModel.coordinateSystem.getRect(); var isHorizontal = axis.isHorizontal(); var splitLines = []; var lineCount = 0; var ticksCoords = axis.getTicksCoords({ tickModel: splitLineModel }); var p1 = []; var p2 = []; for (var i = 0; i < ticksCoords.length; ++i) { var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord); if (isHorizontal) { p1[0] = tickCoord; p1[1] = gridRect.y; p2[0] = tickCoord; p2[1] = gridRect.y + gridRect.height; } else { p1[0] = gridRect.x; p1[1] = tickCoord; p2[0] = gridRect.x + gridRect.width; p2[1] = tickCoord; } var colorIndex = lineCount++ % lineColors.length; splitLines[colorIndex] = splitLines[colorIndex] || []; splitLines[colorIndex].push(new graphic.Line({ subPixelOptimize: true, shape: { x1: p1[0], y1: p1[1], x2: p2[0], y2: p2[1] }, style: { lineWidth: lineWidth }, silent: true })); } for (var i = 0; i < splitLines.length; ++i) { this.group.add(graphic.mergePath(splitLines[i], { style: { stroke: lineColors[i % lineColors.length], lineDash: lineStyleModel.getLineDash(lineWidth), lineWidth: lineWidth }, silent: true })); } }, _splitArea: function _splitArea(axisModel) { rectCoordAxisBuildSplitArea(this, this._axisGroup, axisModel, axisModel); } }); var _default = SingleAxisView; module.exports = _default; /***/ }), /* 745 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/single/singleAxisHelper.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {Object} opt {labelInside} * @return {Object} { * position, rotation, labelDirection, labelOffset, * tickDirection, labelRotate, z2 * } */ function layout(axisModel, opt) { opt = opt || {}; var single = axisModel.coordinateSystem; var axis = axisModel.axis; var layout = {}; var axisPosition = axis.position; var orient = axis.orient; var rect = single.getRect(); var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height]; var positionMap = { horizontal: { top: rectBound[2], bottom: rectBound[3] }, vertical: { left: rectBound[0], right: rectBound[1] } }; layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]]; var r = { horizontal: 0, vertical: 1 }; layout.rotation = Math.PI / 2 * r[orient]; var directionMap = { top: -1, bottom: 1, right: 1, left: -1 }; layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition]; if (axisModel.get('axisTick.inside')) { layout.tickDirection = -layout.tickDirection; } if (zrUtil.retrieve(opt.labelInside, axisModel.get('axisLabel.inside'))) { layout.labelDirection = -layout.labelDirection; } var labelRotation = opt.rotate; labelRotation == null && (labelRotation = axisModel.get('axisLabel.rotate')); layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation; layout.z2 = 1; return layout; } exports.layout = layout; /***/ }), /* 746 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/single/AxisModel.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); var axisModelCreator = __webpack_require__(/*! ../axisModelCreator */ 569); var axisModelCommonMixin = __webpack_require__(/*! ../axisModelCommonMixin */ 542); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var AxisModel = ComponentModel.extend({ type: 'singleAxis', layoutMode: 'box', /** * @type {module:echarts/coord/single/SingleAxis} */ axis: null, /** * @type {module:echarts/coord/single/Single} */ coordinateSystem: null, /** * @override */ getCoordSysModel: function getCoordSysModel() { return this; } }); var defaultOption = { left: '5%', top: '5%', right: '5%', bottom: '5%', type: 'value', position: 'bottom', orient: 'horizontal', axisLine: { show: true, lineStyle: { width: 1, type: 'solid' } }, // Single coordinate system and single axis is the, // which is used as the parent tooltip model. // same model, so we set default tooltip show as true. tooltip: { show: true }, axisTick: { show: true, length: 6, lineStyle: { width: 1 } }, axisLabel: { show: true, interval: 'auto' }, splitLine: { show: true, lineStyle: { type: 'dashed', opacity: 0.2 } } }; function getAxisType(axisName, option) { return option.type || (option.data ? 'category' : 'value'); } zrUtil.merge(AxisModel.prototype, axisModelCommonMixin); axisModelCreator('single', AxisModel, getAxisType, defaultOption); var _default = AxisModel; module.exports = _default; /***/ }), /* 747 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var axisPointerModelHelper = __webpack_require__(/*! ./axisPointer/modelHelper */ 575); var axisTrigger = __webpack_require__(/*! ./axisPointer/axisTrigger */ 748); __webpack_require__(/*! ./axisPointer/AxisPointerModel */ 750); __webpack_require__(/*! ./axisPointer/AxisPointerView */ 751); __webpack_require__(/*! ./axisPointer/CartesianAxisPointer */ 753); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // CartesianAxisPointer is not supposed to be required here. But consider // echarts.simple.js and online build tooltip, which only require gridSimple, // CartesianAxisPointer should be able to required somewhere. echarts.registerPreprocessor(function (option) { // Always has a global axisPointerModel for default setting. if (option) { (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {}); var link = option.axisPointer.link; // Normalize to array to avoid object mergin. But if link // is not set, remain null/undefined, otherwise it will // override existent link setting. if (link && !zrUtil.isArray(link)) { option.axisPointer.link = [link]; } } }); // This process should proformed after coordinate systems created // and series data processed. So put it on statistic processing stage. echarts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) { // Build axisPointerModel, mergin tooltip.axisPointer model for each axis. // allAxesInfo should be updated when setOption performed. ecModel.getComponent('axisPointer').coordSysAxesInfo = axisPointerModelHelper.collect(ecModel, api); }); // Broadcast to all views. echarts.registerAction({ type: 'updateAxisPointer', event: 'updateAxisPointer', update: ':updateAxisPointer' }, axisTrigger); /***/ }), /* 748 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/axisTrigger.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; var modelHelper = __webpack_require__(/*! ./modelHelper */ 575); var findPointFromSeries = __webpack_require__(/*! ./findPointFromSeries */ 749); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var curry = zrUtil.curry; var inner = makeInner(); /** * Basic logic: check all axis, if they do not demand show/highlight, * then hide/downplay them. * * @param {Object} coordSysAxesInfo * @param {Object} payload * @param {string} [payload.currTrigger] 'click' | 'mousemove' | 'leave' * @param {Array.} [payload.x] x and y, which are mandatory, specify a point to * trigger axisPointer and tooltip. * @param {Array.} [payload.y] x and y, which are mandatory, specify a point to * trigger axisPointer and tooltip. * @param {Object} [payload.seriesIndex] finder, optional, restrict target axes. * @param {Object} [payload.dataIndex] finder, restrict target axes. * @param {Object} [payload.axesInfo] finder, restrict target axes. * [{ * axisDim: 'x'|'y'|'angle'|..., * axisIndex: ..., * value: ... * }, ...] * @param {Function} [payload.dispatchAction] * @param {Object} [payload.tooltipOption] * @param {Object|Array.|Function} [payload.position] Tooltip position, * which can be specified in dispatchAction * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api * @return {Object} content of event obj for echarts.connect. */ function _default(payload, ecModel, api) { var currTrigger = payload.currTrigger; var point = [payload.x, payload.y]; var finder = payload; var dispatchAction = payload.dispatchAction || zrUtil.bind(api.dispatchAction, api); var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo; // Pending // See #6121. But we are not able to reproduce it yet. if (!coordSysAxesInfo) { return; } if (illegalPoint(point)) { // Used in the default behavior of `connection`: use the sample seriesIndex // and dataIndex. And also used in the tooltipView trigger. point = findPointFromSeries({ seriesIndex: finder.seriesIndex, // Do not use dataIndexInside from other ec instance. // FIXME: auto detect it? dataIndex: finder.dataIndex }, ecModel).point; } var isIllegalPoint = illegalPoint(point); // Axis and value can be specified when calling dispatchAction({type: 'updateAxisPointer'}). // Notice: In this case, it is difficult to get the `point` (which is necessary to show // tooltip, so if point is not given, we just use the point found by sample seriesIndex // and dataIndex. var inputAxesInfo = finder.axesInfo; var axesInfo = coordSysAxesInfo.axesInfo; var shouldHide = currTrigger === 'leave' || illegalPoint(point); var outputFinder = {}; var showValueMap = {}; var dataByCoordSys = { list: [], map: {} }; var updaters = { showPointer: curry(showPointer, showValueMap), showTooltip: curry(showTooltip, dataByCoordSys) }; // Process for triggered axes. each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) { // If a point given, it must be contained by the coordinate system. var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point); each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) { var axis = axisInfo.axis; var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo); // If no inputAxesInfo, no axis is restricted. if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) { var val = inputAxisInfo && inputAxisInfo.value; if (val == null && !isIllegalPoint) { val = axis.pointToData(point); } val != null && processOnAxis(axisInfo, val, updaters, false, outputFinder); } }); }); // Process for linked axes. var linkTriggers = {}; each(axesInfo, function (tarAxisInfo, tarKey) { var linkGroup = tarAxisInfo.linkGroup; // If axis has been triggered in the previous stage, it should not be triggered by link. if (linkGroup && !showValueMap[tarKey]) { each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) { var srcValItem = showValueMap[srcKey]; // If srcValItem exist, source axis is triggered, so link to target axis. if (srcAxisInfo !== tarAxisInfo && srcValItem) { var val = srcValItem.value; linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo)))); linkTriggers[tarAxisInfo.key] = val; } }); } }); each(linkTriggers, function (val, tarKey) { processOnAxis(axesInfo[tarKey], val, updaters, true, outputFinder); }); updateModelActually(showValueMap, axesInfo, outputFinder); dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction); dispatchHighDownActually(axesInfo, dispatchAction, api); return outputFinder; } function processOnAxis(axisInfo, newValue, updaters, dontSnap, outputFinder) { var axis = axisInfo.axis; if (axis.scale.isBlank() || !axis.containData(newValue)) { return; } if (!axisInfo.involveSeries) { updaters.showPointer(axisInfo, newValue); return; } // Heavy calculation. So put it after axis.containData checking. var payloadInfo = buildPayloadsBySeries(newValue, axisInfo); var payloadBatch = payloadInfo.payloadBatch; var snapToValue = payloadInfo.snapToValue; // Fill content of event obj for echarts.connect. // By default use the first involved series data as a sample to connect. if (payloadBatch[0] && outputFinder.seriesIndex == null) { zrUtil.extend(outputFinder, payloadBatch[0]); } // If no linkSource input, this process is for collecting link // target, where snap should not be accepted. if (!dontSnap && axisInfo.snap) { if (axis.containData(snapToValue) && snapToValue != null) { newValue = snapToValue; } } updaters.showPointer(axisInfo, newValue, payloadBatch, outputFinder); // Tooltip should always be snapToValue, otherwise there will be // incorrect "axis value ~ series value" mapping displayed in tooltip. updaters.showTooltip(axisInfo, payloadInfo, snapToValue); } function buildPayloadsBySeries(value, axisInfo) { var axis = axisInfo.axis; var dim = axis.dim; var snapToValue = value; var payloadBatch = []; var minDist = Number.MAX_VALUE; var minDiff = -1; each(axisInfo.seriesModels, function (series, idx) { var dataDim = series.getData().mapDimension(dim, true); var seriesNestestValue; var dataIndices; if (series.getAxisTooltipData) { var result = series.getAxisTooltipData(dataDim, value, axis); dataIndices = result.dataIndices; seriesNestestValue = result.nestestValue; } else { dataIndices = series.getData().indicesOfNearest(dataDim[0], value, // Add a threshold to avoid find the wrong dataIndex // when data length is not same. // false, axis.type === 'category' ? 0.5 : null); if (!dataIndices.length) { return; } seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]); } if (seriesNestestValue == null || !isFinite(seriesNestestValue)) { return; } var diff = value - seriesNestestValue; var dist = Math.abs(diff); // Consider category case if (dist <= minDist) { if (dist < minDist || diff >= 0 && minDiff < 0) { minDist = dist; minDiff = diff; snapToValue = seriesNestestValue; payloadBatch.length = 0; } each(dataIndices, function (dataIndex) { payloadBatch.push({ seriesIndex: series.seriesIndex, dataIndexInside: dataIndex, dataIndex: series.getData().getRawIndex(dataIndex) }); }); } }); return { payloadBatch: payloadBatch, snapToValue: snapToValue }; } function showPointer(showValueMap, axisInfo, value, payloadBatch) { showValueMap[axisInfo.key] = { value: value, payloadBatch: payloadBatch }; } function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) { var payloadBatch = payloadInfo.payloadBatch; var axis = axisInfo.axis; var axisModel = axis.model; var axisPointerModel = axisInfo.axisPointerModel; // If no data, do not create anything in dataByCoordSys, // whose length will be used to judge whether dispatch action. if (!axisInfo.triggerTooltip || !payloadBatch.length) { return; } var coordSysModel = axisInfo.coordSys.model; var coordSysKey = modelHelper.makeKey(coordSysModel); var coordSysItem = dataByCoordSys.map[coordSysKey]; if (!coordSysItem) { coordSysItem = dataByCoordSys.map[coordSysKey] = { coordSysId: coordSysModel.id, coordSysIndex: coordSysModel.componentIndex, coordSysType: coordSysModel.type, coordSysMainType: coordSysModel.mainType, dataByAxis: [] }; dataByCoordSys.list.push(coordSysItem); } coordSysItem.dataByAxis.push({ axisDim: axis.dim, axisIndex: axisModel.componentIndex, axisType: axisModel.type, axisId: axisModel.id, value: value, // Caustion: viewHelper.getValueLabel is actually on "view stage", which // depends that all models have been updated. So it should not be performed // here. Considering axisPointerModel used here is volatile, which is hard // to be retrieve in TooltipView, we prepare parameters here. valueLabelOpt: { precision: axisPointerModel.get('label.precision'), formatter: axisPointerModel.get('label.formatter') }, seriesDataIndices: payloadBatch.slice() }); } function updateModelActually(showValueMap, axesInfo, outputFinder) { var outputAxesInfo = outputFinder.axesInfo = []; // Basic logic: If no 'show' required, 'hide' this axisPointer. each(axesInfo, function (axisInfo, key) { var option = axisInfo.axisPointerModel.option; var valItem = showValueMap[key]; if (valItem) { !axisInfo.useHandle && (option.status = 'show'); option.value = valItem.value; // For label formatter param and highlight. option.seriesDataIndices = (valItem.payloadBatch || []).slice(); } // When always show (e.g., handle used), remain // original value and status. else { // If hide, value still need to be set, consider // click legend to toggle axis blank. !axisInfo.useHandle && (option.status = 'hide'); } // If status is 'hide', should be no info in payload. option.status === 'show' && outputAxesInfo.push({ axisDim: axisInfo.axis.dim, axisIndex: axisInfo.axis.model.componentIndex, value: option.value }); }); } function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) { // Basic logic: If no showTip required, hideTip will be dispatched. if (illegalPoint(point) || !dataByCoordSys.list.length) { dispatchAction({ type: 'hideTip' }); return; } // In most case only one axis (or event one series is used). It is // convinient to fetch payload.seriesIndex and payload.dataIndex // dirtectly. So put the first seriesIndex and dataIndex of the first // axis on the payload. var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}; dispatchAction({ type: 'showTip', escapeConnect: true, x: point[0], y: point[1], tooltipOption: payload.tooltipOption, position: payload.position, dataIndexInside: sampleItem.dataIndexInside, dataIndex: sampleItem.dataIndex, seriesIndex: sampleItem.seriesIndex, dataByCoordSys: dataByCoordSys.list }); } function dispatchHighDownActually(axesInfo, dispatchAction, api) { // FIXME // highlight status modification shoule be a stage of main process? // (Consider confilct (e.g., legend and axisPointer) and setOption) var zr = api.getZr(); var highDownKey = 'axisPointerLastHighlights'; var lastHighlights = inner(zr)[highDownKey] || {}; var newHighlights = inner(zr)[highDownKey] = {}; // Update highlight/downplay status according to axisPointer model. // Build hash map and remove duplicate incidentally. each(axesInfo, function (axisInfo, key) { var option = axisInfo.axisPointerModel.option; option.status === 'show' && each(option.seriesDataIndices, function (batchItem) { var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex; newHighlights[key] = batchItem; }); }); // Diff. var toHighlight = []; var toDownplay = []; zrUtil.each(lastHighlights, function (batchItem, key) { !newHighlights[key] && toDownplay.push(batchItem); }); zrUtil.each(newHighlights, function (batchItem, key) { !lastHighlights[key] && toHighlight.push(batchItem); }); toDownplay.length && api.dispatchAction({ type: 'downplay', escapeConnect: true, batch: toDownplay }); toHighlight.length && api.dispatchAction({ type: 'highlight', escapeConnect: true, batch: toHighlight }); } function findInputAxisInfo(inputAxesInfo, axisInfo) { for (var i = 0; i < (inputAxesInfo || []).length; i++) { var inputAxisInfo = inputAxesInfo[i]; if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) { return inputAxisInfo; } } } function makeMapperParam(axisInfo) { var axisModel = axisInfo.axis.model; var item = {}; var dim = item.axisDim = axisInfo.axis.dim; item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex; item.axisName = item[dim + 'AxisName'] = axisModel.name; item.axisId = item[dim + 'AxisId'] = axisModel.id; return item; } function illegalPoint(point) { return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]); } module.exports = _default; /***/ }), /* 749 */ /*!******************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js ***! \******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {Object} finder contains {seriesIndex, dataIndex, dataIndexInside} * @param {module:echarts/model/Global} ecModel * @return {Object} {point: [x, y], el: ...} point Will not be null. */ function _default(finder, ecModel) { var point = []; var seriesIndex = finder.seriesIndex; var seriesModel; if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) { return { point: [] }; } var data = seriesModel.getData(); var dataIndex = modelUtil.queryDataIndex(data, finder); if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) { return { point: [] }; } var el = data.getItemGraphicEl(dataIndex); var coordSys = seriesModel.coordinateSystem; if (seriesModel.getTooltipPosition) { point = seriesModel.getTooltipPosition(dataIndex) || []; } else if (coordSys && coordSys.dataToPoint) { point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) { return data.mapDimension(dim); }), dataIndex, true)) || []; } else if (el) { // Use graphic bounding rect var rect = el.getBoundingRect().clone(); rect.applyTransform(el.transform); point = [rect.x + rect.width / 2, rect.y + rect.height / 2]; } return { point: point, el: el }; } module.exports = _default; /***/ }), /* 750 */ /*!***************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var AxisPointerModel = echarts.extendComponentModel({ type: 'axisPointer', coordSysAxesInfo: null, defaultOption: { // 'auto' means that show when triggered by tooltip or handle. show: 'auto', // 'click' | 'mousemove' | 'none' triggerOn: null, // set default in AxisPonterView.js zlevel: 0, z: 50, type: 'line', // 'line' 'shadow' 'cross' 'none'. // axispointer triggered by tootip determine snap automatically, // see `modelHelper`. snap: false, triggerTooltip: true, value: null, status: null, // Init value depends on whether handle is used. // [group0, group1, ...] // Each group can be: { // mapper: function () {}, // singleTooltip: 'multiple', // 'multiple' or 'single' // xAxisId: ..., // yAxisName: ..., // angleAxisIndex: ... // } // mapper: can be ignored. // input: {axisInfo, value} // output: {axisInfo, value} link: [], // Do not set 'auto' here, otherwise global animation: false // will not effect at this axispointer. animation: null, animationDurationUpdate: 200, lineStyle: { color: '#aaa', width: 1, type: 'solid' }, shadowStyle: { color: 'rgba(150,150,150,0.3)' }, label: { show: true, formatter: null, // string | Function precision: 'auto', // Or a number like 0, 1, 2 ... margin: 3, color: '#fff', padding: [5, 7, 5, 7], backgroundColor: 'auto', // default: axis line color borderColor: null, borderWidth: 0, shadowBlur: 3, shadowColor: '#aaa' // Considering applicability, common style should // better not have shadowOffset. // shadowOffsetX: 0, // shadowOffsetY: 2 }, handle: { show: false, /* eslint-disable */ icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z', // jshint ignore:line /* eslint-enable */ size: 45, // handle margin is from symbol center to axis, which is stable when circular move. margin: 50, // color: '#1b8bbd' // color: '#2f4554' color: '#333', shadowBlur: 3, shadowColor: '#aaa', shadowOffsetX: 0, shadowOffsetY: 2, // For mobile performance throttle: 40 } } }); var _default = AxisPointerModel; module.exports = _default; /***/ }), /* 751 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/AxisPointerView.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var globalListener = __webpack_require__(/*! ./globalListener */ 752); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var AxisPointerView = echarts.extendComponentView({ type: 'axisPointer', render: function render(globalAxisPointerModel, ecModel, api) { var globalTooltipModel = ecModel.getComponent('tooltip'); var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click'; // Register global listener in AxisPointerView to enable // AxisPointerView to be independent to Tooltip. globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) { // If 'none', it is not controlled by mouse totally. if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) { dispatchAction({ type: 'updateAxisPointer', currTrigger: currTrigger, x: e && e.offsetX, y: e && e.offsetY }); } }); }, /** * @override */ remove: function remove(ecModel, api) { globalListener.unregister(api.getZr(), 'axisPointer'); AxisPointerView.superApply(this._model, 'remove', arguments); }, /** * @override */ dispose: function dispose(ecModel, api) { globalListener.unregister('axisPointer', api); AxisPointerView.superApply(this._model, 'dispose', arguments); } }); var _default = AxisPointerView; module.exports = _default; /***/ }), /* 752 */ /*!*************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/globalListener.js ***! \*************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = makeInner(); var each = zrUtil.each; /** * @param {string} key * @param {module:echarts/ExtensionAPI} api * @param {Function} handler * param: {string} currTrigger * param: {Array.} point */ function register(key, api, handler) { if (env.node) { return; } var zr = api.getZr(); inner(zr).records || (inner(zr).records = {}); initGlobalListeners(zr, api); var record = inner(zr).records[key] || (inner(zr).records[key] = {}); record.handler = handler; } function initGlobalListeners(zr, api) { if (inner(zr).initialized) { return; } inner(zr).initialized = true; useHandler('click', zrUtil.curry(doEnter, 'click')); useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove')); // useHandler('mouseout', onLeave); useHandler('globalout', onLeave); function useHandler(eventType, cb) { zr.on(eventType, function (e) { var dis = makeDispatchAction(api); each(inner(zr).records, function (record) { record && cb(record, e, dis.dispatchAction); }); dispatchTooltipFinally(dis.pendings, api); }); } } function dispatchTooltipFinally(pendings, api) { var showLen = pendings.showTip.length; var hideLen = pendings.hideTip.length; var actuallyPayload; if (showLen) { actuallyPayload = pendings.showTip[showLen - 1]; } else if (hideLen) { actuallyPayload = pendings.hideTip[hideLen - 1]; } if (actuallyPayload) { actuallyPayload.dispatchAction = null; api.dispatchAction(actuallyPayload); } } function onLeave(record, e, dispatchAction) { record.handler('leave', null, dispatchAction); } function doEnter(currTrigger, record, e, dispatchAction) { record.handler(currTrigger, e, dispatchAction); } function makeDispatchAction(api) { var pendings = { showTip: [], hideTip: [] }; // FIXME // better approach? // 'showTip' and 'hideTip' can be triggered by axisPointer and tooltip, // which may be conflict, (axisPointer call showTip but tooltip call hideTip); // So we have to add "final stage" to merge those dispatched actions. var dispatchAction = function dispatchAction(payload) { var pendingList = pendings[payload.type]; if (pendingList) { pendingList.push(payload); } else { payload.dispatchAction = dispatchAction; api.dispatchAction(payload); } }; return { dispatchAction: dispatchAction, pendings: pendings }; } /** * @param {string} key * @param {module:echarts/ExtensionAPI} api */ function unregister(key, api) { if (env.node) { return; } var zr = api.getZr(); var record = (inner(zr).records || {})[key]; if (record) { inner(zr).records[key] = null; } } exports.register = register; exports.unregister = unregister; /***/ }), /* 753 */ /*!*******************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js ***! \*******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BaseAxisPointer = __webpack_require__(/*! ./BaseAxisPointer */ 754); var viewHelper = __webpack_require__(/*! ./viewHelper */ 755); var cartesianAxisHelper = __webpack_require__(/*! ../../coord/cartesian/cartesianAxisHelper */ 576); var AxisView = __webpack_require__(/*! ../axis/AxisView */ 574); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var CartesianAxisPointer = BaseAxisPointer.extend({ /** * @override */ makeElOption: function makeElOption(elOption, value, axisModel, axisPointerModel, api) { var axis = axisModel.axis; var grid = axis.grid; var axisPointerType = axisPointerModel.get('type'); var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent(); var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true)); if (axisPointerType && axisPointerType !== 'none') { var elStyle = viewHelper.buildElStyle(axisPointerModel); var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent); pointerOption.style = elStyle; elOption.graphicKey = pointerOption.type; elOption.pointer = pointerOption; } var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel); viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api); }, /** * @override */ getHandleTransform: function getHandleTransform(value, axisModel, axisPointerModel) { var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, { labelInside: false }); layoutInfo.labelMargin = axisPointerModel.get('handle.margin'); return { position: viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo), rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0) }; }, /** * @override */ updateHandleTransform: function updateHandleTransform(transform, delta, axisModel, axisPointerModel) { var axis = axisModel.axis; var grid = axis.grid; var axisExtent = axis.getGlobalExtent(true); var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent(); var dimIndex = axis.dim === 'x' ? 0 : 1; var currPosition = transform.position; currPosition[dimIndex] += delta[dimIndex]; currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]); currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]); var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2; var cursorPoint = [cursorOtherValue, cursorOtherValue]; cursorPoint[dimIndex] = currPosition[dimIndex]; // Make tooltip do not overlap axisPointer and in the middle of the grid. var tooltipOptions = [{ verticalAlign: 'middle' }, { align: 'center' }]; return { position: currPosition, rotation: transform.rotation, cursorPoint: cursorPoint, tooltipOption: tooltipOptions[dimIndex] }; } }); function getCartesian(grid, axis) { var opt = {}; opt[axis.dim + 'AxisIndex'] = axis.index; return grid.getCartesian(opt); } var pointerShapeBuilder = { line: function line(axis, pixelValue, otherExtent) { var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis)); return { type: 'Line', subPixelOptimize: true, shape: targetShape }; }, shadow: function shadow(axis, pixelValue, otherExtent) { var bandWidth = Math.max(1, axis.getBandWidth()); var span = otherExtent[1] - otherExtent[0]; return { type: 'Rect', shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis)) }; } }; function getAxisDimIndex(axis) { return axis.dim === 'x' ? 0 : 1; } AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer); var _default = CartesianAxisPointer; module.exports = _default; /***/ }), /* 754 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var clazzUtil = __webpack_require__(/*! ../../util/clazz */ 446); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var axisPointerModelHelper = __webpack_require__(/*! ./modelHelper */ 575); var eventTool = __webpack_require__(/*! zrender/lib/core/event */ 408); var throttleUtil = __webpack_require__(/*! ../../util/throttle */ 510); var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = makeInner(); var clone = zrUtil.clone; var bind = zrUtil.bind; /** * Base axis pointer class in 2D. * Implemenents {module:echarts/component/axis/IAxisPointer}. */ function BaseAxisPointer() {} BaseAxisPointer.prototype = { /** * @private */ _group: null, /** * @private */ _lastGraphicKey: null, /** * @private */ _handle: null, /** * @private */ _dragging: false, /** * @private */ _lastValue: null, /** * @private */ _lastStatus: null, /** * @private */ _payloadInfo: null, /** * In px, arbitrary value. Do not set too small, * no animation is ok for most cases. * @protected */ animationThreshold: 15, /** * @implement */ render: function render(axisModel, axisPointerModel, api, forceRender) { var value = axisPointerModel.get('value'); var status = axisPointerModel.get('status'); // Bind them to `this`, not in closure, otherwise they will not // be replaced when user calling setOption in not merge mode. this._axisModel = axisModel; this._axisPointerModel = axisPointerModel; this._api = api; // Optimize: `render` will be called repeatly during mouse move. // So it is power consuming if performing `render` each time, // especially on mobile device. if (!forceRender && this._lastValue === value && this._lastStatus === status) { return; } this._lastValue = value; this._lastStatus = status; var group = this._group; var handle = this._handle; if (!status || status === 'hide') { // Do not clear here, for animation better. group && group.hide(); handle && handle.hide(); return; } group && group.show(); handle && handle.show(); // Otherwise status is 'show' var elOption = {}; this.makeElOption(elOption, value, axisModel, axisPointerModel, api); // Enable change axis pointer type. var graphicKey = elOption.graphicKey; if (graphicKey !== this._lastGraphicKey) { this.clear(api); } this._lastGraphicKey = graphicKey; var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel); if (!group) { group = this._group = new graphic.Group(); this.createPointerEl(group, elOption, axisModel, axisPointerModel); this.createLabelEl(group, elOption, axisModel, axisPointerModel); api.getZr().add(group); } else { var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation); this.updatePointerEl(group, elOption, doUpdateProps, axisPointerModel); this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel); } updateMandatoryProps(group, axisPointerModel, true); this._renderHandle(value); }, /** * @implement */ remove: function remove(api) { this.clear(api); }, /** * @implement */ dispose: function dispose(api) { this.clear(api); }, /** * @protected */ determineAnimation: function determineAnimation(axisModel, axisPointerModel) { var animation = axisPointerModel.get('animation'); var axis = axisModel.axis; var isCategoryAxis = axis.type === 'category'; var useSnap = axisPointerModel.get('snap'); // Value axis without snap always do not snap. if (!useSnap && !isCategoryAxis) { return false; } if (animation === 'auto' || animation == null) { var animationThreshold = this.animationThreshold; if (isCategoryAxis && axis.getBandWidth() > animationThreshold) { return true; } // It is important to auto animation when snap used. Consider if there is // a dataZoom, animation will be disabled when too many points exist, while // it will be enabled for better visual effect when little points exist. if (useSnap) { var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount; var axisExtent = axis.getExtent(); // Approximate band width return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold; } return false; } return animation === true; }, /** * add {pointer, label, graphicKey} to elOption * @protected */ makeElOption: function makeElOption(elOption, value, axisModel, axisPointerModel, api) {// Shoule be implemenented by sub-class. }, /** * @protected */ createPointerEl: function createPointerEl(group, elOption, axisModel, axisPointerModel) { var pointerOption = elOption.pointer; if (pointerOption) { var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer)); group.add(pointerEl); } }, /** * @protected */ createLabelEl: function createLabelEl(group, elOption, axisModel, axisPointerModel) { if (elOption.label) { var labelEl = inner(group).labelEl = new graphic.Rect(clone(elOption.label)); group.add(labelEl); updateLabelShowHide(labelEl, axisPointerModel); } }, /** * @protected */ updatePointerEl: function updatePointerEl(group, elOption, updateProps) { var pointerEl = inner(group).pointerEl; if (pointerEl && elOption.pointer) { pointerEl.setStyle(elOption.pointer.style); updateProps(pointerEl, { shape: elOption.pointer.shape }); } }, /** * @protected */ updateLabelEl: function updateLabelEl(group, elOption, updateProps, axisPointerModel) { var labelEl = inner(group).labelEl; if (labelEl) { labelEl.setStyle(elOption.label.style); updateProps(labelEl, { // Consider text length change in vertical axis, animation should // be used on shape, otherwise the effect will be weird. shape: elOption.label.shape, position: elOption.label.position }); updateLabelShowHide(labelEl, axisPointerModel); } }, /** * @private */ _renderHandle: function _renderHandle(value) { if (this._dragging || !this.updateHandleTransform) { return; } var axisPointerModel = this._axisPointerModel; var zr = this._api.getZr(); var handle = this._handle; var handleModel = axisPointerModel.getModel('handle'); var status = axisPointerModel.get('status'); if (!handleModel.get('show') || !status || status === 'hide') { handle && zr.remove(handle); this._handle = null; return; } var isInit; if (!this._handle) { isInit = true; handle = this._handle = graphic.createIcon(handleModel.get('icon'), { cursor: 'move', draggable: true, onmousemove: function onmousemove(e) { // Fot mobile devicem, prevent screen slider on the button. eventTool.stop(e.event); }, onmousedown: bind(this._onHandleDragMove, this, 0, 0), drift: bind(this._onHandleDragMove, this), ondragend: bind(this._onHandleDragEnd, this) }); zr.add(handle); } updateMandatoryProps(handle, axisPointerModel, false); // update style var includeStyles = ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']; handle.setStyle(handleModel.getItemStyle(null, includeStyles)); // update position var handleSize = handleModel.get('size'); if (!zrUtil.isArray(handleSize)) { handleSize = [handleSize, handleSize]; } handle.attr('scale', [handleSize[0] / 2, handleSize[1] / 2]); throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate'); this._moveHandleToValue(value, isInit); }, /** * @private */ _moveHandleToValue: function _moveHandleToValue(value, isInit) { updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel))); }, /** * @private */ _onHandleDragMove: function _onHandleDragMove(dx, dy) { var handle = this._handle; if (!handle) { return; } this._dragging = true; // Persistent for throttle. var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel); this._payloadInfo = trans; handle.stopAnimation(); handle.attr(getHandleTransProps(trans)); inner(handle).lastProp = null; this._doDispatchAxisPointer(); }, /** * Throttled method. * @private */ _doDispatchAxisPointer: function _doDispatchAxisPointer() { var handle = this._handle; if (!handle) { return; } var payloadInfo = this._payloadInfo; var axisModel = this._axisModel; this._api.dispatchAction({ type: 'updateAxisPointer', x: payloadInfo.cursorPoint[0], y: payloadInfo.cursorPoint[1], tooltipOption: payloadInfo.tooltipOption, axesInfo: [{ axisDim: axisModel.axis.dim, axisIndex: axisModel.componentIndex }] }); }, /** * @private */ _onHandleDragEnd: function _onHandleDragEnd(moveAnimation) { this._dragging = false; var handle = this._handle; if (!handle) { return; } var value = this._axisPointerModel.get('value'); // Consider snap or categroy axis, handle may be not consistent with // axisPointer. So move handle to align the exact value position when // drag ended. this._moveHandleToValue(value); // For the effect: tooltip will be shown when finger holding on handle // button, and will be hidden after finger left handle button. this._api.dispatchAction({ type: 'hideTip' }); }, /** * Should be implemenented by sub-class if support `handle`. * @protected * @param {number} value * @param {module:echarts/model/Model} axisModel * @param {module:echarts/model/Model} axisPointerModel * @return {Object} {position: [x, y], rotation: 0} */ getHandleTransform: null, /** * * Should be implemenented by sub-class if support `handle`. * @protected * @param {Object} transform {position, rotation} * @param {Array.} delta [dx, dy] * @param {module:echarts/model/Model} axisModel * @param {module:echarts/model/Model} axisPointerModel * @return {Object} {position: [x, y], rotation: 0, cursorPoint: [x, y]} */ updateHandleTransform: null, /** * @private */ clear: function clear(api) { this._lastValue = null; this._lastStatus = null; var zr = api.getZr(); var group = this._group; var handle = this._handle; if (zr && group) { this._lastGraphicKey = null; group && zr.remove(group); handle && zr.remove(handle); this._group = null; this._handle = null; this._payloadInfo = null; } }, /** * @protected */ doClear: function doClear() {// Implemented by sub-class if necessary. }, /** * @protected * @param {Array.} xy * @param {Array.} wh * @param {number} [xDimIndex=0] or 1 */ buildLabel: function buildLabel(xy, wh, xDimIndex) { xDimIndex = xDimIndex || 0; return { x: xy[xDimIndex], y: xy[1 - xDimIndex], width: wh[xDimIndex], height: wh[1 - xDimIndex] }; } }; BaseAxisPointer.prototype.constructor = BaseAxisPointer; function updateProps(animationModel, moveAnimation, el, props) { // Animation optimize. if (!propsEqual(inner(el).lastProp, props)) { inner(el).lastProp = props; moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props)); } } function propsEqual(lastProps, newProps) { if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) { var equals = true; zrUtil.each(newProps, function (item, key) { equals = equals && propsEqual(lastProps[key], item); }); return !!equals; } else { return lastProps === newProps; } } function updateLabelShowHide(labelEl, axisPointerModel) { labelEl[axisPointerModel.get('label.show') ? 'show' : 'hide'](); } function getHandleTransProps(trans) { return { position: trans.position.slice(), rotation: trans.rotation || 0 }; } function updateMandatoryProps(group, axisPointerModel, silent) { var z = axisPointerModel.get('z'); var zlevel = axisPointerModel.get('zlevel'); group && group.traverse(function (el) { if (el.type !== 'group') { z != null && (el.z = z); zlevel != null && (el.zlevel = zlevel); el.silent = silent; } }); } clazzUtil.enableClassExtend(BaseAxisPointer); var _default = BaseAxisPointer; module.exports = _default; /***/ }), /* 755 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/viewHelper.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var axisHelper = __webpack_require__(/*! ../../coord/axisHelper */ 533); var AxisBuilder = __webpack_require__(/*! ../axis/AxisBuilder */ 573); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {module:echarts/model/Model} axisPointerModel */ function buildElStyle(axisPointerModel) { var axisPointerType = axisPointerModel.get('type'); var styleModel = axisPointerModel.getModel(axisPointerType + 'Style'); var style; if (axisPointerType === 'line') { style = styleModel.getLineStyle(); style.fill = null; } else if (axisPointerType === 'shadow') { style = styleModel.getAreaStyle(); style.stroke = null; } return style; } /** * @param {Function} labelPos {align, verticalAlign, position} */ function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) { var value = axisPointerModel.get('value'); var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), { precision: axisPointerModel.get('label.precision'), formatter: axisPointerModel.get('label.formatter') }); var labelModel = axisPointerModel.getModel('label'); var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0); var font = labelModel.getFont(); var textRect = textContain.getBoundingRect(text, font); var position = labelPos.position; var width = textRect.width + paddings[1] + paddings[3]; var height = textRect.height + paddings[0] + paddings[2]; // Adjust by align. var align = labelPos.align; align === 'right' && (position[0] -= width); align === 'center' && (position[0] -= width / 2); var verticalAlign = labelPos.verticalAlign; verticalAlign === 'bottom' && (position[1] -= height); verticalAlign === 'middle' && (position[1] -= height / 2); // Not overflow ec container confineInContainer(position, width, height, api); var bgColor = labelModel.get('backgroundColor'); if (!bgColor || bgColor === 'auto') { bgColor = axisModel.get('axisLine.lineStyle.color'); } elOption.label = { shape: { x: 0, y: 0, width: width, height: height, r: labelModel.get('borderRadius') }, position: position.slice(), // TODO: rich style: { text: text, textFont: font, textFill: labelModel.getTextColor(), textPosition: 'inside', textPadding: paddings, fill: bgColor, stroke: labelModel.get('borderColor') || 'transparent', lineWidth: labelModel.get('borderWidth') || 0, shadowBlur: labelModel.get('shadowBlur'), shadowColor: labelModel.get('shadowColor'), shadowOffsetX: labelModel.get('shadowOffsetX'), shadowOffsetY: labelModel.get('shadowOffsetY') }, // Lable should be over axisPointer. z2: 10 }; } // Do not overflow ec container function confineInContainer(position, width, height, api) { var viewWidth = api.getWidth(); var viewHeight = api.getHeight(); position[0] = Math.min(position[0] + width, viewWidth) - width; position[1] = Math.min(position[1] + height, viewHeight) - height; position[0] = Math.max(position[0], 0); position[1] = Math.max(position[1], 0); } /** * @param {number} value * @param {module:echarts/coord/Axis} axis * @param {module:echarts/model/Global} ecModel * @param {Object} opt * @param {Array.} seriesDataIndices * @param {number|string} opt.precision 'auto' or a number * @param {string|Function} opt.formatter label formatter */ function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) { value = axis.scale.parse(value); var text = axis.scale.getLabel( // If `precision` is set, width can be fixed (like '12.00500'), which // helps to debounce when when moving label. value, { precision: opt.precision }); var formatter = opt.formatter; if (formatter) { var params = { value: axisHelper.getAxisRawValue(axis, value), axisDimension: axis.dim, axisIndex: axis.index, seriesData: [] }; zrUtil.each(seriesDataIndices, function (idxItem) { var series = ecModel.getSeriesByIndex(idxItem.seriesIndex); var dataIndex = idxItem.dataIndexInside; var dataParams = series && series.getDataParams(dataIndex); dataParams && params.seriesData.push(dataParams); }); if (zrUtil.isString(formatter)) { text = formatter.replace('{value}', text); } else if (zrUtil.isFunction(formatter)) { text = formatter(params); } } return text; } /** * @param {module:echarts/coord/Axis} axis * @param {number} value * @param {Object} layoutInfo { * rotation, position, labelOffset, labelDirection, labelMargin * } */ function getTransformedPosition(axis, value, layoutInfo) { var transform = matrix.create(); matrix.rotate(transform, transform, layoutInfo.rotation); matrix.translate(transform, transform, layoutInfo.position); return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform); } function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) { var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection); layoutInfo.labelMargin = axisPointerModel.get('label.margin'); buildLabelElOption(elOption, axisModel, axisPointerModel, api, { position: getTransformedPosition(axisModel.axis, value, layoutInfo), align: textLayout.textAlign, verticalAlign: textLayout.textVerticalAlign }); } /** * @param {Array.} p1 * @param {Array.} p2 * @param {number} [xDimIndex=0] or 1 */ function makeLineShape(p1, p2, xDimIndex) { xDimIndex = xDimIndex || 0; return { x1: p1[xDimIndex], y1: p1[1 - xDimIndex], x2: p2[xDimIndex], y2: p2[1 - xDimIndex] }; } /** * @param {Array.} xy * @param {Array.} wh * @param {number} [xDimIndex=0] or 1 */ function makeRectShape(xy, wh, xDimIndex) { xDimIndex = xDimIndex || 0; return { x: xy[xDimIndex], y: xy[1 - xDimIndex], width: wh[xDimIndex], height: wh[1 - xDimIndex] }; } function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) { return { cx: cx, cy: cy, r0: r0, r: r, startAngle: startAngle, endAngle: endAngle, clockwise: true }; } exports.buildElStyle = buildElStyle; exports.buildLabelElOption = buildLabelElOption; exports.getValueLabel = getValueLabel; exports.getTransformedPosition = getTransformedPosition; exports.buildCartesianSingleLabelElOption = buildCartesianSingleLabelElOption; exports.makeLineShape = makeLineShape; exports.makeRectShape = makeRectShape; exports.makeSectorShape = makeSectorShape; /***/ }), /* 756 */ /*!****************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/SingleAxisPointer.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var BaseAxisPointer = __webpack_require__(/*! ./BaseAxisPointer */ 754); var viewHelper = __webpack_require__(/*! ./viewHelper */ 755); var singleAxisHelper = __webpack_require__(/*! ../../coord/single/singleAxisHelper */ 745); var AxisView = __webpack_require__(/*! ../axis/AxisView */ 574); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var XY = ['x', 'y']; var WH = ['width', 'height']; var SingleAxisPointer = BaseAxisPointer.extend({ /** * @override */ makeElOption: function makeElOption(elOption, value, axisModel, axisPointerModel, api) { var axis = axisModel.axis; var coordSys = axis.coordinateSystem; var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis)); var pixelValue = coordSys.dataToPoint(value)[0]; var axisPointerType = axisPointerModel.get('type'); if (axisPointerType && axisPointerType !== 'none') { var elStyle = viewHelper.buildElStyle(axisPointerModel); var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent); pointerOption.style = elStyle; elOption.graphicKey = pointerOption.type; elOption.pointer = pointerOption; } var layoutInfo = singleAxisHelper.layout(axisModel); viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api); }, /** * @override */ getHandleTransform: function getHandleTransform(value, axisModel, axisPointerModel) { var layoutInfo = singleAxisHelper.layout(axisModel, { labelInside: false }); layoutInfo.labelMargin = axisPointerModel.get('handle.margin'); return { position: viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo), rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0) }; }, /** * @override */ updateHandleTransform: function updateHandleTransform(transform, delta, axisModel, axisPointerModel) { var axis = axisModel.axis; var coordSys = axis.coordinateSystem; var dimIndex = getPointDimIndex(axis); var axisExtent = getGlobalExtent(coordSys, dimIndex); var currPosition = transform.position; currPosition[dimIndex] += delta[dimIndex]; currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]); currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]); var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex); var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2; var cursorPoint = [cursorOtherValue, cursorOtherValue]; cursorPoint[dimIndex] = currPosition[dimIndex]; return { position: currPosition, rotation: transform.rotation, cursorPoint: cursorPoint, tooltipOption: { verticalAlign: 'middle' } }; } }); var pointerShapeBuilder = { line: function line(axis, pixelValue, otherExtent) { var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis)); return { type: 'Line', subPixelOptimize: true, shape: targetShape }; }, shadow: function shadow(axis, pixelValue, otherExtent) { var bandWidth = axis.getBandWidth(); var span = otherExtent[1] - otherExtent[0]; return { type: 'Rect', shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis)) }; } }; function getPointDimIndex(axis) { return axis.isHorizontal() ? 0 : 1; } function getGlobalExtent(coordSys, dimIndex) { var rect = coordSys.getRect(); return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]]; } AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer); var _default = SingleAxisPointer; module.exports = _default; /***/ }), /* 757 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/themeRiver/ThemeRiverSeries.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var createDimensions = __webpack_require__(/*! ../../data/helper/createDimensions */ 529); var _dimensionHelper = __webpack_require__(/*! ../../data/helper/dimensionHelper */ 527); var getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis; var List = __webpack_require__(/*! ../../data/List */ 525); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _model = __webpack_require__(/*! ../../util/model */ 444); var groupData = _model.groupData; var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; var LegendVisualProvider = __webpack_require__(/*! ../../visual/LegendVisualProvider */ 589); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DATA_NAME_INDEX = 2; var ThemeRiverSeries = SeriesModel.extend({ type: 'series.themeRiver', dependencies: ['singleAxis'], /** * @readOnly * @type {module:zrender/core/util#HashMap} */ nameMap: null, /** * @override */ init: function init(option) { // eslint-disable-next-line ThemeRiverSeries.superApply(this, 'init', arguments); // Put this function here is for the sake of consistency of code style. // Enable legend selection for each data item // Use a function instead of direct access because data reference may changed this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); }, /** * If there is no value of a certain point in the time for some event,set it value to 0. * * @param {Array} data initial data in the option * @return {Array} */ fixData: function fixData(data) { var rawDataLength = data.length; /** * Make sure every layer data get the same keys. * The value index tells which layer has visited. * { * 2014/01/01: -1 * } */ var timeValueKeys = {}; // grouped data by name var groupResult = groupData(data, function (item) { if (!timeValueKeys.hasOwnProperty(item[0])) { timeValueKeys[item[0]] = -1; } return item[2]; }); var layData = []; groupResult.buckets.each(function (items, key) { layData.push({ name: key, dataList: items }); }); var layerNum = layData.length; for (var k = 0; k < layerNum; ++k) { var name = layData[k].name; for (var j = 0; j < layData[k].dataList.length; ++j) { var timeValue = layData[k].dataList[j][0]; timeValueKeys[timeValue] = k; } for (var timeValue in timeValueKeys) { if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) { timeValueKeys[timeValue] = k; data[rawDataLength] = []; data[rawDataLength][0] = timeValue; data[rawDataLength][1] = 0; data[rawDataLength][2] = name; rawDataLength++; } } } return data; }, /** * @override * @param {Object} option the initial option that user gived * @param {module:echarts/model/Model} ecModel the model object for themeRiver option * @return {module:echarts/data/List} */ getInitialData: function getInitialData(option, ecModel) { var singleAxisModel = ecModel.queryComponents({ mainType: 'singleAxis', index: this.get('singleAxisIndex'), id: this.get('singleAxisId') })[0]; var axisType = singleAxisModel.get('type'); // filter the data item with the value of label is undefined var filterData = zrUtil.filter(option.data, function (dataItem) { return dataItem[2] !== undefined; }); // ??? TODO design a stage to transfer data for themeRiver and lines? var data = this.fixData(filterData || []); var nameList = []; var nameMap = this.nameMap = zrUtil.createHashMap(); var count = 0; for (var i = 0; i < data.length; ++i) { nameList.push(data[i][DATA_NAME_INDEX]); if (!nameMap.get(data[i][DATA_NAME_INDEX])) { nameMap.set(data[i][DATA_NAME_INDEX], count); count++; } } var dimensionsInfo = createDimensions(data, { coordDimensions: ['single'], dimensionsDefine: [{ name: 'time', type: getDimensionTypeByAxis(axisType) }, { name: 'value', type: 'float' }, { name: 'name', type: 'ordinal' }], encodeDefine: { single: 0, value: 1, itemName: 2 } }); var list = new List(dimensionsInfo, this); list.initData(data); return list; }, /** * The raw data is divided into multiple layers and each layer * has same name. * * @return {Array.>} */ getLayerSeries: function getLayerSeries() { var data = this.getData(); var lenCount = data.count(); var indexArr = []; for (var i = 0; i < lenCount; ++i) { indexArr[i] = i; } var timeDim = data.mapDimension('single'); // data group by name var groupResult = groupData(indexArr, function (index) { return data.get('name', index); }); var layerSeries = []; groupResult.buckets.each(function (items, key) { items.sort(function (index1, index2) { return data.get(timeDim, index1) - data.get(timeDim, index2); }); layerSeries.push({ name: key, indices: items }); }); return layerSeries; }, /** * Get data indices for show tooltip content * @param {Array.|string} dim single coordinate dimension * @param {number} value axis value * @param {module:echarts/coord/single/SingleAxis} baseAxis single Axis used * the themeRiver. * @return {Object} {dataIndices, nestestValue} */ getAxisTooltipData: function getAxisTooltipData(dim, value, baseAxis) { if (!zrUtil.isArray(dim)) { dim = dim ? [dim] : []; } var data = this.getData(); var layerSeries = this.getLayerSeries(); var indices = []; var layerNum = layerSeries.length; var nestestValue; for (var i = 0; i < layerNum; ++i) { var minDist = Number.MAX_VALUE; var nearestIdx = -1; var pointNum = layerSeries[i].indices.length; for (var j = 0; j < pointNum; ++j) { var theValue = data.get(dim[0], layerSeries[i].indices[j]); var dist = Math.abs(theValue - value); if (dist <= minDist) { nestestValue = theValue; minDist = dist; nearestIdx = layerSeries[i].indices[j]; } } indices.push(nearestIdx); } return { dataIndices: indices, nestestValue: nestestValue }; }, /** * @override * @param {number} dataIndex index of data */ formatTooltip: function formatTooltip(dataIndex) { var data = this.getData(); var htmlName = data.getName(dataIndex); var htmlValue = data.get(data.mapDimension('value'), dataIndex); if (isNaN(htmlValue) || htmlValue == null) { htmlValue = '-'; } return encodeHTML(htmlName + ' : ' + htmlValue); }, defaultOption: { zlevel: 0, z: 2, coordinateSystem: 'singleAxis', // gap in axis's orthogonal orientation boundaryGap: ['10%', '10%'], // legendHoverLink: true, singleAxisIndex: 0, animationEasing: 'linear', label: { margin: 4, show: true, position: 'left', color: '#000', fontSize: 11 }, emphasis: { label: { show: true } } } }); var _default = ThemeRiverSeries; module.exports = _default; /***/ }), /* 758 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var _poly = __webpack_require__(/*! ../line/poly */ 557); var Polygon = _poly.Polygon; var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var bind = _util.bind; var extend = _util.extend; var DataDiffer = __webpack_require__(/*! ../../data/DataDiffer */ 526); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendChartView({ type: 'themeRiver', init: function init() { this._layers = []; }, render: function render(seriesModel, ecModel, api) { var data = seriesModel.getData(); var group = this.group; var layerSeries = seriesModel.getLayerSeries(); var layoutInfo = data.getLayout('layoutInfo'); var rect = layoutInfo.rect; var boundaryGap = layoutInfo.boundaryGap; group.attr('position', [0, rect.y + boundaryGap[0]]); function keyGetter(item) { return item.name; } var dataDiffer = new DataDiffer(this._layersSeries || [], layerSeries, keyGetter, keyGetter); var newLayersGroups = {}; dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute(); function process(status, idx, oldIdx) { var oldLayersGroups = this._layers; if (status === 'remove') { group.remove(oldLayersGroups[idx]); return; } var points0 = []; var points1 = []; var color; var indices = layerSeries[idx].indices; for (var j = 0; j < indices.length; j++) { var layout = data.getItemLayout(indices[j]); var x = layout.x; var y0 = layout.y0; var y = layout.y; points0.push([x, y0]); points1.push([x, y0 + y]); color = data.getItemVisual(indices[j], 'color'); } var polygon; var text; var textLayout = data.getItemLayout(indices[0]); var itemModel = data.getItemModel(indices[j - 1]); var labelModel = itemModel.getModel('label'); var margin = labelModel.get('margin'); if (status === 'add') { var layerGroup = newLayersGroups[idx] = new graphic.Group(); polygon = new Polygon({ shape: { points: points0, stackedOnPoints: points1, smooth: 0.4, stackedOnSmooth: 0.4, smoothConstraint: false }, z2: 0 }); text = new graphic.Text({ style: { x: textLayout.x - margin, y: textLayout.y0 + textLayout.y / 2 } }); layerGroup.add(polygon); layerGroup.add(text); group.add(layerGroup); polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () { polygon.removeClipPath(); })); } else { var layerGroup = oldLayersGroups[oldIdx]; polygon = layerGroup.childAt(0); text = layerGroup.childAt(1); group.add(layerGroup); newLayersGroups[idx] = layerGroup; graphic.updateProps(polygon, { shape: { points: points0, stackedOnPoints: points1 } }, seriesModel); graphic.updateProps(text, { style: { x: textLayout.x - margin, y: textLayout.y0 + textLayout.y / 2 } }, seriesModel); } var hoverItemStyleModel = itemModel.getModel('emphasis.itemStyle'); var itemStyleModel = itemModel.getModel('itemStyle'); graphic.setTextStyle(text.style, labelModel, { text: labelModel.get('show') ? seriesModel.getFormattedLabel(indices[j - 1], 'normal') || data.getName(indices[j - 1]) : null, textVerticalAlign: 'middle' }); polygon.setStyle(extend({ fill: color }, itemStyleModel.getItemStyle(['color']))); graphic.setHoverStyle(polygon, hoverItemStyleModel.getItemStyle()); } this._layersSeries = layerSeries; this._layers = newLayersGroups; }, dispose: function dispose() {} }); // add animation to the view function createGridClipShape(rect, seriesModel, cb) { var rectEl = new graphic.Rect({ shape: { x: rect.x - 10, y: rect.y - 10, width: 0, height: rect.height + 20 } }); graphic.initProps(rectEl, { shape: { width: rect.width + 20, height: rect.height + 20 } }, seriesModel, cb); return rectEl; } module.exports = _default; /***/ }), /* 759 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel, api) { ecModel.eachSeriesByType('themeRiver', function (seriesModel) { var data = seriesModel.getData(); var single = seriesModel.coordinateSystem; var layoutInfo = {}; // use the axis boundingRect for view var rect = single.getRect(); layoutInfo.rect = rect; var boundaryGap = seriesModel.get('boundaryGap'); var axis = single.getAxis(); layoutInfo.boundaryGap = boundaryGap; if (axis.orient === 'horizontal') { boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height); boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height); var height = rect.height - boundaryGap[0] - boundaryGap[1]; themeRiverLayout(data, seriesModel, height); } else { boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width); boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width); var width = rect.width - boundaryGap[0] - boundaryGap[1]; themeRiverLayout(data, seriesModel, width); } data.setLayout('layoutInfo', layoutInfo); }); } /** * The layout information about themeriver * * @param {module:echarts/data/List} data data in the series * @param {module:echarts/model/Series} seriesModel the model object of themeRiver series * @param {number} height value used to compute every series height */ function themeRiverLayout(data, seriesModel, height) { if (!data.count()) { return; } var coordSys = seriesModel.coordinateSystem; // the data in each layer are organized into a series. var layerSeries = seriesModel.getLayerSeries(); // the points in each layer. var timeDim = data.mapDimension('single'); var valueDim = data.mapDimension('value'); var layerPoints = zrUtil.map(layerSeries, function (singleLayer) { return zrUtil.map(singleLayer.indices, function (idx) { var pt = coordSys.dataToPoint(data.get(timeDim, idx)); pt[1] = data.get(valueDim, idx); return pt; }); }); var base = computeBaseline(layerPoints); var baseLine = base.y0; var ky = height / base.max; // set layout information for each item. var n = layerSeries.length; var m = layerSeries[0].indices.length; var baseY0; for (var j = 0; j < m; ++j) { baseY0 = baseLine[j] * ky; data.setItemLayout(layerSeries[0].indices[j], { layerIndex: 0, x: layerPoints[0][j][0], y0: baseY0, y: layerPoints[0][j][1] * ky }); for (var i = 1; i < n; ++i) { baseY0 += layerPoints[i - 1][j][1] * ky; data.setItemLayout(layerSeries[i].indices[j], { layerIndex: i, x: layerPoints[i][j][0], y0: baseY0, y: layerPoints[i][j][1] * ky }); } } } /** * Compute the baseLine of the rawdata * Inspired by Lee Byron's paper Stacked Graphs - Geometry & Aesthetics * * @param {Array.} data the points in each layer * @return {Object} */ function computeBaseline(data) { var layerNum = data.length; var pointNum = data[0].length; var sums = []; var y0 = []; var max = 0; var temp; var base = {}; for (var i = 0; i < pointNum; ++i) { for (var j = 0, temp = 0; j < layerNum; ++j) { temp += data[j][i][1]; } if (temp > max) { max = temp; } sums.push(temp); } for (var k = 0; k < pointNum; ++k) { y0[k] = (max - sums[k]) / 2; } max = 0; for (var l = 0; l < pointNum; ++l) { var sum = sums[l] + y0[l]; if (sum > max) { max = sum; } } base.y0 = y0; base.max = max; return base; } module.exports = _default; /***/ }), /* 760 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/themeRiver/themeRiverVisual.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { ecModel.eachSeriesByType('themeRiver', function (seriesModel) { var data = seriesModel.getData(); var rawData = seriesModel.getRawData(); var colorList = seriesModel.get('color'); var idxMap = createHashMap(); data.each(function (idx) { idxMap.set(data.getRawIndex(idx), idx); }); rawData.each(function (rawIndex) { var name = rawData.getName(rawIndex); var color = colorList[(seriesModel.nameMap.get(name) - 1) % colorList.length]; rawData.setItemVisual(rawIndex, 'color', color); var idx = idxMap.get(rawIndex); if (idx != null) { data.setItemVisual(idx, 'color', color); } }); }); } module.exports = _default; /***/ }), /* 761 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sunburst.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); __webpack_require__(/*! ./sunburst/SunburstSeries */ 762); __webpack_require__(/*! ./sunburst/SunburstView */ 763); __webpack_require__(/*! ./sunburst/sunburstAction */ 765); var dataColor = __webpack_require__(/*! ../visual/dataColor */ 592); var sunburstLayout = __webpack_require__(/*! ./sunburst/sunburstLayout */ 766); var dataFilter = __webpack_require__(/*! ../processor/dataFilter */ 595); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerVisual(zrUtil.curry(dataColor, 'sunburst')); echarts.registerLayout(zrUtil.curry(sunburstLayout, 'sunburst')); echarts.registerProcessor(zrUtil.curry(dataFilter, 'sunburst')); /***/ }), /* 762 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sunburst/SunburstSeries.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var SeriesModel = __webpack_require__(/*! ../../model/Series */ 503); var Tree = __webpack_require__(/*! ../../data/Tree */ 636); var Model = __webpack_require__(/*! ../../model/Model */ 445); var _treeHelper = __webpack_require__(/*! ../helper/treeHelper */ 645); var wrapTreePathInfo = _treeHelper.wrapTreePathInfo; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = SeriesModel.extend({ type: 'series.sunburst', /** * @type {module:echarts/data/Tree~Node} */ _viewRoot: null, getInitialData: function getInitialData(option, ecModel) { // Create a virtual root. var root = { name: option.name, children: option.data }; completeTreeValue(root); var levelModels = zrUtil.map(option.levels || [], function (levelDefine) { return new Model(levelDefine, this, ecModel); }, this); // Make sure always a new tree is created when setOption, // in TreemapView, we check whether oldTree === newTree // to choose mappings approach among old shapes and new shapes. var tree = Tree.createTree(root, this, beforeLink); function beforeLink(nodeData) { nodeData.wrapMethod('getItemModel', function (model, idx) { var node = tree.getNodeByDataIndex(idx); var levelModel = levelModels[node.depth]; levelModel && (model.parentModel = levelModel); return model; }); } return tree.data; }, optionUpdated: function optionUpdated() { this.resetViewRoot(); }, /* * @override */ getDataParams: function getDataParams(dataIndex) { var params = SeriesModel.prototype.getDataParams.apply(this, arguments); var node = this.getData().tree.getNodeByDataIndex(dataIndex); params.treePathInfo = wrapTreePathInfo(node, this); return params; }, defaultOption: { zlevel: 0, z: 2, // 默认全局居中 center: ['50%', '50%'], radius: [0, '75%'], // 默认顺时针 clockwise: true, startAngle: 90, // 最小角度改为0 minAngle: 0, percentPrecision: 2, // If still show when all data zero. stillShowZeroSum: true, // Policy of highlighting pieces when hover on one // Valid values: 'none' (for not downplay others), 'descendant', // 'ancestor', 'self' highlightPolicy: 'descendant', // 'rootToNode', 'link', or false nodeClick: 'rootToNode', renderLabelForZeroData: false, label: { // could be: 'radial', 'tangential', or 'none' rotate: 'radial', show: true, opacity: 1, // 'left' is for inner side of inside, and 'right' is for outter // side for inside align: 'center', position: 'inside', distance: 5, silent: true }, itemStyle: { borderWidth: 1, borderColor: 'white', borderType: 'solid', shadowBlur: 0, shadowColor: 'rgba(0, 0, 0, 0.2)', shadowOffsetX: 0, shadowOffsetY: 0, opacity: 1 }, highlight: { itemStyle: { opacity: 1 } }, downplay: { itemStyle: { opacity: 0.5 }, label: { opacity: 0.6 } }, // Animation type canbe expansion, scale animationType: 'expansion', animationDuration: 1000, animationDurationUpdate: 500, animationEasing: 'cubicOut', data: [], levels: [], /** * Sort order. * * Valid values: 'desc', 'asc', null, or callback function. * 'desc' and 'asc' for descend and ascendant order; * null for not sorting; * example of callback function: * function(nodeA, nodeB) { * return nodeA.getValue() - nodeB.getValue(); * } */ sort: 'desc' }, getViewRoot: function getViewRoot() { return this._viewRoot; }, /** * @param {module:echarts/data/Tree~Node} [viewRoot] */ resetViewRoot: function resetViewRoot(viewRoot) { viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot; var root = this.getRawData().tree.root; if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) { this._viewRoot = root; } } }); /** * @param {Object} dataNode */ function completeTreeValue(dataNode) { // Postorder travel tree. // If value of none-leaf node is not set, // calculate it by suming up the value of all children. var sum = 0; zrUtil.each(dataNode.children, function (child) { completeTreeValue(child); var childValue = child.value; zrUtil.isArray(childValue) && (childValue = childValue[0]); sum += childValue; }); var thisValue = dataNode.value; if (zrUtil.isArray(thisValue)) { thisValue = thisValue[0]; } if (thisValue == null || isNaN(thisValue)) { thisValue = sum; } // Value should not less than 0. if (thisValue < 0) { thisValue = 0; } zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue; } module.exports = _default; /***/ }), /* 763 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sunburst/SunburstView.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ChartView = __webpack_require__(/*! ../../view/Chart */ 508); var SunburstPiece = __webpack_require__(/*! ./SunburstPiece */ 764); var DataDiffer = __webpack_require__(/*! ../../data/DataDiffer */ 526); var _format = __webpack_require__(/*! ../../util/format */ 490); var windowOpen = _format.windowOpen; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ROOT_TO_NODE_ACTION = 'sunburstRootToNode'; var SunburstView = ChartView.extend({ type: 'sunburst', init: function init() {}, render: function render(seriesModel, ecModel, api, payload) { var that = this; this.seriesModel = seriesModel; this.api = api; this.ecModel = ecModel; var data = seriesModel.getData(); var virtualRoot = data.tree.root; var newRoot = seriesModel.getViewRoot(); var group = this.group; var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData'); var newChildren = []; newRoot.eachNode(function (node) { newChildren.push(node); }); var oldChildren = this._oldChildren || []; dualTravel(newChildren, oldChildren); renderRollUp(virtualRoot, newRoot); if (payload && payload.highlight && payload.highlight.piece) { var highlightPolicy = seriesModel.getShallow('highlightPolicy'); payload.highlight.piece.onEmphasis(highlightPolicy); } else if (payload && payload.unhighlight) { var piece = this.virtualPiece; if (!piece && virtualRoot.children.length) { piece = virtualRoot.children[0].piece; } if (piece) { piece.onNormal(); } } this._initEvents(); this._oldChildren = newChildren; function dualTravel(newChildren, oldChildren) { if (newChildren.length === 0 && oldChildren.length === 0) { return; } new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute(); function getKey(node) { return node.getId(); } function processNode(newId, oldId) { var newNode = newId == null ? null : newChildren[newId]; var oldNode = oldId == null ? null : oldChildren[oldId]; doRenderNode(newNode, oldNode); } } function doRenderNode(newNode, oldNode) { if (!renderLabelForZeroData && newNode && !newNode.getValue()) { // Not render data with value 0 newNode = null; } if (newNode !== virtualRoot && oldNode !== virtualRoot) { if (oldNode && oldNode.piece) { if (newNode) { // Update oldNode.piece.updateData(false, newNode, 'normal', seriesModel, ecModel); // For tooltip data.setItemGraphicEl(newNode.dataIndex, oldNode.piece); } else { // Remove removeNode(oldNode); } } else if (newNode) { // Add var piece = new SunburstPiece(newNode, seriesModel, ecModel); group.add(piece); // For tooltip data.setItemGraphicEl(newNode.dataIndex, piece); } } } function removeNode(node) { if (!node) { return; } if (node.piece) { group.remove(node.piece); node.piece = null; } } function renderRollUp(virtualRoot, viewRoot) { if (viewRoot.depth > 0) { // Render if (that.virtualPiece) { // Update that.virtualPiece.updateData(false, virtualRoot, 'normal', seriesModel, ecModel); } else { // Add that.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel); group.add(that.virtualPiece); } if (viewRoot.piece._onclickEvent) { viewRoot.piece.off('click', viewRoot.piece._onclickEvent); } var event = function event(e) { that._rootToNode(viewRoot.parentNode); }; viewRoot.piece._onclickEvent = event; that.virtualPiece.on('click', event); } else if (that.virtualPiece) { // Remove group.remove(that.virtualPiece); that.virtualPiece = null; } } }, dispose: function dispose() {}, /** * @private */ _initEvents: function _initEvents() { var that = this; var event = function event(e) { var targetFound = false; var viewRoot = that.seriesModel.getViewRoot(); viewRoot.eachNode(function (node) { if (!targetFound && node.piece && node.piece.childAt(0) === e.target) { var nodeClick = node.getModel().get('nodeClick'); if (nodeClick === 'rootToNode') { that._rootToNode(node); } else if (nodeClick === 'link') { var itemModel = node.getModel(); var link = itemModel.get('link'); if (link) { var linkTarget = itemModel.get('target', true) || '_blank'; windowOpen(link, linkTarget); } } targetFound = true; } }); }; if (this.group._onclickEvent) { this.group.off('click', this.group._onclickEvent); } this.group.on('click', event); this.group._onclickEvent = event; }, /** * @private */ _rootToNode: function _rootToNode(node) { if (node !== this.seriesModel.getViewRoot()) { this.api.dispatchAction({ type: ROOT_TO_NODE_ACTION, from: this.uid, seriesId: this.seriesModel.id, targetNode: node }); } }, /** * @implement */ containPoint: function containPoint(point, seriesModel) { var treeRoot = seriesModel.getData(); var itemLayout = treeRoot.getItemLayout(0); if (itemLayout) { var dx = point[0] - itemLayout.cx; var dy = point[1] - itemLayout.cy; var radius = Math.sqrt(dx * dx + dy * dy); return radius <= itemLayout.r && radius >= itemLayout.r0; } } }); var _default = SunburstView; module.exports = _default; /***/ }), /* 764 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sunburst/SunburstPiece.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var NodeHighlightPolicy = { NONE: 'none', // not downplay others DESCENDANT: 'descendant', ANCESTOR: 'ancestor', SELF: 'self' }; var DEFAULT_SECTOR_Z = 2; var DEFAULT_TEXT_Z = 4; /** * Sunburstce of Sunburst including Sector, Label, LabelLine * @constructor * @extends {module:zrender/graphic/Group} */ function SunburstPiece(node, seriesModel, ecModel) { graphic.Group.call(this); var sector = new graphic.Sector({ z2: DEFAULT_SECTOR_Z }); sector.seriesIndex = seriesModel.seriesIndex; var text = new graphic.Text({ z2: DEFAULT_TEXT_Z, silent: node.getModel('label').get('silent') }); this.add(sector); this.add(text); this.updateData(true, node, 'normal', seriesModel, ecModel); // Hover to change label and labelLine function onEmphasis() { text.ignore = text.hoverIgnore; } function onNormal() { text.ignore = text.normalIgnore; } this.on('emphasis', onEmphasis).on('normal', onNormal).on('mouseover', onEmphasis).on('mouseout', onNormal); } var SunburstPieceProto = SunburstPiece.prototype; SunburstPieceProto.updateData = function (firstCreate, node, state, seriesModel, ecModel) { this.node = node; node.piece = this; seriesModel = seriesModel || this._seriesModel; ecModel = ecModel || this._ecModel; var sector = this.childAt(0); sector.dataIndex = node.dataIndex; var itemModel = node.getModel(); var layout = node.getLayout(); // if (!layout) { // console.log(node.getLayout()); // } var sectorShape = zrUtil.extend({}, layout); sectorShape.label = null; var visualColor = getNodeColor(node, seriesModel, ecModel); fillDefaultColor(node, seriesModel, visualColor); var normalStyle = itemModel.getModel('itemStyle').getItemStyle(); var style; if (state === 'normal') { style = normalStyle; } else { var stateStyle = itemModel.getModel(state + '.itemStyle').getItemStyle(); style = zrUtil.merge(stateStyle, normalStyle); } style = zrUtil.defaults({ lineJoin: 'bevel', fill: style.fill || visualColor }, style); if (firstCreate) { sector.setShape(sectorShape); sector.shape.r = layout.r0; graphic.updateProps(sector, { shape: { r: layout.r } }, seriesModel, node.dataIndex); sector.useStyle(style); } else if (_typeof(style.fill) === 'object' && style.fill.type || _typeof(sector.style.fill) === 'object' && sector.style.fill.type) { // Disable animation for gradient since no interpolation method // is supported for gradient graphic.updateProps(sector, { shape: sectorShape }, seriesModel); sector.useStyle(style); } else { graphic.updateProps(sector, { shape: sectorShape, style: style }, seriesModel); } this._updateLabel(seriesModel, visualColor, state); var cursorStyle = itemModel.getShallow('cursor'); cursorStyle && sector.attr('cursor', cursorStyle); if (firstCreate) { var highlightPolicy = seriesModel.getShallow('highlightPolicy'); this._initEvents(sector, node, seriesModel, highlightPolicy); } this._seriesModel = seriesModel || this._seriesModel; this._ecModel = ecModel || this._ecModel; graphic.setHoverStyle(this); }; SunburstPieceProto.onEmphasis = function (highlightPolicy) { var that = this; this.node.hostTree.root.eachNode(function (n) { if (n.piece) { if (that.node === n) { n.piece.updateData(false, n, 'emphasis'); } else if (isNodeHighlighted(n, that.node, highlightPolicy)) { n.piece.childAt(0).trigger('highlight'); } else if (highlightPolicy !== NodeHighlightPolicy.NONE) { n.piece.childAt(0).trigger('downplay'); } } }); }; SunburstPieceProto.onNormal = function () { this.node.hostTree.root.eachNode(function (n) { if (n.piece) { n.piece.updateData(false, n, 'normal'); } }); }; SunburstPieceProto.onHighlight = function () { this.updateData(false, this.node, 'highlight'); }; SunburstPieceProto.onDownplay = function () { this.updateData(false, this.node, 'downplay'); }; SunburstPieceProto._updateLabel = function (seriesModel, visualColor, state) { var itemModel = this.node.getModel(); var normalModel = itemModel.getModel('label'); var labelModel = state === 'normal' || state === 'emphasis' ? normalModel : itemModel.getModel(state + '.label'); var labelHoverModel = itemModel.getModel('emphasis.label'); var labelFormatter = labelModel.get('formatter'); // Use normal formatter if no state formatter is defined var labelState = labelFormatter ? state : 'normal'; var text = zrUtil.retrieve(seriesModel.getFormattedLabel(this.node.dataIndex, labelState, null, null, 'label'), this.node.name); if (getLabelAttr('show') === false) { text = ''; } var layout = this.node.getLayout(); var labelMinAngle = labelModel.get('minAngle'); if (labelMinAngle == null) { labelMinAngle = normalModel.get('minAngle'); } labelMinAngle = labelMinAngle / 180 * Math.PI; var angle = layout.endAngle - layout.startAngle; if (labelMinAngle != null && Math.abs(angle) < labelMinAngle) { // Not displaying text when angle is too small text = ''; } var label = this.childAt(1); graphic.setLabelStyle(label.style, label.hoverStyle || {}, normalModel, labelHoverModel, { defaultText: labelModel.getShallow('show') ? text : null, autoColor: visualColor, useInsideStyle: true }); var midAngle = (layout.startAngle + layout.endAngle) / 2; var dx = Math.cos(midAngle); var dy = Math.sin(midAngle); var r; var labelPosition = getLabelAttr('position'); var labelPadding = getLabelAttr('distance') || 0; var textAlign = getLabelAttr('align'); if (labelPosition === 'outside') { r = layout.r + labelPadding; textAlign = midAngle > Math.PI / 2 ? 'right' : 'left'; } else { if (!textAlign || textAlign === 'center') { r = (layout.r + layout.r0) / 2; textAlign = 'center'; } else if (textAlign === 'left') { r = layout.r0 + labelPadding; if (midAngle > Math.PI / 2) { textAlign = 'right'; } } else if (textAlign === 'right') { r = layout.r - labelPadding; if (midAngle > Math.PI / 2) { textAlign = 'left'; } } } label.attr('style', { text: text, textAlign: textAlign, textVerticalAlign: getLabelAttr('verticalAlign') || 'middle', opacity: getLabelAttr('opacity') }); var textX = r * dx + layout.cx; var textY = r * dy + layout.cy; label.attr('position', [textX, textY]); var rotateType = getLabelAttr('rotate'); var rotate = 0; if (rotateType === 'radial') { rotate = -midAngle; if (rotate < -Math.PI / 2) { rotate += Math.PI; } } else if (rotateType === 'tangential') { rotate = Math.PI / 2 - midAngle; if (rotate > Math.PI / 2) { rotate -= Math.PI; } else if (rotate < -Math.PI / 2) { rotate += Math.PI; } } else if (typeof rotateType === 'number') { rotate = rotateType * Math.PI / 180; } label.attr('rotation', rotate); function getLabelAttr(name) { var stateAttr = labelModel.get(name); if (stateAttr == null) { return normalModel.get(name); } else { return stateAttr; } } }; SunburstPieceProto._initEvents = function (sector, node, seriesModel, highlightPolicy) { sector.off('mouseover').off('mouseout').off('emphasis').off('normal'); var that = this; var onEmphasis = function onEmphasis() { that.onEmphasis(highlightPolicy); }; var onNormal = function onNormal() { that.onNormal(); }; var onDownplay = function onDownplay() { that.onDownplay(); }; var onHighlight = function onHighlight() { that.onHighlight(); }; if (seriesModel.isAnimationEnabled()) { sector.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal).on('downplay', onDownplay).on('highlight', onHighlight); } }; zrUtil.inherits(SunburstPiece, graphic.Group); var _default = SunburstPiece; /** * Get node color * * @param {TreeNode} node the node to get color * @param {module:echarts/model/Series} seriesModel series * @param {module:echarts/model/Global} ecModel echarts defaults */ function getNodeColor(node, seriesModel, ecModel) { // Color from visualMap var visualColor = node.getVisual('color'); var visualMetaList = node.getVisual('visualMeta'); if (!visualMetaList || visualMetaList.length === 0) { // Use first-generation color if has no visualMap visualColor = null; } // Self color or level color var color = node.getModel('itemStyle').get('color'); if (color) { return color; } else if (visualColor) { // Color mapping return visualColor; } else if (node.depth === 0) { // Virtual root node return ecModel.option.color[0]; } else { // First-generation color var length = ecModel.option.color.length; color = ecModel.option.color[getRootId(node) % length]; } return color; } /** * Get index of root in sorted order * * @param {TreeNode} node current node * @return {number} index in root */ function getRootId(node) { var ancestor = node; while (ancestor.depth > 1) { ancestor = ancestor.parentNode; } var virtualRoot = node.getAncestors()[0]; return zrUtil.indexOf(virtualRoot.children, ancestor); } function isNodeHighlighted(node, activeNode, policy) { if (policy === NodeHighlightPolicy.NONE) { return false; } else if (policy === NodeHighlightPolicy.SELF) { return node === activeNode; } else if (policy === NodeHighlightPolicy.ANCESTOR) { return node === activeNode || node.isAncestorOf(activeNode); } else { return node === activeNode || node.isDescendantOf(activeNode); } } // Fix tooltip callback function params.color incorrect when pick a default color function fillDefaultColor(node, seriesModel, color) { var data = seriesModel.getData(); data.setItemVisual(node.dataIndex, 'color', color); } module.exports = _default; /***/ }), /* 765 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sunburst/sunburstAction.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var helper = __webpack_require__(/*! ../helper/treeHelper */ 645); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @file Sunburst action */ var ROOT_TO_NODE_ACTION = 'sunburstRootToNode'; echarts.registerAction({ type: ROOT_TO_NODE_ACTION, update: 'updateView' }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleRootToNode); function handleRootToNode(model, index) { var targetInfo = helper.retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model); if (targetInfo) { var originViewRoot = model.getViewRoot(); if (originViewRoot) { payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown'; } model.resetViewRoot(targetInfo.node); } } }); var HIGHLIGHT_ACTION = 'sunburstHighlight'; echarts.registerAction({ type: HIGHLIGHT_ACTION, update: 'updateView' }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleHighlight); function handleHighlight(model, index) { var targetInfo = helper.retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model); if (targetInfo) { payload.highlight = targetInfo.node; } } }); var UNHIGHLIGHT_ACTION = 'sunburstUnhighlight'; echarts.registerAction({ type: UNHIGHLIGHT_ACTION, update: 'updateView' }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleUnhighlight); function handleUnhighlight(model, index) { payload.unhighlight = true; } }); /***/ }), /* 766 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/sunburst/sunburstLayout.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // var PI2 = Math.PI * 2; var RADIAN = Math.PI / 180; function _default(seriesType, ecModel, api, payload) { ecModel.eachSeriesByType(seriesType, function (seriesModel) { var center = seriesModel.get('center'); var radius = seriesModel.get('radius'); if (!zrUtil.isArray(radius)) { radius = [0, radius]; } if (!zrUtil.isArray(center)) { center = [center, center]; } var width = api.getWidth(); var height = api.getHeight(); var size = Math.min(width, height); var cx = parsePercent(center[0], width); var cy = parsePercent(center[1], height); var r0 = parsePercent(radius[0], size / 2); var r = parsePercent(radius[1], size / 2); var startAngle = -seriesModel.get('startAngle') * RADIAN; var minAngle = seriesModel.get('minAngle') * RADIAN; var virtualRoot = seriesModel.getData().tree.root; var treeRoot = seriesModel.getViewRoot(); var rootDepth = treeRoot.depth; var sort = seriesModel.get('sort'); if (sort != null) { initChildren(treeRoot, sort); } var validDataCount = 0; zrUtil.each(treeRoot.children, function (child) { !isNaN(child.getValue()) && validDataCount++; }); var sum = treeRoot.getValue(); // Sum may be 0 var unitRadian = Math.PI / (sum || validDataCount) * 2; var renderRollupNode = treeRoot.depth > 0; var levels = treeRoot.height - (renderRollupNode ? -1 : 1); var rPerLevel = (r - r0) / (levels || 1); var clockwise = seriesModel.get('clockwise'); var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // In the case some sector angle is smaller than minAngle // var restAngle = PI2; // var valueSumLargerThanMinAngle = 0; var dir = clockwise ? 1 : -1; /** * Render a tree * @return increased angle */ var renderNode = function renderNode(node, startAngle) { if (!node) { return; } var endAngle = startAngle; // Render self if (node !== virtualRoot) { // Tree node is virtual, so it doesn't need to be drawn var value = node.getValue(); var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian; if (angle < minAngle) { angle = minAngle; // restAngle -= minAngle; } // else { // valueSumLargerThanMinAngle += value; // } endAngle = startAngle + dir * angle; var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1); var rStart = r0 + rPerLevel * depth; var rEnd = r0 + rPerLevel * (depth + 1); var itemModel = node.getModel(); if (itemModel.get('r0') != null) { rStart = parsePercent(itemModel.get('r0'), size / 2); } if (itemModel.get('r') != null) { rEnd = parsePercent(itemModel.get('r'), size / 2); } node.setLayout({ angle: angle, startAngle: startAngle, endAngle: endAngle, clockwise: clockwise, cx: cx, cy: cy, r0: rStart, r: rEnd }); } // Render children if (node.children && node.children.length) { // currentAngle = startAngle; var siblingAngle = 0; zrUtil.each(node.children, function (node) { siblingAngle += renderNode(node, startAngle + siblingAngle); }); } return endAngle - startAngle; }; // Virtual root node for roll up if (renderRollupNode) { var rStart = r0; var rEnd = r0 + rPerLevel; var angle = Math.PI * 2; virtualRoot.setLayout({ angle: angle, startAngle: startAngle, endAngle: startAngle + angle, clockwise: clockwise, cx: cx, cy: cy, r0: rStart, r: rEnd }); } renderNode(treeRoot, startAngle); }); } /** * Init node children by order and update visual * * @param {TreeNode} node root node * @param {boolean} isAsc if is in ascendant order */ function initChildren(node, isAsc) { var children = node.children || []; node.children = sort(children, isAsc); // Init children recursively if (children.length) { zrUtil.each(node.children, function (child) { initChildren(child, isAsc); }); } } /** * Sort children nodes * * @param {TreeNode[]} children children of node to be sorted * @param {string | function | null} sort sort method * See SunburstSeries.js for details. */ function sort(children, sortOrder) { if (typeof sortOrder === 'function') { return children.sort(sortOrder); } else { var isAsc = sortOrder === 'asc'; return children.sort(function (a, b) { var diff = (a.getValue() - b.getValue()) * (isAsc ? 1 : -1); return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc ? -1 : 1) : diff; }); } } module.exports = _default; /***/ }), /* 767 */ /*!*************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/chart/custom.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphicUtil = __webpack_require__(/*! ../util/graphic */ 451); var _labelHelper = __webpack_require__(/*! ./helper/labelHelper */ 554); var getDefaultLabel = _labelHelper.getDefaultLabel; var createListFromArray = __webpack_require__(/*! ./helper/createListFromArray */ 524); var _barGrid = __webpack_require__(/*! ../layout/barGrid */ 539); var getLayoutOnAxis = _barGrid.getLayoutOnAxis; var DataDiffer = __webpack_require__(/*! ../data/DataDiffer */ 526); var SeriesModel = __webpack_require__(/*! ../model/Series */ 503); var Model = __webpack_require__(/*! ../model/Model */ 445); var ChartView = __webpack_require__(/*! ../view/Chart */ 508); var _createClipPathFromCoordSys = __webpack_require__(/*! ./helper/createClipPathFromCoordSys */ 558); var createClipPath = _createClipPathFromCoordSys.createClipPath; var prepareCartesian2d = __webpack_require__(/*! ../coord/cartesian/prepareCustom */ 768); var prepareGeo = __webpack_require__(/*! ../coord/geo/prepareCustom */ 769); var prepareSingleAxis = __webpack_require__(/*! ../coord/single/prepareCustom */ 770); var preparePolar = __webpack_require__(/*! ../coord/polar/prepareCustom */ 771); var prepareCalendar = __webpack_require__(/*! ../coord/calendar/prepareCustom */ 772); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var CACHED_LABEL_STYLE_PROPERTIES = graphicUtil.CACHED_LABEL_STYLE_PROPERTIES; var ITEM_STYLE_NORMAL_PATH = ['itemStyle']; var ITEM_STYLE_EMPHASIS_PATH = ['emphasis', 'itemStyle']; var LABEL_NORMAL = ['label']; var LABEL_EMPHASIS = ['emphasis', 'label']; // Use prefix to avoid index to be the same as el.name, // which will cause weird udpate animation. var GROUP_DIFF_PREFIX = 'e\0\0'; /** * To reduce total package size of each coordinate systems, the modules `prepareCustom` * of each coordinate systems are not required by each coordinate systems directly, but * required by the module `custom`. * * prepareInfoForCustomSeries {Function}: optional * @return {Object} {coordSys: {...}, api: { * coord: function (data, clamp) {}, // return point in global. * size: function (dataSize, dataItem) {} // return size of each axis in coordSys. * }} */ var prepareCustoms = { cartesian2d: prepareCartesian2d, geo: prepareGeo, singleAxis: prepareSingleAxis, polar: preparePolar, calendar: prepareCalendar }; // ------ // Model // ------ SeriesModel.extend({ type: 'series.custom', dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'], defaultOption: { coordinateSystem: 'cartesian2d', // Can be set as 'none' zlevel: 0, z: 2, legendHoverLink: true, useTransform: true, // Custom series will not clip by default. // Some case will use custom series to draw label // For example https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight // Only works on polar and cartesian2d coordinate system. clip: false // Cartesian coordinate system // xAxisIndex: 0, // yAxisIndex: 0, // Polar coordinate system // polarIndex: 0, // Geo coordinate system // geoIndex: 0, // label: {} // itemStyle: {} }, /** * @override */ getInitialData: function getInitialData(option, ecModel) { return createListFromArray(this.getSource(), this); }, /** * @override */ getDataParams: function getDataParams(dataIndex, dataType, el) { var params = SeriesModel.prototype.getDataParams.apply(this, arguments); el && (params.info = el.info); return params; } }); // ----- // View // ----- ChartView.extend({ type: 'custom', /** * @private * @type {module:echarts/data/List} */ _data: null, /** * @override */ render: function render(customSeries, ecModel, api, payload) { var oldData = this._data; var data = customSeries.getData(); var group = this.group; var renderItem = makeRenderItem(customSeries, data, ecModel, api); // By default, merge mode is applied. In most cases, custom series is // used in the scenario that data amount is not large but graphic elements // is complicated, where merge mode is probably necessary for optimization. // For example, reuse graphic elements and only update the transform when // roam or data zoom according to `actionType`. data.diff(oldData).add(function (newIdx) { createOrUpdate(null, newIdx, renderItem(newIdx, payload), customSeries, group, data); }).update(function (newIdx, oldIdx) { var el = oldData.getItemGraphicEl(oldIdx); createOrUpdate(el, newIdx, renderItem(newIdx, payload), customSeries, group, data); }).remove(function (oldIdx) { var el = oldData.getItemGraphicEl(oldIdx); el && group.remove(el); }).execute(); // Do clipping var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null; if (clipPath) { group.setClipPath(clipPath); } else { group.removeClipPath(); } this._data = data; }, incrementalPrepareRender: function incrementalPrepareRender(customSeries, ecModel, api) { this.group.removeAll(); this._data = null; }, incrementalRender: function incrementalRender(params, customSeries, ecModel, api, payload) { var data = customSeries.getData(); var renderItem = makeRenderItem(customSeries, data, ecModel, api); function setIncrementalAndHoverLayer(el) { if (!el.isGroup) { el.incremental = true; el.useHoverLayer = true; } } for (var idx = params.start; idx < params.end; idx++) { var el = createOrUpdate(null, idx, renderItem(idx, payload), customSeries, this.group, data); el.traverse(setIncrementalAndHoverLayer); } }, /** * @override */ dispose: zrUtil.noop, /** * @override */ filterForExposedEvent: function filterForExposedEvent(eventType, query, targetEl, packedEvent) { var elementName = query.element; if (elementName == null || targetEl.name === elementName) { return true; } // Enable to give a name on a group made by `renderItem`, and listen // events that triggerd by its descendents. while ((targetEl = targetEl.parent) && targetEl !== this.group) { if (targetEl.name === elementName) { return true; } } return false; } }); function createEl(elOption) { var graphicType = elOption.type; var el; // Those graphic elements are not shapes. They should not be // overwritten by users, so do them first. if (graphicType === 'path') { var shape = elOption.shape; // Using pathRect brings convenience to users sacle svg path. var pathRect = shape.width != null && shape.height != null ? { x: shape.x || 0, y: shape.y || 0, width: shape.width, height: shape.height } : null; var pathData = getPathData(shape); // Path is also used for icon, so layout 'center' by default. el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center'); el.__customPathData = pathData; } else if (graphicType === 'image') { el = new graphicUtil.Image({}); el.__customImagePath = elOption.style.image; } else if (graphicType === 'text') { el = new graphicUtil.Text({}); el.__customText = elOption.style.text; } else if (graphicType === 'group') { el = new graphicUtil.Group(); } else if (graphicType === 'compoundPath') { throw new Error('"compoundPath" is not supported yet.'); } else { var Clz = graphicUtil.getShapeClass(graphicType); el = new Clz(); } el.__customGraphicType = graphicType; el.name = elOption.name; return el; } function updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot) { var transitionProps = {}; var elOptionStyle = elOption.style || {}; elOption.shape && (transitionProps.shape = zrUtil.clone(elOption.shape)); elOption.position && (transitionProps.position = elOption.position.slice()); elOption.scale && (transitionProps.scale = elOption.scale.slice()); elOption.origin && (transitionProps.origin = elOption.origin.slice()); elOption.rotation && (transitionProps.rotation = elOption.rotation); if (el.type === 'image' && elOption.style) { var targetStyle = transitionProps.style = {}; zrUtil.each(['x', 'y', 'width', 'height'], function (prop) { prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit); }); } if (el.type === 'text' && elOption.style) { var targetStyle = transitionProps.style = {}; zrUtil.each(['x', 'y'], function (prop) { prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit); }); // Compatible with previous: both support // textFill and fill, textStroke and stroke in 'text' element. !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill); !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke); } if (el.type !== 'group') { el.useStyle(elOptionStyle); // Init animation. if (isInit) { el.style.opacity = 0; var targetOpacity = elOptionStyle.opacity; targetOpacity == null && (targetOpacity = 1); graphicUtil.initProps(el, { style: { opacity: targetOpacity } }, animatableModel, dataIndex); } } if (isInit) { el.attr(transitionProps); } else { graphicUtil.updateProps(el, transitionProps, animatableModel, dataIndex); } // Merge by default. // z2 must not be null/undefined, otherwise sort error may occur. elOption.hasOwnProperty('z2') && el.attr('z2', elOption.z2 || 0); elOption.hasOwnProperty('silent') && el.attr('silent', elOption.silent); elOption.hasOwnProperty('invisible') && el.attr('invisible', elOption.invisible); elOption.hasOwnProperty('ignore') && el.attr('ignore', elOption.ignore); // `elOption.info` enables user to mount some info on // elements and use them in event handlers. // Update them only when user specified, otherwise, remain. elOption.hasOwnProperty('info') && el.attr('info', elOption.info); // If `elOption.styleEmphasis` is `false`, remove hover style. The // logic is ensured by `graphicUtil.setElementHoverStyle`. var styleEmphasis = elOption.styleEmphasis; // hoverStyle should always be set here, because if the hover style // may already be changed, where the inner cache should be reset. graphicUtil.setElementHoverStyle(el, styleEmphasis); if (isRoot) { graphicUtil.setAsHighDownDispatcher(el, styleEmphasis !== false); } } function prepareStyleTransition(prop, targetStyle, elOptionStyle, oldElStyle, isInit) { if (elOptionStyle[prop] != null && !isInit) { targetStyle[prop] = elOptionStyle[prop]; elOptionStyle[prop] = oldElStyle[prop]; } } function makeRenderItem(customSeries, data, ecModel, api) { var renderItem = customSeries.get('renderItem'); var coordSys = customSeries.coordinateSystem; var prepareResult = {}; if (coordSys) { prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms() : prepareCustoms[coordSys.type](coordSys); } var userAPI = zrUtil.defaults({ getWidth: api.getWidth, getHeight: api.getHeight, getZr: api.getZr, getDevicePixelRatio: api.getDevicePixelRatio, value: value, style: style, styleEmphasis: styleEmphasis, visual: visual, barLayout: barLayout, currentSeriesIndices: currentSeriesIndices, font: font }, prepareResult.api || {}); var userParams = { // The life cycle of context: current round of rendering. // The global life cycle is probably not necessary, because // user can store global status by themselves. context: {}, seriesId: customSeries.id, seriesName: customSeries.name, seriesIndex: customSeries.seriesIndex, coordSys: prepareResult.coordSys, dataInsideLength: data.count(), encode: wrapEncodeDef(customSeries.getData()) }; // Do not support call `api` asynchronously without dataIndexInside input. var currDataIndexInside; var currDirty = true; var currItemModel; var currLabelNormalModel; var currLabelEmphasisModel; var currVisualColor; return function (dataIndexInside, payload) { currDataIndexInside = dataIndexInside; currDirty = true; return renderItem && renderItem(zrUtil.defaults({ dataIndexInside: dataIndexInside, dataIndex: data.getRawIndex(dataIndexInside), // Can be used for optimization when zoom or roam. actionType: payload ? payload.type : null }, userParams), userAPI); }; // Do not update cache until api called. function updateCache(dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); if (currDirty) { currItemModel = data.getItemModel(dataIndexInside); currLabelNormalModel = currItemModel.getModel(LABEL_NORMAL); currLabelEmphasisModel = currItemModel.getModel(LABEL_EMPHASIS); currVisualColor = data.getItemVisual(dataIndexInside, 'color'); currDirty = false; } } /** * @public * @param {number|string} dim * @param {number} [dataIndexInside=currDataIndexInside] * @return {number|string} value */ function value(dim, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); return data.get(data.getDimension(dim || 0), dataIndexInside); } /** * By default, `visual` is applied to style (to support visualMap). * `visual.color` is applied at `fill`. If user want apply visual.color on `stroke`, * it can be implemented as: * `api.style({stroke: api.visual('color'), fill: null})`; * @public * @param {Object} [extra] * @param {number} [dataIndexInside=currDataIndexInside] */ function style(extra, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); updateCache(dataIndexInside); var itemStyle = currItemModel.getModel(ITEM_STYLE_NORMAL_PATH).getItemStyle(); currVisualColor != null && (itemStyle.fill = currVisualColor); var opacity = data.getItemVisual(dataIndexInside, 'opacity'); opacity != null && (itemStyle.opacity = opacity); var labelModel = extra ? applyExtraBefore(extra, currLabelNormalModel) : currLabelNormalModel; graphicUtil.setTextStyle(itemStyle, labelModel, null, { autoColor: currVisualColor, isRectText: true }); itemStyle.text = labelModel.getShallow('show') ? zrUtil.retrieve2(customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null; extra && applyExtraAfter(itemStyle, extra); return itemStyle; } /** * @public * @param {Object} [extra] * @param {number} [dataIndexInside=currDataIndexInside] */ function styleEmphasis(extra, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); updateCache(dataIndexInside); var itemStyle = currItemModel.getModel(ITEM_STYLE_EMPHASIS_PATH).getItemStyle(); var labelModel = extra ? applyExtraBefore(extra, currLabelEmphasisModel) : currLabelEmphasisModel; graphicUtil.setTextStyle(itemStyle, labelModel, null, { isRectText: true }, true); itemStyle.text = labelModel.getShallow('show') ? zrUtil.retrieve3(customSeries.getFormattedLabel(dataIndexInside, 'emphasis'), customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null; extra && applyExtraAfter(itemStyle, extra); return itemStyle; } /** * @public * @param {string} visualType * @param {number} [dataIndexInside=currDataIndexInside] */ function visual(visualType, dataIndexInside) { dataIndexInside == null && (dataIndexInside = currDataIndexInside); return data.getItemVisual(dataIndexInside, visualType); } /** * @public * @param {number} opt.count Positive interger. * @param {number} [opt.barWidth] * @param {number} [opt.barMaxWidth] * @param {number} [opt.barMinWidth] * @param {number} [opt.barGap] * @param {number} [opt.barCategoryGap] * @return {Object} {width, offset, offsetCenter} is not support, return undefined. */ function barLayout(opt) { if (coordSys.getBaseAxis) { var baseAxis = coordSys.getBaseAxis(); return getLayoutOnAxis(zrUtil.defaults({ axis: baseAxis }, opt), api); } } /** * @public * @return {Array.} */ function currentSeriesIndices() { return ecModel.getCurrentSeriesIndices(); } /** * @public * @param {Object} opt * @param {string} [opt.fontStyle] * @param {number} [opt.fontWeight] * @param {number} [opt.fontSize] * @param {string} [opt.fontFamily] * @return {string} font string */ function font(opt) { return graphicUtil.getFont(opt, ecModel); } } function wrapEncodeDef(data) { var encodeDef = {}; zrUtil.each(data.dimensions, function (dimName, dataDimIndex) { var dimInfo = data.getDimensionInfo(dimName); if (!dimInfo.isExtraCoord) { var coordDim = dimInfo.coordDim; var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || []; dataDims[dimInfo.coordDimIndex] = dataDimIndex; } }); return encodeDef; } function createOrUpdate(el, dataIndex, elOption, animatableModel, group, data) { el = doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, true); el && data.setItemGraphicEl(dataIndex, el); return el; } function doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, isRoot) { // [Rule] // By default, follow merge mode. // (It probably brings benifit for performance in some cases of large data, where // user program can be optimized to that only updated props needed to be re-calculated, // or according to `actionType` some calculation can be skipped.) // If `renderItem` returns `null`/`undefined`/`false`, remove the previous el if existing. // (It seems that violate the "merge" principle, but most of users probably intuitively // regard "return;" as "show nothing element whatever", so make a exception to meet the // most cases.) var simplyRemove = !elOption; // `null`/`undefined`/`false` elOption = elOption || {}; var elOptionType = elOption.type; var elOptionShape = elOption.shape; var elOptionStyle = elOption.style; if (el && (simplyRemove // || elOption.$merge === false // If `elOptionType` is `null`, follow the merge principle. || elOptionType != null && elOptionType !== el.__customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== el.__customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== el.__customImagePath // FIXME test and remove this restriction? || elOptionType === 'text' && hasOwn(elOptionShape, 'text') && elOptionStyle.text !== el.__customText)) { group.remove(el); el = null; } // `elOption.type` is undefined when `renderItem` returns nothing. if (simplyRemove) { return; } var isInit = !el; !el && (el = createEl(elOption)); updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot); if (elOptionType === 'group') { mergeChildren(el, dataIndex, elOption, animatableModel, data); } // Always add whatever already added to ensure sequence. group.add(el); return el; } // Usage: // (1) By default, `elOption.$mergeChildren` is `'byIndex'`, which indicates that // the existing children will not be removed, and enables the feature that // update some of the props of some of the children simply by construct // the returned children of `renderItem` like: // `var children = group.children = []; children[3] = {opacity: 0.5};` // (2) If `elOption.$mergeChildren` is `'byName'`, add/update/remove children // by child.name. But that might be lower performance. // (3) If `elOption.$mergeChildren` is `false`, the existing children will be // replaced totally. // (4) If `!elOption.children`, following the "merge" principle, nothing will happen. // // For implementation simpleness, do not provide a direct way to remove sinlge // child (otherwise the total indicies of the children array have to be modified). // User can remove a single child by set its `ignore` as `true` or replace // it by another element, where its `$merge` can be set as `true` if necessary. function mergeChildren(el, dataIndex, elOption, animatableModel, data) { var newChildren = elOption.children; var newLen = newChildren ? newChildren.length : 0; var mergeChildren = elOption.$mergeChildren; // `diffChildrenByName` has been deprecated. var byName = mergeChildren === 'byName' || elOption.diffChildrenByName; var notMerge = mergeChildren === false; // For better performance on roam update, only enter if necessary. if (!newLen && !byName && !notMerge) { return; } if (byName) { diffGroupChildren({ oldChildren: el.children() || [], newChildren: newChildren || [], dataIndex: dataIndex, animatableModel: animatableModel, group: el, data: data }); return; } notMerge && el.removeAll(); // Mapping children of a group simply by index, which // might be better performance. var index = 0; for (; index < newLen; index++) { newChildren[index] && doCreateOrUpdate(el.childAt(index), dataIndex, newChildren[index], animatableModel, el, data); } } function diffGroupChildren(context) { new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute(); } function getKey(item, idx) { var name = item && item.name; return name != null ? name : GROUP_DIFF_PREFIX + idx; } function processAddUpdate(newIndex, oldIndex) { var context = this.context; var childOption = newIndex != null ? context.newChildren[newIndex] : null; var child = oldIndex != null ? context.oldChildren[oldIndex] : null; doCreateOrUpdate(child, context.dataIndex, childOption, context.animatableModel, context.group, context.data); } // `graphic#applyDefaultTextStyle` will cache // textFill, textStroke, textStrokeWidth. // We have to do this trick. function applyExtraBefore(extra, model) { var dummyModel = new Model({}, model); zrUtil.each(CACHED_LABEL_STYLE_PROPERTIES, function (stylePropName, modelPropName) { if (extra.hasOwnProperty(stylePropName)) { dummyModel.option[modelPropName] = extra[stylePropName]; } }); return dummyModel; } function applyExtraAfter(itemStyle, extra) { for (var key in extra) { if (extra.hasOwnProperty(key) || !CACHED_LABEL_STYLE_PROPERTIES.hasOwnProperty(key)) { itemStyle[key] = extra[key]; } } } function processRemove(oldIndex) { var context = this.context; var child = context.oldChildren[oldIndex]; child && context.group.remove(child); } function getPathData(shape) { // "d" follows the SVG convention. return shape && (shape.pathData || shape.d); } function hasOwnPathData(shape) { return shape && (shape.hasOwnProperty('pathData') || shape.hasOwnProperty('d')); } function hasOwn(host, prop) { return host && host.hasOwnProperty(prop); } /***/ }), /* 768 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/cartesian/prepareCustom.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function dataToCoordSize(dataSize, dataItem) { // dataItem is necessary in log axis. dataItem = dataItem || [0, 0]; return zrUtil.map(['x', 'y'], function (dim, dimIdx) { var axis = this.getAxis(dim); var val = dataItem[dimIdx]; var halfSize = dataSize[dimIdx] / 2; return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize)); }, this); } function _default(coordSys) { var rect = coordSys.grid.getRect(); return { coordSys: { // The name exposed to user is always 'cartesian2d' but not 'grid'. type: 'cartesian2d', x: rect.x, y: rect.y, width: rect.width, height: rect.height }, api: { coord: function coord(data) { // do not provide "out" param return coordSys.dataToPoint(data); }, size: zrUtil.bind(dataToCoordSize, coordSys) } }; } module.exports = _default; /***/ }), /* 769 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/prepareCustom.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function dataToCoordSize(dataSize, dataItem) { dataItem = dataItem || [0, 0]; return zrUtil.map([0, 1], function (dimIdx) { var val = dataItem[dimIdx]; var halfSize = dataSize[dimIdx] / 2; var p1 = []; var p2 = []; p1[dimIdx] = val - halfSize; p2[dimIdx] = val + halfSize; p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx]; return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]); }, this); } function _default(coordSys) { var rect = coordSys.getBoundingRect(); return { coordSys: { type: 'geo', x: rect.x, y: rect.y, width: rect.width, height: rect.height, zoom: coordSys.getZoom() }, api: { coord: function coord(data) { // do not provide "out" and noRoam param, // Compatible with this usage: // echarts.util.map(item.points, api.coord) return coordSys.dataToPoint(data); }, size: zrUtil.bind(dataToCoordSize, coordSys) } }; } module.exports = _default; /***/ }), /* 770 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/single/prepareCustom.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function dataToCoordSize(dataSize, dataItem) { // dataItem is necessary in log axis. var axis = this.getAxis(); var val = dataItem instanceof Array ? dataItem[0] : dataItem; var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2; return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize)); } function _default(coordSys) { var rect = coordSys.getRect(); return { coordSys: { type: 'singleAxis', x: rect.x, y: rect.y, width: rect.width, height: rect.height }, api: { coord: function coord(val) { // do not provide "out" param return coordSys.dataToPoint(val); }, size: zrUtil.bind(dataToCoordSize, coordSys) } }; } module.exports = _default; /***/ }), /* 771 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/polar/prepareCustom.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function dataToCoordSize(dataSize, dataItem) { // dataItem is necessary in log axis. return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) { var axis = this['get' + dim + 'Axis'](); var val = dataItem[dimIdx]; var halfSize = dataSize[dimIdx] / 2; var method = 'dataTo' + dim; var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis[method](val - halfSize) - axis[method](val + halfSize)); if (dim === 'Angle') { result = result * Math.PI / 180; } return result; }, this); } function _default(coordSys) { var radiusAxis = coordSys.getRadiusAxis(); var angleAxis = coordSys.getAngleAxis(); var radius = radiusAxis.getExtent(); radius[0] > radius[1] && radius.reverse(); return { coordSys: { type: 'polar', cx: coordSys.cx, cy: coordSys.cy, r: radius[1], r0: radius[0] }, api: { coord: zrUtil.bind(function (data) { var radius = radiusAxis.dataToRadius(data[0]); var angle = angleAxis.dataToAngle(data[1]); var coord = coordSys.coordToPoint([radius, angle]); coord.push(radius, angle * Math.PI / 180); return coord; }), size: zrUtil.bind(dataToCoordSize, coordSys) } }; } module.exports = _default; /***/ }), /* 772 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/calendar/prepareCustom.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(coordSys) { var rect = coordSys.getRect(); var rangeInfo = coordSys.getRangeInfo(); return { coordSys: { type: 'calendar', x: rect.x, y: rect.y, width: rect.width, height: rect.height, cellWidth: coordSys.getCellWidth(), cellHeight: coordSys.getCellHeight(), rangeInfo: { start: rangeInfo.start, end: rangeInfo.end, weeks: rangeInfo.weeks, dayCount: rangeInfo.allDay } }, api: { coord: function coord(data, clamp) { return coordSys.dataToPoint(data, clamp); } } }; } module.exports = _default; /***/ }), /* 773 */ /*!***************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/grid.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./gridSimple */ 562); __webpack_require__(/*! ./axisPointer/CartesianAxisPointer */ 753); __webpack_require__(/*! ./axisPointer */ 747); /***/ }), /* 774 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/polar.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var barPolar = __webpack_require__(/*! ../layout/barPolar */ 775); __webpack_require__(/*! ../coord/polar/polarCreator */ 776); __webpack_require__(/*! ./angleAxis */ 782); __webpack_require__(/*! ./radiusAxis */ 784); __webpack_require__(/*! ./axisPointer */ 747); __webpack_require__(/*! ./axisPointer/PolarAxisPointer */ 786); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // For reducing size of echarts.min, barLayoutPolar is required by polar. echarts.registerLayout(zrUtil.curry(barPolar, 'bar')); // Polar view echarts.extendComponentView({ type: 'polar' }); /***/ }), /* 775 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/layout/barPolar.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _number = __webpack_require__(/*! ../util/number */ 489); var parsePercent = _number.parsePercent; var _dataStackHelper = __webpack_require__(/*! ../data/helper/dataStackHelper */ 532); var isDimensionStacked = _dataStackHelper.isDimensionStacked; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function getSeriesStackId(seriesModel) { return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex; } function getAxisKey(polar, axis) { return axis.dim + polar.model.componentIndex; } /** * @param {string} seriesType * @param {module:echarts/model/Global} ecModel * @param {module:echarts/ExtensionAPI} api */ function barLayoutPolar(seriesType, ecModel, api) { var lastStackCoords = {}; var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) { return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar'; })); ecModel.eachSeriesByType(seriesType, function (seriesModel) { // Check series coordinate, do layout for polar only if (seriesModel.coordinateSystem.type !== 'polar') { return; } var data = seriesModel.getData(); var polar = seriesModel.coordinateSystem; var baseAxis = polar.getBaseAxis(); var axisKey = getAxisKey(polar, baseAxis); var stackId = getSeriesStackId(seriesModel); var columnLayoutInfo = barWidthAndOffset[axisKey][stackId]; var columnOffset = columnLayoutInfo.offset; var columnWidth = columnLayoutInfo.width; var valueAxis = polar.getOtherAxis(baseAxis); var cx = seriesModel.coordinateSystem.cx; var cy = seriesModel.coordinateSystem.cy; var barMinHeight = seriesModel.get('barMinHeight') || 0; var barMinAngle = seriesModel.get('barMinAngle') || 0; lastStackCoords[stackId] = lastStackCoords[stackId] || []; var valueDim = data.mapDimension(valueAxis.dim); var baseDim = data.mapDimension(baseAxis.dim); var stacked = isDimensionStacked(data, valueDim /*, baseDim*/); var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true); var valueAxisStart = valueAxis.dim === 'radius' ? valueAxis.dataToRadius(0) : valueAxis.dataToAngle(0); for (var idx = 0, len = data.count(); idx < len; idx++) { var value = data.get(valueDim, idx); var baseValue = data.get(baseDim, idx); var sign = value >= 0 ? 'p' : 'n'; var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in // stackResultDimension directly. // Only ordinal axis can be stacked. if (stacked) { if (!lastStackCoords[stackId][baseValue]) { lastStackCoords[stackId][baseValue] = { p: valueAxisStart, // Positive stack n: valueAxisStart // Negative stack }; } // Should also consider #4243 baseCoord = lastStackCoords[stackId][baseValue][sign]; } var r0; var r; var startAngle; var endAngle; // radial sector if (valueAxis.dim === 'radius') { var radiusSpan = valueAxis.dataToRadius(value) - valueAxisStart; var angle = baseAxis.dataToAngle(baseValue); if (Math.abs(radiusSpan) < barMinHeight) { radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight; } r0 = baseCoord; r = baseCoord + radiusSpan; startAngle = angle - columnOffset; endAngle = startAngle - columnWidth; stacked && (lastStackCoords[stackId][baseValue][sign] = r); } // tangential sector else { var angleSpan = valueAxis.dataToAngle(value, clampLayout) - valueAxisStart; var radius = baseAxis.dataToRadius(baseValue); if (Math.abs(angleSpan) < barMinAngle) { angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle; } r0 = radius + columnOffset; r = r0 + columnWidth; startAngle = baseCoord; endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring, // add a round to differentiate it from origin // var extent = angleAxis.getExtent(); // var stackCoord = angle; // if (stackCoord === extent[0] && value > 0) { // stackCoord = extent[1]; // } // else if (stackCoord === extent[1] && value < 0) { // stackCoord = extent[0]; // } stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle); } data.setItemLayout(idx, { cx: cx, cy: cy, r0: r0, r: r, // Consider that positive angle is anti-clockwise, // while positive radian of sector is clockwise startAngle: -startAngle * Math.PI / 180, endAngle: -endAngle * Math.PI / 180 }); } }, this); } /** * Calculate bar width and offset for radial bar charts */ function calRadialBar(barSeries, api) { // Columns info on each category axis. Key is polar name var columnsMap = {}; zrUtil.each(barSeries, function (seriesModel, idx) { var data = seriesModel.getData(); var polar = seriesModel.coordinateSystem; var baseAxis = polar.getBaseAxis(); var axisKey = getAxisKey(polar, baseAxis); var axisExtent = baseAxis.getExtent(); var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count(); var columnsOnAxis = columnsMap[axisKey] || { bandWidth: bandWidth, remainedWidth: bandWidth, autoWidthCount: 0, categoryGap: '20%', gap: '30%', stacks: {} }; var stacks = columnsOnAxis.stacks; columnsMap[axisKey] = columnsOnAxis; var stackId = getSeriesStackId(seriesModel); if (!stacks[stackId]) { columnsOnAxis.autoWidthCount++; } stacks[stackId] = stacks[stackId] || { width: 0, maxWidth: 0 }; var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth); var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth); var barGap = seriesModel.get('barGap'); var barCategoryGap = seriesModel.get('barCategoryGap'); if (barWidth && !stacks[stackId].width) { barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth); stacks[stackId].width = barWidth; columnsOnAxis.remainedWidth -= barWidth; } barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth); barGap != null && (columnsOnAxis.gap = barGap); barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap); }); var result = {}; zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) { result[coordSysName] = {}; var stacks = columnsOnAxis.stacks; var bandWidth = columnsOnAxis.bandWidth; var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth); var barGapPercent = parsePercent(columnsOnAxis.gap, 1); var remainedWidth = columnsOnAxis.remainedWidth; var autoWidthCount = columnsOnAxis.autoWidthCount; var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth zrUtil.each(stacks, function (column, stack) { var maxWidth = column.maxWidth; if (maxWidth && maxWidth < autoWidth) { maxWidth = Math.min(maxWidth, remainedWidth); if (column.width) { maxWidth = Math.min(maxWidth, column.width); } remainedWidth -= maxWidth; column.width = maxWidth; autoWidthCount--; } }); // Recalculate width again autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); autoWidth = Math.max(autoWidth, 0); var widthSum = 0; var lastColumn; zrUtil.each(stacks, function (column, idx) { if (!column.width) { column.width = autoWidth; } lastColumn = column; widthSum += column.width * (1 + barGapPercent); }); if (lastColumn) { widthSum -= lastColumn.width * barGapPercent; } var offset = -widthSum / 2; zrUtil.each(stacks, function (column, stackId) { result[coordSysName][stackId] = result[coordSysName][stackId] || { offset: offset, width: column.width }; offset += column.width * (1 + barGapPercent); }); }); return result; } var _default = barLayoutPolar; module.exports = _default; /***/ }), /* 776 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/polar/polarCreator.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Polar = __webpack_require__(/*! ./Polar */ 777); var _number = __webpack_require__(/*! ../../util/number */ 489); var parsePercent = _number.parsePercent; var _axisHelper = __webpack_require__(/*! ../../coord/axisHelper */ 533); var createScaleByModel = _axisHelper.createScaleByModel; var niceScaleExtent = _axisHelper.niceScaleExtent; var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); var _dataStackHelper = __webpack_require__(/*! ../../data/helper/dataStackHelper */ 532); var getStackedDimension = _dataStackHelper.getStackedDimension; __webpack_require__(/*! ./PolarModel */ 780); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // TODO Axis scale /** * Resize method bound to the polar * @param {module:echarts/coord/polar/PolarModel} polarModel * @param {module:echarts/ExtensionAPI} api */ function resizePolar(polar, polarModel, api) { var center = polarModel.get('center'); var width = api.getWidth(); var height = api.getHeight(); polar.cx = parsePercent(center[0], width); polar.cy = parsePercent(center[1], height); var radiusAxis = polar.getRadiusAxis(); var size = Math.min(width, height) / 2; var radius = polarModel.get('radius'); if (radius == null) { radius = [0, '100%']; } else if (!zrUtil.isArray(radius)) { // r0 = 0 radius = [0, radius]; } radius = [parsePercent(radius[0], size), parsePercent(radius[1], size)]; radiusAxis.inverse ? radiusAxis.setExtent(radius[1], radius[0]) : radiusAxis.setExtent(radius[0], radius[1]); } /** * Update polar */ function updatePolarScale(ecModel, api) { var polar = this; var angleAxis = polar.getAngleAxis(); var radiusAxis = polar.getRadiusAxis(); // Reset scale angleAxis.scale.setExtent(Infinity, -Infinity); radiusAxis.scale.setExtent(Infinity, -Infinity); ecModel.eachSeries(function (seriesModel) { if (seriesModel.coordinateSystem === polar) { var data = seriesModel.getData(); zrUtil.each(data.mapDimension('radius', true), function (dim) { radiusAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim)); }); zrUtil.each(data.mapDimension('angle', true), function (dim) { angleAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim)); }); } }); niceScaleExtent(angleAxis.scale, angleAxis.model); niceScaleExtent(radiusAxis.scale, radiusAxis.model); // Fix extent of category angle axis if (angleAxis.type === 'category' && !angleAxis.onBand) { var extent = angleAxis.getExtent(); var diff = 360 / angleAxis.scale.count(); angleAxis.inverse ? extent[1] += diff : extent[1] -= diff; angleAxis.setExtent(extent[0], extent[1]); } } /** * Set common axis properties * @param {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis} * @param {module:echarts/coord/polar/AxisModel} * @inner */ function setAxis(axis, axisModel) { axis.type = axisModel.get('type'); axis.scale = createScaleByModel(axisModel); axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category'; axis.inverse = axisModel.get('inverse'); if (axisModel.mainType === 'angleAxis') { axis.inverse ^= axisModel.get('clockwise'); var startAngle = axisModel.get('startAngle'); axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360)); } // Inject axis instance axisModel.axis = axis; axis.model = axisModel; } var polarCreator = { dimensions: Polar.prototype.dimensions, create: function create(ecModel, api) { var polarList = []; ecModel.eachComponent('polar', function (polarModel, idx) { var polar = new Polar(idx); // Inject resize and update method polar.update = updatePolarScale; var radiusAxis = polar.getRadiusAxis(); var angleAxis = polar.getAngleAxis(); var radiusAxisModel = polarModel.findAxisModel('radiusAxis'); var angleAxisModel = polarModel.findAxisModel('angleAxis'); setAxis(radiusAxis, radiusAxisModel); setAxis(angleAxis, angleAxisModel); resizePolar(polar, polarModel, api); polarList.push(polar); polarModel.coordinateSystem = polar; polar.model = polarModel; }); // Inject coordinateSystem to series ecModel.eachSeries(function (seriesModel) { if (seriesModel.get('coordinateSystem') === 'polar') { var polarModel = ecModel.queryComponents({ mainType: 'polar', index: seriesModel.get('polarIndex'), id: seriesModel.get('polarId') })[0]; seriesModel.coordinateSystem = polarModel.coordinateSystem; } }); return polarList; } }; CoordinateSystem.register('polar', polarCreator); /***/ }), /* 777 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/polar/Polar.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var RadiusAxis = __webpack_require__(/*! ./RadiusAxis */ 778); var AngleAxis = __webpack_require__(/*! ./AngleAxis */ 779); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @module echarts/coord/polar/Polar */ /** * @alias {module:echarts/coord/polar/Polar} * @constructor * @param {string} name */ var Polar = function Polar(name) { /** * @type {string} */ this.name = name || ''; /** * x of polar center * @type {number} */ this.cx = 0; /** * y of polar center * @type {number} */ this.cy = 0; /** * @type {module:echarts/coord/polar/RadiusAxis} * @private */ this._radiusAxis = new RadiusAxis(); /** * @type {module:echarts/coord/polar/AngleAxis} * @private */ this._angleAxis = new AngleAxis(); this._radiusAxis.polar = this._angleAxis.polar = this; }; Polar.prototype = { type: 'polar', axisPointerEnabled: true, constructor: Polar, /** * @param {Array.} * @readOnly */ dimensions: ['radius', 'angle'], /** * @type {module:echarts/coord/PolarModel} */ model: null, /** * If contain coord * @param {Array.} point * @return {boolean} */ containPoint: function containPoint(point) { var coord = this.pointToCoord(point); return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]); }, /** * If contain data * @param {Array.} data * @return {boolean} */ containData: function containData(data) { return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]); }, /** * @param {string} dim * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis} */ getAxis: function getAxis(dim) { return this['_' + dim + 'Axis']; }, /** * @return {Array.} */ getAxes: function getAxes() { return [this._radiusAxis, this._angleAxis]; }, /** * Get axes by type of scale * @param {string} scaleType * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis} */ getAxesByScale: function getAxesByScale(scaleType) { var axes = []; var angleAxis = this._angleAxis; var radiusAxis = this._radiusAxis; angleAxis.scale.type === scaleType && axes.push(angleAxis); radiusAxis.scale.type === scaleType && axes.push(radiusAxis); return axes; }, /** * @return {module:echarts/coord/polar/AngleAxis} */ getAngleAxis: function getAngleAxis() { return this._angleAxis; }, /** * @return {module:echarts/coord/polar/RadiusAxis} */ getRadiusAxis: function getRadiusAxis() { return this._radiusAxis; }, /** * @param {module:echarts/coord/polar/Axis} * @return {module:echarts/coord/polar/Axis} */ getOtherAxis: function getOtherAxis(axis) { var angleAxis = this._angleAxis; return axis === angleAxis ? this._radiusAxis : angleAxis; }, /** * Base axis will be used on stacking. * * @return {module:echarts/coord/polar/Axis} */ getBaseAxis: function getBaseAxis() { return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis(); }, /** * @param {string} [dim] 'radius' or 'angle' or 'auto' or null/undefined * @return {Object} {baseAxes: [], otherAxes: []} */ getTooltipAxes: function getTooltipAxes(dim) { var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis(); return { baseAxes: [baseAxis], otherAxes: [this.getOtherAxis(baseAxis)] }; }, /** * Convert a single data item to (x, y) point. * Parameter data is an array which the first element is radius and the second is angle * @param {Array.} data * @param {boolean} [clamp=false] * @return {Array.} */ dataToPoint: function dataToPoint(data, clamp) { return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]); }, /** * Convert a (x, y) point to data * @param {Array.} point * @param {boolean} [clamp=false] * @return {Array.} */ pointToData: function pointToData(point, clamp) { var coord = this.pointToCoord(point); return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)]; }, /** * Convert a (x, y) point to (radius, angle) coord * @param {Array.} point * @return {Array.} */ pointToCoord: function pointToCoord(point) { var dx = point[0] - this.cx; var dy = point[1] - this.cy; var angleAxis = this.getAngleAxis(); var extent = angleAxis.getExtent(); var minAngle = Math.min(extent[0], extent[1]); var maxAngle = Math.max(extent[0], extent[1]); // Fix fixed extent in polarCreator // FIXME angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360; var radius = Math.sqrt(dx * dx + dy * dy); dx /= radius; dy /= radius; var radian = Math.atan2(-dy, dx) / Math.PI * 180; // move to angleExtent var dir = radian < minAngle ? 1 : -1; while (radian < minAngle || radian > maxAngle) { radian += dir * 360; } return [radius, radian]; }, /** * Convert a (radius, angle) coord to (x, y) point * @param {Array.} coord * @return {Array.} */ coordToPoint: function coordToPoint(coord) { var radius = coord[0]; var radian = coord[1] / 180 * Math.PI; var x = Math.cos(radian) * radius + this.cx; // Inverse the y var y = -Math.sin(radian) * radius + this.cy; return [x, y]; }, /** * Get ring area of cartesian. * Area will have a contain function to determine if a point is in the coordinate system. * @return {Ring} */ getArea: function getArea() { var angleAxis = this.getAngleAxis(); var radiusAxis = this.getRadiusAxis(); var radiusExtent = radiusAxis.getExtent().slice(); radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse(); var angleExtent = angleAxis.getExtent(); var RADIAN = Math.PI / 180; return { cx: this.cx, cy: this.cy, r0: radiusExtent[0], r: radiusExtent[1], startAngle: -angleExtent[0] * RADIAN, endAngle: -angleExtent[1] * RADIAN, clockwise: angleAxis.inverse, contain: function contain(x, y) { // It's a ring shape. // Start angle and end angle don't matter var dx = x - this.cx; var dy = y - this.cy; var d2 = dx * dx + dy * dy; var r = this.r; var r0 = this.r0; return d2 <= r * r && d2 >= r0 * r0; } }; } }; var _default = Polar; module.exports = _default; /***/ }), /* 778 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/polar/RadiusAxis.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Axis = __webpack_require__(/*! ../Axis */ 547); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function RadiusAxis(scale, radiusExtent) { Axis.call(this, 'radius', scale, radiusExtent); /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' * @type {string} */ this.type = 'category'; } RadiusAxis.prototype = { constructor: RadiusAxis, /** * @override */ pointToData: function pointToData(point, clamp) { return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1]; }, dataToRadius: Axis.prototype.dataToCoord, radiusToData: Axis.prototype.coordToData }; zrUtil.inherits(RadiusAxis, Axis); var _default = RadiusAxis; module.exports = _default; /***/ }), /* 779 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/polar/AngleAxis.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); var Axis = __webpack_require__(/*! ../Axis */ 547); var _model = __webpack_require__(/*! ../../util/model */ 444); var makeInner = _model.makeInner; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var inner = makeInner(); function AngleAxis(scale, angleExtent) { angleExtent = angleExtent || [0, 360]; Axis.call(this, 'angle', scale, angleExtent); /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' * @type {string} */ this.type = 'category'; } AngleAxis.prototype = { constructor: AngleAxis, /** * @override */ pointToData: function pointToData(point, clamp) { return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1]; }, dataToAngle: Axis.prototype.dataToCoord, angleToData: Axis.prototype.coordToData, /** * Only be called in category axis. * Angle axis uses text height to decide interval * * @override * @return {number} Auto interval for cateogry axis tick and label */ calculateCategoryInterval: function calculateCategoryInterval() { var axis = this; var labelModel = axis.getLabelModel(); var ordinalScale = axis.scale; var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization: // avoid generating a long array by `getTicks` // in large category data case. var tickCount = ordinalScale.count(); if (ordinalExtent[1] - ordinalExtent[0] < 1) { return 0; } var tickValue = ordinalExtent[0]; var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue); var unitH = Math.abs(unitSpan); // Not precise, just use height as text width // and each distance from axis line yet. var rect = textContain.getBoundingRect(tickValue, labelModel.getFont(), 'center', 'top'); var maxH = Math.max(rect.height, 7); var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity. isNaN(dh) && (dh = Infinity); var interval = Math.max(0, Math.floor(dh)); var cache = inner(axis.model); var lastAutoInterval = cache.lastAutoInterval; var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window, // otherwise the calculated interval might jitter when the zoom // window size is close to the interval-changing size. if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical // point is not the same when zooming in or zooming out. && lastAutoInterval > interval) { interval = lastAutoInterval; } // Only update cache if cache not used, otherwise the // changing of interval is too insensitive. else { cache.lastTickCount = tickCount; cache.lastAutoInterval = interval; } return interval; } }; zrUtil.inherits(AngleAxis, Axis); var _default = AngleAxis; module.exports = _default; /***/ }), /* 780 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/polar/PolarModel.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); __webpack_require__(/*! ./AxisModel */ 781); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendComponentModel({ type: 'polar', dependencies: ['polarAxis', 'angleAxis'], /** * @type {module:echarts/coord/polar/Polar} */ coordinateSystem: null, /** * @param {string} axisType * @return {module:echarts/coord/polar/AxisModel} */ findAxisModel: function findAxisModel(axisType) { var foundAxisModel; var ecModel = this.ecModel; ecModel.eachComponent(axisType, function (axisModel) { if (axisModel.getCoordSysModel() === this) { foundAxisModel = axisModel; } }, this); return foundAxisModel; }, defaultOption: { zlevel: 0, z: 0, center: ['50%', '50%'], radius: '80%' } }); module.exports = _default; /***/ }), /* 781 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/polar/AxisModel.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); var axisModelCreator = __webpack_require__(/*! ../axisModelCreator */ 569); var axisModelCommonMixin = __webpack_require__(/*! ../axisModelCommonMixin */ 542); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PolarAxisModel = ComponentModel.extend({ type: 'polarAxis', /** * @type {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis} */ axis: null, /** * @override */ getCoordSysModel: function getCoordSysModel() { return this.ecModel.queryComponents({ mainType: 'polar', index: this.option.polarIndex, id: this.option.polarId })[0]; } }); zrUtil.merge(PolarAxisModel.prototype, axisModelCommonMixin); var polarAxisDefaultExtendedOption = { angle: { // polarIndex: 0, // polarId: '', startAngle: 90, clockwise: true, splitNumber: 12, axisLabel: { rotate: false } }, radius: { // polarIndex: 0, // polarId: '', splitNumber: 5 } }; function getAxisType(axisDim, option) { // Default axis with data is category axis return option.type || (option.data ? 'category' : 'value'); } axisModelCreator('angle', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.angle); axisModelCreator('radius', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.radius); /***/ }), /* 782 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/angleAxis.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ../coord/polar/polarCreator */ 776); __webpack_require__(/*! ./axis/AngleAxisView */ 783); /***/ }), /* 783 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/AngleAxisView.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var Model = __webpack_require__(/*! ../../model/Model */ 445); var AxisView = __webpack_require__(/*! ./AxisView */ 574); var AxisBuilder = __webpack_require__(/*! ./AxisBuilder */ 573); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea']; function getAxisLineShape(polar, rExtent, angle) { rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse()); var start = polar.coordToPoint([rExtent[0], angle]); var end = polar.coordToPoint([rExtent[1], angle]); return { x1: start[0], y1: start[1], x2: end[0], y2: end[1] }; } function getRadiusIdx(polar) { var radiusAxis = polar.getRadiusAxis(); return radiusAxis.inverse ? 0 : 1; } // Remove the last tick which will overlap the first tick function fixAngleOverlap(list) { var firstItem = list[0]; var lastItem = list[list.length - 1]; if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) { list.pop(); } } var _default = AxisView.extend({ type: 'angleAxis', axisPointerClass: 'PolarAxisPointer', render: function render(angleAxisModel, ecModel) { this.group.removeAll(); if (!angleAxisModel.get('show')) { return; } var angleAxis = angleAxisModel.axis; var polar = angleAxis.polar; var radiusExtent = polar.getRadiusAxis().getExtent(); var ticksAngles = angleAxis.getTicksCoords(); var minorTickAngles = angleAxis.getMinorTicksCoords(); var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) { var labelItem = zrUtil.clone(labelItem); labelItem.coord = angleAxis.dataToCoord(labelItem.tickValue); return labelItem; }); fixAngleOverlap(labels); fixAngleOverlap(ticksAngles); zrUtil.each(elementList, function (name) { if (angleAxisModel.get(name + '.show') && (!angleAxis.scale.isBlank() || name === 'axisLine')) { this['_' + name](angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels); } }, this); }, /** * @private */ _axisLine: function _axisLine(angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { var lineStyleModel = angleAxisModel.getModel('axisLine.lineStyle'); // extent id of the axis radius (r0 and r) var rId = getRadiusIdx(polar); var r0Id = rId ? 0 : 1; var shape; if (radiusExtent[r0Id] === 0) { shape = new graphic.Circle({ shape: { cx: polar.cx, cy: polar.cy, r: radiusExtent[rId] }, style: lineStyleModel.getLineStyle(), z2: 1, silent: true }); } else { shape = new graphic.Ring({ shape: { cx: polar.cx, cy: polar.cy, r: radiusExtent[rId], r0: radiusExtent[r0Id] }, style: lineStyleModel.getLineStyle(), z2: 1, silent: true }); } shape.style.fill = null; this.group.add(shape); }, /** * @private */ _axisTick: function _axisTick(angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { var tickModel = angleAxisModel.getModel('axisTick'); var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length'); var radius = radiusExtent[getRadiusIdx(polar)]; var lines = zrUtil.map(ticksAngles, function (tickAngleItem) { return new graphic.Line({ shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord) }); }); this.group.add(graphic.mergePath(lines, { style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), { stroke: angleAxisModel.get('axisLine.lineStyle.color') }) })); }, /** * @private */ _minorTick: function _minorTick(angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) { if (!minorTickAngles.length) { return; } var tickModel = angleAxisModel.getModel('axisTick'); var minorTickModel = angleAxisModel.getModel('minorTick'); var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length'); var radius = radiusExtent[getRadiusIdx(polar)]; var lines = []; for (var i = 0; i < minorTickAngles.length; i++) { for (var k = 0; k < minorTickAngles[i].length; k++) { lines.push(new graphic.Line({ shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord) })); } } this.group.add(graphic.mergePath(lines, { style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), { stroke: angleAxisModel.get('axisLine.lineStyle.color') })) })); }, /** * @private */ _axisLabel: function _axisLabel(angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) { var rawCategoryData = angleAxisModel.getCategories(true); var commonLabelModel = angleAxisModel.getModel('axisLabel'); var labelMargin = commonLabelModel.get('margin'); var triggerEvent = angleAxisModel.get('triggerEvent'); // Use length of ticksAngles because it may remove the last tick to avoid overlapping zrUtil.each(labels, function (labelItem, idx) { var labelModel = commonLabelModel; var tickValue = labelItem.tickValue; var r = radiusExtent[getRadiusIdx(polar)]; var p = polar.coordToPoint([r + labelMargin, labelItem.coord]); var cx = polar.cx; var cy = polar.cy; var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right'; var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom'; if (rawCategoryData && rawCategoryData[tickValue] && rawCategoryData[tickValue].textStyle) { labelModel = new Model(rawCategoryData[tickValue].textStyle, commonLabelModel, commonLabelModel.ecModel); } var textEl = new graphic.Text({ silent: AxisBuilder.isLabelSilent(angleAxisModel) }); this.group.add(textEl); graphic.setTextStyle(textEl.style, labelModel, { x: p[0], y: p[1], textFill: labelModel.getTextColor() || angleAxisModel.get('axisLine.lineStyle.color'), text: labelItem.formattedLabel, textAlign: labelTextAlign, textVerticalAlign: labelTextVerticalAlign }); // Pack data for mouse event if (triggerEvent) { textEl.eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel); textEl.eventData.targetType = 'axisLabel'; textEl.eventData.value = labelItem.rawLabel; } }, this); }, /** * @private */ _splitLine: function _splitLine(angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { var splitLineModel = angleAxisModel.getModel('splitLine'); var lineStyleModel = splitLineModel.getModel('lineStyle'); var lineColors = lineStyleModel.get('color'); var lineCount = 0; lineColors = lineColors instanceof Array ? lineColors : [lineColors]; var splitLines = []; for (var i = 0; i < ticksAngles.length; i++) { var colorIndex = lineCount++ % lineColors.length; splitLines[colorIndex] = splitLines[colorIndex] || []; splitLines[colorIndex].push(new graphic.Line({ shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord) })); } // Simple optimization // Batching the lines if color are the same for (var i = 0; i < splitLines.length; i++) { this.group.add(graphic.mergePath(splitLines[i], { style: zrUtil.defaults({ stroke: lineColors[i % lineColors.length] }, lineStyleModel.getLineStyle()), silent: true, z: angleAxisModel.get('z') })); } }, /** * @private */ _minorSplitLine: function _minorSplitLine(angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { if (!minorTickAngles.length) { return; } var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine'); var lineStyleModel = minorSplitLineModel.getModel('lineStyle'); var lines = []; for (var i = 0; i < minorTickAngles.length; i++) { for (var k = 0; k < minorTickAngles[i].length; k++) { lines.push(new graphic.Line({ shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord) })); } } this.group.add(graphic.mergePath(lines, { style: lineStyleModel.getLineStyle(), silent: true, z: angleAxisModel.get('z') })); }, /** * @private */ _splitArea: function _splitArea(angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) { if (!ticksAngles.length) { return; } var splitAreaModel = angleAxisModel.getModel('splitArea'); var areaStyleModel = splitAreaModel.getModel('areaStyle'); var areaColors = areaStyleModel.get('color'); var lineCount = 0; areaColors = areaColors instanceof Array ? areaColors : [areaColors]; var splitAreas = []; var RADIAN = Math.PI / 180; var prevAngle = -ticksAngles[0].coord * RADIAN; var r0 = Math.min(radiusExtent[0], radiusExtent[1]); var r1 = Math.max(radiusExtent[0], radiusExtent[1]); var clockwise = angleAxisModel.get('clockwise'); for (var i = 1; i < ticksAngles.length; i++) { var colorIndex = lineCount++ % areaColors.length; splitAreas[colorIndex] = splitAreas[colorIndex] || []; splitAreas[colorIndex].push(new graphic.Sector({ shape: { cx: polar.cx, cy: polar.cy, r0: r0, r: r1, startAngle: prevAngle, endAngle: -ticksAngles[i].coord * RADIAN, clockwise: clockwise }, silent: true })); prevAngle = -ticksAngles[i].coord * RADIAN; } // Simple optimization // Batching the lines if color are the same for (var i = 0; i < splitAreas.length; i++) { this.group.add(graphic.mergePath(splitAreas[i], { style: zrUtil.defaults({ fill: areaColors[i % areaColors.length] }, areaStyleModel.getAreaStyle()), silent: true })); } } }); module.exports = _default; /***/ }), /* 784 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/radiusAxis.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ../coord/polar/polarCreator */ 776); __webpack_require__(/*! ./axis/RadiusAxisView */ 785); /***/ }), /* 785 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axis/RadiusAxisView.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var AxisBuilder = __webpack_require__(/*! ./AxisBuilder */ 573); var AxisView = __webpack_require__(/*! ./AxisView */ 574); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName']; var selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine']; var _default = AxisView.extend({ type: 'radiusAxis', axisPointerClass: 'PolarAxisPointer', render: function render(radiusAxisModel, ecModel) { this.group.removeAll(); if (!radiusAxisModel.get('show')) { return; } var radiusAxis = radiusAxisModel.axis; var polar = radiusAxis.polar; var angleAxis = polar.getAngleAxis(); var ticksCoords = radiusAxis.getTicksCoords(); var minorTicksCoords = radiusAxis.getMinorTicksCoords(); var axisAngle = angleAxis.getExtent()[0]; var radiusExtent = radiusAxis.getExtent(); var layout = layoutAxis(polar, radiusAxisModel, axisAngle); var axisBuilder = new AxisBuilder(radiusAxisModel, layout); zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder); this.group.add(axisBuilder.getGroup()); zrUtil.each(selfBuilderAttrs, function (name) { if (radiusAxisModel.get(name + '.show') && !radiusAxis.scale.isBlank()) { this['_' + name](radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords); } }, this); }, /** * @private */ _splitLine: function _splitLine(radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) { var splitLineModel = radiusAxisModel.getModel('splitLine'); var lineStyleModel = splitLineModel.getModel('lineStyle'); var lineColors = lineStyleModel.get('color'); var lineCount = 0; lineColors = lineColors instanceof Array ? lineColors : [lineColors]; var splitLines = []; for (var i = 0; i < ticksCoords.length; i++) { var colorIndex = lineCount++ % lineColors.length; splitLines[colorIndex] = splitLines[colorIndex] || []; splitLines[colorIndex].push(new graphic.Circle({ shape: { cx: polar.cx, cy: polar.cy, r: ticksCoords[i].coord } })); } // Simple optimization // Batching the lines if color are the same for (var i = 0; i < splitLines.length; i++) { this.group.add(graphic.mergePath(splitLines[i], { style: zrUtil.defaults({ stroke: lineColors[i % lineColors.length], fill: null }, lineStyleModel.getLineStyle()), silent: true })); } }, /** * @private */ _minorSplitLine: function _minorSplitLine(radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) { if (!minorTicksCoords.length) { return; } var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine'); var lineStyleModel = minorSplitLineModel.getModel('lineStyle'); var lines = []; for (var i = 0; i < minorTicksCoords.length; i++) { for (var k = 0; k < minorTicksCoords[i].length; k++) { lines.push(new graphic.Circle({ shape: { cx: polar.cx, cy: polar.cy, r: minorTicksCoords[i][k].coord } })); } } this.group.add(graphic.mergePath(lines, { style: zrUtil.defaults({ fill: null }, lineStyleModel.getLineStyle()), silent: true })); }, /** * @private */ _splitArea: function _splitArea(radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) { if (!ticksCoords.length) { return; } var splitAreaModel = radiusAxisModel.getModel('splitArea'); var areaStyleModel = splitAreaModel.getModel('areaStyle'); var areaColors = areaStyleModel.get('color'); var lineCount = 0; areaColors = areaColors instanceof Array ? areaColors : [areaColors]; var splitAreas = []; var prevRadius = ticksCoords[0].coord; for (var i = 1; i < ticksCoords.length; i++) { var colorIndex = lineCount++ % areaColors.length; splitAreas[colorIndex] = splitAreas[colorIndex] || []; splitAreas[colorIndex].push(new graphic.Sector({ shape: { cx: polar.cx, cy: polar.cy, r0: prevRadius, r: ticksCoords[i].coord, startAngle: 0, endAngle: Math.PI * 2 }, silent: true })); prevRadius = ticksCoords[i].coord; } // Simple optimization // Batching the lines if color are the same for (var i = 0; i < splitAreas.length; i++) { this.group.add(graphic.mergePath(splitAreas[i], { style: zrUtil.defaults({ fill: areaColors[i % areaColors.length] }, areaStyleModel.getAreaStyle()), silent: true })); } } }); /** * @inner */ function layoutAxis(polar, radiusAxisModel, axisAngle) { return { position: [polar.cx, polar.cy], rotation: axisAngle / 180 * Math.PI, labelDirection: -1, tickDirection: -1, nameDirection: 1, labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'), // Over splitLine and splitArea z2: 1 }; } module.exports = _default; /***/ }), /* 786 */ /*!***************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/axisPointer/PolarAxisPointer.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var BaseAxisPointer = __webpack_require__(/*! ./BaseAxisPointer */ 754); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var viewHelper = __webpack_require__(/*! ./viewHelper */ 755); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var AxisBuilder = __webpack_require__(/*! ../axis/AxisBuilder */ 573); var AxisView = __webpack_require__(/*! ../axis/AxisView */ 574); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PolarAxisPointer = BaseAxisPointer.extend({ /** * @override */ makeElOption: function makeElOption(elOption, value, axisModel, axisPointerModel, api) { var axis = axisModel.axis; if (axis.dim === 'angle') { this.animationThreshold = Math.PI / 18; } var polar = axis.polar; var otherAxis = polar.getOtherAxis(axis); var otherExtent = otherAxis.getExtent(); var coordValue; coordValue = axis['dataTo' + formatUtil.capitalFirst(axis.dim)](value); var axisPointerType = axisPointerModel.get('type'); if (axisPointerType && axisPointerType !== 'none') { var elStyle = viewHelper.buildElStyle(axisPointerModel); var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent, elStyle); pointerOption.style = elStyle; elOption.graphicKey = pointerOption.type; elOption.pointer = pointerOption; } var labelMargin = axisPointerModel.get('label.margin'); var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin); viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos); } // Do not support handle, utill any user requires it. }); function getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) { var axis = axisModel.axis; var coord = axis.dataToCoord(value); var axisAngle = polar.getAngleAxis().getExtent()[0]; axisAngle = axisAngle / 180 * Math.PI; var radiusExtent = polar.getRadiusAxis().getExtent(); var position; var align; var verticalAlign; if (axis.dim === 'radius') { var transform = matrix.create(); matrix.rotate(transform, transform, axisAngle); matrix.translate(transform, transform, [polar.cx, polar.cy]); position = graphic.applyTransform([coord, -labelMargin], transform); var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0; var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1); align = labelLayout.textAlign; verticalAlign = labelLayout.textVerticalAlign; } else { // angle axis var r = radiusExtent[1]; position = polar.coordToPoint([r + labelMargin, coord]); var cx = polar.cx; var cy = polar.cy; align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right'; verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom'; } return { position: position, align: align, verticalAlign: verticalAlign }; } var pointerShapeBuilder = { line: function line(axis, polar, coordValue, otherExtent, elStyle) { return axis.dim === 'angle' ? { type: 'Line', shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue])) } : { type: 'Circle', shape: { cx: polar.cx, cy: polar.cy, r: coordValue } }; }, shadow: function shadow(axis, polar, coordValue, otherExtent, elStyle) { var bandWidth = Math.max(1, axis.getBandWidth()); var radian = Math.PI / 180; return axis.dim === 'angle' ? { type: 'Sector', shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], // In ECharts y is negative if angle is positive (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian) } : { type: 'Sector', shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2) }; } }; AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer); var _default = PolarAxisPointer; module.exports = _default; /***/ }), /* 787 */ /*!**************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/geo.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); __webpack_require__(/*! ../coord/geo/GeoModel */ 788); __webpack_require__(/*! ../coord/geo/geoCreator */ 627); __webpack_require__(/*! ./geo/GeoView */ 789); __webpack_require__(/*! ../action/geoRoam */ 625); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function makeAction(method, actionInfo) { actionInfo.update = 'updateView'; echarts.registerAction(actionInfo, function (payload, ecModel) { var selected = {}; ecModel.eachComponent({ mainType: 'geo', query: payload }, function (geoModel) { geoModel[method](payload.name); var geo = geoModel.coordinateSystem; zrUtil.each(geo.regions, function (region) { selected[region.name] = geoModel.isSelected(region.name) || false; }); }); return { selected: selected, name: payload.name }; }); } makeAction('toggleSelected', { type: 'geoToggleSelect', event: 'geoselectchanged' }); makeAction('select', { type: 'geoSelect', event: 'geoselected' }); makeAction('unSelect', { type: 'geoUnSelect', event: 'geounselected' }); /***/ }), /* 788 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/geo/GeoModel.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); var Model = __webpack_require__(/*! ../../model/Model */ 445); var selectableMixin = __webpack_require__(/*! ../../component/helper/selectableMixin */ 588); var geoCreator = __webpack_require__(/*! ./geoCreator */ 627); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var GeoModel = ComponentModel.extend({ type: 'geo', /** * @type {module:echarts/coord/geo/Geo} */ coordinateSystem: null, layoutMode: 'box', init: function init(option) { ComponentModel.prototype.init.apply(this, arguments); // Default label emphasis `show` modelUtil.defaultEmphasis(option, 'label', ['show']); }, optionUpdated: function optionUpdated() { var option = this.option; var self = this; option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap); this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) { if (regionOpt.name) { optionModelMap.set(regionOpt.name, new Model(regionOpt, self)); } return optionModelMap; }, zrUtil.createHashMap()); this.updateSelectedMap(option.regions); }, defaultOption: { zlevel: 0, z: 0, show: true, left: 'center', top: 'center', // width:, // height:, // right // bottom // Aspect is width / height. Inited to be geoJson bbox aspect // This parameter is used for scale this aspect // If svg used, aspectScale is 1 by default. // aspectScale: 0.75, aspectScale: null, ///// Layout with center and size // If you wan't to put map in a fixed size box with right aspect ratio // This two properties may more conveninet // layoutCenter: [50%, 50%] // layoutSize: 100 silent: false, // Map type map: '', // Define left-top, right-bottom coords to control view // For example, [ [180, 90], [-180, -90] ] boundingCoords: null, // Default on center of map center: null, zoom: 1, scaleLimit: null, // selectedMode: false label: { show: false, color: '#000' }, itemStyle: { // color: 各异, borderWidth: 0.5, borderColor: '#444', color: '#eee' }, emphasis: { label: { show: true, color: 'rgb(100,0,0)' }, itemStyle: { color: 'rgba(255,215,0,0.8)' } }, regions: [] }, /** * Get model of region * @param {string} name * @return {module:echarts/model/Model} */ getRegionModel: function getRegionModel(name) { return this._optionModelMap.get(name) || new Model(null, this, this.ecModel); }, /** * Format label * @param {string} name Region name * @param {string} [status='normal'] 'normal' or 'emphasis' * @return {string} */ getFormattedLabel: function getFormattedLabel(name, status) { status = status || 'normal'; var regionModel = this.getRegionModel(name); var formatter = regionModel.get((status === 'normal' ? '' : status + '.') + 'label.formatter'); var params = { name: name }; if (typeof formatter === 'function') { params.status = status; return formatter(params); } else if (typeof formatter === 'string') { return formatter.replace('{a}', name != null ? name : ''); } }, setZoom: function setZoom(zoom) { this.option.zoom = zoom; }, setCenter: function setCenter(center) { this.option.center = center; } }); zrUtil.mixin(GeoModel, selectableMixin); var _default = GeoModel; module.exports = _default; /***/ }), /* 789 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/geo/GeoView.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var MapDraw = __webpack_require__(/*! ../helper/MapDraw */ 620); var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendComponentView({ type: 'geo', init: function init(ecModel, api) { var mapDraw = new MapDraw(api, true); this._mapDraw = mapDraw; this.group.add(mapDraw.group); }, render: function render(geoModel, ecModel, api, payload) { // Not render if it is an toggleSelect action from self if (payload && payload.type === 'geoToggleSelect' && payload.from === this.uid) { return; } var mapDraw = this._mapDraw; if (geoModel.get('show')) { mapDraw.draw(geoModel, ecModel, api, this, payload); } else { this._mapDraw.group.removeAll(); } this.group.silent = geoModel.get('silent'); }, dispose: function dispose() { this._mapDraw && this._mapDraw.remove(); } }); module.exports = _default; /***/ }), /* 790 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/calendar.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ../coord/calendar/Calendar */ 791); __webpack_require__(/*! ../coord/calendar/CalendarModel */ 792); __webpack_require__(/*! ./calendar/CalendarView */ 793); /***/ }), /* 791 */ /*!************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/calendar/Calendar.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var layout = __webpack_require__(/*! ../../util/layout */ 488); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var CoordinateSystem = __webpack_require__(/*! ../../CoordinateSystem */ 498); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // (24*60*60*1000) var PROXIMATE_ONE_DAY = 86400000; /** * Calendar * * @constructor * * @param {Object} calendarModel calendarModel * @param {Object} ecModel ecModel * @param {Object} api api */ function Calendar(calendarModel, ecModel, api) { this._model = calendarModel; } Calendar.prototype = { constructor: Calendar, type: 'calendar', dimensions: ['time', 'value'], // Required in createListFromData getDimensionsInfo: function getDimensionsInfo() { return [{ name: 'time', type: 'time' }, 'value']; }, getRangeInfo: function getRangeInfo() { return this._rangeInfo; }, getModel: function getModel() { return this._model; }, getRect: function getRect() { return this._rect; }, getCellWidth: function getCellWidth() { return this._sw; }, getCellHeight: function getCellHeight() { return this._sh; }, getOrient: function getOrient() { return this._orient; }, /** * getFirstDayOfWeek * * @example * 0 : start at Sunday * 1 : start at Monday * * @return {number} */ getFirstDayOfWeek: function getFirstDayOfWeek() { return this._firstDayOfWeek; }, /** * get date info * * @param {string|number} date date * @return {Object} * { * y: string, local full year, eg., '1940', * m: string, local month, from '01' ot '12', * d: string, local date, from '01' to '31' (if exists), * day: It is not date.getDay(). It is the location of the cell in a week, from 0 to 6, * time: timestamp, * formatedDate: string, yyyy-MM-dd, * date: original date object. * } */ getDateInfo: function getDateInfo(date) { date = numberUtil.parseDate(date); var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? '0' + m : m; var d = date.getDate(); d = d < 10 ? '0' + d : d; var day = date.getDay(); day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7); return { y: y, m: m, d: d, day: day, time: date.getTime(), formatedDate: y + '-' + m + '-' + d, date: date }; }, getNextNDay: function getNextNDay(date, n) { n = n || 0; if (n === 0) { return this.getDateInfo(date); } date = new Date(this.getDateInfo(date).time); date.setDate(date.getDate() + n); return this.getDateInfo(date); }, update: function update(ecModel, api) { this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay'); this._orient = this._model.get('orient'); this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0; this._rangeInfo = this._getRangeInfo(this._initRangeOption()); var weeks = this._rangeInfo.weeks || 1; var whNames = ['width', 'height']; var cellSize = this._model.get('cellSize').slice(); var layoutParams = this._model.getBoxLayoutParams(); var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks]; zrUtil.each([0, 1], function (idx) { if (cellSizeSpecified(cellSize, idx)) { layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx]; } }); var whGlobal = { width: api.getWidth(), height: api.getHeight() }; var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal); zrUtil.each([0, 1], function (idx) { if (!cellSizeSpecified(cellSize, idx)) { cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx]; } }); function cellSizeSpecified(cellSize, idx) { return cellSize[idx] != null && cellSize[idx] !== 'auto'; } this._sw = cellSize[0]; this._sh = cellSize[1]; }, /** * Convert a time data(time, value) item to (x, y) point. * * @override * @param {Array|number} data data * @param {boolean} [clamp=true] out of range * @return {Array} point */ dataToPoint: function dataToPoint(data, clamp) { zrUtil.isArray(data) && (data = data[0]); clamp == null && (clamp = true); var dayInfo = this.getDateInfo(data); var range = this._rangeInfo; var date = dayInfo.formatedDate; // if not in range return [NaN, NaN] if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) { return [NaN, NaN]; } var week = dayInfo.day; var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek; if (this._orient === 'vertical') { return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2]; } return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2]; }, /** * Convert a (x, y) point to time data * * @override * @param {string} point point * @return {string} data */ pointToData: function pointToData(point) { var date = this.pointToDate(point); return date && date.time; }, /** * Convert a time date item to (x, y) four point. * * @param {Array} data date[0] is date * @param {boolean} [clamp=true] out of range * @return {Object} point */ dataToRect: function dataToRect(data, clamp) { var point = this.dataToPoint(data, clamp); return { contentShape: { x: point[0] - (this._sw - this._lineWidth) / 2, y: point[1] - (this._sh - this._lineWidth) / 2, width: this._sw - this._lineWidth, height: this._sh - this._lineWidth }, center: point, tl: [point[0] - this._sw / 2, point[1] - this._sh / 2], tr: [point[0] + this._sw / 2, point[1] - this._sh / 2], br: [point[0] + this._sw / 2, point[1] + this._sh / 2], bl: [point[0] - this._sw / 2, point[1] + this._sh / 2] }; }, /** * Convert a (x, y) point to time date * * @param {Array} point point * @return {Object} date */ pointToDate: function pointToDate(point) { var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1; var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1; var range = this._rangeInfo.range; if (this._orient === 'vertical') { return this._getDateByWeeksAndDay(nthY, nthX - 1, range); } return this._getDateByWeeksAndDay(nthX, nthY - 1, range); }, /** * @inheritDoc */ convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'), /** * @inheritDoc */ convertFromPixel: zrUtil.curry(doConvert, 'pointToData'), /** * initRange * * @private * @return {Array} [start, end] */ _initRangeOption: function _initRangeOption() { var range = this._model.get('range'); var rg = range; if (zrUtil.isArray(rg) && rg.length === 1) { rg = rg[0]; } if (/^\d{4}$/.test(rg)) { range = [rg + '-01-01', rg + '-12-31']; } if (/^\d{4}[\/|-]\d{1,2}$/.test(rg)) { var start = this.getDateInfo(rg); var firstDay = start.date; firstDay.setMonth(firstDay.getMonth() + 1); var end = this.getNextNDay(firstDay, -1); range = [start.formatedDate, end.formatedDate]; } if (/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(rg)) { range = [rg, rg]; } var tmp = this._getRangeInfo(range); if (tmp.start.time > tmp.end.time) { range.reverse(); } return range; }, /** * range info * * @private * @param {Array} range range ['2017-01-01', '2017-07-08'] * If range[0] > range[1], they will not be reversed. * @return {Object} obj */ _getRangeInfo: function _getRangeInfo(range) { range = [this.getDateInfo(range[0]), this.getDateInfo(range[1])]; var reversed; if (range[0].time > range[1].time) { reversed = true; range.reverse(); } var allDay = Math.floor(range[1].time / PROXIMATE_ONE_DAY) - Math.floor(range[0].time / PROXIMATE_ONE_DAY) + 1; // Consider case1 (#11677 #10430): // Set the system timezone as "UK", set the range to `['2016-07-01', '2016-12-31']` // Consider case2: // Firstly set system timezone as "Time Zone: America/Toronto", // ``` // var first = new Date(1478412000000 - 3600 * 1000 * 2.5); // var second = new Date(1478412000000); // var allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1; // ``` // will get wrong result because of DST. So we should fix it. var date = new Date(range[0].time); var startDateNum = date.getDate(); var endDateNum = range[1].date.getDate(); date.setDate(startDateNum + allDay - 1); // The bias can not over a month, so just compare date. var dateNum = date.getDate(); if (dateNum !== endDateNum) { var sign = date.getTime() - range[1].time > 0 ? 1 : -1; while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - range[1].time) * sign > 0) { allDay -= sign; date.setDate(dateNum - sign); } } var weeks = Math.floor((allDay + range[0].day + 6) / 7); var nthWeek = reversed ? -weeks + 1 : weeks - 1; reversed && range.reverse(); return { range: [range[0].formatedDate, range[1].formatedDate], start: range[0], end: range[1], allDay: allDay, weeks: weeks, // From 0. nthWeek: nthWeek, fweek: range[0].day, lweek: range[1].day }; }, /** * get date by nthWeeks and week day in range * * @private * @param {number} nthWeek the week * @param {number} day the week day * @param {Array} range [d1, d2] * @return {Object} */ _getDateByWeeksAndDay: function _getDateByWeeksAndDay(nthWeek, day, range) { var rangeInfo = this._getRangeInfo(range); if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) { return false; } var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day; var date = new Date(rangeInfo.start.time); date.setDate(rangeInfo.start.d + nthDay); return this.getDateInfo(date); } }; Calendar.dimensions = Calendar.prototype.dimensions; Calendar.getDimensionsInfo = Calendar.prototype.getDimensionsInfo; Calendar.create = function (ecModel, api) { var calendarList = []; ecModel.eachComponent('calendar', function (calendarModel) { var calendar = new Calendar(calendarModel, ecModel, api); calendarList.push(calendar); calendarModel.coordinateSystem = calendar; }); ecModel.eachSeries(function (calendarSeries) { if (calendarSeries.get('coordinateSystem') === 'calendar') { // Inject coordinate system calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0]; } }); return calendarList; }; function doConvert(methodName, ecModel, finder, value) { var calendarModel = finder.calendarModel; var seriesModel = finder.seriesModel; var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null; return coordSys === this ? coordSys[methodName](value) : null; } CoordinateSystem.register('calendar', Calendar); var _default = Calendar; module.exports = _default; /***/ }), /* 792 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/coord/calendar/CalendarModel.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); var _layout = __webpack_require__(/*! ../../util/layout */ 488); var getLayoutParams = _layout.getLayoutParams; var sizeCalculable = _layout.sizeCalculable; var mergeLayoutParam = _layout.mergeLayoutParam; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var CalendarModel = ComponentModel.extend({ type: 'calendar', /** * @type {module:echarts/coord/calendar/Calendar} */ coordinateSystem: null, defaultOption: { zlevel: 0, z: 2, left: 80, top: 60, cellSize: 20, // horizontal vertical orient: 'horizontal', // month separate line style splitLine: { show: true, lineStyle: { color: '#000', width: 1, type: 'solid' } }, // rect style temporarily unused emphasis itemStyle: { color: '#fff', borderWidth: 1, borderColor: '#ccc' }, // week text style dayLabel: { show: true, // a week first day firstDay: 0, // start end position: 'start', margin: '50%', // 50% of cellSize nameMap: 'en', color: '#000' }, // month text style monthLabel: { show: true, // start end position: 'start', margin: 5, // center or left align: 'center', // cn en [] nameMap: 'en', formatter: null, color: '#000' }, // year text style yearLabel: { show: true, // top bottom left right position: null, margin: 30, formatter: null, color: '#ccc', fontFamily: 'sans-serif', fontWeight: 'bolder', fontSize: 20 } }, /** * @override */ init: function init(option, parentModel, ecModel, extraOpt) { var inputPositionParams = getLayoutParams(option); CalendarModel.superApply(this, 'init', arguments); mergeAndNormalizeLayoutParams(option, inputPositionParams); }, /** * @override */ mergeOption: function mergeOption(option, extraOpt) { CalendarModel.superApply(this, 'mergeOption', arguments); mergeAndNormalizeLayoutParams(this.option, option); } }); function mergeAndNormalizeLayoutParams(target, raw) { // Normalize cellSize var cellSize = target.cellSize; if (!zrUtil.isArray(cellSize)) { cellSize = target.cellSize = [cellSize, cellSize]; } else if (cellSize.length === 1) { cellSize[1] = cellSize[0]; } var ignoreSize = zrUtil.map([0, 1], function (hvIdx) { // If user have set `width` or both `left` and `right`, cellSize // will be automatically set to 'auto', otherwise the default // setting of cellSize will make `width` setting not work. if (sizeCalculable(raw, hvIdx)) { cellSize[hvIdx] = 'auto'; } return cellSize[hvIdx] != null && cellSize[hvIdx] !== 'auto'; }); mergeLayoutParam(target, raw, { type: 'box', ignoreSize: ignoreSize }); } var _default = CalendarModel; module.exports = _default; /***/ }), /* 793 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/calendar/CalendarView.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var MONTH_TEXT = { EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'] }; var WEEK_TEXT = { EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], CN: ['日', '一', '二', '三', '四', '五', '六'] }; var _default = echarts.extendComponentView({ type: 'calendar', /** * top/left line points * @private */ _tlpoints: null, /** * bottom/right line points * @private */ _blpoints: null, /** * first day of month * @private */ _firstDayOfMonth: null, /** * first day point of month * @private */ _firstDayPoints: null, render: function render(calendarModel, ecModel, api) { var group = this.group; group.removeAll(); var coordSys = calendarModel.coordinateSystem; // range info var rangeData = coordSys.getRangeInfo(); var orient = coordSys.getOrient(); this._renderDayRect(calendarModel, rangeData, group); // _renderLines must be called prior to following function this._renderLines(calendarModel, rangeData, orient, group); this._renderYearText(calendarModel, rangeData, orient, group); this._renderMonthText(calendarModel, orient, group); this._renderWeekText(calendarModel, rangeData, orient, group); }, // render day rect _renderDayRect: function _renderDayRect(calendarModel, rangeData, group) { var coordSys = calendarModel.coordinateSystem; var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle(); var sw = coordSys.getCellWidth(); var sh = coordSys.getCellHeight(); for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) { var point = coordSys.dataToRect([i], false).tl; // every rect var rect = new graphic.Rect({ shape: { x: point[0], y: point[1], width: sw, height: sh }, cursor: 'default', style: itemRectStyleModel }); group.add(rect); } }, // render separate line _renderLines: function _renderLines(calendarModel, rangeData, orient, group) { var self = this; var coordSys = calendarModel.coordinateSystem; var lineStyleModel = calendarModel.getModel('splitLine.lineStyle').getLineStyle(); var show = calendarModel.get('splitLine.show'); var lineWidth = lineStyleModel.lineWidth; this._tlpoints = []; this._blpoints = []; this._firstDayOfMonth = []; this._firstDayPoints = []; var firstDay = rangeData.start; for (var i = 0; firstDay.time <= rangeData.end.time; i++) { addPoints(firstDay.formatedDate); if (i === 0) { firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m); } var date = firstDay.date; date.setMonth(date.getMonth() + 1); firstDay = coordSys.getDateInfo(date); } addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate); function addPoints(date) { self._firstDayOfMonth.push(coordSys.getDateInfo(date)); self._firstDayPoints.push(coordSys.dataToRect([date], false).tl); var points = self._getLinePointsOfOneWeek(calendarModel, date, orient); self._tlpoints.push(points[0]); self._blpoints.push(points[points.length - 1]); show && self._drawSplitline(points, lineStyleModel, group); } // render top/left line show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); // render bottom/right line show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group); }, // get points at both ends _getEdgesPoints: function _getEdgesPoints(points, lineWidth, orient) { var rs = [points[0].slice(), points[points.length - 1].slice()]; var idx = orient === 'horizontal' ? 0 : 1; // both ends of the line are extend half lineWidth rs[0][idx] = rs[0][idx] - lineWidth / 2; rs[1][idx] = rs[1][idx] + lineWidth / 2; return rs; }, // render split line _drawSplitline: function _drawSplitline(points, lineStyleModel, group) { var poyline = new graphic.Polyline({ z2: 20, shape: { points: points }, style: lineStyleModel }); group.add(poyline); }, // render month line of one week points _getLinePointsOfOneWeek: function _getLinePointsOfOneWeek(calendarModel, date, orient) { var coordSys = calendarModel.coordinateSystem; date = coordSys.getDateInfo(date); var points = []; for (var i = 0; i < 7; i++) { var tmpD = coordSys.getNextNDay(date.time, i); var point = coordSys.dataToRect([tmpD.time], false); points[2 * tmpD.day] = point.tl; points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr']; } return points; }, _formatterLabel: function _formatterLabel(formatter, params) { if (typeof formatter === 'string' && formatter) { return formatUtil.formatTplSimple(formatter, params); } if (typeof formatter === 'function') { return formatter(params); } return params.nameMap; }, _yearTextPositionControl: function _yearTextPositionControl(textEl, point, orient, position, margin) { point = point.slice(); var aligns = ['center', 'bottom']; if (position === 'bottom') { point[1] += margin; aligns = ['center', 'top']; } else if (position === 'left') { point[0] -= margin; } else if (position === 'right') { point[0] += margin; aligns = ['center', 'top']; } else { // top point[1] -= margin; } var rotate = 0; if (position === 'left' || position === 'right') { rotate = Math.PI / 2; } return { rotation: rotate, position: point, style: { textAlign: aligns[0], textVerticalAlign: aligns[1] } }; }, // render year _renderYearText: function _renderYearText(calendarModel, rangeData, orient, group) { var yearLabel = calendarModel.getModel('yearLabel'); if (!yearLabel.get('show')) { return; } var margin = yearLabel.get('margin'); var pos = yearLabel.get('position'); if (!pos) { pos = orient !== 'horizontal' ? 'top' : 'left'; } var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]]; var xc = (points[0][0] + points[1][0]) / 2; var yc = (points[0][1] + points[1][1]) / 2; var idx = orient === 'horizontal' ? 0 : 1; var posPoints = { top: [xc, points[idx][1]], bottom: [xc, points[1 - idx][1]], left: [points[1 - idx][0], yc], right: [points[idx][0], yc] }; var name = rangeData.start.y; if (+rangeData.end.y > +rangeData.start.y) { name = name + '-' + rangeData.end.y; } var formatter = yearLabel.get('formatter'); var params = { start: rangeData.start.y, end: rangeData.end.y, nameMap: name }; var content = this._formatterLabel(formatter, params); var yearText = new graphic.Text({ z2: 30 }); graphic.setTextStyle(yearText.style, yearLabel, { text: content }), yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin)); group.add(yearText); }, _monthTextPositionControl: function _monthTextPositionControl(point, isCenter, orient, position, margin) { var align = 'left'; var vAlign = 'top'; var x = point[0]; var y = point[1]; if (orient === 'horizontal') { y = y + margin; if (isCenter) { align = 'center'; } if (position === 'start') { vAlign = 'bottom'; } } else { x = x + margin; if (isCenter) { vAlign = 'middle'; } if (position === 'start') { align = 'right'; } } return { x: x, y: y, textAlign: align, textVerticalAlign: vAlign }; }, // render month and year text _renderMonthText: function _renderMonthText(calendarModel, orient, group) { var monthLabel = calendarModel.getModel('monthLabel'); if (!monthLabel.get('show')) { return; } var nameMap = monthLabel.get('nameMap'); var margin = monthLabel.get('margin'); var pos = monthLabel.get('position'); var align = monthLabel.get('align'); var termPoints = [this._tlpoints, this._blpoints]; if (zrUtil.isString(nameMap)) { nameMap = MONTH_TEXT[nameMap.toUpperCase()] || []; } var idx = pos === 'start' ? 0 : 1; var axis = orient === 'horizontal' ? 0 : 1; margin = pos === 'start' ? -margin : margin; var isCenter = align === 'center'; for (var i = 0; i < termPoints[idx].length - 1; i++) { var tmp = termPoints[idx][i].slice(); var firstDay = this._firstDayOfMonth[i]; if (isCenter) { var firstDayPoints = this._firstDayPoints[i]; tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2; } var formatter = monthLabel.get('formatter'); var name = nameMap[+firstDay.m - 1]; var params = { yyyy: firstDay.y, yy: (firstDay.y + '').slice(2), MM: firstDay.m, M: +firstDay.m, nameMap: name }; var content = this._formatterLabel(formatter, params); var monthText = new graphic.Text({ z2: 30 }); zrUtil.extend(graphic.setTextStyle(monthText.style, monthLabel, { text: content }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin)); group.add(monthText); } }, _weekTextPositionControl: function _weekTextPositionControl(point, orient, position, margin, cellSize) { var align = 'center'; var vAlign = 'middle'; var x = point[0]; var y = point[1]; var isStart = position === 'start'; if (orient === 'horizontal') { x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2; align = isStart ? 'right' : 'left'; } else { y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2; vAlign = isStart ? 'bottom' : 'top'; } return { x: x, y: y, textAlign: align, textVerticalAlign: vAlign }; }, // render weeks _renderWeekText: function _renderWeekText(calendarModel, rangeData, orient, group) { var dayLabel = calendarModel.getModel('dayLabel'); if (!dayLabel.get('show')) { return; } var coordSys = calendarModel.coordinateSystem; var pos = dayLabel.get('position'); var nameMap = dayLabel.get('nameMap'); var margin = dayLabel.get('margin'); var firstDayOfWeek = coordSys.getFirstDayOfWeek(); if (zrUtil.isString(nameMap)) { nameMap = WEEK_TEXT[nameMap.toUpperCase()] || []; } var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time; var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()]; margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]); if (pos === 'start') { start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time; margin = -margin; } for (var i = 0; i < 7; i++) { var tmpD = coordSys.getNextNDay(start, i); var point = coordSys.dataToRect([tmpD.time], false).center; var day = i; day = Math.abs((i + firstDayOfWeek) % 7); var weekText = new graphic.Text({ z2: 30 }); zrUtil.extend(graphic.setTextStyle(weekText.style, dayLabel, { text: nameMap[day] }), this._weekTextPositionControl(point, orient, pos, margin, cellSize)); group.add(weekText); } } }); module.exports = _default; /***/ }), /* 794 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/graphic.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var modelUtil = __webpack_require__(/*! ../util/model */ 444); var graphicUtil = __webpack_require__(/*! ../util/graphic */ 451); var layoutUtil = __webpack_require__(/*! ../util/layout */ 488); var _number = __webpack_require__(/*! ../util/number */ 489); var parsePercent = _number.parsePercent; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _nonShapeGraphicElements = { // Reserved but not supported in graphic component. path: null, compoundPath: null, // Supported in graphic component. group: graphicUtil.Group, image: graphicUtil.Image, text: graphicUtil.Text }; // ------------- // Preprocessor // ------------- echarts.registerPreprocessor(function (option) { var graphicOption = option.graphic; // Convert // {graphic: [{left: 10, type: 'circle'}, ...]} // or // {graphic: {left: 10, type: 'circle'}} // to // {graphic: [{elements: [{left: 10, type: 'circle'}, ...]}]} if (zrUtil.isArray(graphicOption)) { if (!graphicOption[0] || !graphicOption[0].elements) { option.graphic = [{ elements: graphicOption }]; } else { // Only one graphic instance can be instantiated. (We dont // want that too many views are created in echarts._viewMap) option.graphic = [option.graphic[0]]; } } else if (graphicOption && !graphicOption.elements) { option.graphic = [{ elements: [graphicOption] }]; } }); // ------ // Model // ------ var GraphicModel = echarts.extendComponentModel({ type: 'graphic', defaultOption: { // Extra properties for each elements: // // left/right/top/bottom: (like 12, '22%', 'center', default undefined) // If left/rigth is set, shape.x/shape.cx/position will not be used. // If top/bottom is set, shape.y/shape.cy/position will not be used. // This mechanism is useful when you want to position a group/element // against the right side or the center of this container. // // width/height: (can only be pixel value, default 0) // Only be used to specify contianer(group) size, if needed. And // can not be percentage value (like '33%'). See the reason in the // layout algorithm below. // // bounding: (enum: 'all' (default) | 'raw') // Specify how to calculate boundingRect when locating. // 'all': Get uioned and transformed boundingRect // from both itself and its descendants. // This mode simplies confining a group of elements in the bounding // of their ancester container (e.g., using 'right: 0'). // 'raw': Only use the boundingRect of itself and before transformed. // This mode is similar to css behavior, which is useful when you // want an element to be able to overflow its container. (Consider // a rotated circle needs to be located in a corner.) // info: custom info. enables user to mount some info on elements and use them // in event handlers. Update them only when user specified, otherwise, remain. // Note: elements is always behind its ancestors in this elements array. elements: [], parentId: null }, /** * Save el options for the sake of the performance (only update modified graphics). * The order is the same as those in option. (ancesters -> descendants) * * @private * @type {Array.} */ _elOptionsToUpdate: null, /** * @override */ mergeOption: function mergeOption(option) { // Prevent default merge to elements var elements = this.option.elements; this.option.elements = null; GraphicModel.superApply(this, 'mergeOption', arguments); this.option.elements = elements; }, /** * @override */ optionUpdated: function optionUpdated(newOption, isInit) { var thisOption = this.option; var newList = (isInit ? thisOption : newOption).elements; var existList = thisOption.elements = isInit ? [] : thisOption.elements; var flattenedList = []; this._flatten(newList, flattenedList); var mappingResult = modelUtil.mappingToExists(existList, flattenedList); modelUtil.makeIdAndName(mappingResult); // Clear elOptionsToUpdate var elOptionsToUpdate = this._elOptionsToUpdate = []; zrUtil.each(mappingResult, function (resultItem, index) { var newElOption = resultItem.option; if (!newElOption) { return; } elOptionsToUpdate.push(newElOption); setKeyInfoToNewElOption(resultItem, newElOption); mergeNewElOptionToExist(existList, index, newElOption); setLayoutInfoToExist(existList[index], newElOption); }, this); // Clean for (var i = existList.length - 1; i >= 0; i--) { if (existList[i] == null) { existList.splice(i, 1); } else { // $action should be volatile, otherwise option gotten from // `getOption` will contain unexpected $action. delete existList[i].$action; } } }, /** * Convert * [{ * type: 'group', * id: 'xx', * children: [{type: 'circle'}, {type: 'polygon'}] * }] * to * [ * {type: 'group', id: 'xx'}, * {type: 'circle', parentId: 'xx'}, * {type: 'polygon', parentId: 'xx'} * ] * * @private * @param {Array.} optionList option list * @param {Array.} result result of flatten * @param {Object} parentOption parent option */ _flatten: function _flatten(optionList, result, parentOption) { zrUtil.each(optionList, function (option) { if (!option) { return; } if (parentOption) { option.parentOption = parentOption; } result.push(option); var children = option.children; if (option.type === 'group' && children) { this._flatten(children, result, option); } // Deleting for JSON output, and for not affecting group creation. delete option.children; }, this); }, // FIXME // Pass to view using payload? setOption has a payload? useElOptionsToUpdate: function useElOptionsToUpdate() { var els = this._elOptionsToUpdate; // Clear to avoid render duplicately when zooming. this._elOptionsToUpdate = null; return els; } }); // ----- // View // ----- echarts.extendComponentView({ type: 'graphic', /** * @override */ init: function init(ecModel, api) { /** * @private * @type {module:zrender/core/util.HashMap} */ this._elMap = zrUtil.createHashMap(); /** * @private * @type {module:echarts/graphic/GraphicModel} */ this._lastGraphicModel; }, /** * @override */ render: function render(graphicModel, ecModel, api) { // Having leveraged between use cases and algorithm complexity, a very // simple layout mechanism is used: // The size(width/height) can be determined by itself or its parent (not // implemented yet), but can not by its children. (Top-down travel) // The location(x/y) can be determined by the bounding rect of itself // (can including its descendants or not) and the size of its parent. // (Bottom-up travel) // When `chart.clear()` or `chart.setOption({...}, true)` with the same id, // view will be reused. if (graphicModel !== this._lastGraphicModel) { this._clear(); } this._lastGraphicModel = graphicModel; this._updateElements(graphicModel); this._relocate(graphicModel, api); }, /** * Update graphic elements. * * @private * @param {Object} graphicModel graphic model */ _updateElements: function _updateElements(graphicModel) { var elOptionsToUpdate = graphicModel.useElOptionsToUpdate(); if (!elOptionsToUpdate) { return; } var elMap = this._elMap; var rootGroup = this.group; // Top-down tranverse to assign graphic settings to each elements. zrUtil.each(elOptionsToUpdate, function (elOption) { var $action = elOption.$action; var id = elOption.id; var existEl = elMap.get(id); var parentId = elOption.parentId; var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup; var elOptionStyle = elOption.style; if (elOption.type === 'text' && elOptionStyle) { // In top/bottom mode, textVerticalAlign should not be used, which cause // inaccurately locating. if (elOption.hv && elOption.hv[1]) { elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null; } // Compatible with previous setting: both support fill and textFill, // stroke and textStroke. !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill); !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke); } // Remove unnecessary props to avoid potential problems. var elOptionCleaned = getCleanedElOption(elOption); // For simple, do not support parent change, otherwise reorder is needed. if (!$action || $action === 'merge') { existEl ? existEl.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap); } else if ($action === 'replace') { removeEl(existEl, elMap); createEl(id, targetElParent, elOptionCleaned, elMap); } else if ($action === 'remove') { removeEl(existEl, elMap); } var el = elMap.get(id); if (el) { el.__ecGraphicWidthOption = elOption.width; el.__ecGraphicHeightOption = elOption.height; setEventData(el, graphicModel, elOption); } }); }, /** * Locate graphic elements. * * @private * @param {Object} graphicModel graphic model * @param {module:echarts/ExtensionAPI} api extension API */ _relocate: function _relocate(graphicModel, api) { var elOptions = graphicModel.option.elements; var rootGroup = this.group; var elMap = this._elMap; var apiWidth = api.getWidth(); var apiHeight = api.getHeight(); // Top-down to calculate percentage width/height of group for (var i = 0; i < elOptions.length; i++) { var elOption = elOptions[i]; var el = elMap.get(elOption.id); if (!el || !el.isGroup) { continue; } var parentEl = el.parent; var isParentRoot = parentEl === rootGroup; // Like 'position:absolut' in css, default 0. el.__ecGraphicWidth = parsePercent(el.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentEl.__ecGraphicWidth) || 0; el.__ecGraphicHeight = parsePercent(el.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentEl.__ecGraphicHeight) || 0; } // Bottom-up tranvese all elements (consider ec resize) to locate elements. for (var i = elOptions.length - 1; i >= 0; i--) { var elOption = elOptions[i]; var el = elMap.get(elOption.id); if (!el) { continue; } var parentEl = el.parent; var containerInfo = parentEl === rootGroup ? { width: apiWidth, height: apiHeight } : { width: parentEl.__ecGraphicWidth, height: parentEl.__ecGraphicHeight }; // PENDING // Currently, when `bounding: 'all'`, the union bounding rect of the group // does not include the rect of [0, 0, group.width, group.height], which // is probably weird for users. Should we make a break change for it? layoutUtil.positionElement(el, elOption, containerInfo, null, { hv: elOption.hv, boundingMode: elOption.bounding }); } }, /** * Clear all elements. * * @private */ _clear: function _clear() { var elMap = this._elMap; elMap.each(function (el) { removeEl(el, elMap); }); this._elMap = zrUtil.createHashMap(); }, /** * @override */ dispose: function dispose() { this._clear(); } }); function createEl(id, targetElParent, elOption, elMap) { var graphicType = elOption.type; var Clz = _nonShapeGraphicElements.hasOwnProperty(graphicType) // Those graphic elements are not shapes. They should not be // overwritten by users, so do them first. ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType); var el = new Clz(elOption); targetElParent.add(el); elMap.set(id, el); el.__ecGraphicId = id; } function removeEl(existEl, elMap) { var existElParent = existEl && existEl.parent; if (existElParent) { existEl.type === 'group' && existEl.traverse(function (el) { removeEl(el, elMap); }); elMap.removeKey(existEl.__ecGraphicId); existElParent.remove(existEl); } } // Remove unnecessary props to avoid potential problems. function getCleanedElOption(elOption) { elOption = zrUtil.extend({}, elOption); zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding'].concat(layoutUtil.LOCATION_PARAMS), function (name) { delete elOption[name]; }); return elOption; } function isSetLoc(obj, props) { var isSet; zrUtil.each(props, function (prop) { obj[prop] != null && obj[prop] !== 'auto' && (isSet = true); }); return isSet; } function setKeyInfoToNewElOption(resultItem, newElOption) { var existElOption = resultItem.exist; // Set id and type after id assigned. newElOption.id = resultItem.keyInfo.id; !newElOption.type && existElOption && (newElOption.type = existElOption.type); // Set parent id if not specified if (newElOption.parentId == null) { var newElParentOption = newElOption.parentOption; if (newElParentOption) { newElOption.parentId = newElParentOption.id; } else if (existElOption) { newElOption.parentId = existElOption.parentId; } } // Clear newElOption.parentOption = null; } function mergeNewElOptionToExist(existList, index, newElOption) { // Update existing options, for `getOption` feature. var newElOptCopy = zrUtil.extend({}, newElOption); var existElOption = existList[index]; var $action = newElOption.$action || 'merge'; if ($action === 'merge') { if (existElOption) { // We can ensure that newElOptCopy and existElOption are not // the same object, so `merge` will not change newElOptCopy. zrUtil.merge(existElOption, newElOptCopy, true); // Rigid body, use ignoreSize. layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, { ignoreSize: true }); // Will be used in render. layoutUtil.copyLayoutParams(newElOption, existElOption); } else { existList[index] = newElOptCopy; } } else if ($action === 'replace') { existList[index] = newElOptCopy; } else if ($action === 'remove') { // null will be cleaned later. existElOption && (existList[index] = null); } } function setLayoutInfoToExist(existItem, newElOption) { if (!existItem) { return; } existItem.hv = newElOption.hv = [ // Rigid body, dont care `width`. isSetLoc(newElOption, ['left', 'right']), // Rigid body, dont care `height`. isSetLoc(newElOption, ['top', 'bottom'])]; // Give default group size. Otherwise layout error may occur. if (existItem.type === 'group') { existItem.width == null && (existItem.width = newElOption.width = 0); existItem.height == null && (existItem.height = newElOption.height = 0); } } function setEventData(el, graphicModel, elOption) { var eventData = el.eventData; // Simple optimize for large amount of elements that no need event. if (!el.silent && !el.ignore && !eventData) { eventData = el.eventData = { componentType: 'graphic', componentIndex: graphicModel.componentIndex, name: el.name }; } // `elOption.info` enables user to mount some info on // elements and use them in event handlers. if (eventData) { eventData.info = el.info; } } /***/ }), /* 795 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./toolbox/ToolboxModel */ 796); __webpack_require__(/*! ./toolbox/ToolboxView */ 798); __webpack_require__(/*! ./toolbox/feature/SaveAsImage */ 800); __webpack_require__(/*! ./toolbox/feature/MagicType */ 801); __webpack_require__(/*! ./toolbox/feature/DataView */ 802); __webpack_require__(/*! ./toolbox/feature/DataZoom */ 803); __webpack_require__(/*! ./toolbox/feature/Restore */ 816); /***/ }), /* 796 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/ToolboxModel.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var featureManager = __webpack_require__(/*! ./featureManager */ 797); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ToolboxModel = echarts.extendComponentModel({ type: 'toolbox', layoutMode: { type: 'box', ignoreSize: true }, optionUpdated: function optionUpdated() { ToolboxModel.superApply(this, 'optionUpdated', arguments); zrUtil.each(this.option.feature, function (featureOpt, featureName) { var Feature = featureManager.get(featureName); Feature && zrUtil.merge(featureOpt, Feature.defaultOption); }); }, defaultOption: { show: true, z: 6, zlevel: 0, orient: 'horizontal', left: 'right', top: 'top', // right // bottom backgroundColor: 'transparent', borderColor: '#ccc', borderRadius: 0, borderWidth: 0, padding: 5, itemSize: 15, itemGap: 8, showTitle: true, iconStyle: { borderColor: '#666', color: 'none' }, emphasis: { iconStyle: { borderColor: '#3E98C5' } }, // textStyle: {}, // feature tooltip: { show: false } } }); var _default = ToolboxModel; module.exports = _default; /***/ }), /* 797 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/featureManager.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var features = {}; function register(name, ctor) { features[name] = ctor; } function get(name) { return features[name]; } exports.register = register; exports.get = get; /***/ }), /* 798 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/ToolboxView.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var textContain = __webpack_require__(/*! zrender/lib/contain/text */ 438); var featureManager = __webpack_require__(/*! ./featureManager */ 797); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var Model = __webpack_require__(/*! ../../model/Model */ 445); var DataDiffer = __webpack_require__(/*! ../../data/DataDiffer */ 526); var listComponentHelper = __webpack_require__(/*! ../helper/listComponent */ 799); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendComponentView({ type: 'toolbox', render: function render(toolboxModel, ecModel, api, payload) { var group = this.group; group.removeAll(); if (!toolboxModel.get('show')) { return; } var itemSize = +toolboxModel.get('itemSize'); var featureOpts = toolboxModel.get('feature') || {}; var features = this._features || (this._features = {}); var featureNames = []; zrUtil.each(featureOpts, function (opt, name) { featureNames.push(name); }); new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute(); // Keep for diff. this._featureNames = featureNames; function processFeature(newIndex, oldIndex) { var featureName = featureNames[newIndex]; var oldName = featureNames[oldIndex]; var featureOpt = featureOpts[featureName]; var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel); var feature; // FIX#11236, merge feature title from MagicType newOption. TODO: consider seriesIndex ? if (payload && payload.newTitle != null && payload.featureName === featureName) { featureOpt.title = payload.newTitle; } if (featureName && !oldName) { // Create if (isUserFeatureName(featureName)) { feature = { model: featureModel, onclick: featureModel.option.onclick, featureName: featureName }; } else { var Feature = featureManager.get(featureName); if (!Feature) { return; } feature = new Feature(featureModel, ecModel, api); } features[featureName] = feature; } else { feature = features[oldName]; // If feature does not exsit. if (!feature) { return; } feature.model = featureModel; feature.ecModel = ecModel; feature.api = api; } if (!featureName && oldName) { feature.dispose && feature.dispose(ecModel, api); return; } if (!featureModel.get('show') || feature.unusable) { feature.remove && feature.remove(ecModel, api); return; } createIconPaths(featureModel, feature, featureName); featureModel.setIconStatus = function (iconName, status) { var option = this.option; var iconPaths = this.iconPaths; option.iconStatus = option.iconStatus || {}; option.iconStatus[iconName] = status; // FIXME iconPaths[iconName] && iconPaths[iconName].trigger(status); }; if (feature.render) { feature.render(featureModel, ecModel, api, payload); } } function createIconPaths(featureModel, feature, featureName) { var iconStyleModel = featureModel.getModel('iconStyle'); var iconStyleEmphasisModel = featureModel.getModel('emphasis.iconStyle'); // If one feature has mutiple icon. they are orginaized as // { // icon: { // foo: '', // bar: '' // }, // title: { // foo: '', // bar: '' // } // } var icons = feature.getIcons ? feature.getIcons() : featureModel.get('icon'); var titles = featureModel.get('title') || {}; if (typeof icons === 'string') { var icon = icons; var title = titles; icons = {}; titles = {}; icons[featureName] = icon; titles[featureName] = title; } var iconPaths = featureModel.iconPaths = {}; zrUtil.each(icons, function (iconStr, iconName) { var path = graphic.createIcon(iconStr, {}, { x: -itemSize / 2, y: -itemSize / 2, width: itemSize, height: itemSize }); path.setStyle(iconStyleModel.getItemStyle()); path.hoverStyle = iconStyleEmphasisModel.getItemStyle(); // Text position calculation path.setStyle({ text: titles[iconName], textAlign: iconStyleEmphasisModel.get('textAlign'), textBorderRadius: iconStyleEmphasisModel.get('textBorderRadius'), textPadding: iconStyleEmphasisModel.get('textPadding'), textFill: null }); var tooltipModel = toolboxModel.getModel('tooltip'); if (tooltipModel && tooltipModel.get('show')) { path.attr('tooltip', zrUtil.extend({ content: titles[iconName], formatter: tooltipModel.get('formatter', true) || function () { return titles[iconName]; }, formatterParams: { componentType: 'toolbox', name: iconName, title: titles[iconName], $vars: ['name', 'title'] }, position: tooltipModel.get('position', true) || 'bottom' }, tooltipModel.option)); } graphic.setHoverStyle(path); if (toolboxModel.get('showTitle')) { path.__title = titles[iconName]; path.on('mouseover', function () { // Should not reuse above hoverStyle, which might be modified. var hoverStyle = iconStyleEmphasisModel.getItemStyle(); var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top'; path.setStyle({ textFill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000', textBackgroundColor: iconStyleEmphasisModel.get('textBackgroundColor'), textPosition: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition }); }).on('mouseout', function () { path.setStyle({ textFill: null, textBackgroundColor: null }); }); } path.trigger(featureModel.get('iconStatus.' + iconName) || 'normal'); group.add(path); path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName)); iconPaths[iconName] = path; }); } listComponentHelper.layout(group, toolboxModel, api); // Render background after group is layout // FIXME group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel)); // Adjust icon title positions to avoid them out of screen group.eachChild(function (icon) { var titleText = icon.__title; var hoverStyle = icon.hoverStyle; // May be background element if (hoverStyle && titleText) { var rect = textContain.getBoundingRect(titleText, textContain.makeFont(hoverStyle)); var offsetX = icon.position[0] + group.position[0]; var offsetY = icon.position[1] + group.position[1] + itemSize; var needPutOnTop = false; if (offsetY + rect.height > api.getHeight()) { hoverStyle.textPosition = 'top'; needPutOnTop = true; } var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8; if (offsetX + rect.width / 2 > api.getWidth()) { hoverStyle.textPosition = ['100%', topOffset]; hoverStyle.textAlign = 'right'; } else if (offsetX - rect.width / 2 < 0) { hoverStyle.textPosition = [0, topOffset]; hoverStyle.textAlign = 'left'; } } }); }, updateView: function updateView(toolboxModel, ecModel, api, payload) { zrUtil.each(this._features, function (feature) { feature.updateView && feature.updateView(feature.model, ecModel, api, payload); }); }, // updateLayout: function (toolboxModel, ecModel, api, payload) { // zrUtil.each(this._features, function (feature) { // feature.updateLayout && feature.updateLayout(feature.model, ecModel, api, payload); // }); // }, remove: function remove(ecModel, api) { zrUtil.each(this._features, function (feature) { feature.remove && feature.remove(ecModel, api); }); this.group.removeAll(); }, dispose: function dispose(ecModel, api) { zrUtil.each(this._features, function (feature) { feature.dispose && feature.dispose(ecModel, api); }); } }); function isUserFeatureName(featureName) { return featureName.indexOf('my') === 0; } module.exports = _default; /***/ }), /* 799 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/listComponent.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _layout = __webpack_require__(/*! ../../util/layout */ 488); var getLayoutRect = _layout.getLayoutRect; var layoutBox = _layout.box; var positionElement = _layout.positionElement; var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Layout list like component. * It will box layout each items in group of component and then position the whole group in the viewport * @param {module:zrender/group/Group} group * @param {module:echarts/model/Component} componentModel * @param {module:echarts/ExtensionAPI} */ function layout(group, componentModel, api) { var boxLayoutParams = componentModel.getBoxLayoutParams(); var padding = componentModel.get('padding'); var viewportSize = { width: api.getWidth(), height: api.getHeight() }; var rect = getLayoutRect(boxLayoutParams, viewportSize, padding); layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height); positionElement(group, boxLayoutParams, viewportSize, padding); } function makeBackground(rect, componentModel) { var padding = formatUtil.normalizeCssArray(componentModel.get('padding')); var style = componentModel.getItemStyle(['color', 'opacity']); style.fill = componentModel.get('backgroundColor'); var rect = new graphic.Rect({ shape: { x: rect.x - padding[3], y: rect.y - padding[0], width: rect.width + padding[1] + padding[3], height: rect.height + padding[0] + padding[2], r: componentModel.get('borderRadius') }, style: style, silent: true, z2: -1 }); // FIXME // `subPixelOptimizeRect` may bring some gap between edge of viewpart // and background rect when setting like `left: 0`, `top: 0`. // graphic.subPixelOptimizeRect(rect); return rect; } exports.layout = layout; exports.makeBackground = makeBackground; /***/ }), /* 800 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var lang = __webpack_require__(/*! ../../../lang */ 513); var featureManager = __webpack_require__(/*! ../featureManager */ 797); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* global Uint8Array */ var saveAsImageLang = lang.toolbox.saveAsImage; function SaveAsImage(model) { this.model = model; } SaveAsImage.defaultOption = { show: true, icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0', title: saveAsImageLang.title, type: 'png', // Default use option.backgroundColor // backgroundColor: '#fff', connectedBackgroundColor: '#fff', name: '', excludeComponents: ['toolbox'], pixelRatio: 1, lang: saveAsImageLang.lang.slice() }; SaveAsImage.prototype.unusable = !env.canvasSupported; var proto = SaveAsImage.prototype; proto.onclick = function (ecModel, api) { var model = this.model; var title = model.get('name') || ecModel.get('title.0.text') || 'echarts'; var isSvg = api.getZr().painter.getType() === 'svg'; var type = isSvg ? 'svg' : model.get('type', true) || 'png'; var url = api.getConnectedDataURL({ type: type, backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff', connectedBackgroundColor: model.get('connectedBackgroundColor'), excludeComponents: model.get('excludeComponents'), pixelRatio: model.get('pixelRatio') }); // Chrome and Firefox if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) { var $a = document.createElement('a'); $a.download = title + '.' + type; $a.target = '_blank'; $a.href = url; var evt = new MouseEvent('click', { // some micro front-end framework, window maybe is a Proxy view: document.defaultView, bubbles: true, cancelable: false }); $a.dispatchEvent(evt); } // IE else { if (window.navigator.msSaveOrOpenBlob) { var bstr = atob(url.split(',')[1]); var n = bstr.length; var u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } var blob = new Blob([u8arr]); window.navigator.msSaveOrOpenBlob(blob, title + '.' + type); } else { var lang = model.get('lang'); var html = '' + '' + '' + ''; var tab = window.open(); tab.document.write(html); } } }; featureManager.register('saveAsImage', SaveAsImage); var _default = SaveAsImage; module.exports = _default; /***/ }), /* 801 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/feature/MagicType.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var lang = __webpack_require__(/*! ../../../lang */ 513); var featureManager = __webpack_require__(/*! ../featureManager */ 797); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var magicTypeLang = lang.toolbox.magicType; var INNER_STACK_KEYWORD = '__ec_magicType_stack__'; function MagicType(model) { this.model = model; } MagicType.defaultOption = { show: true, type: [], // Icon group icon: { /* eslint-disable */ line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4', bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7', stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z' // jshint ignore:line /* eslint-enable */ }, // `line`, `bar`, `stack`, `tiled` title: zrUtil.clone(magicTypeLang.title), option: {}, seriesIndex: {} }; var proto = MagicType.prototype; proto.getIcons = function () { var model = this.model; var availableIcons = model.get('icon'); var icons = {}; zrUtil.each(model.get('type'), function (type) { if (availableIcons[type]) { icons[type] = availableIcons[type]; } }); return icons; }; var seriesOptGenreator = { 'line': function line(seriesType, seriesId, seriesModel, model) { if (seriesType === 'bar') { return zrUtil.merge({ id: seriesId, type: 'line', // Preserve data related option data: seriesModel.get('data'), stack: seriesModel.get('stack'), markPoint: seriesModel.get('markPoint'), markLine: seriesModel.get('markLine') }, model.get('option.line') || {}, true); } }, 'bar': function bar(seriesType, seriesId, seriesModel, model) { if (seriesType === 'line') { return zrUtil.merge({ id: seriesId, type: 'bar', // Preserve data related option data: seriesModel.get('data'), stack: seriesModel.get('stack'), markPoint: seriesModel.get('markPoint'), markLine: seriesModel.get('markLine') }, model.get('option.bar') || {}, true); } }, 'stack': function stack(seriesType, seriesId, seriesModel, model) { var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD; if (seriesType === 'line' || seriesType === 'bar') { model.setIconStatus('stack', isStack ? 'normal' : 'emphasis'); return zrUtil.merge({ id: seriesId, stack: isStack ? '' : INNER_STACK_KEYWORD }, model.get('option.stack') || {}, true); } } }; var radioTypes = [['line', 'bar'], ['stack']]; proto.onclick = function (ecModel, api, type) { var model = this.model; var seriesIndex = model.get('seriesIndex.' + type); // Not supported magicType if (!seriesOptGenreator[type]) { return; } var newOption = { series: [] }; var generateNewSeriesTypes = function generateNewSeriesTypes(seriesModel) { var seriesType = seriesModel.subType; var seriesId = seriesModel.id; var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model); if (newSeriesOpt) { // PENDING If merge original option? zrUtil.defaults(newSeriesOpt, seriesModel.option); newOption.series.push(newSeriesOpt); } // Modify boundaryGap var coordSys = seriesModel.coordinateSystem; if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) { var categoryAxis = coordSys.getAxesByScale('ordinal')[0]; if (categoryAxis) { var axisDim = categoryAxis.dim; var axisType = axisDim + 'Axis'; var axisModel = ecModel.queryComponents({ mainType: axisType, index: seriesModel.get(name + 'Index'), id: seriesModel.get(name + 'Id') })[0]; var axisIndex = axisModel.componentIndex; newOption[axisType] = newOption[axisType] || []; for (var i = 0; i <= axisIndex; i++) { newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {}; } newOption[axisType][axisIndex].boundaryGap = type === 'bar'; } } }; zrUtil.each(radioTypes, function (radio) { if (zrUtil.indexOf(radio, type) >= 0) { zrUtil.each(radio, function (item) { model.setIconStatus(item, 'normal'); }); } }); model.setIconStatus(type, 'emphasis'); ecModel.eachComponent({ mainType: 'series', query: seriesIndex == null ? null : { seriesIndex: seriesIndex } }, generateNewSeriesTypes); var newTitle; // Change title of stack if (type === 'stack') { var isStack = newOption.series && newOption.series[0] && newOption.series[0].stack === INNER_STACK_KEYWORD; newTitle = isStack ? zrUtil.merge({ stack: magicTypeLang.title.tiled }, magicTypeLang.title) : zrUtil.clone(magicTypeLang.title); } api.dispatchAction({ type: 'changeMagicType', currentType: type, newOption: newOption, newTitle: newTitle, featureName: 'magicType' }); }; echarts.registerAction({ type: 'changeMagicType', event: 'magicTypeChanged', update: 'prepareAndUpdate' }, function (payload, ecModel) { ecModel.mergeOption(payload.newOption); }); featureManager.register('magicType', MagicType); var _default = MagicType; module.exports = _default; /***/ }), /* 802 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/feature/DataView.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var eventTool = __webpack_require__(/*! zrender/lib/core/event */ 408); var lang = __webpack_require__(/*! ../../../lang */ 513); var featureManager = __webpack_require__(/*! ../featureManager */ 797); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var dataViewLang = lang.toolbox.dataView; var BLOCK_SPLITER = new Array(60).join('-'); var ITEM_SPLITER = '\t'; /** * Group series into two types * 1. on category axis, like line, bar * 2. others, like scatter, pie * @param {module:echarts/model/Global} ecModel * @return {Object} * @inner */ function groupSeries(ecModel) { var seriesGroupByCategoryAxis = {}; var otherSeries = []; var meta = []; ecModel.eachRawSeries(function (seriesModel) { var coordSys = seriesModel.coordinateSystem; if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) { var baseAxis = coordSys.getBaseAxis(); if (baseAxis.type === 'category') { var key = baseAxis.dim + '_' + baseAxis.index; if (!seriesGroupByCategoryAxis[key]) { seriesGroupByCategoryAxis[key] = { categoryAxis: baseAxis, valueAxis: coordSys.getOtherAxis(baseAxis), series: [] }; meta.push({ axisDim: baseAxis.dim, axisIndex: baseAxis.index }); } seriesGroupByCategoryAxis[key].series.push(seriesModel); } else { otherSeries.push(seriesModel); } } else { otherSeries.push(seriesModel); } }); return { seriesGroupByCategoryAxis: seriesGroupByCategoryAxis, other: otherSeries, meta: meta }; } /** * Assemble content of series on cateogory axis * @param {Array.} series * @return {string} * @inner */ function assembleSeriesWithCategoryAxis(series) { var tables = []; zrUtil.each(series, function (group, key) { var categoryAxis = group.categoryAxis; var valueAxis = group.valueAxis; var valueAxisDim = valueAxis.dim; var headers = [' '].concat(zrUtil.map(group.series, function (series) { return series.name; })); var columns = [categoryAxis.model.getCategories()]; zrUtil.each(group.series, function (series) { var rawData = series.getRawData(); columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) { return val; })); }); // Assemble table content var lines = [headers.join(ITEM_SPLITER)]; for (var i = 0; i < columns[0].length; i++) { var items = []; for (var j = 0; j < columns.length; j++) { items.push(columns[j][i]); } lines.push(items.join(ITEM_SPLITER)); } tables.push(lines.join('\n')); }); return tables.join('\n\n' + BLOCK_SPLITER + '\n\n'); } /** * Assemble content of other series * @param {Array.} series * @return {string} * @inner */ function assembleOtherSeries(series) { return zrUtil.map(series, function (series) { var data = series.getRawData(); var lines = [series.name]; var vals = []; data.each(data.dimensions, function () { var argLen = arguments.length; var dataIndex = arguments[argLen - 1]; var name = data.getName(dataIndex); for (var i = 0; i < argLen - 1; i++) { vals[i] = arguments[i]; } lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER)); }); return lines.join('\n'); }).join('\n\n' + BLOCK_SPLITER + '\n\n'); } /** * @param {module:echarts/model/Global} * @return {Object} * @inner */ function getContentFromModel(ecModel) { var result = groupSeries(ecModel); return { value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) { return str.replace(/[\n\t\s]/g, ''); }).join('\n\n' + BLOCK_SPLITER + '\n\n'), meta: result.meta }; } function trim(str) { return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } /** * If a block is tsv format */ function isTSVFormat(block) { // Simple method to find out if a block is tsv format var firstLine = block.slice(0, block.indexOf('\n')); if (firstLine.indexOf(ITEM_SPLITER) >= 0) { return true; } } var itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g'); /** * @param {string} tsv * @return {Object} */ function parseTSVContents(tsv) { var tsvLines = tsv.split(/\n+/g); var headers = trim(tsvLines.shift()).split(itemSplitRegex); var categories = []; var series = zrUtil.map(headers, function (header) { return { name: header, data: [] }; }); for (var i = 0; i < tsvLines.length; i++) { var items = trim(tsvLines[i]).split(itemSplitRegex); categories.push(items.shift()); for (var j = 0; j < items.length; j++) { series[j] && (series[j].data[i] = items[j]); } } return { series: series, categories: categories }; } /** * @param {string} str * @return {Array.} * @inner */ function parseListContents(str) { var lines = str.split(/\n+/g); var seriesName = trim(lines.shift()); var data = []; for (var i = 0; i < lines.length; i++) { // if line is empty, ignore it. // there is a case that a user forgot to delete `\n`. var line = trim(lines[i]); if (!line) { continue; } var items = line.split(itemSplitRegex); var name = ''; var value; var hasName = false; if (isNaN(items[0])) { // First item is name hasName = true; name = items[0]; items = items.slice(1); data[i] = { name: name, value: [] }; value = data[i].value; } else { value = data[i] = []; } for (var j = 0; j < items.length; j++) { value.push(+items[j]); } if (value.length === 1) { hasName ? data[i].value = value[0] : data[i] = value[0]; } } return { name: seriesName, data: data }; } /** * @param {string} str * @param {Array.} blockMetaList * @return {Object} * @inner */ function parseContents(str, blockMetaList) { var blocks = str.split(new RegExp('\n*' + BLOCK_SPLITER + '\n*', 'g')); var newOption = { series: [] }; zrUtil.each(blocks, function (block, idx) { if (isTSVFormat(block)) { var result = parseTSVContents(block); var blockMeta = blockMetaList[idx]; var axisKey = blockMeta.axisDim + 'Axis'; if (blockMeta) { newOption[axisKey] = newOption[axisKey] || []; newOption[axisKey][blockMeta.axisIndex] = { data: result.categories }; newOption.series = newOption.series.concat(result.series); } } else { var result = parseListContents(block); newOption.series.push(result); } }); return newOption; } /** * @alias {module:echarts/component/toolbox/feature/DataView} * @constructor * @param {module:echarts/model/Model} model */ function DataView(model) { this._dom = null; this.model = model; } DataView.defaultOption = { show: true, readOnly: false, optionToContent: null, contentToOption: null, icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28', title: zrUtil.clone(dataViewLang.title), lang: zrUtil.clone(dataViewLang.lang), backgroundColor: '#fff', textColor: '#000', textareaColor: '#fff', textareaBorderColor: '#333', buttonColor: '#c23531', buttonTextColor: '#fff' }; DataView.prototype.onclick = function (ecModel, api) { var container = api.getDom(); var model = this.model; if (this._dom) { container.removeChild(this._dom); } var root = document.createElement('div'); root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;'; root.style.backgroundColor = model.get('backgroundColor') || '#fff'; // Create elements var header = document.createElement('h4'); var lang = model.get('lang') || []; header.innerHTML = lang[0] || model.get('title'); header.style.cssText = 'margin: 10px 20px;'; header.style.color = model.get('textColor'); var viewMain = document.createElement('div'); var textarea = document.createElement('textarea'); viewMain.style.cssText = 'display:block;width:100%;overflow:auto;'; var optionToContent = model.get('optionToContent'); var contentToOption = model.get('contentToOption'); var result = getContentFromModel(ecModel); if (typeof optionToContent === 'function') { var htmlOrDom = optionToContent(api.getOption()); if (typeof htmlOrDom === 'string') { viewMain.innerHTML = htmlOrDom; } else if (zrUtil.isDom(htmlOrDom)) { viewMain.appendChild(htmlOrDom); } } else { // Use default textarea viewMain.appendChild(textarea); textarea.readOnly = model.get('readOnly'); textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;'; textarea.style.color = model.get('textColor'); textarea.style.borderColor = model.get('textareaBorderColor'); textarea.style.backgroundColor = model.get('textareaColor'); textarea.value = result.value; } var blockMetaList = result.meta; var buttonContainer = document.createElement('div'); buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;'; var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px'; var closeButton = document.createElement('div'); var refreshButton = document.createElement('div'); buttonStyle += ';background-color:' + model.get('buttonColor'); buttonStyle += ';color:' + model.get('buttonTextColor'); var self = this; function close() { container.removeChild(root); self._dom = null; } eventTool.addEventListener(closeButton, 'click', close); eventTool.addEventListener(refreshButton, 'click', function () { var newOption; try { if (typeof contentToOption === 'function') { newOption = contentToOption(viewMain, api.getOption()); } else { newOption = parseContents(textarea.value, blockMetaList); } } catch (e) { close(); throw new Error('Data view format error ' + e); } if (newOption) { api.dispatchAction({ type: 'changeDataView', newOption: newOption }); } close(); }); closeButton.innerHTML = lang[1]; refreshButton.innerHTML = lang[2]; refreshButton.style.cssText = buttonStyle; closeButton.style.cssText = buttonStyle; !model.get('readOnly') && buttonContainer.appendChild(refreshButton); buttonContainer.appendChild(closeButton); root.appendChild(header); root.appendChild(viewMain); root.appendChild(buttonContainer); viewMain.style.height = container.clientHeight - 80 + 'px'; container.appendChild(root); this._dom = root; }; DataView.prototype.remove = function (ecModel, api) { this._dom && api.getDom().removeChild(this._dom); }; DataView.prototype.dispose = function (ecModel, api) { this.remove(ecModel, api); }; /** * @inner */ function tryMergeDataOption(newData, originalData) { return zrUtil.map(newData, function (newVal, idx) { var original = originalData && originalData[idx]; if (zrUtil.isObject(original) && !zrUtil.isArray(original)) { var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal); if (!newValIsObject) { newVal = { value: newVal }; } // original data has name but new data has no name var shouldDeleteName = original.name != null && newVal.name == null; // Original data has option newVal = zrUtil.defaults(newVal, original); shouldDeleteName && delete newVal.name; return newVal; } else { return newVal; } }); } featureManager.register('dataView', DataView); echarts.registerAction({ type: 'changeDataView', event: 'dataViewChanged', update: 'prepareAndUpdate' }, function (payload, ecModel) { var newSeriesOptList = []; zrUtil.each(payload.newOption.series, function (seriesOpt) { var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0]; if (!seriesModel) { // New created series // Geuss the series type newSeriesOptList.push(zrUtil.extend({ // Default is scatter type: 'scatter' }, seriesOpt)); } else { var originalData = seriesModel.get('data'); newSeriesOptList.push({ name: seriesOpt.name, data: tryMergeDataOption(seriesOpt.data, originalData) }); } }); ecModel.mergeOption(zrUtil.defaults({ series: newSeriesOptList }, payload.newOption)); }); var _default = DataView; module.exports = _default; /***/ }), /* 803 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/feature/DataZoom.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BrushController = __webpack_require__(/*! ../../helper/BrushController */ 696); var BrushTargetManager = __webpack_require__(/*! ../../helper/BrushTargetManager */ 804); var history = __webpack_require__(/*! ../../dataZoom/history */ 805); var sliderMove = __webpack_require__(/*! ../../helper/sliderMove */ 690); var lang = __webpack_require__(/*! ../../../lang */ 513); var featureManager = __webpack_require__(/*! ../featureManager */ 797); __webpack_require__(/*! ../../dataZoomSelect */ 806); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Use dataZoomSelect var dataZoomLang = lang.toolbox.dataZoom; var each = zrUtil.each; // Spectial component id start with \0ec\0, see echarts/model/Global.js~hasInnerId var DATA_ZOOM_ID_BASE = '\0_ec_\0toolbox-dataZoom_'; function DataZoom(model, ecModel, api) { /** * @private * @type {module:echarts/component/helper/BrushController} */ (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount(); /** * @private * @type {boolean} */ this._isZoomActive; } DataZoom.defaultOption = { show: true, filterMode: 'filter', // Icon group icon: { zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1', back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26' }, // `zoom`, `back` title: zrUtil.clone(dataZoomLang.title), brushStyle: { borderWidth: 0, color: 'rgba(0,0,0,0.2)' } }; var proto = DataZoom.prototype; proto.render = function (featureModel, ecModel, api, payload) { this.model = featureModel; this.ecModel = ecModel; this.api = api; updateZoomBtnStatus(featureModel, ecModel, this, payload, api); updateBackBtnStatus(featureModel, ecModel); }; proto.onclick = function (ecModel, api, type) { handlers[type].call(this); }; proto.remove = function (ecModel, api) { this._brushController.unmount(); }; proto.dispose = function (ecModel, api) { this._brushController.dispose(); }; /** * @private */ var handlers = { zoom: function zoom() { var nextActive = !this._isZoomActive; this.api.dispatchAction({ type: 'takeGlobalCursor', key: 'dataZoomSelect', dataZoomSelectActive: nextActive }); }, back: function back() { this._dispatchZoomAction(history.pop(this.ecModel)); } }; /** * @private */ proto._onBrush = function (areas, opt) { if (!opt.isEnd || !areas.length) { return; } var snapshot = {}; var ecModel = this.ecModel; this._brushController.updateCovers([]); // remove cover var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(this.model.option), ecModel, { include: ['grid'] }); brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) { if (coordSys.type !== 'cartesian2d') { return; } var brushType = area.brushType; if (brushType === 'rect') { setBatch('x', coordSys, coordRange[0]); setBatch('y', coordSys, coordRange[1]); } else { setBatch({ lineX: 'x', lineY: 'y' }[brushType], coordSys, coordRange); } }); history.push(ecModel, snapshot); this._dispatchZoomAction(snapshot); function setBatch(dimName, coordSys, minMax) { var axis = coordSys.getAxis(dimName); var axisModel = axis.model; var dataZoomModel = findDataZoom(dimName, axisModel, ecModel); // Restrict range. var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan(); if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) { minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan); } dataZoomModel && (snapshot[dataZoomModel.id] = { dataZoomId: dataZoomModel.id, startValue: minMax[0], endValue: minMax[1] }); } function findDataZoom(dimName, axisModel, ecModel) { var found; ecModel.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (dzModel) { var has = dzModel.getAxisModel(dimName, axisModel.componentIndex); has && (found = dzModel); }); return found; } }; /** * @private */ proto._dispatchZoomAction = function (snapshot) { var batch = []; // Convert from hash map to array. each(snapshot, function (batchItem, dataZoomId) { batch.push(zrUtil.clone(batchItem)); }); batch.length && this.api.dispatchAction({ type: 'dataZoom', from: this.uid, batch: batch }); }; function retrieveAxisSetting(option) { var setting = {}; // Compatible with previous setting: null => all axis, false => no axis. zrUtil.each(['xAxisIndex', 'yAxisIndex'], function (name) { setting[name] = option[name]; setting[name] == null && (setting[name] = 'all'); (setting[name] === false || setting[name] === 'none') && (setting[name] = []); }); return setting; } function updateBackBtnStatus(featureModel, ecModel) { featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal'); } function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) { var zoomActive = view._isZoomActive; if (payload && payload.type === 'takeGlobalCursor') { zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false; } view._isZoomActive = zoomActive; featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal'); var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(featureModel.option), ecModel, { include: ['grid'] }); view._brushController.setPanels(brushTargetManager.makePanelOpts(api, function (targetInfo) { return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect'; })).enableBrush(zoomActive ? { brushType: 'auto', brushStyle: featureModel.getModel('brushStyle').getItemStyle() } : false); } featureManager.register('dataZoom', DataZoom); // Create special dataZoom option for select // FIXME consider the case of merge option, where axes options are not exists. echarts.registerPreprocessor(function (option) { if (!option) { return; } var dataZoomOpts = option.dataZoom || (option.dataZoom = []); if (!zrUtil.isArray(dataZoomOpts)) { option.dataZoom = dataZoomOpts = [dataZoomOpts]; } var toolboxOpt = option.toolbox; if (toolboxOpt) { // Assume there is only one toolbox if (zrUtil.isArray(toolboxOpt)) { toolboxOpt = toolboxOpt[0]; } if (toolboxOpt && toolboxOpt.feature) { var dataZoomOpt = toolboxOpt.feature.dataZoom; // FIXME: If add dataZoom when setOption in merge mode, // no axis info to be added. See `test/dataZoom-extreme.html` addForAxis('xAxis', dataZoomOpt); addForAxis('yAxis', dataZoomOpt); } } function addForAxis(axisName, dataZoomOpt) { if (!dataZoomOpt) { return; } // Try not to modify model, because it is not merged yet. var axisIndicesName = axisName + 'Index'; var givenAxisIndices = dataZoomOpt[axisIndicesName]; if (givenAxisIndices != null && givenAxisIndices !== 'all' && !zrUtil.isArray(givenAxisIndices)) { givenAxisIndices = givenAxisIndices === false || givenAxisIndices === 'none' ? [] : [givenAxisIndices]; } forEachComponent(axisName, function (axisOpt, axisIndex) { if (givenAxisIndices != null && givenAxisIndices !== 'all' && zrUtil.indexOf(givenAxisIndices, axisIndex) === -1) { return; } var newOpt = { type: 'select', $fromToolbox: true, // Default to be filter filterMode: dataZoomOpt.filterMode || 'filter', // Id for merge mapping. id: DATA_ZOOM_ID_BASE + axisName + axisIndex }; // FIXME // Only support one axis now. newOpt[axisIndicesName] = axisIndex; dataZoomOpts.push(newOpt); }); } function forEachComponent(mainType, cb) { var opts = option[mainType]; if (!zrUtil.isArray(opts)) { opts = opts ? [opts] : []; } each(opts, cb); } }); var _default = DataZoom; module.exports = _default; /***/ }), /* 804 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/helper/BrushTargetManager.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); var brushHelper = __webpack_require__(/*! ./brushHelper */ 697); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var indexOf = zrUtil.indexOf; var curry = zrUtil.curry; var COORD_CONVERTS = ['dataToPoint', 'pointToData']; // FIXME // how to genarialize to more coordinate systems. var INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap']; /** * [option in constructor]: * { * Index/Id/Name of geo, xAxis, yAxis, grid: See util/model#parseFinder. * } * * * [targetInfo]: * * There can be multiple axes in a single targetInfo. Consider the case * of `grid` component, a targetInfo represents a grid which contains one or more * cartesian and one or more axes. And consider the case of parallel system, * which has multiple axes in a coordinate system. * Can be { * panelId: ..., * coordSys: , * coordSyses: all cartesians. * gridModel: * xAxes: correspond to coordSyses on index * yAxes: correspond to coordSyses on index * } * or { * panelId: ..., * coordSys: * coordSyses: [] * geoModel: * } * * * [panelOpt]: * * Make from targetInfo. Input to BrushController. * { * panelId: ..., * rect: ... * } * * * [area]: * * Generated by BrushController or user input. * { * panelId: Used to locate coordInfo directly. If user inpput, no panelId. * brushType: determine how to convert to/from coord('rect' or 'polygon' or 'lineX/Y'). * Index/Id/Name of geo, xAxis, yAxis, grid: See util/model#parseFinder. * range: pixel range. * coordRange: representitive coord range (the first one of coordRanges). * coordRanges: coord ranges, used in multiple cartesian in one grid. * } */ /** * @param {Object} option contains Index/Id/Name of xAxis/yAxis/geo/grid * Each can be {number|Array.}. like: {xAxisIndex: [3, 4]} * @param {module:echarts/model/Global} ecModel * @param {Object} [opt] * @param {Array.} [opt.include] include coordinate system types. */ function BrushTargetManager(option, ecModel, opt) { /** * @private * @type {Array.} */ var targetInfoList = this._targetInfoList = []; var info = {}; var foundCpts = parseFinder(ecModel, option); each(targetInfoBuilders, function (builder, type) { if (!opt || !opt.include || indexOf(opt.include, type) >= 0) { builder(foundCpts, targetInfoList, info); } }); } var proto = BrushTargetManager.prototype; proto.setOutputRanges = function (areas, ecModel) { this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) { (area.coordRanges || (area.coordRanges = [])).push(coordRange); // area.coordRange is the first of area.coordRanges if (!area.coordRange) { area.coordRange = coordRange; // In 'category' axis, coord to pixel is not reversible, so we can not // rebuild range by coordRange accrately, which may bring trouble when // brushing only one item. So we use __rangeOffset to rebuilding range // by coordRange. And this it only used in brush component so it is no // need to be adapted to coordRanges. var result = coordConvert[area.brushType](0, coordSys, coordRange); area.__rangeOffset = { offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]), xyMinMax: result.xyMinMax }; } }); }; proto.matchOutputRanges = function (areas, ecModel, cb) { each(areas, function (area) { var targetInfo = this.findTargetInfo(area, ecModel); if (targetInfo && targetInfo !== true) { zrUtil.each(targetInfo.coordSyses, function (coordSys) { var result = coordConvert[area.brushType](1, coordSys, area.range); cb(area, result.values, coordSys, ecModel); }); } }, this); }; proto.setInputRanges = function (areas, ecModel) { each(areas, function (area) { var targetInfo = this.findTargetInfo(area, ecModel); area.range = area.range || []; // convert coordRange to global range and set panelId. if (targetInfo && targetInfo !== true) { area.panelId = targetInfo.panelId; // (1) area.range shoule always be calculate from coordRange but does // not keep its original value, for the sake of the dataZoom scenario, // where area.coordRange remains unchanged but area.range may be changed. // (2) Only support converting one coordRange to pixel range in brush // component. So do not consider `coordRanges`. // (3) About __rangeOffset, see comment above. var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange); var rangeOffset = area.__rangeOffset; area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values; } }, this); }; proto.makePanelOpts = function (api, getDefaultBrushType) { return zrUtil.map(this._targetInfoList, function (targetInfo) { var rect = targetInfo.getPanelRect(); return { panelId: targetInfo.panelId, defaultBrushType: getDefaultBrushType && getDefaultBrushType(targetInfo), clipPath: brushHelper.makeRectPanelClipPath(rect), isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel), getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect) }; }); }; proto.controlSeries = function (area, seriesModel, ecModel) { // Check whether area is bound in coord, and series do not belong to that coord. // If do not do this check, some brush (like lineX) will controll all axes. var targetInfo = this.findTargetInfo(area, ecModel); return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0; }; /** * If return Object, a coord found. * If reutrn true, global found. * Otherwise nothing found. * * @param {Object} area * @param {Array} targetInfoList * @return {Object|boolean} */ proto.findTargetInfo = function (area, ecModel) { var targetInfoList = this._targetInfoList; var foundCpts = parseFinder(ecModel, area); for (var i = 0; i < targetInfoList.length; i++) { var targetInfo = targetInfoList[i]; var areaPanelId = area.panelId; if (areaPanelId) { if (targetInfo.panelId === areaPanelId) { return targetInfo; } } else { for (var i = 0; i < targetInfoMatchers.length; i++) { if (targetInfoMatchers[i](foundCpts, targetInfo)) { return targetInfo; } } } } return true; }; function formatMinMax(minMax) { minMax[0] > minMax[1] && minMax.reverse(); return minMax; } function parseFinder(ecModel, option) { return modelUtil.parseFinder(ecModel, option, { includeMainTypes: INCLUDE_FINDER_MAIN_TYPES }); } var targetInfoBuilders = { grid: function grid(foundCpts, targetInfoList) { var xAxisModels = foundCpts.xAxisModels; var yAxisModels = foundCpts.yAxisModels; var gridModels = foundCpts.gridModels; // Remove duplicated. var gridModelMap = zrUtil.createHashMap(); var xAxesHas = {}; var yAxesHas = {}; if (!xAxisModels && !yAxisModels && !gridModels) { return; } each(xAxisModels, function (axisModel) { var gridModel = axisModel.axis.grid.model; gridModelMap.set(gridModel.id, gridModel); xAxesHas[gridModel.id] = true; }); each(yAxisModels, function (axisModel) { var gridModel = axisModel.axis.grid.model; gridModelMap.set(gridModel.id, gridModel); yAxesHas[gridModel.id] = true; }); each(gridModels, function (gridModel) { gridModelMap.set(gridModel.id, gridModel); xAxesHas[gridModel.id] = true; yAxesHas[gridModel.id] = true; }); gridModelMap.each(function (gridModel) { var grid = gridModel.coordinateSystem; var cartesians = []; each(grid.getCartesians(), function (cartesian, index) { if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) { cartesians.push(cartesian); } }); targetInfoList.push({ panelId: 'grid--' + gridModel.id, gridModel: gridModel, coordSysModel: gridModel, // Use the first one as the representitive coordSys. coordSys: cartesians[0], coordSyses: cartesians, getPanelRect: panelRectBuilder.grid, xAxisDeclared: xAxesHas[gridModel.id], yAxisDeclared: yAxesHas[gridModel.id] }); }); }, geo: function geo(foundCpts, targetInfoList) { each(foundCpts.geoModels, function (geoModel) { var coordSys = geoModel.coordinateSystem; targetInfoList.push({ panelId: 'geo--' + geoModel.id, geoModel: geoModel, coordSysModel: geoModel, coordSys: coordSys, coordSyses: [coordSys], getPanelRect: panelRectBuilder.geo }); }); } }; var targetInfoMatchers = [ // grid function (foundCpts, targetInfo) { var xAxisModel = foundCpts.xAxisModel; var yAxisModel = foundCpts.yAxisModel; var gridModel = foundCpts.gridModel; !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model); !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model); return gridModel && gridModel === targetInfo.gridModel; }, // geo function (foundCpts, targetInfo) { var geoModel = foundCpts.geoModel; return geoModel && geoModel === targetInfo.geoModel; }]; var panelRectBuilder = { grid: function grid() { // grid is not Transformable. return this.coordSys.grid.getRect().clone(); }, geo: function geo() { var coordSys = this.coordSys; var rect = coordSys.getBoundingRect().clone(); // geo roam and zoom transform rect.applyTransform(graphic.getTransform(coordSys)); return rect; } }; var coordConvert = { lineX: curry(axisConvert, 0), lineY: curry(axisConvert, 1), rect: function rect(to, coordSys, rangeOrCoordRange) { var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]); var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]); var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])]; return { values: values, xyMinMax: values }; }, polygon: function polygon(to, coordSys, rangeOrCoordRange) { var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]]; var values = zrUtil.map(rangeOrCoordRange, function (item) { var p = coordSys[COORD_CONVERTS[to]](item); xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]); xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]); xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]); xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]); return p; }); return { values: values, xyMinMax: xyMinMax }; } }; function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) { var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]); var values = formatMinMax(zrUtil.map([0, 1], function (i) { return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i])); })); var xyMinMax = []; xyMinMax[axisNameIndex] = values; xyMinMax[1 - axisNameIndex] = [NaN, NaN]; return { values: values, xyMinMax: xyMinMax }; } var diffProcessor = { lineX: curry(axisDiffProcessor, 0), lineY: curry(axisDiffProcessor, 1), rect: function rect(values, refer, scales) { return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]]; }, polygon: function polygon(values, refer, scales) { return zrUtil.map(values, function (item, idx) { return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]]; }); } }; function axisDiffProcessor(axisNameIndex, values, refer, scales) { return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]]; } // We have to process scale caused by dataZoom manually, // although it might be not accurate. function getScales(xyMinMaxCurr, xyMinMaxOrigin) { var sizeCurr = getSize(xyMinMaxCurr); var sizeOrigin = getSize(xyMinMaxOrigin); var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]]; isNaN(scales[0]) && (scales[0] = 1); isNaN(scales[1]) && (scales[1] = 1); return scales; } function getSize(xyMinMax) { return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN]; } var _default = BrushTargetManager; module.exports = _default; /***/ }), /* 805 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/history.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var ATTR = '\0_ec_hist_store'; /** * @param {module:echarts/model/Global} ecModel * @param {Object} newSnapshot {dataZoomId, batch: [payloadInfo, ...]} */ function push(ecModel, newSnapshot) { var store = giveStore(ecModel); // If previous dataZoom can not be found, // complete an range with current range. each(newSnapshot, function (batchItem, dataZoomId) { var i = store.length - 1; for (; i >= 0; i--) { var snapshot = store[i]; if (snapshot[dataZoomId]) { break; } } if (i < 0) { // No origin range set, create one by current range. var dataZoomModel = ecModel.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId })[0]; if (dataZoomModel) { var percentRange = dataZoomModel.getPercentRange(); store[0][dataZoomId] = { dataZoomId: dataZoomId, start: percentRange[0], end: percentRange[1] }; } } }); store.push(newSnapshot); } /** * @param {module:echarts/model/Global} ecModel * @return {Object} snapshot */ function pop(ecModel) { var store = giveStore(ecModel); var head = store[store.length - 1]; store.length > 1 && store.pop(); // Find top for all dataZoom. var snapshot = {}; each(head, function (batchItem, dataZoomId) { for (var i = store.length - 1; i >= 0; i--) { var batchItem = store[i][dataZoomId]; if (batchItem) { snapshot[dataZoomId] = batchItem; break; } } }); return snapshot; } /** * @param {module:echarts/model/Global} ecModel */ function clear(ecModel) { ecModel[ATTR] = null; } /** * @param {module:echarts/model/Global} ecModel * @return {number} records. always >= 1. */ function count(ecModel) { return giveStore(ecModel).length; } /** * [{key: dataZoomId, value: {dataZoomId, range}}, ...] * History length of each dataZoom may be different. * this._history[0] is used to store origin range. * @type {Array.} */ function giveStore(ecModel) { var store = ecModel[ATTR]; if (!store) { store = ecModel[ATTR] = [{}]; } return store; } exports.push = push; exports.pop = pop; exports.clear = clear; exports.count = count; /***/ }), /* 806 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoomSelect.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./dataZoom/typeDefaulter */ 807); __webpack_require__(/*! ./dataZoom/DataZoomModel */ 808); __webpack_require__(/*! ./dataZoom/DataZoomView */ 811); __webpack_require__(/*! ./dataZoom/SelectZoomModel */ 812); __webpack_require__(/*! ./dataZoom/SelectZoomView */ 813); __webpack_require__(/*! ./dataZoom/dataZoomProcessor */ 814); __webpack_require__(/*! ./dataZoom/dataZoomAction */ 815); /***/ }), /* 807 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/typeDefaulter.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Component = __webpack_require__(/*! ../../model/Component */ 486); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ Component.registerSubTypeDefaulter('dataZoom', function () { // Default 'slider' when no type specified. return 'slider'; }); /***/ }), /* 808 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/DataZoomModel.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); var helper = __webpack_require__(/*! ./helper */ 809); var AxisProxy = __webpack_require__(/*! ./AxisProxy */ 810); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var eachAxisDim = helper.eachAxisDim; var DataZoomModel = echarts.extendComponentModel({ type: 'dataZoom', dependencies: ['xAxis', 'yAxis', 'zAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series'], /** * @protected */ defaultOption: { zlevel: 0, z: 4, // Higher than normal component (z: 2). orient: null, // Default auto by axisIndex. Possible value: 'horizontal', 'vertical'. xAxisIndex: null, // Default the first horizontal category axis. yAxisIndex: null, // Default the first vertical category axis. filterMode: 'filter', // Possible values: 'filter' or 'empty' or 'weakFilter'. // 'filter': data items which are out of window will be removed. This option is // applicable when filtering outliers. For each data item, it will be // filtered if one of the relevant dimensions is out of the window. // 'weakFilter': data items which are out of window will be removed. This option // is applicable when filtering outliers. For each data item, it will be // filtered only if all of the relevant dimensions are out of the same // side of the window. // 'empty': data items which are out of window will be set to empty. // This option is applicable when user should not neglect // that there are some data items out of window. // 'none': Do not filter. // Taking line chart as an example, line will be broken in // the filtered points when filterModel is set to 'empty', but // be connected when set to 'filter'. throttle: null, // Dispatch action by the fixed rate, avoid frequency. // default 100. Do not throttle when use null/undefined. // If animation === true and animationDurationUpdate > 0, // default value is 100, otherwise 20. start: 0, // Start percent. 0 ~ 100 end: 100, // End percent. 0 ~ 100 startValue: null, // Start value. If startValue specified, start is ignored. endValue: null, // End value. If endValue specified, end is ignored. minSpan: null, // 0 ~ 100 maxSpan: null, // 0 ~ 100 minValueSpan: null, // The range of dataZoom can not be smaller than that. maxValueSpan: null, // The range of dataZoom can not be larger than that. rangeMode: null // Array, can be 'value' or 'percent'. }, /** * @override */ init: function init(option, parentModel, ecModel) { /** * key like x_0, y_1 * @private * @type {Object} */ this._dataIntervalByAxis = {}; /** * @private */ this._dataInfo = {}; /** * key like x_0, y_1 * @private */ this._axisProxies = {}; /** * @readOnly */ this.textStyleModel; /** * @private */ this._autoThrottle = true; /** * It is `[rangeModeForMin, rangeModeForMax]`. * The optional values for `rangeMode`: * + `'value'` mode: the axis extent will always be determined by * `dataZoom.startValue` and `dataZoom.endValue`, despite * how data like and how `axis.min` and `axis.max` are. * + `'percent'` mode: `100` represents 100% of the `[dMin, dMax]`, * where `dMin` is `axis.min` if `axis.min` specified, otherwise `data.extent[0]`, * and `dMax` is `axis.max` if `axis.max` specified, otherwise `data.extent[1]`. * Axis extent will be determined by the result of the percent of `[dMin, dMax]`. * * For example, when users are using dynamic data (update data periodically via `setOption`), * if in `'value`' mode, the window will be kept in a fixed value range despite how * data are appended, while if in `'percent'` mode, whe window range will be changed alone with * the appended data (suppose `axis.min` and `axis.max` are not specified). * * @private */ this._rangePropMode = ['percent', 'percent']; var inputRawOption = retrieveRawOption(option); /** * Suppose a "main process" start at the point that model prepared (that is, * model initialized or merged or method called in `action`). * We should keep the `main process` idempotent, that is, given a set of values * on `option`, we get the same result. * * But sometimes, values on `option` will be updated for providing users * a "final calculated value" (`dataZoomProcessor` will do that). Those value * should not be the base/input of the `main process`. * * So in that case we should save and keep the input of the `main process` * separately, called `settledOption`. * * For example, consider the case: * (Step_1) brush zoom the grid by `toolbox.dataZoom`, * where the original input `option.startValue`, `option.endValue` are earsed by * calculated value. * (Step)2) click the legend to hide and show a series, * where the new range is calculated by the earsed `startValue` and `endValue`, * which brings incorrect result. * * @readOnly */ this.settledOption = inputRawOption; this.mergeDefaultAndTheme(option, ecModel); this.doInit(inputRawOption); }, /** * @override */ mergeOption: function mergeOption(newOption) { var inputRawOption = retrieveRawOption(newOption); //FIX #2591 zrUtil.merge(this.option, newOption, true); zrUtil.merge(this.settledOption, inputRawOption, true); this.doInit(inputRawOption); }, /** * @protected */ doInit: function doInit(inputRawOption) { var thisOption = this.option; // Disable realtime view update if canvas is not supported. if (!env.canvasSupported) { thisOption.realtime = false; } this._setDefaultThrottle(inputRawOption); updateRangeUse(this, inputRawOption); var settledOption = this.settledOption; each([['start', 'startValue'], ['end', 'endValue']], function (names, index) { // start/end has higher priority over startValue/endValue if they // both set, but we should make chart.setOption({endValue: 1000}) // effective, rather than chart.setOption({endValue: 1000, end: null}). if (this._rangePropMode[index] === 'value') { thisOption[names[0]] = settledOption[names[0]] = null; } // Otherwise do nothing and use the merge result. }, this); this.textStyleModel = this.getModel('textStyle'); this._resetTarget(); this._giveAxisProxies(); }, /** * @private */ _giveAxisProxies: function _giveAxisProxies() { var axisProxies = this._axisProxies; this.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel, ecModel) { var axisModel = this.dependentModels[dimNames.axis][axisIndex]; // If exists, share axisProxy with other dataZoomModels. var axisProxy = axisModel.__dzAxisProxy || ( // Use the first dataZoomModel as the main model of axisProxy. axisModel.__dzAxisProxy = new AxisProxy(dimNames.name, axisIndex, this, ecModel)); // FIXME // dispose __dzAxisProxy axisProxies[dimNames.name + '_' + axisIndex] = axisProxy; }, this); }, /** * @private */ _resetTarget: function _resetTarget() { var thisOption = this.option; var autoMode = this._judgeAutoMode(); eachAxisDim(function (dimNames) { var axisIndexName = dimNames.axisIndex; thisOption[axisIndexName] = modelUtil.normalizeToArray(thisOption[axisIndexName]); }, this); if (autoMode === 'axisIndex') { this._autoSetAxisIndex(); } else if (autoMode === 'orient') { this._autoSetOrient(); } }, /** * @private */ _judgeAutoMode: function _judgeAutoMode() { // Auto set only works for setOption at the first time. // The following is user's reponsibility. So using merged // option is OK. var thisOption = this.option; var hasIndexSpecified = false; eachAxisDim(function (dimNames) { // When user set axisIndex as a empty array, we think that user specify axisIndex // but do not want use auto mode. Because empty array may be encountered when // some error occured. if (thisOption[dimNames.axisIndex] != null) { hasIndexSpecified = true; } }, this); var orient = thisOption.orient; if (orient == null && hasIndexSpecified) { return 'orient'; } else if (!hasIndexSpecified) { if (orient == null) { thisOption.orient = 'horizontal'; } return 'axisIndex'; } }, /** * @private */ _autoSetAxisIndex: function _autoSetAxisIndex() { var autoAxisIndex = true; var orient = this.get('orient', true); var thisOption = this.option; var dependentModels = this.dependentModels; if (autoAxisIndex) { // Find axis that parallel to dataZoom as default. var dimName = orient === 'vertical' ? 'y' : 'x'; if (dependentModels[dimName + 'Axis'].length) { thisOption[dimName + 'AxisIndex'] = [0]; autoAxisIndex = false; } else { each(dependentModels.singleAxis, function (singleAxisModel) { if (autoAxisIndex && singleAxisModel.get('orient', true) === orient) { thisOption.singleAxisIndex = [singleAxisModel.componentIndex]; autoAxisIndex = false; } }); } } if (autoAxisIndex) { // Find the first category axis as default. (consider polar) eachAxisDim(function (dimNames) { if (!autoAxisIndex) { return; } var axisIndices = []; var axisModels = this.dependentModels[dimNames.axis]; if (axisModels.length && !axisIndices.length) { for (var i = 0, len = axisModels.length; i < len; i++) { if (axisModels[i].get('type') === 'category') { axisIndices.push(i); } } } thisOption[dimNames.axisIndex] = axisIndices; if (axisIndices.length) { autoAxisIndex = false; } }, this); } if (autoAxisIndex) { // FIXME // 这里是兼容ec2的写法(没指定xAxisIndex和yAxisIndex时把scatter和双数值轴折柱纳入dataZoom控制), // 但是实际是否需要Grid.js#getScaleByOption来判断(考虑time,log等axis type)? // If both dataZoom.xAxisIndex and dataZoom.yAxisIndex is not specified, // dataZoom component auto adopts series that reference to // both xAxis and yAxis which type is 'value'. this.ecModel.eachSeries(function (seriesModel) { if (this._isSeriesHasAllAxesTypeOf(seriesModel, 'value')) { eachAxisDim(function (dimNames) { var axisIndices = thisOption[dimNames.axisIndex]; var axisIndex = seriesModel.get(dimNames.axisIndex); var axisId = seriesModel.get(dimNames.axisId); var axisModel = seriesModel.ecModel.queryComponents({ mainType: dimNames.axis, index: axisIndex, id: axisId })[0]; axisIndex = axisModel.componentIndex; if (zrUtil.indexOf(axisIndices, axisIndex) < 0) { axisIndices.push(axisIndex); } }); } }, this); } }, /** * @private */ _autoSetOrient: function _autoSetOrient() { var dim; // Find the first axis this.eachTargetAxis(function (dimNames) { !dim && (dim = dimNames.name); }, this); this.option.orient = dim === 'y' ? 'vertical' : 'horizontal'; }, /** * @private */ _isSeriesHasAllAxesTypeOf: function _isSeriesHasAllAxesTypeOf(seriesModel, axisType) { // FIXME // 需要series的xAxisIndex和yAxisIndex都首先自动设置上。 // 例如series.type === scatter时。 var is = true; eachAxisDim(function (dimNames) { var seriesAxisIndex = seriesModel.get(dimNames.axisIndex); var axisModel = this.dependentModels[dimNames.axis][seriesAxisIndex]; if (!axisModel || axisModel.get('type') !== axisType) { is = false; } }, this); return is; }, /** * @private */ _setDefaultThrottle: function _setDefaultThrottle(inputRawOption) { // When first time user set throttle, auto throttle ends. if (inputRawOption.hasOwnProperty('throttle')) { this._autoThrottle = false; } if (this._autoThrottle) { var globalOption = this.ecModel.option; this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20; } }, /** * @public */ getFirstTargetAxisModel: function getFirstTargetAxisModel() { var firstAxisModel; eachAxisDim(function (dimNames) { if (firstAxisModel == null) { var indices = this.get(dimNames.axisIndex); if (indices.length) { firstAxisModel = this.dependentModels[dimNames.axis][indices[0]]; } } }, this); return firstAxisModel; }, /** * @public * @param {Function} callback param: axisModel, dimNames, axisIndex, dataZoomModel, ecModel */ eachTargetAxis: function eachTargetAxis(callback, context) { var ecModel = this.ecModel; eachAxisDim(function (dimNames) { each(this.get(dimNames.axisIndex), function (axisIndex) { callback.call(context, dimNames, axisIndex, this, ecModel); }, this); }, this); }, /** * @param {string} dimName * @param {number} axisIndex * @return {module:echarts/component/dataZoom/AxisProxy} If not found, return null/undefined. */ getAxisProxy: function getAxisProxy(dimName, axisIndex) { return this._axisProxies[dimName + '_' + axisIndex]; }, /** * @param {string} dimName * @param {number} axisIndex * @return {module:echarts/model/Model} If not found, return null/undefined. */ getAxisModel: function getAxisModel(dimName, axisIndex) { var axisProxy = this.getAxisProxy(dimName, axisIndex); return axisProxy && axisProxy.getAxisModel(); }, /** * If not specified, set to undefined. * * @public * @param {Object} opt * @param {number} [opt.start] * @param {number} [opt.end] * @param {number} [opt.startValue] * @param {number} [opt.endValue] */ setRawRange: function setRawRange(opt) { var thisOption = this.option; var settledOption = this.settledOption; each([['start', 'startValue'], ['end', 'endValue']], function (names) { // Consider the pair : // If one has value and the other one is `null/undefined`, we both set them // to `settledOption`. This strategy enables the feature to clear the original // value in `settledOption` to `null/undefined`. // But if both of them are `null/undefined`, we do not set them to `settledOption` // and keep `settledOption` with the original value. This strategy enables users to // only set but not set when calling // `dispatchAction`. // The pair is treated in the same way. if (opt[names[0]] != null || opt[names[1]] != null) { thisOption[names[0]] = settledOption[names[0]] = opt[names[0]]; thisOption[names[1]] = settledOption[names[1]] = opt[names[1]]; } }, this); updateRangeUse(this, opt); }, /** * @public * @param {Object} opt * @param {number} [opt.start] * @param {number} [opt.end] * @param {number} [opt.startValue] * @param {number} [opt.endValue] */ setCalculatedRange: function setCalculatedRange(opt) { var option = this.option; each(['start', 'startValue', 'end', 'endValue'], function (name) { option[name] = opt[name]; }); }, /** * @public * @return {Array.} [startPercent, endPercent] */ getPercentRange: function getPercentRange() { var axisProxy = this.findRepresentativeAxisProxy(); if (axisProxy) { return axisProxy.getDataPercentWindow(); } }, /** * @public * For example, chart.getModel().getComponent('dataZoom').getValueRange('y', 0); * * @param {string} [axisDimName] * @param {number} [axisIndex] * @return {Array.} [startValue, endValue] value can only be '-' or finite number. */ getValueRange: function getValueRange(axisDimName, axisIndex) { if (axisDimName == null && axisIndex == null) { var axisProxy = this.findRepresentativeAxisProxy(); if (axisProxy) { return axisProxy.getDataValueWindow(); } } else { return this.getAxisProxy(axisDimName, axisIndex).getDataValueWindow(); } }, /** * @public * @param {module:echarts/model/Model} [axisModel] If axisModel given, find axisProxy * corresponding to the axisModel * @return {module:echarts/component/dataZoom/AxisProxy} */ findRepresentativeAxisProxy: function findRepresentativeAxisProxy(axisModel) { if (axisModel) { return axisModel.__dzAxisProxy; } // Find the first hosted axisProxy var axisProxies = this._axisProxies; for (var key in axisProxies) { if (axisProxies.hasOwnProperty(key) && axisProxies[key].hostedBy(this)) { return axisProxies[key]; } } // If no hosted axis find not hosted axisProxy. // Consider this case: dataZoomModel1 and dataZoomModel2 control the same axis, // and the option.start or option.end settings are different. The percentRange // should follow axisProxy. // (We encounter this problem in toolbox data zoom.) for (var key in axisProxies) { if (axisProxies.hasOwnProperty(key) && !axisProxies[key].hostedBy(this)) { return axisProxies[key]; } } }, /** * @return {Array.} */ getRangePropMode: function getRangePropMode() { return this._rangePropMode.slice(); } }); /** * Retrieve the those raw params from option, which will be cached separately. * becasue they will be overwritten by normalized/calculated values in the main * process. */ function retrieveRawOption(option) { var ret = {}; each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) { option.hasOwnProperty(name) && (ret[name] = option[name]); }); return ret; } function updateRangeUse(dataZoomModel, inputRawOption) { var rangePropMode = dataZoomModel._rangePropMode; var rangeModeInOption = dataZoomModel.get('rangeMode'); each([['start', 'startValue'], ['end', 'endValue']], function (names, index) { var percentSpecified = inputRawOption[names[0]] != null; var valueSpecified = inputRawOption[names[1]] != null; if (percentSpecified && !valueSpecified) { rangePropMode[index] = 'percent'; } else if (!percentSpecified && valueSpecified) { rangePropMode[index] = 'value'; } else if (rangeModeInOption) { rangePropMode[index] = rangeModeInOption[index]; } else if (percentSpecified) { // percentSpecified && valueSpecified rangePropMode[index] = 'percent'; } // else remain its original setting. }); } var _default = DataZoomModel; module.exports = _default; /***/ }), /* 809 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/helper.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var formatUtil = __webpack_require__(/*! ../../util/format */ 490); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var AXIS_DIMS = ['x', 'y', 'z', 'radius', 'angle', 'single']; // Supported coords. var COORDS = ['cartesian2d', 'polar', 'singleAxis']; /** * @param {string} coordType * @return {boolean} */ function isCoordSupported(coordType) { return zrUtil.indexOf(COORDS, coordType) >= 0; } /** * Create "each" method to iterate names. * * @pubilc * @param {Array.} names * @param {Array.=} attrs * @return {Function} */ function createNameEach(names, attrs) { names = names.slice(); var capitalNames = zrUtil.map(names, formatUtil.capitalFirst); attrs = (attrs || []).slice(); var capitalAttrs = zrUtil.map(attrs, formatUtil.capitalFirst); return function (callback, context) { zrUtil.each(names, function (name, index) { var nameObj = { name: name, capital: capitalNames[index] }; for (var j = 0; j < attrs.length; j++) { nameObj[attrs[j]] = name + capitalAttrs[j]; } callback.call(context, nameObj); }); }; } /** * Iterate each dimension name. * * @public * @param {Function} callback The parameter is like: * { * name: 'angle', * capital: 'Angle', * axis: 'angleAxis', * axisIndex: 'angleAixs', * index: 'angleIndex' * } * @param {Object} context */ var eachAxisDim = createNameEach(AXIS_DIMS, ['axisIndex', 'axis', 'index', 'id']); /** * If tow dataZoomModels has the same axis controlled, we say that they are 'linked'. * dataZoomModels and 'links' make up one or more graphics. * This function finds the graphic where the source dataZoomModel is in. * * @public * @param {Function} forEachNode Node iterator. * @param {Function} forEachEdgeType edgeType iterator * @param {Function} edgeIdGetter Giving node and edgeType, return an array of edge id. * @return {Function} Input: sourceNode, Output: Like {nodes: [], dims: {}} */ function createLinkedNodesFinder(forEachNode, forEachEdgeType, edgeIdGetter) { return function (sourceNode) { var result = { nodes: [], records: {} // key: edgeType.name, value: Object (key: edge id, value: boolean). }; forEachEdgeType(function (edgeType) { result.records[edgeType.name] = {}; }); if (!sourceNode) { return result; } absorb(sourceNode, result); var existsLink; do { existsLink = false; forEachNode(processSingleNode); } while (existsLink); function processSingleNode(node) { if (!isNodeAbsorded(node, result) && isLinked(node, result)) { absorb(node, result); existsLink = true; } } return result; }; function isNodeAbsorded(node, result) { return zrUtil.indexOf(result.nodes, node) >= 0; } function isLinked(node, result) { var hasLink = false; forEachEdgeType(function (edgeType) { zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) { result.records[edgeType.name][edgeId] && (hasLink = true); }); }); return hasLink; } function absorb(node, result) { result.nodes.push(node); forEachEdgeType(function (edgeType) { zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) { result.records[edgeType.name][edgeId] = true; }); }); } } exports.isCoordSupported = isCoordSupported; exports.createNameEach = createNameEach; exports.eachAxisDim = eachAxisDim; exports.createLinkedNodesFinder = createLinkedNodesFinder; /***/ }), /* 810 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/AxisProxy.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var helper = __webpack_require__(/*! ./helper */ 809); var sliderMove = __webpack_require__(/*! ../helper/sliderMove */ 690); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var asc = numberUtil.asc; /** * Operate single axis. * One axis can only operated by one axis operator. * Different dataZoomModels may be defined to operate the same axis. * (i.e. 'inside' data zoom and 'slider' data zoom components) * So dataZoomModels share one axisProxy in that case. * * @class */ var AxisProxy = function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) { /** * @private * @type {string} */ this._dimName = dimName; /** * @private */ this._axisIndex = axisIndex; /** * @private * @type {Array.} */ this._valueWindow; /** * @private * @type {Array.} */ this._percentWindow; /** * @private * @type {Array.} */ this._dataExtent; /** * {minSpan, maxSpan, minValueSpan, maxValueSpan} * @private * @type {Object} */ this._minMaxSpan; /** * @readOnly * @type {module: echarts/model/Global} */ this.ecModel = ecModel; /** * @private * @type {module: echarts/component/dataZoom/DataZoomModel} */ this._dataZoomModel = dataZoomModel; // /** // * @readOnly // * @private // */ // this.hasSeriesStacked; }; AxisProxy.prototype = { constructor: AxisProxy, /** * Whether the axisProxy is hosted by dataZoomModel. * * @public * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel * @return {boolean} */ hostedBy: function hostedBy(dataZoomModel) { return this._dataZoomModel === dataZoomModel; }, /** * @return {Array.} Value can only be NaN or finite value. */ getDataValueWindow: function getDataValueWindow() { return this._valueWindow.slice(); }, /** * @return {Array.} */ getDataPercentWindow: function getDataPercentWindow() { return this._percentWindow.slice(); }, /** * @public * @param {number} axisIndex * @return {Array} seriesModels */ getTargetSeriesModels: function getTargetSeriesModels() { var seriesModels = []; var ecModel = this.ecModel; ecModel.eachSeries(function (seriesModel) { if (helper.isCoordSupported(seriesModel.get('coordinateSystem'))) { var dimName = this._dimName; var axisModel = ecModel.queryComponents({ mainType: dimName + 'Axis', index: seriesModel.get(dimName + 'AxisIndex'), id: seriesModel.get(dimName + 'AxisId') })[0]; if (this._axisIndex === (axisModel && axisModel.componentIndex)) { seriesModels.push(seriesModel); } } }, this); return seriesModels; }, getAxisModel: function getAxisModel() { return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex); }, getOtherAxisModel: function getOtherAxisModel() { var axisDim = this._dimName; var ecModel = this.ecModel; var axisModel = this.getAxisModel(); var isCartesian = axisDim === 'x' || axisDim === 'y'; var otherAxisDim; var coordSysIndexName; if (isCartesian) { coordSysIndexName = 'gridIndex'; otherAxisDim = axisDim === 'x' ? 'y' : 'x'; } else { coordSysIndexName = 'polarIndex'; otherAxisDim = axisDim === 'angle' ? 'radius' : 'angle'; } var foundOtherAxisModel; ecModel.eachComponent(otherAxisDim + 'Axis', function (otherAxisModel) { if ((otherAxisModel.get(coordSysIndexName) || 0) === (axisModel.get(coordSysIndexName) || 0)) { foundOtherAxisModel = otherAxisModel; } }); return foundOtherAxisModel; }, getMinMaxSpan: function getMinMaxSpan() { return zrUtil.clone(this._minMaxSpan); }, /** * Only calculate by given range and this._dataExtent, do not change anything. * * @param {Object} opt * @param {number} [opt.start] * @param {number} [opt.end] * @param {number} [opt.startValue] * @param {number} [opt.endValue] */ calculateDataWindow: function calculateDataWindow(opt) { var dataExtent = this._dataExtent; var axisModel = this.getAxisModel(); var scale = axisModel.axis.scale; var rangePropMode = this._dataZoomModel.getRangePropMode(); var percentExtent = [0, 100]; var percentWindow = []; var valueWindow = []; var hasPropModeValue; each(['start', 'end'], function (prop, idx) { var boundPercent = opt[prop]; var boundValue = opt[prop + 'Value']; // Notice: dataZoom is based either on `percentProp` ('start', 'end') or // on `valueProp` ('startValue', 'endValue'). (They are based on the data extent // but not min/max of axis, which will be calculated by data window then). // The former one is suitable for cases that a dataZoom component controls multiple // axes with different unit or extent, and the latter one is suitable for accurate // zoom by pixel (e.g., in dataZoomSelect). // we use `getRangePropMode()` to mark which prop is used. `rangePropMode` is updated // only when setOption or dispatchAction, otherwise it remains its original value. // (Why not only record `percentProp` and always map to `valueProp`? Because // the map `valueProp` -> `percentProp` -> `valueProp` probably not the original // `valueProp`. consider two axes constrolled by one dataZoom. They have different // data extent. All of values that are overflow the `dataExtent` will be calculated // to percent '100%'). if (rangePropMode[idx] === 'percent') { boundPercent == null && (boundPercent = percentExtent[idx]); // Use scale.parse to math round for category or time axis. boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent)); } else { hasPropModeValue = true; boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue); // Calculating `percent` from `value` may be not accurate, because // This calculation can not be inversed, because all of values that // are overflow the `dataExtent` will be calculated to percent '100%' boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent); } // valueWindow[idx] = round(boundValue); // percentWindow[idx] = round(boundPercent); valueWindow[idx] = boundValue; percentWindow[idx] = boundPercent; }); asc(valueWindow); asc(percentWindow); // The windows from user calling of `dispatchAction` might be out of the extent, // or do not obey the `min/maxSpan`, `min/maxValueSpan`. But we dont restrict window // by `zoomLock` here, because we see `zoomLock` just as a interaction constraint, // where API is able to initialize/modify the window size even though `zoomLock` // specified. var spans = this._minMaxSpan; hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true); function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) { var suffix = toValue ? 'Span' : 'ValueSpan'; sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]); for (var i = 0; i < 2; i++) { toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true); toValue && (toWindow[i] = scale.parse(toWindow[i])); } } return { valueWindow: valueWindow, percentWindow: percentWindow }; }, /** * Notice: reset should not be called before series.restoreData() called, * so it is recommanded to be called in "process stage" but not "model init * stage". * * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel */ reset: function reset(dataZoomModel) { if (dataZoomModel !== this._dataZoomModel) { return; } var targetSeries = this.getTargetSeriesModels(); // Culculate data window and data extent, and record them. this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries); // this.hasSeriesStacked = false; // each(targetSeries, function (series) { // var data = series.getData(); // var dataDim = data.mapDimension(this._dimName); // var stackedDimension = data.getCalculationInfo('stackedDimension'); // if (stackedDimension && stackedDimension === dataDim) { // this.hasSeriesStacked = true; // } // }, this); // `calculateDataWindow` uses min/maxSpan. setMinMaxSpan(this); var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption); this._valueWindow = dataWindow.valueWindow; this._percentWindow = dataWindow.percentWindow; // Update axis setting then. setAxisModel(this); }, /** * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel */ restore: function restore(dataZoomModel) { if (dataZoomModel !== this._dataZoomModel) { return; } this._valueWindow = this._percentWindow = null; setAxisModel(this, true); }, /** * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel */ filterData: function filterData(dataZoomModel, api) { if (dataZoomModel !== this._dataZoomModel) { return; } var axisDim = this._dimName; var seriesModels = this.getTargetSeriesModels(); var filterMode = dataZoomModel.get('filterMode'); var valueWindow = this._valueWindow; if (filterMode === 'none') { return; } // FIXME // Toolbox may has dataZoom injected. And if there are stacked bar chart // with NaN data, NaN will be filtered and stack will be wrong. // So we need to force the mode to be set empty. // In fect, it is not a big deal that do not support filterMode-'filter' // when using toolbox#dataZoom, utill tooltip#dataZoom support "single axis // selection" some day, which might need "adapt to data extent on the // otherAxis", which is disabled by filterMode-'empty'. // But currently, stack has been fixed to based on value but not index, // so this is not an issue any more. // var otherAxisModel = this.getOtherAxisModel(); // if (dataZoomModel.get('$fromToolbox') // && otherAxisModel // && otherAxisModel.hasSeriesStacked // ) { // filterMode = 'empty'; // } // TODO // filterMode 'weakFilter' and 'empty' is not optimized for huge data yet. each(seriesModels, function (seriesModel) { var seriesData = seriesModel.getData(); var dataDims = seriesData.mapDimension(axisDim, true); if (!dataDims.length) { return; } if (filterMode === 'weakFilter') { seriesData.filterSelf(function (dataIndex) { var leftOut; var rightOut; var hasValue; for (var i = 0; i < dataDims.length; i++) { var value = seriesData.get(dataDims[i], dataIndex); var thisHasValue = !isNaN(value); var thisLeftOut = value < valueWindow[0]; var thisRightOut = value > valueWindow[1]; if (thisHasValue && !thisLeftOut && !thisRightOut) { return true; } thisHasValue && (hasValue = true); thisLeftOut && (leftOut = true); thisRightOut && (rightOut = true); } // If both left out and right out, do not filter. return hasValue && leftOut && rightOut; }); } else { each(dataDims, function (dim) { if (filterMode === 'empty') { seriesModel.setData(seriesData = seriesData.map(dim, function (value) { return !isInWindow(value) ? NaN : value; })); } else { var range = {}; range[dim] = valueWindow; // console.time('select'); seriesData.selectRange(range); // console.timeEnd('select'); } }); } each(dataDims, function (dim) { seriesData.setApproximateExtent(valueWindow, dim); }); }); function isInWindow(value) { return value >= valueWindow[0] && value <= valueWindow[1]; } } }; function calculateDataExtent(axisProxy, axisDim, seriesModels) { var dataExtent = [Infinity, -Infinity]; each(seriesModels, function (seriesModel) { var seriesData = seriesModel.getData(); if (seriesData) { each(seriesData.mapDimension(axisDim, true), function (dim) { var seriesExtent = seriesData.getApproximateExtent(dim); seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]); seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]); }); } }); if (dataExtent[1] < dataExtent[0]) { dataExtent = [NaN, NaN]; } // It is important to get "consistent" extent when more then one axes is // controlled by a `dataZoom`, otherwise those axes will not be synchronized // when zooming. But it is difficult to know what is "consistent", considering // axes have different type or even different meanings (For example, two // time axes are used to compare data of the same date in different years). // So basically dataZoom just obtains extent by series.data (in category axis // extent can be obtained from axis.data). // Nevertheless, user can set min/max/scale on axes to make extent of axes // consistent. fixExtentByAxis(axisProxy, dataExtent); return dataExtent; } function fixExtentByAxis(axisProxy, dataExtent) { var axisModel = axisProxy.getAxisModel(); var min = axisModel.getMin(true); // For category axis, if min/max/scale are not set, extent is determined // by axis.data by default. var isCategoryAxis = axisModel.get('type') === 'category'; var axisDataLen = isCategoryAxis && axisModel.getCategories().length; if (min != null && min !== 'dataMin' && typeof min !== 'function') { dataExtent[0] = min; } else if (isCategoryAxis) { dataExtent[0] = axisDataLen > 0 ? 0 : NaN; } var max = axisModel.getMax(true); if (max != null && max !== 'dataMax' && typeof max !== 'function') { dataExtent[1] = max; } else if (isCategoryAxis) { dataExtent[1] = axisDataLen > 0 ? axisDataLen - 1 : NaN; } if (!axisModel.get('scale', true)) { dataExtent[0] > 0 && (dataExtent[0] = 0); dataExtent[1] < 0 && (dataExtent[1] = 0); } // For value axis, if min/max/scale are not set, we just use the extent obtained // by series data, which may be a little different from the extent calculated by // `axisHelper.getScaleExtent`. But the different just affects the experience a // little when zooming. So it will not be fixed until some users require it strongly. return dataExtent; } function setAxisModel(axisProxy, isRestore) { var axisModel = axisProxy.getAxisModel(); var percentWindow = axisProxy._percentWindow; var valueWindow = axisProxy._valueWindow; if (!percentWindow) { return; } // [0, 500]: arbitrary value, guess axis extent. var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]); precision = Math.min(precision, 20); // isRestore or isFull var useOrigin = isRestore || percentWindow[0] === 0 && percentWindow[1] === 100; axisModel.setRange(useOrigin ? null : +valueWindow[0].toFixed(precision), useOrigin ? null : +valueWindow[1].toFixed(precision)); } function setMinMaxSpan(axisProxy) { var minMaxSpan = axisProxy._minMaxSpan = {}; var dataZoomModel = axisProxy._dataZoomModel; var dataExtent = axisProxy._dataExtent; each(['min', 'max'], function (minMax) { var percentSpan = dataZoomModel.get(minMax + 'Span'); var valueSpan = dataZoomModel.get(minMax + 'ValueSpan'); valueSpan != null && (valueSpan = axisProxy.getAxisModel().axis.scale.parse(valueSpan)); // minValueSpan and maxValueSpan has higher priority than minSpan and maxSpan if (valueSpan != null) { percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true); } else if (percentSpan != null) { valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0]; } minMaxSpan[minMax + 'Span'] = percentSpan; minMaxSpan[minMax + 'ValueSpan'] = valueSpan; }); } var _default = AxisProxy; module.exports = _default; /***/ }), /* 811 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/DataZoomView.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ComponentView = __webpack_require__(/*! ../../view/Component */ 507); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = ComponentView.extend({ type: 'dataZoom', render: function render(dataZoomModel, ecModel, api, payload) { this.dataZoomModel = dataZoomModel; this.ecModel = ecModel; this.api = api; }, /** * Find the first target coordinate system. * * @protected * @return {Object} { * grid: [ * {model: coord0, axisModels: [axis1, axis3], coordIndex: 1}, * {model: coord1, axisModels: [axis0, axis2], coordIndex: 0}, * ... * ], // cartesians must not be null/undefined. * polar: [ * {model: coord0, axisModels: [axis4], coordIndex: 0}, * ... * ], // polars must not be null/undefined. * singleAxis: [ * {model: coord0, axisModels: [], coordIndex: 0} * ] */ getTargetCoordInfo: function getTargetCoordInfo() { var dataZoomModel = this.dataZoomModel; var ecModel = this.ecModel; var coordSysLists = {}; dataZoomModel.eachTargetAxis(function (dimNames, axisIndex) { var axisModel = ecModel.getComponent(dimNames.axis, axisIndex); if (axisModel) { var coordModel = axisModel.getCoordSysModel(); coordModel && save(coordModel, axisModel, coordSysLists[coordModel.mainType] || (coordSysLists[coordModel.mainType] = []), coordModel.componentIndex); } }, this); function save(coordModel, axisModel, store, coordIndex) { var item; for (var i = 0; i < store.length; i++) { if (store[i].model === coordModel) { item = store[i]; break; } } if (!item) { store.push(item = { model: coordModel, axisModels: [], coordIndex: coordIndex }); } item.axisModels.push(axisModel); } return coordSysLists; } }); module.exports = _default; /***/ }), /* 812 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DataZoomModel = __webpack_require__(/*! ./DataZoomModel */ 808); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = DataZoomModel.extend({ type: 'dataZoom.select' }); module.exports = _default; /***/ }), /* 813 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/SelectZoomView.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DataZoomView = __webpack_require__(/*! ./DataZoomView */ 811); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = DataZoomView.extend({ type: 'dataZoom.select' }); module.exports = _default; /***/ }), /* 814 */ /*!*************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js ***! \*************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var _util = __webpack_require__(/*! zrender/lib/core/util */ 403); var createHashMap = _util.createHashMap; var each = _util.each; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerProcessor({ // `dataZoomProcessor` will only be performed in needed series. Consider if // there is a line series and a pie series, it is better not to update the // line series if only pie series is needed to be updated. getTargetSeries: function getTargetSeries(ecModel) { var seriesModelMap = createHashMap(); ecModel.eachComponent('dataZoom', function (dataZoomModel) { dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) { var axisProxy = dataZoomModel.getAxisProxy(dimNames.name, axisIndex); each(axisProxy.getTargetSeriesModels(), function (seriesModel) { seriesModelMap.set(seriesModel.uid, seriesModel); }); }); }); return seriesModelMap; }, modifyOutputEnd: true, // Consider appendData, where filter should be performed. Because data process is // in block mode currently, it is not need to worry about that the overallProgress // execute every frame. overallReset: function overallReset(ecModel, api) { ecModel.eachComponent('dataZoom', function (dataZoomModel) { // We calculate window and reset axis here but not in model // init stage and not after action dispatch handler, because // reset should be called after seriesData.restoreData. dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) { dataZoomModel.getAxisProxy(dimNames.name, axisIndex).reset(dataZoomModel, api); }); // Caution: data zoom filtering is order sensitive when using // percent range and no min/max/scale set on axis. // For example, we have dataZoom definition: // [ // {xAxisIndex: 0, start: 30, end: 70}, // {yAxisIndex: 0, start: 20, end: 80} // ] // In this case, [20, 80] of y-dataZoom should be based on data // that have filtered by x-dataZoom using range of [30, 70], // but should not be based on full raw data. Thus sliding // x-dataZoom will change both ranges of xAxis and yAxis, // while sliding y-dataZoom will only change the range of yAxis. // So we should filter x-axis after reset x-axis immediately, // and then reset y-axis and filter y-axis. dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) { dataZoomModel.getAxisProxy(dimNames.name, axisIndex).filterData(dataZoomModel, api); }); }); ecModel.eachComponent('dataZoom', function (dataZoomModel) { // Fullfill all of the range props so that user // is able to get them from chart.getOption(). var axisProxy = dataZoomModel.findRepresentativeAxisProxy(); var percentRange = axisProxy.getDataPercentWindow(); var valueRange = axisProxy.getDataValueWindow(); dataZoomModel.setCalculatedRange({ start: percentRange[0], end: percentRange[1], startValue: valueRange[0], endValue: valueRange[1] }); }); } }); /***/ }), /* 815 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/dataZoomAction.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var helper = __webpack_require__(/*! ./helper */ 809); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerAction('dataZoom', function (payload, ecModel) { var linkedNodesFinder = helper.createLinkedNodesFinder(zrUtil.bind(ecModel.eachComponent, ecModel, 'dataZoom'), helper.eachAxisDim, function (model, dimNames) { return model.get(dimNames.axisIndex); }); var effectedModels = []; ecModel.eachComponent({ mainType: 'dataZoom', query: payload }, function (model, index) { effectedModels.push.apply(effectedModels, linkedNodesFinder(model).nodes); }); zrUtil.each(effectedModels, function (dataZoomModel, index) { dataZoomModel.setRawRange({ start: payload.start, end: payload.end, startValue: payload.startValue, endValue: payload.endValue }); }); }); /***/ }), /* 816 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/feature/Restore.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../../echarts */ 398); var history = __webpack_require__(/*! ../../dataZoom/history */ 805); var lang = __webpack_require__(/*! ../../../lang */ 513); var featureManager = __webpack_require__(/*! ../featureManager */ 797); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var restoreLang = lang.toolbox.restore; function Restore(model) { this.model = model; } Restore.defaultOption = { show: true, /* eslint-disable */ icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5', /* eslint-enable */ title: restoreLang.title }; var proto = Restore.prototype; proto.onclick = function (ecModel, api, type) { history.clear(ecModel); api.dispatchAction({ type: 'restore', from: this.uid }); }; featureManager.register('restore', Restore); echarts.registerAction({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (payload, ecModel) { ecModel.resetOption('recreate'); }); var _default = Restore; module.exports = _default; /***/ }), /* 817 */ /*!******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/tooltip.js ***! \******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./axisPointer */ 747); __webpack_require__(/*! ./tooltip/TooltipModel */ 818); __webpack_require__(/*! ./tooltip/TooltipView */ 819); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // FIXME Better way to pack data in graphic element /** * @action * @property {string} type * @property {number} seriesIndex * @property {number} dataIndex * @property {number} [x] * @property {number} [y] */ echarts.registerAction({ type: 'showTip', event: 'showTip', update: 'tooltip:manuallyShowTip' }, // noop function () {}); echarts.registerAction({ type: 'hideTip', event: 'hideTip', update: 'tooltip:manuallyHideTip' }, // noop function () {}); /***/ }), /* 818 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/tooltip/TooltipModel.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendComponentModel({ type: 'tooltip', dependencies: ['axisPointer'], defaultOption: { zlevel: 0, z: 60, show: true, // tooltip主体内容 showContent: true, // 'trigger' only works on coordinate system. // 'item' | 'axis' | 'none' trigger: 'item', // 'click' | 'mousemove' | 'none' triggerOn: 'mousemove|click', alwaysShowContent: false, displayMode: 'single', // 'single' | 'multipleByCoordSys' renderMode: 'auto', // 'auto' | 'html' | 'richText' // 'auto': use html by default, and use non-html if `document` is not defined // 'html': use html for tooltip // 'richText': use canvas, svg, and etc. for tooltip // 位置 {Array} | {Function} // position: null // Consider triggered from axisPointer handle, verticalAlign should be 'middle' // align: null, // verticalAlign: null, // 是否约束 content 在 viewRect 中。默认 false 是为了兼容以前版本。 confine: false, // 内容格式器:{string}(Template) ¦ {Function} // formatter: null showDelay: 0, // 隐藏延迟,单位ms hideDelay: 100, // 动画变换时间,单位s transitionDuration: 0.4, enterable: false, // 提示背景颜色,默认为透明度为0.7的黑色 backgroundColor: 'rgba(50,50,50,0.7)', // 提示边框颜色 borderColor: '#333', // 提示边框圆角,单位px,默认为4 borderRadius: 4, // 提示边框线宽,单位px,默认为0(无边框) borderWidth: 0, // 提示内边距,单位px,默认各方向内边距为5, // 接受数组分别设定上右下左边距,同css padding: 5, // Extra css text extraCssText: '', // 坐标轴指示器,坐标轴触发有效 axisPointer: { // 默认为直线 // 可选为:'line' | 'shadow' | 'cross' type: 'line', // type 为 line 的时候有效,指定 tooltip line 所在的轴,可选 // 可选 'x' | 'y' | 'angle' | 'radius' | 'auto' // 默认 'auto',会选择类型为 category 的轴,对于双数值轴,笛卡尔坐标系会默认选择 x 轴 // 极坐标系会默认选择 angle 轴 axis: 'auto', animation: 'auto', animationDurationUpdate: 200, animationEasingUpdate: 'exponentialOut', crossStyle: { color: '#999', width: 1, type: 'dashed', // TODO formatter textStyle: {} // lineStyle and shadowStyle should not be specified here, // otherwise it will always override those styles on option.axisPointer. } }, textStyle: { color: '#fff', fontSize: 14 } } }); module.exports = _default; /***/ }), /* 819 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/tooltip/TooltipView.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var TooltipContent = __webpack_require__(/*! ./TooltipContent */ 820); var TooltipRichContent = __webpack_require__(/*! ./TooltipRichContent */ 821); var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var findPointFromSeries = __webpack_require__(/*! ../axisPointer/findPointFromSeries */ 749); var layoutUtil = __webpack_require__(/*! ../../util/layout */ 488); var Model = __webpack_require__(/*! ../../model/Model */ 445); var globalListener = __webpack_require__(/*! ../axisPointer/globalListener */ 752); var axisHelper = __webpack_require__(/*! ../../coord/axisHelper */ 533); var axisPointerViewHelper = __webpack_require__(/*! ../axisPointer/viewHelper */ 755); var _model = __webpack_require__(/*! ../../util/model */ 444); var getTooltipRenderMode = _model.getTooltipRenderMode; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var bind = zrUtil.bind; var each = zrUtil.each; var parsePercent = numberUtil.parsePercent; var proxyRect = new graphic.Rect({ shape: { x: -1, y: -1, width: 2, height: 2 } }); var _default = echarts.extendComponentView({ type: 'tooltip', init: function init(ecModel, api) { if (env.node) { return; } var tooltipModel = ecModel.getComponent('tooltip'); var renderMode = tooltipModel.get('renderMode'); this._renderMode = getTooltipRenderMode(renderMode); var tooltipContent; if (this._renderMode === 'html') { tooltipContent = new TooltipContent(api.getDom(), api, { appendToBody: tooltipModel.get('appendToBody', true) }); this._newLine = '
'; } else { tooltipContent = new TooltipRichContent(api); this._newLine = '\n'; } this._tooltipContent = tooltipContent; }, render: function render(tooltipModel, ecModel, api) { if (env.node) { return; } // Reset this.group.removeAll(); /** * @private * @type {module:echarts/component/tooltip/TooltipModel} */ this._tooltipModel = tooltipModel; /** * @private * @type {module:echarts/model/Global} */ this._ecModel = ecModel; /** * @private * @type {module:echarts/ExtensionAPI} */ this._api = api; /** * Should be cleaned when render. * @private * @type {Array.>} */ this._lastDataByCoordSys = null; /** * @private * @type {boolean} */ this._alwaysShowContent = tooltipModel.get('alwaysShowContent'); var tooltipContent = this._tooltipContent; tooltipContent.update(tooltipModel); tooltipContent.setEnterable(tooltipModel.get('enterable')); this._initGlobalListener(); this._keepShow(); }, _initGlobalListener: function _initGlobalListener() { var tooltipModel = this._tooltipModel; var triggerOn = tooltipModel.get('triggerOn'); globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) { // If 'none', it is not controlled by mouse totally. if (triggerOn !== 'none') { if (triggerOn.indexOf(currTrigger) >= 0) { this._tryShow(e, dispatchAction); } else if (currTrigger === 'leave') { this._hide(dispatchAction); } } }, this)); }, _keepShow: function _keepShow() { var tooltipModel = this._tooltipModel; var ecModel = this._ecModel; var api = this._api; // Try to keep the tooltip show when refreshing if (this._lastX != null && this._lastY != null // When user is willing to control tooltip totally using API, // self.manuallyShowTip({x, y}) might cause tooltip hide, // which is not expected. && tooltipModel.get('triggerOn') !== 'none') { var self = this; clearTimeout(this._refreshUpdateTimeout); this._refreshUpdateTimeout = setTimeout(function () { // Show tip next tick after other charts are rendered // In case highlight action has wrong result // FIXME !api.isDisposed() && self.manuallyShowTip(tooltipModel, ecModel, api, { x: self._lastX, y: self._lastY }); }); } }, /** * Show tip manually by * dispatchAction({ * type: 'showTip', * x: 10, * y: 10 * }); * Or * dispatchAction({ * type: 'showTip', * seriesIndex: 0, * dataIndex or dataIndexInside or name * }); * * TODO Batch */ manuallyShowTip: function manuallyShowTip(tooltipModel, ecModel, api, payload) { if (payload.from === this.uid || env.node) { return; } var dispatchAction = makeDispatchAction(payload, api); // Reset ticket this._ticket = ''; // When triggered from axisPointer. var dataByCoordSys = payload.dataByCoordSys; if (payload.tooltip && payload.x != null && payload.y != null) { var el = proxyRect; el.position = [payload.x, payload.y]; el.update(); el.tooltip = payload.tooltip; // Manually show tooltip while view is not using zrender elements. this._tryShow({ offsetX: payload.x, offsetY: payload.y, target: el }, dispatchAction); } else if (dataByCoordSys) { this._tryShow({ offsetX: payload.x, offsetY: payload.y, position: payload.position, dataByCoordSys: payload.dataByCoordSys, tooltipOption: payload.tooltipOption }, dispatchAction); } else if (payload.seriesIndex != null) { if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) { return; } var pointInfo = findPointFromSeries(payload, ecModel); var cx = pointInfo.point[0]; var cy = pointInfo.point[1]; if (cx != null && cy != null) { this._tryShow({ offsetX: cx, offsetY: cy, position: payload.position, target: pointInfo.el }, dispatchAction); } } else if (payload.x != null && payload.y != null) { // FIXME // should wrap dispatchAction like `axisPointer/globalListener` ? api.dispatchAction({ type: 'updateAxisPointer', x: payload.x, y: payload.y }); this._tryShow({ offsetX: payload.x, offsetY: payload.y, position: payload.position, target: api.getZr().findHover(payload.x, payload.y).target }, dispatchAction); } }, manuallyHideTip: function manuallyHideTip(tooltipModel, ecModel, api, payload) { var tooltipContent = this._tooltipContent; if (!this._alwaysShowContent && this._tooltipModel) { tooltipContent.hideLater(this._tooltipModel.get('hideDelay')); } this._lastX = this._lastY = null; if (payload.from !== this.uid) { this._hide(makeDispatchAction(payload, api)); } }, // Be compatible with previous design, that is, when tooltip.type is 'axis' and // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer // and tooltip. _manuallyAxisShowTip: function _manuallyAxisShowTip(tooltipModel, ecModel, api, payload) { var seriesIndex = payload.seriesIndex; var dataIndex = payload.dataIndex; var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo; if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) { return; } var seriesModel = ecModel.getSeriesByIndex(seriesIndex); if (!seriesModel) { return; } var data = seriesModel.getData(); var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]); if (tooltipModel.get('trigger') !== 'axis') { return; } api.dispatchAction({ type: 'updateAxisPointer', seriesIndex: seriesIndex, dataIndex: dataIndex, position: payload.position }); return true; }, _tryShow: function _tryShow(e, dispatchAction) { var el = e.target; var tooltipModel = this._tooltipModel; if (!tooltipModel) { return; } // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed this._lastX = e.offsetX; this._lastY = e.offsetY; var dataByCoordSys = e.dataByCoordSys; if (dataByCoordSys && dataByCoordSys.length) { this._showAxisTooltip(dataByCoordSys, e); } // Always show item tooltip if mouse is on the element with dataIndex else if (el && el.dataIndex != null) { this._lastDataByCoordSys = null; this._showSeriesItemTooltip(e, el, dispatchAction); } // Tooltip provided directly. Like legend. else if (el && el.tooltip) { this._lastDataByCoordSys = null; this._showComponentItemTooltip(e, el, dispatchAction); } else { this._lastDataByCoordSys = null; this._hide(dispatchAction); } }, _showOrMove: function _showOrMove(tooltipModel, cb) { // showDelay is used in this case: tooltip.enterable is set // as true. User intent to move mouse into tooltip and click // something. `showDelay` makes it easier to enter the content // but tooltip do not move immediately. var delay = tooltipModel.get('showDelay'); cb = zrUtil.bind(cb, this); clearTimeout(this._showTimout); delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb(); }, _showAxisTooltip: function _showAxisTooltip(dataByCoordSys, e) { var ecModel = this._ecModel; var globalTooltipModel = this._tooltipModel; var point = [e.offsetX, e.offsetY]; var singleDefaultHTML = []; var singleParamsList = []; var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]); var renderMode = this._renderMode; var newLine = this._newLine; var markers = {}; each(dataByCoordSys, function (itemCoordSys) { // var coordParamList = []; // var coordDefaultHTML = []; // var coordTooltipModel = buildTooltipModel([ // e.tooltipOption, // itemCoordSys.tooltipOption, // ecModel.getComponent(itemCoordSys.coordSysMainType, itemCoordSys.coordSysIndex), // globalTooltipModel // ]); // var displayMode = coordTooltipModel.get('displayMode'); // var paramsList = displayMode === 'single' ? singleParamsList : []; each(itemCoordSys.dataByAxis, function (item) { var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex); var axisValue = item.value; var seriesDefaultHTML = []; if (!axisModel || axisValue == null) { return; } var valueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt); zrUtil.each(item.seriesDataIndices, function (idxItem) { var series = ecModel.getSeriesByIndex(idxItem.seriesIndex); var dataIndex = idxItem.dataIndexInside; var dataParams = series && series.getDataParams(dataIndex); dataParams.axisDim = item.axisDim; dataParams.axisIndex = item.axisIndex; dataParams.axisType = item.axisType; dataParams.axisId = item.axisId; dataParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, axisValue); dataParams.axisValueLabel = valueLabel; if (dataParams) { singleParamsList.push(dataParams); var seriesTooltip = series.formatTooltip(dataIndex, true, null, renderMode); var html; if (zrUtil.isObject(seriesTooltip)) { html = seriesTooltip.html; var newMarkers = seriesTooltip.markers; zrUtil.merge(markers, newMarkers); } else { html = seriesTooltip; } seriesDefaultHTML.push(html); } }); // Default tooltip content // FIXME // (1) should be the first data which has name? // (2) themeRiver, firstDataIndex is array, and first line is unnecessary. var firstLine = valueLabel; if (renderMode !== 'html') { singleDefaultHTML.push(seriesDefaultHTML.join(newLine)); } else { singleDefaultHTML.push((firstLine ? formatUtil.encodeHTML(firstLine) + newLine : '') + seriesDefaultHTML.join(newLine)); } }); }, this); // In most case, the second axis is shown upper than the first one. singleDefaultHTML.reverse(); singleDefaultHTML = singleDefaultHTML.join(this._newLine + this._newLine); var positionExpr = e.position; this._showOrMove(singleTooltipModel, function () { if (this._updateContentNotChangedOnAxis(dataByCoordSys)) { this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList); } else { this._showTooltipContent(singleTooltipModel, singleDefaultHTML, singleParamsList, Math.random(), point[0], point[1], positionExpr, undefined, markers); } }); // Do not trigger events here, because this branch only be entered // from dispatchAction. }, _showSeriesItemTooltip: function _showSeriesItemTooltip(e, el, dispatchAction) { var ecModel = this._ecModel; // Use dataModel in element if possible // Used when mouseover on a element like markPoint or edge // In which case, the data is not main data in series. var seriesIndex = el.seriesIndex; var seriesModel = ecModel.getSeriesByIndex(seriesIndex); // For example, graph link. var dataModel = el.dataModel || seriesModel; var dataIndex = el.dataIndex; var dataType = el.dataType; var data = dataModel.getData(dataType); var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]); var tooltipTrigger = tooltipModel.get('trigger'); if (tooltipTrigger != null && tooltipTrigger !== 'item') { return; } var params = dataModel.getDataParams(dataIndex, dataType); var seriesTooltip = dataModel.formatTooltip(dataIndex, false, dataType, this._renderMode); var defaultHtml; var markers; if (zrUtil.isObject(seriesTooltip)) { defaultHtml = seriesTooltip.html; markers = seriesTooltip.markers; } else { defaultHtml = seriesTooltip; markers = null; } var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex; this._showOrMove(tooltipModel, function () { this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markers); }); // FIXME // duplicated showtip if manuallyShowTip is called from dispatchAction. dispatchAction({ type: 'showTip', dataIndexInside: dataIndex, dataIndex: data.getRawIndex(dataIndex), seriesIndex: seriesIndex, from: this.uid }); }, _showComponentItemTooltip: function _showComponentItemTooltip(e, el, dispatchAction) { var tooltipOpt = el.tooltip; if (typeof tooltipOpt === 'string') { var content = tooltipOpt; tooltipOpt = { content: content, // Fixed formatter formatter: content }; } var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel); var defaultHtml = subTooltipModel.get('content'); var asyncTicket = Math.random(); // Do not check whether `trigger` is 'none' here, because `trigger` // only works on coordinate system. In fact, we have not found case // that requires setting `trigger` nothing on component yet. this._showOrMove(subTooltipModel, function () { this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el); }); // If not dispatch showTip, tip may be hide triggered by axis. dispatchAction({ type: 'showTip', from: this.uid }); }, _showTooltipContent: function _showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markers) { // Reset ticket this._ticket = ''; if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) { return; } var tooltipContent = this._tooltipContent; var formatter = tooltipModel.get('formatter'); positionExpr = positionExpr || tooltipModel.get('position'); var html = defaultHtml; if (formatter && typeof formatter === 'string') { html = formatUtil.formatTpl(formatter, params, true); } else if (typeof formatter === 'function') { var callback = bind(function (cbTicket, html) { if (cbTicket === this._ticket) { tooltipContent.setContent(html, markers, tooltipModel); this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el); } }, this); this._ticket = asyncTicket; html = formatter(params, asyncTicket, callback); } tooltipContent.setContent(html, markers, tooltipModel); tooltipContent.show(tooltipModel); this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el); }, /** * @param {string|Function|Array.|Object} positionExpr * @param {number} x Mouse x * @param {number} y Mouse y * @param {boolean} confine Whether confine tooltip content in view rect. * @param {Object|} params * @param {module:zrender/Element} el target element * @param {module:echarts/ExtensionAPI} api * @return {Array.} */ _updatePosition: function _updatePosition(tooltipModel, positionExpr, x, y, content, params, el) { var viewWidth = this._api.getWidth(); var viewHeight = this._api.getHeight(); positionExpr = positionExpr || tooltipModel.get('position'); var contentSize = content.getSize(); var align = tooltipModel.get('align'); var vAlign = tooltipModel.get('verticalAlign'); var rect = el && el.getBoundingRect().clone(); el && rect.applyTransform(el.transform); if (typeof positionExpr === 'function') { // Callback of position can be an array or a string specify the position positionExpr = positionExpr([x, y], params, content.el, rect, { viewSize: [viewWidth, viewHeight], contentSize: contentSize.slice() }); } if (zrUtil.isArray(positionExpr)) { x = parsePercent(positionExpr[0], viewWidth); y = parsePercent(positionExpr[1], viewHeight); } else if (zrUtil.isObject(positionExpr)) { positionExpr.width = contentSize[0]; positionExpr.height = contentSize[1]; var layoutRect = layoutUtil.getLayoutRect(positionExpr, { width: viewWidth, height: viewHeight }); x = layoutRect.x; y = layoutRect.y; align = null; // When positionExpr is left/top/right/bottom, // align and verticalAlign will not work. vAlign = null; } // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element else if (typeof positionExpr === 'string' && el) { var pos = calcTooltipPosition(positionExpr, rect, contentSize); x = pos[0]; y = pos[1]; } else { var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20); x = pos[0]; y = pos[1]; } align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0); vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0); if (tooltipModel.get('confine')) { var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight); x = pos[0]; y = pos[1]; } content.moveTo(x, y); }, // FIXME // Should we remove this but leave this to user? _updateContentNotChangedOnAxis: function _updateContentNotChangedOnAxis(dataByCoordSys) { var lastCoordSys = this._lastDataByCoordSys; var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length; contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) { var lastDataByAxis = lastItemCoordSys.dataByAxis || {}; var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {}; var thisDataByAxis = thisItemCoordSys.dataByAxis || []; contentNotChanged &= lastDataByAxis.length === thisDataByAxis.length; contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) { var thisItem = thisDataByAxis[indexAxis] || {}; var lastIndices = lastItem.seriesDataIndices || []; var newIndices = thisItem.seriesDataIndices || []; contentNotChanged &= lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length; contentNotChanged && each(lastIndices, function (lastIdxItem, j) { var newIdxItem = newIndices[j]; contentNotChanged &= lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex; }); }); }); this._lastDataByCoordSys = dataByCoordSys; return !!contentNotChanged; }, _hide: function _hide(dispatchAction) { // Do not directly hideLater here, because this behavior may be prevented // in dispatchAction when showTip is dispatched. // FIXME // duplicated hideTip if manuallyHideTip is called from dispatchAction. this._lastDataByCoordSys = null; dispatchAction({ type: 'hideTip', from: this.uid }); }, dispose: function dispose(ecModel, api) { if (env.node) { return; } this._tooltipContent.dispose(); globalListener.unregister('itemTooltip', api); } }); /** * @param {Array.} modelCascade * From top to bottom. (the last one should be globalTooltipModel); */ function buildTooltipModel(modelCascade) { var resultModel = modelCascade.pop(); while (modelCascade.length) { var tooltipOpt = modelCascade.pop(); if (tooltipOpt) { if (Model.isInstance(tooltipOpt)) { tooltipOpt = tooltipOpt.get('tooltip', true); } // In each data item tooltip can be simply write: // { // value: 10, // tooltip: 'Something you need to know' // } if (typeof tooltipOpt === 'string') { tooltipOpt = { formatter: tooltipOpt }; } resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel); } } return resultModel; } function makeDispatchAction(payload, api) { return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api); } function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) { var size = content.getOuterSize(); var width = size.width; var height = size.height; if (gapH != null) { if (x + width + gapH > viewWidth) { x -= width + gapH; } else { x += gapH; } } if (gapV != null) { if (y + height + gapV > viewHeight) { y -= height + gapV; } else { y += gapV; } } return [x, y]; } function confineTooltipPosition(x, y, content, viewWidth, viewHeight) { var size = content.getOuterSize(); var width = size.width; var height = size.height; x = Math.min(x + width, viewWidth) - width; y = Math.min(y + height, viewHeight) - height; x = Math.max(x, 0); y = Math.max(y, 0); return [x, y]; } function calcTooltipPosition(position, rect, contentSize) { var domWidth = contentSize[0]; var domHeight = contentSize[1]; var gap = 5; var x = 0; var y = 0; var rectWidth = rect.width; var rectHeight = rect.height; switch (position) { case 'inside': x = rect.x + rectWidth / 2 - domWidth / 2; y = rect.y + rectHeight / 2 - domHeight / 2; break; case 'top': x = rect.x + rectWidth / 2 - domWidth / 2; y = rect.y - domHeight - gap; break; case 'bottom': x = rect.x + rectWidth / 2 - domWidth / 2; y = rect.y + rectHeight + gap; break; case 'left': x = rect.x - domWidth - gap; y = rect.y + rectHeight / 2 - domHeight / 2; break; case 'right': x = rect.x + rectWidth + gap; y = rect.y + rectHeight / 2 - domHeight / 2; } return [x, y]; } function isCenterAlign(align) { return align === 'center' || align === 'middle'; } module.exports = _default; /***/ }), /* 820 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/tooltip/TooltipContent.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var zrColor = __webpack_require__(/*! zrender/lib/tool/color */ 421); var eventUtil = __webpack_require__(/*! zrender/lib/core/event */ 408); var domUtil = __webpack_require__(/*! zrender/lib/core/dom */ 409); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var formatUtil = __webpack_require__(/*! ../../util/format */ 490); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; var toCamelCase = formatUtil.toCamelCase; var vendors = ['', '-webkit-', '-moz-', '-o-']; var gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;'; /** * @param {number} duration * @return {string} * @inner */ function assembleTransition(duration) { var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)'; var transitionText = 'left ' + duration + 's ' + transitionCurve + ',' + 'top ' + duration + 's ' + transitionCurve; return zrUtil.map(vendors, function (vendorPrefix) { return vendorPrefix + 'transition:' + transitionText; }).join(';'); } /** * @param {Object} textStyle * @return {string} * @inner */ function assembleFont(textStyleModel) { var cssText = []; var fontSize = textStyleModel.get('fontSize'); var color = textStyleModel.getTextColor(); color && cssText.push('color:' + color); cssText.push('font:' + textStyleModel.getFont()); var lineHeight = textStyleModel.get('lineHeight'); if (lineHeight == null) { lineHeight = Math.round(fontSize * 3 / 2); } fontSize && cssText.push('line-height:' + lineHeight + 'px'); var shadowColor = textStyleModel.get('textShadowColor'); var shadowBlur = textStyleModel.get('textShadowBlur') || 0; var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0; var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0; shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor); each(['decoration', 'align'], function (name) { var val = textStyleModel.get(name); val && cssText.push('text-' + name + ':' + val); }); return cssText.join(';'); } /** * @param {Object} tooltipModel * @return {string} * @inner */ function assembleCssText(tooltipModel) { var cssText = []; var transitionDuration = tooltipModel.get('transitionDuration'); var backgroundColor = tooltipModel.get('backgroundColor'); var textStyleModel = tooltipModel.getModel('textStyle'); var padding = tooltipModel.get('padding'); // Animation transition. Do not animate when transitionDuration is 0. transitionDuration && cssText.push(assembleTransition(transitionDuration)); if (backgroundColor) { if (env.canvasSupported) { cssText.push('background-Color:' + backgroundColor); } else { // for ie cssText.push('background-Color:#' + zrColor.toHex(backgroundColor)); cssText.push('filter:alpha(opacity=70)'); } } // Border style each(['width', 'color', 'radius'], function (name) { var borderName = 'border-' + name; var camelCase = toCamelCase(borderName); var val = tooltipModel.get(camelCase); val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px')); }); // Text style cssText.push(assembleFont(textStyleModel)); // Padding if (padding != null) { cssText.push('padding:' + formatUtil.normalizeCssArray(padding).join('px ') + 'px'); } return cssText.join(';') + ';'; } // If not able to make, do not modify the input `out`. function makeStyleCoord(out, zr, appendToBody, zrX, zrY) { var zrPainter = zr && zr.painter; if (appendToBody) { var zrViewportRoot = zrPainter && zrPainter.getViewportRoot(); if (zrViewportRoot) { // Some APPs might use scale on body, so we support CSS transform here. domUtil.transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY); } } else { out[0] = zrX; out[1] = zrY; // xy should be based on canvas root. But tooltipContent is // the sibling of canvas root. So padding of ec container // should be considered here. var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset(); if (viewportRootOffset) { out[0] += viewportRootOffset.offsetLeft; out[1] += viewportRootOffset.offsetTop; } } out[2] = out[0] / zr.getWidth(); // The ratio of left to width out[3] = out[1] / zr.getHeight(); // The ratio of top to height } /** * @alias module:echarts/component/tooltip/TooltipContent * @param {HTMLElement} container * @param {ExtensionAPI} api * @param {Object} [opt] * @param {boolean} [opt.appendToBody] * `false`: the DOM element will be inside the container. Default value. * `true`: the DOM element will be appended to HTML body, which avoid * some overflow clip but intrude outside of the container. * @constructor */ function TooltipContent(container, api, opt) { if (env.wxa) { return null; } var el = document.createElement('div'); el.domBelongToZr = true; this.el = el; var zr = this._zr = api.getZr(); var appendToBody = this._appendToBody = opt && opt.appendToBody; this._styleCoord = [0, 0, 0, 0]; // [left, top, left/width, top/height] makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2); if (appendToBody) { document.body.appendChild(el); } else { container.appendChild(el); } this._container = container; this._show = false; /** * @private */ this._hideTimeout; // FIXME // Is it needed to trigger zr event manually if // the browser do not support `pointer-events: none`. var self = this; el.onmouseenter = function () { // clear the timeout in hideLater and keep showing tooltip if (self._enterable) { clearTimeout(self._hideTimeout); self._show = true; } self._inContent = true; }; el.onmousemove = function (e) { e = e || window.event; if (!self._enterable) { // `pointer-events: none` is set to tooltip content div // if `enterable` is set as `false`, and `el.onmousemove` // can not be triggered. But in browser that do not // support `pointer-events`, we need to do this: // Try trigger zrender event to avoid mouse // in and out shape too frequently var handler = zr.handler; var zrViewportRoot = zr.painter.getViewportRoot(); eventUtil.normalizeEvent(zrViewportRoot, e, true); handler.dispatch('mousemove', e); } }; el.onmouseleave = function () { if (self._enterable) { if (self._show) { self.hideLater(self._hideDelay); } } self._inContent = false; }; } TooltipContent.prototype = { constructor: TooltipContent, /** * @private * @type {boolean} */ _enterable: true, /** * Update when tooltip is rendered */ update: function update(tooltipModel) { // FIXME // Move this logic to ec main? var container = this._container; var stl = container.currentStyle || document.defaultView.getComputedStyle(container); var domStyle = container.style; if (domStyle.position !== 'absolute' && stl.position !== 'absolute') { domStyle.position = 'relative'; } var alwaysShowContent = tooltipModel.get('alwaysShowContent'); alwaysShowContent && this._moveTooltipIfResized(); // Hide the tooltip // PENDING // this.hide(); }, /** * when `alwaysShowContent` is true, * we should move the tooltip after chart resized */ _moveTooltipIfResized: function _moveTooltipIfResized() { var ratioX = this._styleCoord[2]; // The ratio of left to width var ratioY = this._styleCoord[3]; // The ratio of top to height var realX = ratioX * this._zr.getWidth(); var realY = ratioY * this._zr.getHeight(); this.moveTo(realX, realY); }, show: function show(tooltipModel) { clearTimeout(this._hideTimeout); var el = this.el; var styleCoord = this._styleCoord; el.style.cssText = gCssText + assembleCssText(tooltipModel) // Because of the reason described in: // http://stackoverflow.com/questions/21125587/css3-transition-not-working-in-chrome-anymore // we should set initial value to `left` and `top`. + ';left:' + styleCoord[0] + 'px;top:' + styleCoord[1] + 'px;' + (tooltipModel.get('extraCssText') || ''); el.style.display = el.innerHTML ? 'block' : 'none'; // If mouse occasionally move over the tooltip, a mouseout event will be // triggered by canvas, and cause some unexpectable result like dragging // stop, "unfocusAdjacency". Here `pointer-events: none` is used to solve // it. Although it is not supported by IE8~IE10, fortunately it is a rare // scenario. el.style.pointerEvents = this._enterable ? 'auto' : 'none'; this._show = true; }, setContent: function setContent(content) { this.el.innerHTML = content == null ? '' : content; }, setEnterable: function setEnterable(enterable) { this._enterable = enterable; }, getSize: function getSize() { var el = this.el; return [el.clientWidth, el.clientHeight]; }, moveTo: function moveTo(zrX, zrY) { var styleCoord = this._styleCoord; makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY); var style = this.el.style; style.left = styleCoord[0] + 'px'; style.top = styleCoord[1] + 'px'; }, hide: function hide() { this.el.style.display = 'none'; this._show = false; }, hideLater: function hideLater(time) { if (this._show && !(this._inContent && this._enterable)) { if (time) { this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times this._show = false; this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time); } else { this.hide(); } } }, isShow: function isShow() { return this._show; }, dispose: function dispose() { this.el.parentNode.removeChild(this.el); }, getOuterSize: function getOuterSize() { var width = this.el.clientWidth; var height = this.el.clientHeight; // Consider browser compatibility. // IE8 does not support getComputedStyle. if (document.defaultView && document.defaultView.getComputedStyle) { var stl = document.defaultView.getComputedStyle(this.el); if (stl) { width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10); height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10); } } return { width: width, height: height }; } }; var _default = TooltipContent; module.exports = _default; /***/ }), /* 821 */ /*!*************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/tooltip/TooltipRichContent.js ***! \*************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Text = __webpack_require__(/*! zrender/lib/graphic/Text */ 465); var graphicUtil = __webpack_require__(/*! ../../util/graphic */ 451); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // import Group from 'zrender/src/container/Group'; function makeStyleCoord(out, zr, zrX, zrY) { out[0] = zrX; out[1] = zrY; out[2] = out[0] / zr.getWidth(); // The ratio of left to width out[3] = out[1] / zr.getHeight(); // The ratio of top to height } /** * @alias module:echarts/component/tooltip/TooltipRichContent * @constructor */ function TooltipRichContent(api) { var zr = this._zr = api.getZr(); this._styleCoord = [0, 0, 0, 0]; // [left, top, left/width, top/height] makeStyleCoord(this._styleCoord, zr, api.getWidth() / 2, api.getHeight() / 2); this._show = false; /** * @private */ this._hideTimeout; } TooltipRichContent.prototype = { constructor: TooltipRichContent, /** * @private * @type {boolean} */ _enterable: true, /** * Update when tooltip is rendered */ update: function update(tooltipModel) { var alwaysShowContent = tooltipModel.get('alwaysShowContent'); alwaysShowContent && this._moveTooltipIfResized(); }, /** * when `alwaysShowContent` is true, * we should move the tooltip after chart resized */ _moveTooltipIfResized: function _moveTooltipIfResized() { var ratioX = this._styleCoord[2]; // The ratio of left to width var ratioY = this._styleCoord[3]; // The ratio of top to height var realX = ratioX * this._zr.getWidth(); var realY = ratioY * this._zr.getHeight(); this.moveTo(realX, realY); }, show: function show(tooltipModel) { if (this._hideTimeout) { clearTimeout(this._hideTimeout); } this.el.attr('show', true); this._show = true; }, /** * Set tooltip content * * @param {string} content rich text string of content * @param {Object} markerRich rich text style * @param {Object} tooltipModel tooltip model */ setContent: function setContent(content, markerRich, tooltipModel) { if (this.el) { this._zr.remove(this.el); } var markers = {}; var text = content; var prefix = '{marker'; var suffix = '|}'; var startId = text.indexOf(prefix); while (startId >= 0) { var endId = text.indexOf(suffix); var name = text.substr(startId + prefix.length, endId - startId - prefix.length); if (name.indexOf('sub') > -1) { markers['marker' + name] = { textWidth: 4, textHeight: 4, textBorderRadius: 2, textBackgroundColor: markerRich[name], // TODO: textOffset is not implemented for rich text textOffset: [3, 0] }; } else { markers['marker' + name] = { textWidth: 10, textHeight: 10, textBorderRadius: 5, textBackgroundColor: markerRich[name] }; } text = text.substr(endId + 1); startId = text.indexOf('{marker'); } var textStyleModel = tooltipModel.getModel('textStyle'); var fontSize = textStyleModel.get('fontSize'); var lineHeight = tooltipModel.get('textLineHeight'); if (lineHeight == null) { lineHeight = Math.round(fontSize * 3 / 2); } this.el = new Text({ style: graphicUtil.setTextStyle({}, textStyleModel, { rich: markers, text: content, textBackgroundColor: tooltipModel.get('backgroundColor'), textBorderRadius: tooltipModel.get('borderRadius'), textFill: tooltipModel.get('textStyle.color'), textPadding: tooltipModel.get('padding'), textLineHeight: lineHeight }), z: tooltipModel.get('z') }); this._zr.add(this.el); var self = this; this.el.on('mouseover', function () { // clear the timeout in hideLater and keep showing tooltip if (self._enterable) { clearTimeout(self._hideTimeout); self._show = true; } self._inContent = true; }); this.el.on('mouseout', function () { if (self._enterable) { if (self._show) { self.hideLater(self._hideDelay); } } self._inContent = false; }); }, setEnterable: function setEnterable(enterable) { this._enterable = enterable; }, getSize: function getSize() { var bounding = this.el.getBoundingRect(); return [bounding.width, bounding.height]; }, moveTo: function moveTo(x, y) { if (this.el) { var styleCoord = this._styleCoord; makeStyleCoord(styleCoord, this._zr, x, y); this.el.attr('position', [styleCoord[0], styleCoord[1]]); } }, hide: function hide() { if (this.el) { this.el.hide(); } this._show = false; }, hideLater: function hideLater(time) { if (this._show && !(this._inContent && this._enterable)) { if (time) { this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times this._show = false; this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time); } else { this.hide(); } } }, isShow: function isShow() { return this._show; }, dispose: function dispose() { clearTimeout(this._hideTimeout); if (this.el) { this._zr.remove(this.el); } }, getOuterSize: function getOuterSize() { var size = this.getSize(); return { width: size[0], height: size[1] }; } }; var _default = TooltipRichContent; module.exports = _default; /***/ }), /* 822 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/brush.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var preprocessor = __webpack_require__(/*! ./brush/preprocessor */ 823); __webpack_require__(/*! ./brush/visualEncoding */ 824); __webpack_require__(/*! ./brush/BrushModel */ 827); __webpack_require__(/*! ./brush/BrushView */ 828); __webpack_require__(/*! ./brush/brushAction */ 829); __webpack_require__(/*! ./toolbox/feature/Brush */ 830); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Brush component entry */ echarts.registerPreprocessor(preprocessor); /***/ }), /* 823 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/brush/preprocessor.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear']; function _default(option, isNew) { var brushComponents = option && option.brush; if (!zrUtil.isArray(brushComponents)) { brushComponents = brushComponents ? [brushComponents] : []; } if (!brushComponents.length) { return; } var brushComponentSpecifiedBtns = []; zrUtil.each(brushComponents, function (brushOpt) { var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : []; if (tbs instanceof Array) { brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs); } }); var toolbox = option && option.toolbox; if (zrUtil.isArray(toolbox)) { toolbox = toolbox[0]; } if (!toolbox) { toolbox = { feature: {} }; option.toolbox = [toolbox]; } var toolboxFeature = toolbox.feature || (toolbox.feature = {}); var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {}); var brushTypes = toolboxBrush.type || (toolboxBrush.type = []); brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns); removeDuplicate(brushTypes); if (isNew && !brushTypes.length) { brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS); } } function removeDuplicate(arr) { var map = {}; zrUtil.each(arr, function (val) { map[val] = 1; }); arr.length = 0; zrUtil.each(map, function (flag, val) { arr.push(val); }); } module.exports = _default; /***/ }), /* 824 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/brush/visualEncoding.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var visualSolution = __webpack_require__(/*! ../../visual/visualSolution */ 825); var selector = __webpack_require__(/*! ./selector */ 826); var throttleUtil = __webpack_require__(/*! ../../util/throttle */ 510); var BrushTargetManager = __webpack_require__(/*! ../helper/BrushTargetManager */ 804); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var STATE_LIST = ['inBrush', 'outOfBrush']; var DISPATCH_METHOD = '__ecBrushSelect'; var DISPATCH_FLAG = '__ecInBrushSelectEvent'; var PRIORITY_BRUSH = echarts.PRIORITY.VISUAL.BRUSH; /** * Layout for visual, the priority higher than other layout, and before brush visual. */ echarts.registerLayout(PRIORITY_BRUSH, function (ecModel, api, payload) { ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) { payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : { brushType: false }); }); layoutCovers(ecModel); }); function layoutCovers(ecModel) { ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) { var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel); brushTargetManager.setInputRanges(brushModel.areas, ecModel); }); } /** * Register the visual encoding if this modules required. */ echarts.registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) { var brushSelected = []; var throttleType; var throttleDelay; ecModel.eachComponent({ mainType: 'brush' }, function (brushModel, brushIndex) { var thisBrushSelected = { brushId: brushModel.id, brushIndex: brushIndex, brushName: brushModel.name, areas: zrUtil.clone(brushModel.areas), selected: [] }; // Every brush component exists in event params, convenient // for user to find by index. brushSelected.push(thisBrushSelected); var brushOption = brushModel.option; var brushLink = brushOption.brushLink; var linkedSeriesMap = []; var selectedDataIndexForLink = []; var rangeInfoBySeries = []; var hasBrushExists = 0; if (!brushIndex) { // Only the first throttle setting works. throttleType = brushOption.throttleType; throttleDelay = brushOption.throttleDelay; } // Add boundingRect and selectors to range. var areas = zrUtil.map(brushModel.areas, function (area) { return bindSelector(zrUtil.defaults({ boundingRect: boundingRectBuilders[area.brushType](area) }, area)); }); var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) { mappingOption.mappingMethod = 'fixed'; }); zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) { linkedSeriesMap[seriesIndex] = 1; }); function linkOthers(seriesIndex) { return brushLink === 'all' || linkedSeriesMap[seriesIndex]; } // If no supported brush or no brush on the series, // all visuals should be in original state. function brushed(rangeInfoList) { return !!rangeInfoList.length; } /** * Logic for each series: (If the logic has to be modified one day, do it carefully!) * * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers ) => StepA: ┬record, ┬ StepB: ┬visualByRecord. * !brushed┘ ├hasBrushExist ┤ └nothing,┘ ├visualByRecord. * └!hasBrushExist┘ └nothing. * ( !brushed && ┬hasBrushExist ┬ && linkOthers ) => StepA: nothing, StepB: ┬visualByRecord. * └!hasBrushExist┘ └nothing. * ( brushed ┬ && !linkOthers ) => StepA: nothing, StepB: ┬visualByCheck. * !brushed┘ └nothing. * ( !brushed && !linkOthers ) => StepA: nothing, StepB: nothing. */ // Step A ecModel.eachSeries(function (seriesModel, seriesIndex) { var rangeInfoList = rangeInfoBySeries[seriesIndex] = []; seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex, rangeInfoList) : stepAOthers(seriesModel, seriesIndex, rangeInfoList); }); function stepAParallel(seriesModel, seriesIndex) { var coordSys = seriesModel.coordinateSystem; hasBrushExists |= coordSys.hasAxisBrushed(); linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) { activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1); }); } function stepAOthers(seriesModel, seriesIndex, rangeInfoList) { var selectorsByBrushType = getSelectorsByBrushType(seriesModel); if (!selectorsByBrushType || brushModelNotControll(brushModel, seriesIndex)) { return; } zrUtil.each(areas, function (area) { selectorsByBrushType[area.brushType] && brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel) && rangeInfoList.push(area); hasBrushExists |= brushed(rangeInfoList); }); if (linkOthers(seriesIndex) && brushed(rangeInfoList)) { var data = seriesModel.getData(); data.each(function (dataIndex) { if (checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex)) { selectedDataIndexForLink[dataIndex] = 1; } }); } } // Step B ecModel.eachSeries(function (seriesModel, seriesIndex) { var seriesBrushSelected = { seriesId: seriesModel.id, seriesIndex: seriesIndex, seriesName: seriesModel.name, dataIndex: [] }; // Every series exists in event params, convenient // for user to find series by seriesIndex. thisBrushSelected.selected.push(seriesBrushSelected); var selectorsByBrushType = getSelectorsByBrushType(seriesModel); var rangeInfoList = rangeInfoBySeries[seriesIndex]; var data = seriesModel.getData(); var getValueState = linkOthers(seriesIndex) ? function (dataIndex) { return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush'; } : function (dataIndex) { return checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush'; }; // If no supported brush or no brush, all visuals are in original state. (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState); }); }); dispatchAction(api, throttleType, throttleDelay, brushSelected, payload); }); function dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) { // This event will not be triggered when `setOpion`, otherwise dead lock may // triggered when do `setOption` in event listener, which we do not find // satisfactory way to solve yet. Some considered resolutions: // (a) Diff with prevoius selected data ant only trigger event when changed. // But store previous data and diff precisely (i.e., not only by dataIndex, but // also detect value changes in selected data) might bring complexity or fragility. // (b) Use spectial param like `silent` to suppress event triggering. // But such kind of volatile param may be weird in `setOption`. if (!payload) { return; } var zr = api.getZr(); if (zr[DISPATCH_FLAG]) { return; } if (!zr[DISPATCH_METHOD]) { zr[DISPATCH_METHOD] = doDispatch; } var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType); fn(api, brushSelected); } function doDispatch(api, brushSelected) { if (!api.isDisposed()) { var zr = api.getZr(); zr[DISPATCH_FLAG] = true; api.dispatchAction({ type: 'brushSelect', batch: brushSelected }); zr[DISPATCH_FLAG] = false; } } function checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) { for (var i = 0, len = rangeInfoList.length; i < len; i++) { var area = rangeInfoList[i]; if (selectorsByBrushType[area.brushType](dataIndex, data, area.selectors, area)) { return true; } } } function getSelectorsByBrushType(seriesModel) { var brushSelector = seriesModel.brushSelector; if (zrUtil.isString(brushSelector)) { var sels = []; zrUtil.each(selector, function (selectorsByElementType, brushType) { sels[brushType] = function (dataIndex, data, selectors, area) { var itemLayout = data.getItemLayout(dataIndex); return selectorsByElementType[brushSelector](itemLayout, selectors, area); }; }); return sels; } else if (zrUtil.isFunction(brushSelector)) { var bSelector = {}; zrUtil.each(selector, function (sel, brushType) { bSelector[brushType] = brushSelector; }); return bSelector; } return brushSelector; } function brushModelNotControll(brushModel, seriesIndex) { var seriesIndices = brushModel.option.seriesIndex; return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices); } function bindSelector(area) { var selectors = area.selectors = {}; zrUtil.each(selector[area.brushType], function (selFn, elType) { // Do not use function binding or curry for performance. selectors[elType] = function (itemLayout) { return selFn(itemLayout, selectors, area); }; }); return area; } var boundingRectBuilders = { lineX: zrUtil.noop, lineY: zrUtil.noop, rect: function rect(area) { return getBoundingRectFromMinMax(area.range); }, polygon: function polygon(area) { var minMax; var range = area.range; for (var i = 0, len = range.length; i < len; i++) { minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]]; var rg = range[i]; rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]); rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]); rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]); rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]); } return minMax && getBoundingRectFromMinMax(minMax); } }; function getBoundingRectFromMinMax(minMax) { return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]); } exports.layoutCovers = layoutCovers; /***/ }), /* 825 */ /*!**********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/visualSolution.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var VisualMapping = __webpack_require__(/*! ./VisualMapping */ 651); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @file Visual solution, for consistent option specification. */ var each = zrUtil.each; function hasKeys(obj) { if (obj) { for (var name in obj) { if (obj.hasOwnProperty(name)) { return true; } } } } /** * @param {Object} option * @param {Array.} stateList * @param {Function} [supplementVisualOption] * @return {Object} visualMappings > */ function createVisualMappings(option, stateList, supplementVisualOption) { var visualMappings = {}; each(stateList, function (state) { var mappings = visualMappings[state] = createMappings(); each(option[state], function (visualData, visualType) { if (!VisualMapping.isValidType(visualType)) { return; } var mappingOption = { type: visualType, visual: visualData }; supplementVisualOption && supplementVisualOption(mappingOption, state); mappings[visualType] = new VisualMapping(mappingOption); // Prepare a alpha for opacity, for some case that opacity // is not supported, such as rendering using gradient color. if (visualType === 'opacity') { mappingOption = zrUtil.clone(mappingOption); mappingOption.type = 'colorAlpha'; mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption); } }); }); return visualMappings; function createMappings() { var Creater = function Creater() {}; // Make sure hidden fields will not be visited by // object iteration (with hasOwnProperty checking). Creater.prototype.__hidden = Creater.prototype; var obj = new Creater(); return obj; } } /** * @param {Object} thisOption * @param {Object} newOption * @param {Array.} keys */ function replaceVisualOption(thisOption, newOption, keys) { // Visual attributes merge is not supported, otherwise it // brings overcomplicated merge logic. See #2853. So if // newOption has anyone of these keys, all of these keys // will be reset. Otherwise, all keys remain. var has; zrUtil.each(keys, function (key) { if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) { has = true; } }); has && zrUtil.each(keys, function (key) { if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) { thisOption[key] = zrUtil.clone(newOption[key]); } else { delete thisOption[key]; } }); } /** * @param {Array.} stateList * @param {Object} visualMappings > * @param {module:echarts/data/List} list * @param {Function} getValueState param: valueOrIndex, return: state. * @param {object} [scope] Scope for getValueState * @param {string} [dimension] Concrete dimension, if used. */ // ???! handle brush? function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) { var visualTypesMap = {}; zrUtil.each(stateList, function (state) { var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]); visualTypesMap[state] = visualTypes; }); var dataIndex; function getVisual(key) { return data.getItemVisual(dataIndex, key); } function setVisual(key, value) { data.setItemVisual(dataIndex, key, value); } if (dimension == null) { data.each(eachItem); } else { data.each([dimension], eachItem); } function eachItem(valueOrIndex, index) { dataIndex = dimension == null ? valueOrIndex : index; var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance if (rawDataItem && rawDataItem.visualMap === false) { return; } var valueState = getValueState.call(scope, valueOrIndex); var mappings = visualMappings[valueState]; var visualTypes = visualTypesMap[valueState]; for (var i = 0, len = visualTypes.length; i < len; i++) { var type = visualTypes[i]; mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual); } } } /** * @param {module:echarts/data/List} data * @param {Array.} stateList * @param {Object} visualMappings > * @param {Function} getValueState param: valueOrIndex, return: state. * @param {number} [dim] dimension or dimension index. */ function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) { var visualTypesMap = {}; zrUtil.each(stateList, function (state) { var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]); visualTypesMap[state] = visualTypes; }); function progress(params, data) { if (dim != null) { dim = data.getDimension(dim); } function getVisual(key) { return data.getItemVisual(dataIndex, key); } function setVisual(key, value) { data.setItemVisual(dataIndex, key, value); } var dataIndex; while ((dataIndex = params.next()) != null) { var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance if (rawDataItem && rawDataItem.visualMap === false) { continue; } var value = dim != null ? data.get(dim, dataIndex, true) : dataIndex; var valueState = getValueState(value); var mappings = visualMappings[valueState]; var visualTypes = visualTypesMap[valueState]; for (var i = 0, len = visualTypes.length; i < len; i++) { var type = visualTypes[i]; mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual); } } } return { progress: progress }; } exports.createVisualMappings = createVisualMappings; exports.replaceVisualOption = replaceVisualOption; exports.applyVisual = applyVisual; exports.incrementalApplyVisual = incrementalApplyVisual; /***/ }), /* 826 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/brush/selector.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var polygonContain = __webpack_require__(/*! zrender/lib/contain/polygon */ 546); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var _graphic = __webpack_require__(/*! ../../util/graphic */ 451); var linePolygonIntersect = _graphic.linePolygonIntersect; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Key of the first level is brushType: `line`, `rect`, `polygon`. // Key of the second level is chart element type: `point`, `rect`. // See moudule:echarts/component/helper/BrushController // function param: // {Object} itemLayout fetch from data.getItemLayout(dataIndex) // {Object} selectors {point: selector, rect: selector, ...} // {Object} area {range: [[], [], ..], boudingRect} // function return: // {boolean} Whether in the given brush. var selector = { lineX: getLineSelectors(0), lineY: getLineSelectors(1), rect: { point: function point(itemLayout, selectors, area) { return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]); }, rect: function rect(itemLayout, selectors, area) { return itemLayout && area.boundingRect.intersect(itemLayout); } }, polygon: { point: function point(itemLayout, selectors, area) { return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]); }, rect: function rect(itemLayout, selectors, area) { var points = area.range; if (!itemLayout || points.length <= 1) { return false; } var x = itemLayout.x; var y = itemLayout.y; var width = itemLayout.width; var height = itemLayout.height; var p = points[0]; if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) { return true; } } } }; function getLineSelectors(xyIndex) { var xy = ['x', 'y']; var wh = ['width', 'height']; return { point: function point(itemLayout, selectors, area) { if (itemLayout) { var range = area.range; var p = itemLayout[xyIndex]; return inLineRange(p, range); } }, rect: function rect(itemLayout, selectors, area) { if (itemLayout) { var range = area.range; var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]]; layoutRange[1] < layoutRange[0] && layoutRange.reverse(); return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange); } } }; } function inLineRange(p, range) { return range[0] <= p && p <= range[1]; } var _default = selector; module.exports = _default; /***/ }), /* 827 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/brush/BrushModel.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var visualSolution = __webpack_require__(/*! ../../visual/visualSolution */ 825); var Model = __webpack_require__(/*! ../../model/Model */ 445); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DEFAULT_OUT_OF_BRUSH_COLOR = ['#ddd']; var BrushModel = echarts.extendComponentModel({ type: 'brush', dependencies: ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'], /** * @protected */ defaultOption: { // inBrush: null, // outOfBrush: null, toolbox: null, // Default value see preprocessor. brushLink: null, // Series indices array, broadcast using dataIndex. // or 'all', which means all series. 'none' or null means no series. seriesIndex: 'all', // seriesIndex array, specify series controlled by this brush component. geoIndex: null, // xAxisIndex: null, yAxisIndex: null, brushType: 'rect', // Default brushType, see BrushController. brushMode: 'single', // Default brushMode, 'single' or 'multiple' transformable: true, // Default transformable. brushStyle: { // Default brushStyle borderWidth: 1, color: 'rgba(120,140,180,0.3)', borderColor: 'rgba(120,140,180,0.8)' }, throttleType: 'fixRate', // Throttle in brushSelected event. 'fixRate' or 'debounce'. // If null, no throttle. Valid only in the first brush component throttleDelay: 0, // Unit: ms, 0 means every event will be triggered. // FIXME // 试验效果 removeOnClick: true, z: 10000 }, /** * @readOnly * @type {Array.} */ areas: [], /** * Current activated brush type. * If null, brush is inactived. * see module:echarts/component/helper/BrushController * @readOnly * @type {string} */ brushType: null, /** * Current brush opt. * see module:echarts/component/helper/BrushController * @readOnly * @type {Object} */ brushOption: {}, /** * @readOnly * @type {Array.} */ coordInfoList: [], optionUpdated: function optionUpdated(newOption, isInit) { var thisOption = this.option; !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']); var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time. thisOption.outOfBrush = thisOption.outOfBrush || { color: DEFAULT_OUT_OF_BRUSH_COLOR }; if (!inBrush.hasOwnProperty('liftZ')) { // Bigger than the highlight z lift, otherwise it will // be effected by the highlight z when brush. inBrush.liftZ = 5; } }, /** * If ranges is null/undefined, range state remain. * * @param {Array.} [ranges] */ setAreas: function setAreas(areas) { // If ranges is null/undefined, range state remain. // This helps user to dispatchAction({type: 'brush'}) with no areas // set but just want to get the current brush select info from a `brush` event. if (!areas) { return; } this.areas = zrUtil.map(areas, function (area) { return generateBrushOption(this.option, area); }, this); }, /** * see module:echarts/component/helper/BrushController * @param {Object} brushOption */ setBrushOption: function setBrushOption(brushOption) { this.brushOption = generateBrushOption(this.option, brushOption); this.brushType = this.brushOption.brushType; } }); function generateBrushOption(option, brushOption) { return zrUtil.merge({ brushType: option.brushType, brushMode: option.brushMode, transformable: option.transformable, brushStyle: new Model(option.brushStyle).getItemStyle(), removeOnClick: option.removeOnClick, z: option.z }, brushOption, true); } var _default = BrushModel; module.exports = _default; /***/ }), /* 828 */ /*!**************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/brush/BrushView.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BrushController = __webpack_require__(/*! ../helper/BrushController */ 696); var _visualEncoding = __webpack_require__(/*! ./visualEncoding */ 824); var layoutCovers = _visualEncoding.layoutCovers; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendComponentView({ type: 'brush', init: function init(ecModel, api) { /** * @readOnly * @type {module:echarts/model/Global} */ this.ecModel = ecModel; /** * @readOnly * @type {module:echarts/ExtensionAPI} */ this.api = api; /** * @readOnly * @type {module:echarts/component/brush/BrushModel} */ this.model; /** * @private * @type {module:echarts/component/helper/BrushController} */ (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount(); }, /** * @override */ render: function render(brushModel) { this.model = brushModel; return updateController.apply(this, arguments); }, /** * @override */ updateTransform: function updateTransform(brushModel, ecModel) { // PENDING: `updateTransform` is a little tricky, whose layout need // to be calculate mandatorily and other stages will not be performed. // Take care the correctness of the logic. See #11754 . layoutCovers(ecModel); return updateController.apply(this, arguments); }, /** * @override */ updateView: updateController, // /** // * @override // */ // updateLayout: updateController, // /** // * @override // */ // updateVisual: updateController, /** * @override */ dispose: function dispose() { this._brushController.dispose(); }, /** * @private */ _onBrush: function _onBrush(areas, opt) { var modelId = this.model.id; this.model.brushTargetManager.setOutputRanges(areas, this.ecModel); // Action is not dispatched on drag end, because the drag end // emits the same params with the last drag move event, and // may have some delay when using touch pad, which makes // animation not smooth (when using debounce). (!opt.isEnd || opt.removeOnClick) && this.api.dispatchAction({ type: 'brush', brushId: modelId, areas: zrUtil.clone(areas), $from: modelId }); opt.isEnd && this.api.dispatchAction({ type: 'brushEnd', brushId: modelId, areas: zrUtil.clone(areas), $from: modelId }); } }); function updateController(brushModel, ecModel, api, payload) { // Do not update controller when drawing. (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice()); } module.exports = _default; /***/ }), /* 829 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/brush/brushAction.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * payload: { * brushIndex: number, or, * brushId: string, or, * brushName: string, * globalRanges: Array * } */ echarts.registerAction({ type: 'brush', event: 'brush' /*, update: 'updateView' */ }, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'brush', query: payload }, function (brushModel) { brushModel.setAreas(payload.areas); }); }); /** * payload: { * brushComponents: [ * { * brushId, * brushIndex, * brushName, * series: [ * { * seriesId, * seriesIndex, * seriesName, * rawIndices: [21, 34, ...] * }, * ... * ] * }, * ... * ] * } */ echarts.registerAction({ type: 'brushSelect', event: 'brushSelected', update: 'none' }, function () {}); echarts.registerAction({ type: 'brushEnd', event: 'brushEnd', update: 'none' }, function () {}); /***/ }), /* 830 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/toolbox/feature/Brush.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var featureManager = __webpack_require__(/*! ../featureManager */ 797); var lang = __webpack_require__(/*! ../../../lang */ 513); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var brushLang = lang.toolbox.brush; function Brush(model, ecModel, api) { this.model = model; this.ecModel = ecModel; this.api = api; /** * @private * @type {string} */ this._brushType; /** * @private * @type {string} */ this._brushMode; } Brush.defaultOption = { show: true, type: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'], icon: { /* eslint-disable */ rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13', // jshint ignore:line polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2', // jshint ignore:line lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4', // jshint ignore:line lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4', // jshint ignore:line keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z', // jshint ignore:line clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line /* eslint-enable */ }, // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear` title: zrUtil.clone(brushLang.title) }; var proto = Brush.prototype; // proto.updateLayout = function (featureModel, ecModel, api) { /* eslint-disable */ proto.render = /* eslint-enable */ proto.updateView = function (featureModel, ecModel, api) { var brushType; var brushMode; var isBrushed; ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) { brushType = brushModel.brushType; brushMode = brushModel.brushOption.brushMode || 'single'; isBrushed |= brushModel.areas.length; }); this._brushType = brushType; this._brushMode = brushMode; zrUtil.each(featureModel.get('type', true), function (type) { featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal'); }); }; proto.getIcons = function () { var model = this.model; var availableIcons = model.get('icon', true); var icons = {}; zrUtil.each(model.get('type', true), function (type) { if (availableIcons[type]) { icons[type] = availableIcons[type]; } }); return icons; }; proto.onclick = function (ecModel, api, type) { var brushType = this._brushType; var brushMode = this._brushMode; if (type === 'clear') { // Trigger parallel action firstly api.dispatchAction({ type: 'axisAreaSelect', intervals: [] }); api.dispatchAction({ type: 'brush', command: 'clear', // Clear all areas of all brush components. areas: [] }); } else { api.dispatchAction({ type: 'takeGlobalCursor', key: 'brush', brushOption: { brushType: type === 'keep' ? brushType : brushType === type ? false : type, brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode } }); } }; featureManager.register('brush', Brush); var _default = Brush; module.exports = _default; /***/ }), /* 831 */ /*!****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/title.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var echarts = __webpack_require__(/*! ../echarts */ 398); var graphic = __webpack_require__(/*! ../util/graphic */ 451); var _layout = __webpack_require__(/*! ../util/layout */ 488); var getLayoutRect = _layout.getLayoutRect; var _format = __webpack_require__(/*! ../util/format */ 490); var windowOpen = _format.windowOpen; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Model echarts.extendComponentModel({ type: 'title', layoutMode: { type: 'box', ignoreSize: true }, defaultOption: { // 一级层叠 zlevel: 0, // 二级层叠 z: 6, show: true, text: '', // 超链接跳转 // link: null, // 仅支持self | blank target: 'blank', subtext: '', // 超链接跳转 // sublink: null, // 仅支持self | blank subtarget: 'blank', // 'center' ¦ 'left' ¦ 'right' // ¦ {number}(x坐标,单位px) left: 0, // 'top' ¦ 'bottom' ¦ 'center' // ¦ {number}(y坐标,单位px) top: 0, // 水平对齐 // 'auto' | 'left' | 'right' | 'center' // 默认根据 left 的位置判断是左对齐还是右对齐 // textAlign: null // // 垂直对齐 // 'auto' | 'top' | 'bottom' | 'middle' // 默认根据 top 位置判断是上对齐还是下对齐 // textVerticalAlign: null // textBaseline: null // The same as textVerticalAlign. backgroundColor: 'rgba(0,0,0,0)', // 标题边框颜色 borderColor: '#ccc', // 标题边框线宽,单位px,默认为0(无边框) borderWidth: 0, // 标题内边距,单位px,默认各方向内边距为5, // 接受数组分别设定上右下左边距,同css padding: 5, // 主副标题纵向间隔,单位px,默认为10, itemGap: 10, textStyle: { fontSize: 18, fontWeight: 'bolder', color: '#333' }, subtextStyle: { color: '#aaa' } } }); // View echarts.extendComponentView({ type: 'title', render: function render(titleModel, ecModel, api) { this.group.removeAll(); if (!titleModel.get('show')) { return; } var group = this.group; var textStyleModel = titleModel.getModel('textStyle'); var subtextStyleModel = titleModel.getModel('subtextStyle'); var textAlign = titleModel.get('textAlign'); var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign')); var textEl = new graphic.Text({ style: graphic.setTextStyle({}, textStyleModel, { text: titleModel.get('text'), textFill: textStyleModel.getTextColor() }, { disableBox: true }), z2: 10 }); var textRect = textEl.getBoundingRect(); var subText = titleModel.get('subtext'); var subTextEl = new graphic.Text({ style: graphic.setTextStyle({}, subtextStyleModel, { text: subText, textFill: subtextStyleModel.getTextColor(), y: textRect.height + titleModel.get('itemGap'), textVerticalAlign: 'top' }, { disableBox: true }), z2: 10 }); var link = titleModel.get('link'); var sublink = titleModel.get('sublink'); var triggerEvent = titleModel.get('triggerEvent', true); textEl.silent = !link && !triggerEvent; subTextEl.silent = !sublink && !triggerEvent; if (link) { textEl.on('click', function () { windowOpen(link, '_' + titleModel.get('target')); }); } if (sublink) { subTextEl.on('click', function () { windowOpen(sublink, '_' + titleModel.get('subtarget')); }); } textEl.eventData = subTextEl.eventData = triggerEvent ? { componentType: 'title', componentIndex: titleModel.componentIndex } : null; group.add(textEl); subText && group.add(subTextEl); // If no subText, but add subTextEl, there will be an empty line. var groupRect = group.getBoundingRect(); var layoutOption = titleModel.getBoxLayoutParams(); layoutOption.width = groupRect.width; layoutOption.height = groupRect.height; var layoutRect = getLayoutRect(layoutOption, { width: api.getWidth(), height: api.getHeight() }, titleModel.get('padding')); // Adjust text align based on position if (!textAlign) { // Align left if title is on the left. center and right is same textAlign = titleModel.get('left') || titleModel.get('right'); if (textAlign === 'middle') { textAlign = 'center'; } // Adjust layout by text align if (textAlign === 'right') { layoutRect.x += layoutRect.width; } else if (textAlign === 'center') { layoutRect.x += layoutRect.width / 2; } } if (!textVerticalAlign) { textVerticalAlign = titleModel.get('top') || titleModel.get('bottom'); if (textVerticalAlign === 'center') { textVerticalAlign = 'middle'; } if (textVerticalAlign === 'bottom') { layoutRect.y += layoutRect.height; } else if (textVerticalAlign === 'middle') { layoutRect.y += layoutRect.height / 2; } textVerticalAlign = textVerticalAlign || 'top'; } group.attr('position', [layoutRect.x, layoutRect.y]); var alignStyle = { textAlign: textAlign, textVerticalAlign: textVerticalAlign }; textEl.setStyle(alignStyle); subTextEl.setStyle(alignStyle); // Render background // Get groupRect again because textAlign has been changed groupRect = group.getBoundingRect(); var padding = layoutRect.margin; var style = titleModel.getItemStyle(['color', 'opacity']); style.fill = titleModel.get('backgroundColor'); var rect = new graphic.Rect({ shape: { x: groupRect.x - padding[3], y: groupRect.y - padding[0], width: groupRect.width + padding[1] + padding[3], height: groupRect.height + padding[0] + padding[2], r: titleModel.get('borderRadius') }, style: style, subPixelOptimize: true, silent: true }); group.add(rect); } }); /***/ }), /* 832 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var preprocessor = __webpack_require__(/*! ./timeline/preprocessor */ 833); __webpack_require__(/*! ./timeline/typeDefaulter */ 834); __webpack_require__(/*! ./timeline/timelineAction */ 835); __webpack_require__(/*! ./timeline/SliderTimelineModel */ 836); __webpack_require__(/*! ./timeline/SliderTimelineView */ 838); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * DataZoom component entry */ echarts.registerPreprocessor(preprocessor); /***/ }), /* 833 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/preprocessor.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(option) { var timelineOpt = option && option.timeline; if (!zrUtil.isArray(timelineOpt)) { timelineOpt = timelineOpt ? [timelineOpt] : []; } zrUtil.each(timelineOpt, function (opt) { if (!opt) { return; } compatibleEC2(opt); }); } function compatibleEC2(opt) { var type = opt.type; var ec2Types = { 'number': 'value', 'time': 'time' }; // Compatible with ec2 if (ec2Types[type]) { opt.axisType = ec2Types[type]; delete opt.type; } transferItem(opt); if (has(opt, 'controlPosition')) { var controlStyle = opt.controlStyle || (opt.controlStyle = {}); if (!has(controlStyle, 'position')) { controlStyle.position = opt.controlPosition; } if (controlStyle.position === 'none' && !has(controlStyle, 'show')) { controlStyle.show = false; delete controlStyle.position; } delete opt.controlPosition; } zrUtil.each(opt.data || [], function (dataItem) { if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) { if (!has(dataItem, 'value') && has(dataItem, 'name')) { // In ec2, using name as value. dataItem.value = dataItem.name; } transferItem(dataItem); } }); } function transferItem(opt) { var itemStyle = opt.itemStyle || (opt.itemStyle = {}); var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {}); // Transfer label out var label = opt.label || opt.label || {}; var labelNormal = label.normal || (label.normal = {}); var excludeLabelAttr = { normal: 1, emphasis: 1 }; zrUtil.each(label, function (value, name) { if (!excludeLabelAttr[name] && !has(labelNormal, name)) { labelNormal[name] = value; } }); if (itemStyleEmphasis.label && !has(label, 'emphasis')) { label.emphasis = itemStyleEmphasis.label; delete itemStyleEmphasis.label; } } function has(obj, attr) { return obj.hasOwnProperty(attr); } module.exports = _default; /***/ }), /* 834 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/typeDefaulter.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Component = __webpack_require__(/*! ../../model/Component */ 486); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ Component.registerSubTypeDefaulter('timeline', function () { // Only slider now. return 'slider'; }); /***/ }), /* 835 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/timelineAction.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerAction({ type: 'timelineChange', event: 'timelineChanged', update: 'prepareAndUpdate' }, function (payload, ecModel) { var timelineModel = ecModel.getComponent('timeline'); if (timelineModel && payload.currentIndex != null) { timelineModel.setCurrentIndex(payload.currentIndex); if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) { timelineModel.setPlayState(false); } } // Set normalized currentIndex to payload. ecModel.resetOption('timeline'); return zrUtil.defaults({ currentIndex: timelineModel.option.currentIndex }, payload); }); echarts.registerAction({ type: 'timelinePlayChange', event: 'timelinePlayChanged', update: 'update' }, function (payload, ecModel) { var timelineModel = ecModel.getComponent('timeline'); if (timelineModel && payload.playState != null) { timelineModel.setPlayState(payload.playState); } }); /***/ }), /* 836 */ /*!***************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/SliderTimelineModel.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var TimelineModel = __webpack_require__(/*! ./TimelineModel */ 837); var dataFormatMixin = __webpack_require__(/*! ../../model/mixin/dataFormat */ 504); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SliderTimelineModel = TimelineModel.extend({ type: 'timeline.slider', /** * @protected */ defaultOption: { backgroundColor: 'rgba(0,0,0,0)', // 时间轴背景颜色 borderColor: '#ccc', // 时间轴边框颜色 borderWidth: 0, // 时间轴边框线宽,单位px,默认为0(无边框) orient: 'horizontal', // 'vertical' inverse: false, tooltip: { // boolean or Object trigger: 'item' // data item may also have tootip attr. }, symbol: 'emptyCircle', symbolSize: 10, lineStyle: { show: true, width: 2, color: '#304654' }, label: { // 文本标签 position: 'auto', // auto left right top bottom // When using number, label position is not // restricted by viewRect. // positive: right/bottom, negative: left/top show: true, interval: 'auto', rotate: 0, // formatter: null, // 其余属性默认使用全局文本样式,详见TEXTSTYLE color: '#304654' }, itemStyle: { color: '#304654', borderWidth: 1 }, checkpointStyle: { symbol: 'circle', symbolSize: 13, color: '#c23531', borderWidth: 5, borderColor: 'rgba(194,53,49, 0.5)', animation: true, animationDuration: 300, animationEasing: 'quinticInOut' }, controlStyle: { show: true, showPlayBtn: true, showPrevBtn: true, showNextBtn: true, itemSize: 22, itemGap: 12, position: 'left', // 'left' 'right' 'top' 'bottom' playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z', // jshint ignore:line stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z', // jshint ignore:line nextIcon: 'path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z', // jshint ignore:line prevIcon: 'path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z', // jshint ignore:line color: '#304654', borderColor: '#304654', borderWidth: 1 }, emphasis: { label: { show: true, // 其余属性默认使用全局文本样式,详见TEXTSTYLE color: '#c23531' }, itemStyle: { color: '#c23531' }, controlStyle: { color: '#c23531', borderColor: '#c23531', borderWidth: 2 } }, data: [] } }); zrUtil.mixin(SliderTimelineModel, dataFormatMixin); var _default = SliderTimelineModel; module.exports = _default; /***/ }), /* 837 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/TimelineModel.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var ComponentModel = __webpack_require__(/*! ../../model/Component */ 486); var List = __webpack_require__(/*! ../../data/List */ 525); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var TimelineModel = ComponentModel.extend({ type: 'timeline', layoutMode: 'box', /** * @protected */ defaultOption: { zlevel: 0, // 一级层叠 z: 4, // 二级层叠 show: true, axisType: 'time', // 模式是时间类型,支持 value, category realtime: true, left: '20%', top: null, right: '20%', bottom: 0, width: null, height: 40, padding: 5, controlPosition: 'left', // 'left' 'right' 'top' 'bottom' 'none' autoPlay: false, rewind: false, // 反向播放 loop: true, playInterval: 2000, // 播放时间间隔,单位ms currentIndex: 0, itemStyle: {}, label: { color: '#000' }, data: [] }, /** * @override */ init: function init(option, parentModel, ecModel) { /** * @private * @type {module:echarts/data/List} */ this._data; /** * @private * @type {Array.} */ this._names; this.mergeDefaultAndTheme(option, ecModel); this._initData(); }, /** * @override */ mergeOption: function mergeOption(option) { TimelineModel.superApply(this, 'mergeOption', arguments); this._initData(); }, /** * @param {number} [currentIndex] */ setCurrentIndex: function setCurrentIndex(currentIndex) { if (currentIndex == null) { currentIndex = this.option.currentIndex; } var count = this._data.count(); if (this.option.loop) { currentIndex = (currentIndex % count + count) % count; } else { currentIndex >= count && (currentIndex = count - 1); currentIndex < 0 && (currentIndex = 0); } this.option.currentIndex = currentIndex; }, /** * @return {number} currentIndex */ getCurrentIndex: function getCurrentIndex() { return this.option.currentIndex; }, /** * @return {boolean} */ isIndexMax: function isIndexMax() { return this.getCurrentIndex() >= this._data.count() - 1; }, /** * @param {boolean} state true: play, false: stop */ setPlayState: function setPlayState(state) { this.option.autoPlay = !!state; }, /** * @return {boolean} true: play, false: stop */ getPlayState: function getPlayState() { return !!this.option.autoPlay; }, /** * @private */ _initData: function _initData() { var thisOption = this.option; var dataArr = thisOption.data || []; var axisType = thisOption.axisType; var names = this._names = []; if (axisType === 'category') { var idxArr = []; zrUtil.each(dataArr, function (item, index) { var value = modelUtil.getDataItemValue(item); var newItem; if (zrUtil.isObject(item)) { newItem = zrUtil.clone(item); newItem.value = index; } else { newItem = index; } idxArr.push(newItem); if (!zrUtil.isString(value) && (value == null || isNaN(value))) { value = ''; } names.push(value + ''); }); dataArr = idxArr; } var dimType = { category: 'ordinal', time: 'time' }[axisType] || 'number'; var data = this._data = new List([{ name: 'value', type: dimType }], this); data.initData(dataArr, names); }, getData: function getData() { return this._data; }, /** * @public * @return {Array.} categoreis */ getCategories: function getCategories() { if (this.get('axisType') === 'category') { return this._names.slice(); } } }); var _default = TimelineModel; module.exports = _default; /***/ }), /* 838 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/SliderTimelineView.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var BoundingRect = __webpack_require__(/*! zrender/lib/core/BoundingRect */ 425); var matrix = __webpack_require__(/*! zrender/lib/core/matrix */ 416); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var layout = __webpack_require__(/*! ../../util/layout */ 488); var TimelineView = __webpack_require__(/*! ./TimelineView */ 839); var TimelineAxis = __webpack_require__(/*! ./TimelineAxis */ 840); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var axisHelper = __webpack_require__(/*! ../../coord/axisHelper */ 533); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var _format = __webpack_require__(/*! ../../util/format */ 490); var encodeHTML = _format.encodeHTML; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var bind = zrUtil.bind; var each = zrUtil.each; var PI = Math.PI; var _default = TimelineView.extend({ type: 'timeline.slider', init: function init(ecModel, api) { this.api = api; /** * @private * @type {module:echarts/component/timeline/TimelineAxis} */ this._axis; /** * @private * @type {module:zrender/core/BoundingRect} */ this._viewRect; /** * @type {number} */ this._timer; /** * @type {module:zrender/Element} */ this._currentPointer; /** * @type {module:zrender/container/Group} */ this._mainGroup; /** * @type {module:zrender/container/Group} */ this._labelGroup; }, /** * @override */ render: function render(timelineModel, ecModel, api, payload) { this.model = timelineModel; this.api = api; this.ecModel = ecModel; this.group.removeAll(); if (timelineModel.get('show', true)) { var layoutInfo = this._layout(timelineModel, api); var mainGroup = this._createGroup('mainGroup'); var labelGroup = this._createGroup('labelGroup'); /** * @private * @type {module:echarts/component/timeline/TimelineAxis} */ var axis = this._axis = this._createAxis(layoutInfo, timelineModel); timelineModel.formatTooltip = function (dataIndex) { return encodeHTML(axis.scale.getLabel(dataIndex)); }; each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) { this['_render' + name](layoutInfo, mainGroup, axis, timelineModel); }, this); this._renderAxisLabel(layoutInfo, labelGroup, axis, timelineModel); this._position(layoutInfo, timelineModel); } this._doPlayStop(); }, /** * @override */ remove: function remove() { this._clearTimer(); this.group.removeAll(); }, /** * @override */ dispose: function dispose() { this._clearTimer(); }, _layout: function _layout(timelineModel, api) { var labelPosOpt = timelineModel.get('label.position'); var orient = timelineModel.get('orient'); var viewRect = getViewRect(timelineModel, api); // Auto label offset. if (labelPosOpt == null || labelPosOpt === 'auto') { labelPosOpt = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-'; } else if (isNaN(labelPosOpt)) { labelPosOpt = { horizontal: { top: '-', bottom: '+' }, vertical: { left: '-', right: '+' } }[orient][labelPosOpt]; } var labelAlignMap = { horizontal: 'center', vertical: labelPosOpt >= 0 || labelPosOpt === '+' ? 'left' : 'right' }; var labelBaselineMap = { horizontal: labelPosOpt >= 0 || labelPosOpt === '+' ? 'top' : 'bottom', vertical: 'middle' }; var rotationMap = { horizontal: 0, vertical: PI / 2 }; // Position var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width; var controlModel = timelineModel.getModel('controlStyle'); var showControl = controlModel.get('show', true); var controlSize = showControl ? controlModel.get('itemSize') : 0; var controlGap = showControl ? controlModel.get('itemGap') : 0; var sizePlusGap = controlSize + controlGap; // Special label rotate. var labelRotation = timelineModel.get('label.rotate') || 0; labelRotation = labelRotation * PI / 180; // To radian. var playPosition; var prevBtnPosition; var nextBtnPosition; var axisExtent; var controlPosition = controlModel.get('position', true); var showPlayBtn = showControl && controlModel.get('showPlayBtn', true); var showPrevBtn = showControl && controlModel.get('showPrevBtn', true); var showNextBtn = showControl && controlModel.get('showNextBtn', true); var xLeft = 0; var xRight = mainLength; // position[0] means left, position[1] means middle. if (controlPosition === 'left' || controlPosition === 'bottom') { showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap); showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap); showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap); } else { // 'top' 'right' showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap); showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap); showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap); } axisExtent = [xLeft, xRight]; if (timelineModel.get('inverse')) { axisExtent.reverse(); } return { viewRect: viewRect, mainLength: mainLength, orient: orient, rotation: rotationMap[orient], labelRotation: labelRotation, labelPosOpt: labelPosOpt, labelAlign: timelineModel.get('label.align') || labelAlignMap[orient], labelBaseline: timelineModel.get('label.verticalAlign') || timelineModel.get('label.baseline') || labelBaselineMap[orient], // Based on mainGroup. playPosition: playPosition, prevBtnPosition: prevBtnPosition, nextBtnPosition: nextBtnPosition, axisExtent: axisExtent, controlSize: controlSize, controlGap: controlGap }; }, _position: function _position(layoutInfo, timelineModel) { // Position is be called finally, because bounding rect is needed for // adapt content to fill viewRect (auto adapt offset). // Timeline may be not all in the viewRect when 'offset' is specified // as a number, because it is more appropriate that label aligns at // 'offset' but not the other edge defined by viewRect. var mainGroup = this._mainGroup; var labelGroup = this._labelGroup; var viewRect = layoutInfo.viewRect; if (layoutInfo.orient === 'vertical') { // transform to horizontal, inverse rotate by left-top point. var m = matrix.create(); var rotateOriginX = viewRect.x; var rotateOriginY = viewRect.y + viewRect.height; matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]); matrix.rotate(m, m, -PI / 2); matrix.translate(m, m, [rotateOriginX, rotateOriginY]); viewRect = viewRect.clone(); viewRect.applyTransform(m); } var viewBound = getBound(viewRect); var mainBound = getBound(mainGroup.getBoundingRect()); var labelBound = getBound(labelGroup.getBoundingRect()); var mainPosition = mainGroup.position; var labelsPosition = labelGroup.position; labelsPosition[0] = mainPosition[0] = viewBound[0][0]; var labelPosOpt = layoutInfo.labelPosOpt; if (isNaN(labelPosOpt)) { // '+' or '-' var mainBoundIdx = labelPosOpt === '+' ? 0 : 1; toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx); toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx); } else { var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1; toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx); labelsPosition[1] = mainPosition[1] + labelPosOpt; } mainGroup.attr('position', mainPosition); labelGroup.attr('position', labelsPosition); mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation; setOrigin(mainGroup); setOrigin(labelGroup); function setOrigin(targetGroup) { var pos = targetGroup.position; targetGroup.origin = [viewBound[0][0] - pos[0], viewBound[1][0] - pos[1]]; } function getBound(rect) { // [[xmin, xmax], [ymin, ymax]] return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]]; } function toBound(fromPos, from, to, dimIdx, boundIdx) { fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx]; } }, _createAxis: function _createAxis(layoutInfo, timelineModel) { var data = timelineModel.getData(); var axisType = timelineModel.get('axisType'); var scale = axisHelper.createScaleByModel(timelineModel, axisType); // Customize scale. The `tickValue` is `dataIndex`. scale.getTicks = function () { return data.mapArray(['value'], function (value) { return value; }); }; var dataExtent = data.getDataExtent('value'); scale.setExtent(dataExtent[0], dataExtent[1]); scale.niceTicks(); var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType); axis.model = timelineModel; return axis; }, _createGroup: function _createGroup(name) { var newGroup = this['_' + name] = new graphic.Group(); this.group.add(newGroup); return newGroup; }, _renderAxisLine: function _renderAxisLine(layoutInfo, group, axis, timelineModel) { var axisExtent = axis.getExtent(); if (!timelineModel.get('lineStyle.show')) { return; } group.add(new graphic.Line({ shape: { x1: axisExtent[0], y1: 0, x2: axisExtent[1], y2: 0 }, style: zrUtil.extend({ lineCap: 'round' }, timelineModel.getModel('lineStyle').getLineStyle()), silent: true, z2: 1 })); }, /** * @private */ _renderAxisTick: function _renderAxisTick(layoutInfo, group, axis, timelineModel) { var data = timelineModel.getData(); // Show all ticks, despite ignoring strategy. var ticks = axis.scale.getTicks(); // The value is dataIndex, see the costomized scale. each(ticks, function (value) { var tickCoord = axis.dataToCoord(value); var itemModel = data.getItemModel(value); var itemStyleModel = itemModel.getModel('itemStyle'); var hoverStyleModel = itemModel.getModel('emphasis.itemStyle'); var symbolOpt = { position: [tickCoord, 0], onclick: bind(this._changeTimeline, this, value) }; var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt); graphic.setHoverStyle(el, hoverStyleModel.getItemStyle()); if (itemModel.get('tooltip')) { el.dataIndex = value; el.dataModel = timelineModel; } else { el.dataIndex = el.dataModel = null; } }, this); }, /** * @private */ _renderAxisLabel: function _renderAxisLabel(layoutInfo, group, axis, timelineModel) { var labelModel = axis.getLabelModel(); if (!labelModel.get('show')) { return; } var data = timelineModel.getData(); var labels = axis.getViewLabels(); each(labels, function (labelItem) { // The tickValue is dataIndex, see the costomized scale. var dataIndex = labelItem.tickValue; var itemModel = data.getItemModel(dataIndex); var normalLabelModel = itemModel.getModel('label'); var hoverLabelModel = itemModel.getModel('emphasis.label'); var tickCoord = axis.dataToCoord(labelItem.tickValue); var textEl = new graphic.Text({ position: [tickCoord, 0], rotation: layoutInfo.labelRotation - layoutInfo.rotation, onclick: bind(this._changeTimeline, this, dataIndex), silent: false }); graphic.setTextStyle(textEl.style, normalLabelModel, { text: labelItem.formattedLabel, textAlign: layoutInfo.labelAlign, textVerticalAlign: layoutInfo.labelBaseline }); group.add(textEl); graphic.setHoverStyle(textEl, graphic.setTextStyle({}, hoverLabelModel)); }, this); }, /** * @private */ _renderControl: function _renderControl(layoutInfo, group, axis, timelineModel) { var controlSize = layoutInfo.controlSize; var rotation = layoutInfo.rotation; var itemStyle = timelineModel.getModel('controlStyle').getItemStyle(); var hoverStyle = timelineModel.getModel('emphasis.controlStyle').getItemStyle(); var rect = [0, -controlSize / 2, controlSize, controlSize]; var playState = timelineModel.getPlayState(); var inverse = timelineModel.get('inverse', true); makeBtn(layoutInfo.nextBtnPosition, 'controlStyle.nextIcon', bind(this._changeTimeline, this, inverse ? '-' : '+')); makeBtn(layoutInfo.prevBtnPosition, 'controlStyle.prevIcon', bind(this._changeTimeline, this, inverse ? '+' : '-')); makeBtn(layoutInfo.playPosition, 'controlStyle.' + (playState ? 'stopIcon' : 'playIcon'), bind(this._handlePlayClick, this, !playState), true); function makeBtn(position, iconPath, onclick, willRotate) { if (!position) { return; } var opt = { position: position, origin: [controlSize / 2, 0], rotation: willRotate ? -rotation : 0, rectHover: true, style: itemStyle, onclick: onclick }; var btn = makeIcon(timelineModel, iconPath, rect, opt); group.add(btn); graphic.setHoverStyle(btn, hoverStyle); } }, _renderCurrentPointer: function _renderCurrentPointer(layoutInfo, group, axis, timelineModel) { var data = timelineModel.getData(); var currentIndex = timelineModel.getCurrentIndex(); var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle'); var me = this; var callback = { onCreate: function onCreate(pointer) { pointer.draggable = true; pointer.drift = bind(me._handlePointerDrag, me); pointer.ondragend = bind(me._handlePointerDragend, me); pointerMoveTo(pointer, currentIndex, axis, timelineModel, true); }, onUpdate: function onUpdate(pointer) { pointerMoveTo(pointer, currentIndex, axis, timelineModel); } }; // Reuse when exists, for animation and drag. this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback); }, _handlePlayClick: function _handlePlayClick(nextState) { this._clearTimer(); this.api.dispatchAction({ type: 'timelinePlayChange', playState: nextState, from: this.uid }); }, _handlePointerDrag: function _handlePointerDrag(dx, dy, e) { this._clearTimer(); this._pointerChangeTimeline([e.offsetX, e.offsetY]); }, _handlePointerDragend: function _handlePointerDragend(e) { this._pointerChangeTimeline([e.offsetX, e.offsetY], true); }, _pointerChangeTimeline: function _pointerChangeTimeline(mousePos, trigger) { var toCoord = this._toAxisCoord(mousePos)[0]; var axis = this._axis; var axisExtent = numberUtil.asc(axis.getExtent().slice()); toCoord > axisExtent[1] && (toCoord = axisExtent[1]); toCoord < axisExtent[0] && (toCoord = axisExtent[0]); this._currentPointer.position[0] = toCoord; this._currentPointer.dirty(); var targetDataIndex = this._findNearestTick(toCoord); var timelineModel = this.model; if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) { this._changeTimeline(targetDataIndex); } }, _doPlayStop: function _doPlayStop() { this._clearTimer(); if (this.model.getPlayState()) { this._timer = setTimeout(bind(handleFrame, this), this.model.get('playInterval')); } function handleFrame() { // Do not cache var timelineModel = this.model; this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1)); } }, _toAxisCoord: function _toAxisCoord(vertex) { var trans = this._mainGroup.getLocalTransform(); return graphic.applyTransform(vertex, trans, true); }, _findNearestTick: function _findNearestTick(axisCoord) { var data = this.model.getData(); var dist = Infinity; var targetDataIndex; var axis = this._axis; data.each(['value'], function (value, dataIndex) { var coord = axis.dataToCoord(value); var d = Math.abs(coord - axisCoord); if (d < dist) { dist = d; targetDataIndex = dataIndex; } }); return targetDataIndex; }, _clearTimer: function _clearTimer() { if (this._timer) { clearTimeout(this._timer); this._timer = null; } }, _changeTimeline: function _changeTimeline(nextIndex) { var currentIndex = this.model.getCurrentIndex(); if (nextIndex === '+') { nextIndex = currentIndex + 1; } else if (nextIndex === '-') { nextIndex = currentIndex - 1; } this.api.dispatchAction({ type: 'timelineChange', currentIndex: nextIndex, from: this.uid }); } }); function getViewRect(model, api) { return layout.getLayoutRect(model.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }, model.get('padding')); } function makeIcon(timelineModel, objPath, rect, opts) { var style = opts.style; var icon = graphic.createIcon(timelineModel.get(objPath), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3])); // TODO createIcon won't use style in opt. if (style) { icon.setStyle(style); } return icon; } /** * Create symbol or update symbol * opt: basic position and event handlers */ function giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) { var color = itemStyleModel.get('color'); if (!symbol) { var symbolType = hostModel.get('symbol'); symbol = createSymbol(symbolType, -1, -1, 2, 2, color); symbol.setStyle('strokeNoScale', true); group.add(symbol); callback && callback.onCreate(symbol); } else { symbol.setColor(color); group.add(symbol); // Group may be new, also need to add. callback && callback.onUpdate(symbol); } // Style var itemStyle = itemStyleModel.getItemStyle(['color', 'symbol', 'symbolSize']); symbol.setStyle(itemStyle); // Transform and events. opt = zrUtil.merge({ rectHover: true, z2: 100 }, opt, true); var symbolSize = hostModel.get('symbolSize'); symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize]; symbolSize[0] /= 2; symbolSize[1] /= 2; opt.scale = symbolSize; var symbolOffset = hostModel.get('symbolOffset'); if (symbolOffset) { var pos = opt.position = opt.position || [0, 0]; pos[0] += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]); pos[1] += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]); } var symbolRotate = hostModel.get('symbolRotate'); opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0; symbol.attr(opt); // FIXME // (1) When symbol.style.strokeNoScale is true and updateTransform is not performed, // getBoundingRect will return wrong result. // (This is supposed to be resolved in zrender, but it is a little difficult to // leverage performance and auto updateTransform) // (2) All of ancesters of symbol do not scale, so we can just updateTransform symbol. symbol.updateTransform(); return symbol; } function pointerMoveTo(pointer, dataIndex, axis, timelineModel, noAnimation) { if (pointer.dragging) { return; } var pointerModel = timelineModel.getModel('checkpointStyle'); var toCoord = axis.dataToCoord(timelineModel.getData().get(['value'], dataIndex)); if (noAnimation || !pointerModel.get('animation', true)) { pointer.attr({ position: [toCoord, 0] }); } else { pointer.stopAnimation(true); pointer.animateTo({ position: [toCoord, 0] }, pointerModel.get('animationDuration', true), pointerModel.get('animationEasing', true)); } } module.exports = _default; /***/ }), /* 839 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/TimelineView.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ComponentView = __webpack_require__(/*! ../../view/Component */ 507); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = ComponentView.extend({ type: 'timeline' }); module.exports = _default; /***/ }), /* 840 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/timeline/TimelineAxis.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Axis = __webpack_require__(/*! ../../coord/Axis */ 547); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Extend axis 2d * @constructor module:echarts/coord/cartesian/Axis2D * @extends {module:echarts/coord/cartesian/Axis} * @param {string} dim * @param {*} scale * @param {Array.} coordExtent * @param {string} axisType * @param {string} position */ var TimelineAxis = function TimelineAxis(dim, scale, coordExtent, axisType) { Axis.call(this, dim, scale, coordExtent); /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' * @type {string} */ this.type = axisType || 'value'; /** * Axis model * @param {module:echarts/component/TimelineModel} */ this.model = null; }; TimelineAxis.prototype = { constructor: TimelineAxis, /** * @override */ getLabelModel: function getLabelModel() { return this.model.getModel('label'); }, /** * @override */ isHorizontal: function isHorizontal() { return this.model.get('orient') === 'horizontal'; } }; zrUtil.inherits(TimelineAxis, Axis); var _default = TimelineAxis; module.exports = _default; /***/ }), /* 841 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/markPoint.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./marker/MarkPointModel */ 842); __webpack_require__(/*! ./marker/MarkPointView */ 844); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // HINT Markpoint can't be used too much echarts.registerPreprocessor(function (opt) { // Make sure markPoint component is enabled opt.markPoint = opt.markPoint || {}; }); /***/ }), /* 842 */ /*!********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkPointModel.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var MarkerModel = __webpack_require__(/*! ./MarkerModel */ 843); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = MarkerModel.extend({ type: 'markPoint', defaultOption: { zlevel: 0, z: 5, symbol: 'pin', symbolSize: 50, //symbolRotate: 0, //symbolOffset: [0, 0] tooltip: { trigger: 'item' }, label: { show: true, position: 'inside' }, itemStyle: { borderWidth: 2 }, emphasis: { label: { show: true } } } }); module.exports = _default; /***/ }), /* 843 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkerModel.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var dataFormatMixin = __webpack_require__(/*! ../../model/mixin/dataFormat */ 504); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var addCommas = formatUtil.addCommas; var encodeHTML = formatUtil.encodeHTML; function fillLabel(opt) { modelUtil.defaultEmphasis(opt, 'label', ['show']); } var MarkerModel = echarts.extendComponentModel({ type: 'marker', dependencies: ['series', 'grid', 'polar', 'geo'], /** * @overrite */ init: function init(option, parentModel, ecModel) { this.mergeDefaultAndTheme(option, ecModel); this._mergeOption(option, ecModel, false, true); }, /** * @return {boolean} */ isAnimationEnabled: function isAnimationEnabled() { if (env.node) { return false; } var hostSeries = this.__hostSeries; return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled(); }, /** * @overrite */ mergeOption: function mergeOption(newOpt, ecModel) { this._mergeOption(newOpt, ecModel, false, false); }, _mergeOption: function _mergeOption(newOpt, ecModel, createdBySelf, isInit) { var MarkerModel = this.constructor; var modelPropName = this.mainType + 'Model'; if (!createdBySelf) { ecModel.eachSeries(function (seriesModel) { var markerOpt = seriesModel.get(this.mainType, true); var markerModel = seriesModel[modelPropName]; if (!markerOpt || !markerOpt.data) { seriesModel[modelPropName] = null; return; } if (!markerModel) { if (isInit) { // Default label emphasis `position` and `show` fillLabel(markerOpt); } zrUtil.each(markerOpt.data, function (item) { // FIXME Overwrite fillLabel method ? if (item instanceof Array) { fillLabel(item[0]); fillLabel(item[1]); } else { fillLabel(item); } }); markerModel = new MarkerModel(markerOpt, this, ecModel); zrUtil.extend(markerModel, { mainType: this.mainType, // Use the same series index and name seriesIndex: seriesModel.seriesIndex, name: seriesModel.name, createdBySelf: true }); markerModel.__hostSeries = seriesModel; } else { markerModel._mergeOption(markerOpt, ecModel, true); } seriesModel[modelPropName] = markerModel; }, this); } }, formatTooltip: function formatTooltip(dataIndex, multipleSeries, dataType, renderMode) { var data = this.getData(); var value = this.getRawValue(dataIndex); var formattedValue = zrUtil.isArray(value) ? zrUtil.map(value, addCommas).join(', ') : addCommas(value); var name = data.getName(dataIndex); var html = encodeHTML(this.name); var newLine = renderMode === 'html' ? '
' : '\n'; if (value != null || name) { html += newLine; } if (name) { html += encodeHTML(name); if (value != null) { html += ' : '; } } if (value != null) { html += encodeHTML(formattedValue); } return html; }, getData: function getData() { return this._data; }, setData: function setData(data) { this._data = data; } }); zrUtil.mixin(MarkerModel, dataFormatMixin); var _default = MarkerModel; module.exports = _default; /***/ }), /* 844 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkPointView.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var SymbolDraw = __webpack_require__(/*! ../../chart/helper/SymbolDraw */ 552); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var List = __webpack_require__(/*! ../../data/List */ 525); var markerHelper = __webpack_require__(/*! ./markerHelper */ 845); var MarkerView = __webpack_require__(/*! ./MarkerView */ 846); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function updateMarkerLayout(mpData, seriesModel, api) { var coordSys = seriesModel.coordinateSystem; mpData.each(function (idx) { var itemModel = mpData.getItemModel(idx); var point; var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth()); var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight()); if (!isNaN(xPx) && !isNaN(yPx)) { point = [xPx, yPx]; } // Chart like bar may have there own marker positioning logic else if (seriesModel.getMarkerPosition) { // Use the getMarkerPoisition point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx)); } else if (coordSys) { var x = mpData.get(coordSys.dimensions[0], idx); var y = mpData.get(coordSys.dimensions[1], idx); point = coordSys.dataToPoint([x, y]); } // Use x, y if has any if (!isNaN(xPx)) { point[0] = xPx; } if (!isNaN(yPx)) { point[1] = yPx; } mpData.setItemLayout(idx, point); }); } var _default = MarkerView.extend({ type: 'markPoint', // updateLayout: function (markPointModel, ecModel, api) { // ecModel.eachSeries(function (seriesModel) { // var mpModel = seriesModel.markPointModel; // if (mpModel) { // updateMarkerLayout(mpModel.getData(), seriesModel, api); // this.markerGroupMap.get(seriesModel.id).updateLayout(mpModel); // } // }, this); // }, updateTransform: function updateTransform(markPointModel, ecModel, api) { ecModel.eachSeries(function (seriesModel) { var mpModel = seriesModel.markPointModel; if (mpModel) { updateMarkerLayout(mpModel.getData(), seriesModel, api); this.markerGroupMap.get(seriesModel.id).updateLayout(mpModel); } }, this); }, renderSeries: function renderSeries(seriesModel, mpModel, ecModel, api) { var coordSys = seriesModel.coordinateSystem; var seriesId = seriesModel.id; var seriesData = seriesModel.getData(); var symbolDrawMap = this.markerGroupMap; var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw()); var mpData = createList(coordSys, seriesModel, mpModel); // FIXME mpModel.setData(mpData); updateMarkerLayout(mpModel.getData(), seriesModel, api); mpData.each(function (idx) { var itemModel = mpData.getItemModel(idx); var symbol = itemModel.getShallow('symbol'); var symbolSize = itemModel.getShallow('symbolSize'); var symbolRotate = itemModel.getShallow('symbolRotate'); var isFnSymbol = zrUtil.isFunction(symbol); var isFnSymbolSize = zrUtil.isFunction(symbolSize); var isFnSymbolRotate = zrUtil.isFunction(symbolRotate); if (isFnSymbol || isFnSymbolSize || isFnSymbolRotate) { var rawIdx = mpModel.getRawValue(idx); var dataParams = mpModel.getDataParams(idx); if (isFnSymbol) { symbol = symbol(rawIdx, dataParams); } if (isFnSymbolSize) { // FIXME 这里不兼容 ECharts 2.x,2.x 貌似参数是整个数据? symbolSize = symbolSize(rawIdx, dataParams); } if (isFnSymbolRotate) { symbolRotate = symbolRotate(rawIdx, dataParams); } } mpData.setItemVisual(idx, { symbol: symbol, symbolSize: symbolSize, symbolRotate: symbolRotate, color: itemModel.get('itemStyle.color') || seriesData.getVisual('color') }); }); // TODO Text are wrong symbolDraw.updateData(mpData); this.group.add(symbolDraw.group); // Set host model for tooltip // FIXME mpData.eachItemGraphicEl(function (el) { el.traverse(function (child) { child.dataModel = mpModel; }); }); symbolDraw.__keep = true; symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent'); } }); /** * @inner * @param {module:echarts/coord/*} [coordSys] * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Model} mpModel */ function createList(coordSys, seriesModel, mpModel) { var coordDimsInfos; if (coordSys) { coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) { var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys return zrUtil.defaults({ name: coordDim }, info); }); } else { coordDimsInfos = [{ name: 'value', type: 'float' }]; } var mpData = new List(coordDimsInfos, mpModel); var dataOpt = zrUtil.map(mpModel.get('data'), zrUtil.curry(markerHelper.dataTransform, seriesModel)); if (coordSys) { dataOpt = zrUtil.filter(dataOpt, zrUtil.curry(markerHelper.dataFilter, coordSys)); } mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) { return item.value; }); return mpData; } module.exports = _default; /***/ }), /* 845 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/markerHelper.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var _dataStackHelper = __webpack_require__(/*! ../../data/helper/dataStackHelper */ 532); var isDimensionStacked = _dataStackHelper.isDimensionStacked; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var indexOf = zrUtil.indexOf; function hasXOrY(item) { return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y))); } function hasXAndY(item) { return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y)); } // Make it simple, do not visit all stacked value to count precision. // function getPrecision(data, valueAxisDim, dataIndex) { // var precision = -1; // var stackedDim = data.mapDimension(valueAxisDim); // do { // precision = Math.max( // numberUtil.getPrecision(data.get(stackedDim, dataIndex)), // precision // ); // var stackedOnSeries = data.getCalculationInfo('stackedOnSeries'); // if (stackedOnSeries) { // var byValue = data.get(data.getCalculationInfo('stackedByDimension'), dataIndex); // data = stackedOnSeries.getData(); // dataIndex = data.indexOf(data.getCalculationInfo('stackedByDimension'), byValue); // stackedDim = data.getCalculationInfo('stackedDimension'); // } // else { // data = null; // } // } while (data); // return precision; // } function markerTypeCalculatorWithExtent(mlType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) { var coordArr = []; var stacked = isDimensionStacked(data, targetDataDim /*, otherDataDim*/); var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim; var value = numCalculate(data, calcDataDim, mlType); var dataIndex = data.indicesOfNearest(calcDataDim, value)[0]; coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex); coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex); var coordArrValue = data.get(targetDataDim, dataIndex); // Make it simple, do not visit all stacked value to count precision. var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex)); precision = Math.min(precision, 20); if (precision >= 0) { coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision); } return [coordArr, coordArrValue]; } var curry = zrUtil.curry; // TODO Specified percent var markerTypeCalculator = { /** * @method * @param {module:echarts/data/List} data * @param {string} baseAxisDim * @param {string} valueAxisDim */ min: curry(markerTypeCalculatorWithExtent, 'min'), /** * @method * @param {module:echarts/data/List} data * @param {string} baseAxisDim * @param {string} valueAxisDim */ max: curry(markerTypeCalculatorWithExtent, 'max'), /** * @method * @param {module:echarts/data/List} data * @param {string} baseAxisDim * @param {string} valueAxisDim */ average: curry(markerTypeCalculatorWithExtent, 'average') }; /** * Transform markPoint data item to format used in List by do the following * 1. Calculate statistic like `max`, `min`, `average` * 2. Convert `item.xAxis`, `item.yAxis` to `item.coord` array * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/coord/*} [coordSys] * @param {Object} item * @return {Object} */ function dataTransform(seriesModel, item) { var data = seriesModel.getData(); var coordSys = seriesModel.coordinateSystem; // 1. If not specify the position with pixel directly // 2. If `coord` is not a data array. Which uses `xAxis`, // `yAxis` to specify the coord on each dimension // parseFloat first because item.x and item.y can be percent string like '20%' if (item && !hasXAndY(item) && !zrUtil.isArray(item.coord) && coordSys) { var dims = coordSys.dimensions; var axisInfo = getAxisInfo(item, data, coordSys, seriesModel); // Clone the option // Transform the properties xAxis, yAxis, radiusAxis, angleAxis, geoCoord to value item = zrUtil.clone(item); if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) { var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim); var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim); var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex); item.coord = coordInfo[0]; // Force to use the value of calculated value. // let item use the value without stack. item.value = coordInfo[1]; } else { // FIXME Only has one of xAxis and yAxis. var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis]; // Each coord support max, min, average for (var i = 0; i < 2; i++) { if (markerTypeCalculator[coord[i]]) { coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]); } } item.coord = coord; } } return item; } function getAxisInfo(item, data, coordSys, seriesModel) { var ret = {}; if (item.valueIndex != null || item.valueDim != null) { ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim; ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim)); ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis); ret.baseDataDim = data.mapDimension(ret.baseAxis.dim); } else { ret.baseAxis = seriesModel.getBaseAxis(); ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis); ret.baseDataDim = data.mapDimension(ret.baseAxis.dim); ret.valueDataDim = data.mapDimension(ret.valueAxis.dim); } return ret; } function dataDimToCoordDim(seriesModel, dataDim) { var data = seriesModel.getData(); var dimensions = data.dimensions; dataDim = data.getDimension(dataDim); for (var i = 0; i < dimensions.length; i++) { var dimItem = data.getDimensionInfo(dimensions[i]); if (dimItem.name === dataDim) { return dimItem.coordDim; } } } /** * Filter data which is out of coordinateSystem range * [dataFilter description] * @param {module:echarts/coord/*} [coordSys] * @param {Object} item * @return {boolean} */ function dataFilter(coordSys, item) { // Alwalys return true if there is no coordSys return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true; } function dimValueGetter(item, dimName, dataIndex, dimIndex) { // x, y, radius, angle if (dimIndex < 2) { return item.coord && item.coord[dimIndex]; } return item.value; } function numCalculate(data, valueDataDim, type) { if (type === 'average') { var sum = 0; var count = 0; data.each(valueDataDim, function (val, idx) { if (!isNaN(val)) { sum += val; count++; } }); return sum / count; } else if (type === 'median') { return data.getMedian(valueDataDim); } else { // max & min return data.getDataExtent(valueDataDim, true)[type === 'max' ? 1 : 0]; } } exports.dataTransform = dataTransform; exports.getAxisInfo = getAxisInfo; exports.dataFilter = dataFilter; exports.dimValueGetter = dimValueGetter; exports.numCalculate = numCalculate; /***/ }), /* 846 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkerView.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendComponentView({ type: 'marker', init: function init() { /** * Markline grouped by series * @private * @type {module:zrender/core/util.HashMap} */ this.markerGroupMap = zrUtil.createHashMap(); }, render: function render(markerModel, ecModel, api) { var markerGroupMap = this.markerGroupMap; markerGroupMap.each(function (item) { item.__keep = false; }); var markerModelKey = this.type + 'Model'; ecModel.eachSeries(function (seriesModel) { var markerModel = seriesModel[markerModelKey]; markerModel && this.renderSeries(seriesModel, markerModel, ecModel, api); }, this); markerGroupMap.each(function (item) { !item.__keep && this.group.remove(item.group); }, this); }, renderSeries: function renderSeries() {} }); module.exports = _default; /***/ }), /* 847 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/markLine.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./marker/MarkLineModel */ 848); __webpack_require__(/*! ./marker/MarkLineView */ 849); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerPreprocessor(function (opt) { // Make sure markLine component is enabled opt.markLine = opt.markLine || {}; }); /***/ }), /* 848 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkLineModel.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var MarkerModel = __webpack_require__(/*! ./MarkerModel */ 843); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = MarkerModel.extend({ type: 'markLine', defaultOption: { zlevel: 0, z: 5, symbol: ['circle', 'arrow'], symbolSize: [8, 16], //symbolRotate: 0, precision: 2, tooltip: { trigger: 'item' }, label: { show: true, position: 'end', distance: 5 }, lineStyle: { type: 'dashed' }, emphasis: { label: { show: true }, lineStyle: { width: 3 } }, animationEasing: 'linear' } }); module.exports = _default; /***/ }), /* 849 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkLineView.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var List = __webpack_require__(/*! ../../data/List */ 525); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var markerHelper = __webpack_require__(/*! ./markerHelper */ 845); var LineDraw = __webpack_require__(/*! ../../chart/helper/LineDraw */ 659); var MarkerView = __webpack_require__(/*! ./MarkerView */ 846); var _dataStackHelper = __webpack_require__(/*! ../../data/helper/dataStackHelper */ 532); var getStackedDimension = _dataStackHelper.getStackedDimension; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var markLineTransform = function markLineTransform(seriesModel, coordSys, mlModel, item) { var data = seriesModel.getData(); // Special type markLine like 'min', 'max', 'average', 'median' var mlType = item.type; if (!zrUtil.isArray(item) && (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case // data: [{ // yAxis: 10 // }] || item.xAxis != null || item.yAxis != null)) { var valueAxis; var value; if (item.yAxis != null || item.xAxis != null) { valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x'); value = zrUtil.retrieve(item.yAxis, item.xAxis); } else { var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel); valueAxis = axisInfo.valueAxis; var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim); value = markerHelper.numCalculate(data, valueDataDim, mlType); } var valueIndex = valueAxis.dim === 'x' ? 0 : 1; var baseIndex = 1 - valueIndex; var mlFrom = zrUtil.clone(item); var mlTo = {}; mlFrom.type = null; mlFrom.coord = []; mlTo.coord = []; mlFrom.coord[baseIndex] = -Infinity; mlTo.coord[baseIndex] = Infinity; var precision = mlModel.get('precision'); if (precision >= 0 && typeof value === 'number') { value = +value.toFixed(Math.min(precision, 20)); } mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value; item = [mlFrom, mlTo, { // Extra option for tooltip and label type: mlType, valueIndex: item.valueIndex, // Force to use the value of calculated value. value: value }]; } item = [markerHelper.dataTransform(seriesModel, item[0]), markerHelper.dataTransform(seriesModel, item[1]), zrUtil.extend({}, item[2])]; // Avoid line data type is extended by from(to) data type item[2].type = item[2].type || ''; // Merge from option and to option into line option zrUtil.merge(item[2], item[0]); zrUtil.merge(item[2], item[1]); return item; }; function isInifinity(val) { return !isNaN(val) && !isFinite(val); } // If a markLine has one dim function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) { var otherDimIndex = 1 - dimIndex; var dimName = coordSys.dimensions[dimIndex]; return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]); } function markLineFilter(coordSys, item) { if (coordSys.type === 'cartesian2d') { var fromCoord = item[0].coord; var toCoord = item[1].coord; // In case // { // markLine: { // data: [{ yAxis: 2 }] // } // } if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) { return true; } } return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]); } function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) { var coordSys = seriesModel.coordinateSystem; var itemModel = data.getItemModel(idx); var point; var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth()); var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight()); if (!isNaN(xPx) && !isNaN(yPx)) { point = [xPx, yPx]; } else { // Chart like bar may have there own marker positioning logic if (seriesModel.getMarkerPosition) { // Use the getMarkerPoisition point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx)); } else { var dims = coordSys.dimensions; var x = data.get(dims[0], idx); var y = data.get(dims[1], idx); point = coordSys.dataToPoint([x, y]); } // Expand line to the edge of grid if value on one axis is Inifnity // In case // markLine: { // data: [{ // yAxis: 2 // // or // type: 'average' // }] // } if (coordSys.type === 'cartesian2d') { var xAxis = coordSys.getAxis('x'); var yAxis = coordSys.getAxis('y'); var dims = coordSys.dimensions; if (isInifinity(data.get(dims[0], idx))) { point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]); } else if (isInifinity(data.get(dims[1], idx))) { point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]); } } // Use x, y if has any if (!isNaN(xPx)) { point[0] = xPx; } if (!isNaN(yPx)) { point[1] = yPx; } } data.setItemLayout(idx, point); } var _default = MarkerView.extend({ type: 'markLine', // updateLayout: function (markLineModel, ecModel, api) { // ecModel.eachSeries(function (seriesModel) { // var mlModel = seriesModel.markLineModel; // if (mlModel) { // var mlData = mlModel.getData(); // var fromData = mlModel.__from; // var toData = mlModel.__to; // // Update visual and layout of from symbol and to symbol // fromData.each(function (idx) { // updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api); // updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api); // }); // // Update layout of line // mlData.each(function (idx) { // mlData.setItemLayout(idx, [ // fromData.getItemLayout(idx), // toData.getItemLayout(idx) // ]); // }); // this.markerGroupMap.get(seriesModel.id).updateLayout(); // } // }, this); // }, updateTransform: function updateTransform(markLineModel, ecModel, api) { ecModel.eachSeries(function (seriesModel) { var mlModel = seriesModel.markLineModel; if (mlModel) { var mlData = mlModel.getData(); var fromData = mlModel.__from; var toData = mlModel.__to; // Update visual and layout of from symbol and to symbol fromData.each(function (idx) { updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api); updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api); }); // Update layout of line mlData.each(function (idx) { mlData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]); }); this.markerGroupMap.get(seriesModel.id).updateLayout(); } }, this); }, renderSeries: function renderSeries(seriesModel, mlModel, ecModel, api) { var coordSys = seriesModel.coordinateSystem; var seriesId = seriesModel.id; var seriesData = seriesModel.getData(); var lineDrawMap = this.markerGroupMap; var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw()); this.group.add(lineDraw.group); var mlData = createList(coordSys, seriesModel, mlModel); var fromData = mlData.from; var toData = mlData.to; var lineData = mlData.line; mlModel.__from = fromData; mlModel.__to = toData; // Line data for tooltip and formatter mlModel.setData(lineData); var symbolType = mlModel.get('symbol'); var symbolSize = mlModel.get('symbolSize'); if (!zrUtil.isArray(symbolType)) { symbolType = [symbolType, symbolType]; } if (typeof symbolSize === 'number') { symbolSize = [symbolSize, symbolSize]; } // Update visual and layout of from symbol and to symbol mlData.from.each(function (idx) { updateDataVisualAndLayout(fromData, idx, true); updateDataVisualAndLayout(toData, idx, false); }); // Update visual and layout of line lineData.each(function (idx) { var lineColor = lineData.getItemModel(idx).get('lineStyle.color'); lineData.setItemVisual(idx, { color: lineColor || fromData.getItemVisual(idx, 'color') }); lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]); lineData.setItemVisual(idx, { 'fromSymbolRotate': fromData.getItemVisual(idx, 'symbolRotate'), 'fromSymbolSize': fromData.getItemVisual(idx, 'symbolSize'), 'fromSymbol': fromData.getItemVisual(idx, 'symbol'), 'toSymbolRotate': toData.getItemVisual(idx, 'symbolRotate'), 'toSymbolSize': toData.getItemVisual(idx, 'symbolSize'), 'toSymbol': toData.getItemVisual(idx, 'symbol') }); }); lineDraw.updateData(lineData); // Set host model for tooltip // FIXME mlData.line.eachItemGraphicEl(function (el, idx) { el.traverse(function (child) { child.dataModel = mlModel; }); }); function updateDataVisualAndLayout(data, idx, isFrom) { var itemModel = data.getItemModel(idx); updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api); data.setItemVisual(idx, { symbolRotate: itemModel.get('symbolRotate'), symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1], symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1], color: itemModel.get('itemStyle.color') || seriesData.getVisual('color') }); } lineDraw.__keep = true; lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent'); } }); /** * @inner * @param {module:echarts/coord/*} coordSys * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Model} mpModel */ function createList(coordSys, seriesModel, mlModel) { var coordDimsInfos; if (coordSys) { coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) { var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys return zrUtil.defaults({ name: coordDim }, info); }); } else { coordDimsInfos = [{ name: 'value', type: 'float' }]; } var fromData = new List(coordDimsInfos, mlModel); var toData = new List(coordDimsInfos, mlModel); // No dimensions var lineData = new List([], mlModel); var optData = zrUtil.map(mlModel.get('data'), zrUtil.curry(markLineTransform, seriesModel, coordSys, mlModel)); if (coordSys) { optData = zrUtil.filter(optData, zrUtil.curry(markLineFilter, coordSys)); } var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) { return item.value; }; fromData.initData(zrUtil.map(optData, function (item) { return item[0]; }), null, dimValueGetter); toData.initData(zrUtil.map(optData, function (item) { return item[1]; }), null, dimValueGetter); lineData.initData(zrUtil.map(optData, function (item) { return item[2]; })); lineData.hasItemOption = true; return { from: fromData, to: toData, line: lineData }; } module.exports = _default; /***/ }), /* 850 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/markArea.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./marker/MarkAreaModel */ 851); __webpack_require__(/*! ./marker/MarkAreaView */ 852); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ echarts.registerPreprocessor(function (opt) { // Make sure markArea component is enabled opt.markArea = opt.markArea || {}; }); /***/ }), /* 851 */ /*!*******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkAreaModel.js ***! \*******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var MarkerModel = __webpack_require__(/*! ./MarkerModel */ 843); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = MarkerModel.extend({ type: 'markArea', defaultOption: { zlevel: 0, // PENDING z: 1, tooltip: { trigger: 'item' }, // markArea should fixed on the coordinate system animation: false, label: { show: true, position: 'top' }, itemStyle: { // color and borderColor default to use color from series // color: 'auto' // borderColor: 'auto' borderWidth: 0 }, emphasis: { label: { show: true, position: 'top' } } } }); module.exports = _default; /***/ }), /* 852 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/marker/MarkAreaView.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var colorUtil = __webpack_require__(/*! zrender/lib/tool/color */ 421); var List = __webpack_require__(/*! ../../data/List */ 525); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var markerHelper = __webpack_require__(/*! ./markerHelper */ 845); var MarkerView = __webpack_require__(/*! ./MarkerView */ 846); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // TODO Better on polar var markAreaTransform = function markAreaTransform(seriesModel, coordSys, maModel, item) { var lt = markerHelper.dataTransform(seriesModel, item[0]); var rb = markerHelper.dataTransform(seriesModel, item[1]); var retrieve = zrUtil.retrieve; // FIXME make sure lt is less than rb var ltCoord = lt.coord; var rbCoord = rb.coord; ltCoord[0] = retrieve(ltCoord[0], -Infinity); ltCoord[1] = retrieve(ltCoord[1], -Infinity); rbCoord[0] = retrieve(rbCoord[0], Infinity); rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one var result = zrUtil.mergeAll([{}, lt, rb]); result.coord = [lt.coord, rb.coord]; result.x0 = lt.x; result.y0 = lt.y; result.x1 = rb.x; result.y1 = rb.y; return result; }; function isInifinity(val) { return !isNaN(val) && !isFinite(val); } // If a markArea has one dim function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) { var otherDimIndex = 1 - dimIndex; return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]); } function markAreaFilter(coordSys, item) { var fromCoord = item.coord[0]; var toCoord = item.coord[1]; if (coordSys.type === 'cartesian2d') { // In case // { // markArea: { // data: [{ yAxis: 2 }] // } // } if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) { return true; } } return markerHelper.dataFilter(coordSys, { coord: fromCoord, x: item.x0, y: item.y0 }) || markerHelper.dataFilter(coordSys, { coord: toCoord, x: item.x1, y: item.y1 }); } // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0'] function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) { var coordSys = seriesModel.coordinateSystem; var itemModel = data.getItemModel(idx); var point; var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth()); var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight()); if (!isNaN(xPx) && !isNaN(yPx)) { point = [xPx, yPx]; } else { // Chart like bar may have there own marker positioning logic if (seriesModel.getMarkerPosition) { // Use the getMarkerPoisition point = seriesModel.getMarkerPosition(data.getValues(dims, idx)); } else { var x = data.get(dims[0], idx); var y = data.get(dims[1], idx); var pt = [x, y]; coordSys.clampData && coordSys.clampData(pt, pt); point = coordSys.dataToPoint(pt, true); } if (coordSys.type === 'cartesian2d') { var xAxis = coordSys.getAxis('x'); var yAxis = coordSys.getAxis('y'); var x = data.get(dims[0], idx); var y = data.get(dims[1], idx); if (isInifinity(x)) { point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]); } else if (isInifinity(y)) { point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]); } } // Use x, y if has any if (!isNaN(xPx)) { point[0] = xPx; } if (!isNaN(yPx)) { point[1] = yPx; } } return point; } var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']]; MarkerView.extend({ type: 'markArea', // updateLayout: function (markAreaModel, ecModel, api) { // ecModel.eachSeries(function (seriesModel) { // var maModel = seriesModel.markAreaModel; // if (maModel) { // var areaData = maModel.getData(); // areaData.each(function (idx) { // var points = zrUtil.map(dimPermutations, function (dim) { // return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api); // }); // // Layout // areaData.setItemLayout(idx, points); // var el = areaData.getItemGraphicEl(idx); // el.setShape('points', points); // }); // } // }, this); // }, updateTransform: function updateTransform(markAreaModel, ecModel, api) { ecModel.eachSeries(function (seriesModel) { var maModel = seriesModel.markAreaModel; if (maModel) { var areaData = maModel.getData(); areaData.each(function (idx) { var points = zrUtil.map(dimPermutations, function (dim) { return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api); }); // Layout areaData.setItemLayout(idx, points); var el = areaData.getItemGraphicEl(idx); el.setShape('points', points); }); } }, this); }, renderSeries: function renderSeries(seriesModel, maModel, ecModel, api) { var coordSys = seriesModel.coordinateSystem; var seriesId = seriesModel.id; var seriesData = seriesModel.getData(); var areaGroupMap = this.markerGroupMap; var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, { group: new graphic.Group() }); this.group.add(polygonGroup.group); polygonGroup.__keep = true; var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter maModel.setData(areaData); // Update visual and layout of line areaData.each(function (idx) { // Layout var points = zrUtil.map(dimPermutations, function (dim) { return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api); }); // If none of the area is inside coordSys, allClipped is set to be true // in layout so that label will not be displayed. See #12591 var allClipped = true; zrUtil.each(dimPermutations, function (dim) { if (!allClipped) { return; } var xValue = areaData.get(dim[0], idx); var yValue = areaData.get(dim[1], idx); // If is infinity, the axis should be considered not clipped if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) { allClipped = false; } }); areaData.setItemLayout(idx, { points: points, allClipped: allClipped }); // Visual areaData.setItemVisual(idx, { color: seriesData.getVisual('color') }); }); areaData.diff(polygonGroup.__data).add(function (idx) { var layout = areaData.getItemLayout(idx); if (!layout.allClipped) { var polygon = new graphic.Polygon({ shape: { points: layout.points } }); areaData.setItemGraphicEl(idx, polygon); polygonGroup.group.add(polygon); } }).update(function (newIdx, oldIdx) { var polygon = polygonGroup.__data.getItemGraphicEl(oldIdx); var layout = areaData.getItemLayout(newIdx); if (!layout.allClipped) { if (polygon) { graphic.updateProps(polygon, { shape: { points: layout.points } }, maModel, newIdx); } else { polygon = new graphic.Polygon({ shape: { points: layout.points } }); } areaData.setItemGraphicEl(newIdx, polygon); polygonGroup.group.add(polygon); } else if (polygon) { polygonGroup.group.remove(polygon); } }).remove(function (idx) { var polygon = polygonGroup.__data.getItemGraphicEl(idx); polygonGroup.group.remove(polygon); }).execute(); areaData.eachItemGraphicEl(function (polygon, idx) { var itemModel = areaData.getItemModel(idx); var labelModel = itemModel.getModel('label'); var labelHoverModel = itemModel.getModel('emphasis.label'); var color = areaData.getItemVisual(idx, 'color'); polygon.useStyle(zrUtil.defaults(itemModel.getModel('itemStyle').getItemStyle(), { fill: colorUtil.modifyAlpha(color, 0.4), stroke: color })); polygon.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle(); graphic.setLabelStyle(polygon.style, polygon.hoverStyle, labelModel, labelHoverModel, { labelFetcher: maModel, labelDataIndex: idx, defaultText: areaData.getName(idx) || '', isRectText: true, autoColor: color }); graphic.setHoverStyle(polygon, {}); polygon.dataModel = maModel; }); polygonGroup.__data = areaData; polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent'); } }); /** * @inner * @param {module:echarts/coord/*} coordSys * @param {module:echarts/model/Series} seriesModel * @param {module:echarts/model/Model} mpModel */ function createList(coordSys, seriesModel, maModel) { var coordDimsInfos; var areaData; var dims = ['x0', 'y0', 'x1', 'y1']; if (coordSys) { coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) { var data = seriesModel.getData(); var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys return zrUtil.defaults({ name: coordDim }, info); }); areaData = new List(zrUtil.map(dims, function (dim, idx) { return { name: dim, type: coordDimsInfos[idx % 2].type }; }), maModel); } else { coordDimsInfos = [{ name: 'value', type: 'float' }]; areaData = new List(coordDimsInfos, maModel); } var optData = zrUtil.map(maModel.get('data'), zrUtil.curry(markAreaTransform, seriesModel, coordSys, maModel)); if (coordSys) { optData = zrUtil.filter(optData, zrUtil.curry(markAreaFilter, coordSys)); } var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) { return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2]; } : function (item) { return item.value; }; areaData.initData(optData, null, dimValueGetter); areaData.hasItemOption = true; return areaData; } /***/ }), /* 853 */ /*!***********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legendScroll.js ***! \***********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./legend */ 854); __webpack_require__(/*! ./legend/ScrollableLegendModel */ 859); __webpack_require__(/*! ./legend/ScrollableLegendView */ 860); __webpack_require__(/*! ./legend/scrollableLegendAction */ 861); /***/ }), /* 854 */ /*!*****************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); __webpack_require__(/*! ./legend/LegendModel */ 855); __webpack_require__(/*! ./legend/legendAction */ 856); __webpack_require__(/*! ./legend/LegendView */ 857); var legendFilter = __webpack_require__(/*! ./legend/legendFilter */ 858); var Component = __webpack_require__(/*! ../model/Component */ 486); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Do not contain scrollable legend, for sake of file size. // Series Filter echarts.registerProcessor(echarts.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter); Component.registerSubTypeDefaulter('legend', function () { // Default 'plain' when no type specified. return 'plain'; }); /***/ }), /* 855 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend/LegendModel.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var Model = __webpack_require__(/*! ../../model/Model */ 445); var _model = __webpack_require__(/*! ../../util/model */ 444); var isNameSpecified = _model.isNameSpecified; var lang = __webpack_require__(/*! ../../lang */ 513); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var langSelector = lang.legend.selector; var defaultSelectorOption = { all: { type: 'all', title: zrUtil.clone(langSelector.all) }, inverse: { type: 'inverse', title: zrUtil.clone(langSelector.inverse) } }; var LegendModel = echarts.extendComponentModel({ type: 'legend.plain', dependencies: ['series'], layoutMode: { type: 'box', // legend.width/height are maxWidth/maxHeight actually, // whereas realy width/height is calculated by its content. // (Setting {left: 10, right: 10} does not make sense). // So consider the case: // `setOption({legend: {left: 10});` // then `setOption({legend: {right: 10});` // The previous `left` should be cleared by setting `ignoreSize`. ignoreSize: true }, init: function init(option, parentModel, ecModel) { this.mergeDefaultAndTheme(option, ecModel); option.selected = option.selected || {}; this._updateSelector(option); }, mergeOption: function mergeOption(option) { LegendModel.superCall(this, 'mergeOption', option); this._updateSelector(option); }, _updateSelector: function _updateSelector(option) { var selector = option.selector; if (selector === true) { selector = option.selector = ['all', 'inverse']; } if (zrUtil.isArray(selector)) { zrUtil.each(selector, function (item, index) { zrUtil.isString(item) && (item = { type: item }); selector[index] = zrUtil.merge(item, defaultSelectorOption[item.type]); }); } }, optionUpdated: function optionUpdated() { this._updateData(this.ecModel); var legendData = this._data; // If selectedMode is single, try to select one if (legendData[0] && this.get('selectedMode') === 'single') { var hasSelected = false; // If has any selected in option.selected for (var i = 0; i < legendData.length; i++) { var name = legendData[i].get('name'); if (this.isSelected(name)) { // Force to unselect others this.select(name); hasSelected = true; break; } } // Try select the first if selectedMode is single !hasSelected && this.select(legendData[0].get('name')); } }, _updateData: function _updateData(ecModel) { var potentialData = []; var availableNames = []; ecModel.eachRawSeries(function (seriesModel) { var seriesName = seriesModel.name; availableNames.push(seriesName); var isPotential; if (seriesModel.legendVisualProvider) { var provider = seriesModel.legendVisualProvider; var names = provider.getAllNames(); if (!ecModel.isSeriesFiltered(seriesModel)) { availableNames = availableNames.concat(names); } if (names.length) { potentialData = potentialData.concat(names); } else { isPotential = true; } } else { isPotential = true; } if (isPotential && isNameSpecified(seriesModel)) { potentialData.push(seriesModel.name); } }); /** * @type {Array.} * @private */ this._availableNames = availableNames; // If legend.data not specified in option, use availableNames as data, // which is convinient for user preparing option. var rawData = this.get('data') || potentialData; var legendData = zrUtil.map(rawData, function (dataItem) { // Can be string or number if (typeof dataItem === 'string' || typeof dataItem === 'number') { dataItem = { name: dataItem }; } return new Model(dataItem, this, this.ecModel); }, this); /** * @type {Array.} * @private */ this._data = legendData; }, /** * @return {Array.} */ getData: function getData() { return this._data; }, /** * @param {string} name */ select: function select(name) { var selected = this.option.selected; var selectedMode = this.get('selectedMode'); if (selectedMode === 'single') { var data = this._data; zrUtil.each(data, function (dataItem) { selected[dataItem.get('name')] = false; }); } selected[name] = true; }, /** * @param {string} name */ unSelect: function unSelect(name) { if (this.get('selectedMode') !== 'single') { this.option.selected[name] = false; } }, /** * @param {string} name */ toggleSelected: function toggleSelected(name) { var selected = this.option.selected; // Default is true if (!selected.hasOwnProperty(name)) { selected[name] = true; } this[selected[name] ? 'unSelect' : 'select'](name); }, allSelect: function allSelect() { var data = this._data; var selected = this.option.selected; zrUtil.each(data, function (dataItem) { selected[dataItem.get('name', true)] = true; }); }, inverseSelect: function inverseSelect() { var data = this._data; var selected = this.option.selected; zrUtil.each(data, function (dataItem) { var name = dataItem.get('name', true); // Initially, default value is true if (!selected.hasOwnProperty(name)) { selected[name] = true; } selected[name] = !selected[name]; }); }, /** * @param {string} name */ isSelected: function isSelected(name) { var selected = this.option.selected; return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0; }, getOrient: function getOrient() { return this.get('orient') === 'vertical' ? { index: 1, name: 'vertical' } : { index: 0, name: 'horizontal' }; }, defaultOption: { // 一级层叠 zlevel: 0, // 二级层叠 z: 4, show: true, // 布局方式,默认为水平布局,可选为: // 'horizontal' | 'vertical' orient: 'horizontal', left: 'center', // right: 'center', top: 0, // bottom: null, // 水平对齐 // 'auto' | 'left' | 'right' // 默认为 'auto', 根据 x 的位置判断是左对齐还是右对齐 align: 'auto', backgroundColor: 'rgba(0,0,0,0)', // 图例边框颜色 borderColor: '#ccc', borderRadius: 0, // 图例边框线宽,单位px,默认为0(无边框) borderWidth: 0, // 图例内边距,单位px,默认各方向内边距为5, // 接受数组分别设定上右下左边距,同css padding: 5, // 各个item之间的间隔,单位px,默认为10, // 横向布局时为水平间隔,纵向布局时为纵向间隔 itemGap: 10, // the width of legend symbol itemWidth: 25, // the height of legend symbol itemHeight: 14, // the color of unselected legend symbol inactiveColor: '#ccc', // the borderColor of unselected legend symbol inactiveBorderColor: '#ccc', itemStyle: { // the default borderWidth of legend symbol borderWidth: 0 }, textStyle: { // 图例文字颜色 color: '#333' }, // formatter: '', // 选择模式,默认开启图例开关 selectedMode: true, // 配置默认选中状态,可配合LEGEND.SELECTED事件做动态数据载入 // selected: null, // 图例内容(详见legend.data,数组中每一项代表一个item // data: [], // Usage: // selector: [{type: 'all or inverse', title: xxx}] // or // selector: true // or // selector: ['all', 'inverse'] selector: false, selectorLabel: { show: true, borderRadius: 10, padding: [3, 5, 3, 5], fontSize: 12, fontFamily: ' sans-serif', color: '#666', borderWidth: 1, borderColor: '#666' }, emphasis: { selectorLabel: { show: true, color: '#eee', backgroundColor: '#666' } }, // Value can be 'start' or 'end' selectorPosition: 'auto', selectorItemGap: 7, selectorButtonGap: 10, // Tooltip 相关配置 tooltip: { show: false } } }); var _default = LegendModel; module.exports = _default; /***/ }), /* 856 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend/legendAction.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function legendSelectActionHandler(methodName, payload, ecModel) { var selectedMap = {}; var isToggleSelect = methodName === 'toggleSelected'; var isSelected; // Update all legend components ecModel.eachComponent('legend', function (legendModel) { if (isToggleSelect && isSelected != null) { // Force other legend has same selected status // Or the first is toggled to true and other are toggled to false // In the case one legend has some item unSelected in option. And if other legend // doesn't has the item, they will assume it is selected. legendModel[isSelected ? 'select' : 'unSelect'](payload.name); } else if (methodName === 'allSelect' || methodName === 'inverseSelect') { legendModel[methodName](); } else { legendModel[methodName](payload.name); isSelected = legendModel.isSelected(payload.name); } var legendData = legendModel.getData(); zrUtil.each(legendData, function (model) { var name = model.get('name'); // Wrap element if (name === '\n' || name === '') { return; } var isItemSelected = legendModel.isSelected(name); if (selectedMap.hasOwnProperty(name)) { // Unselected if any legend is unselected selectedMap[name] = selectedMap[name] && isItemSelected; } else { selectedMap[name] = isItemSelected; } }); }); // Return the event explicitly return methodName === 'allSelect' || methodName === 'inverseSelect' ? { selected: selectedMap } : { name: payload.name, selected: selectedMap }; } /** * @event legendToggleSelect * @type {Object} * @property {string} type 'legendToggleSelect' * @property {string} [from] * @property {string} name Series name or data item name */ echarts.registerAction('legendToggleSelect', 'legendselectchanged', zrUtil.curry(legendSelectActionHandler, 'toggleSelected')); echarts.registerAction('legendAllSelect', 'legendselectall', zrUtil.curry(legendSelectActionHandler, 'allSelect')); echarts.registerAction('legendInverseSelect', 'legendinverseselect', zrUtil.curry(legendSelectActionHandler, 'inverseSelect')); /** * @event legendSelect * @type {Object} * @property {string} type 'legendSelect' * @property {string} name Series name or data item name */ echarts.registerAction('legendSelect', 'legendselected', zrUtil.curry(legendSelectActionHandler, 'select')); /** * @event legendUnSelect * @type {Object} * @property {string} type 'legendUnSelect' * @property {string} name Series name or data item name */ echarts.registerAction('legendUnSelect', 'legendunselected', zrUtil.curry(legendSelectActionHandler, 'unSelect')); /***/ }), /* 857 */ /*!****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend/LegendView.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _listComponent = __webpack_require__(/*! ../helper/listComponent */ 799); var makeBackground = _listComponent.makeBackground; var layoutUtil = __webpack_require__(/*! ../../util/layout */ 488); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var curry = zrUtil.curry; var each = zrUtil.each; var Group = graphic.Group; var _default = echarts.extendComponentView({ type: 'legend.plain', newlineDisabled: false, /** * @override */ init: function init() { /** * @private * @type {module:zrender/container/Group} */ this.group.add(this._contentGroup = new Group()); /** * @private * @type {module:zrender/Element} */ this._backgroundEl; /** * @private * @type {module:zrender/container/Group} */ this.group.add(this._selectorGroup = new Group()); /** * If first rendering, `contentGroup.position` is [0, 0], which * does not make sense and may cause unexepcted animation if adopted. * @private * @type {boolean} */ this._isFirstRender = true; }, /** * @protected */ getContentGroup: function getContentGroup() { return this._contentGroup; }, /** * @protected */ getSelectorGroup: function getSelectorGroup() { return this._selectorGroup; }, /** * @override */ render: function render(legendModel, ecModel, api) { var isFirstRender = this._isFirstRender; this._isFirstRender = false; this.resetInner(); if (!legendModel.get('show', true)) { return; } var itemAlign = legendModel.get('align'); var orient = legendModel.get('orient'); if (!itemAlign || itemAlign === 'auto') { itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left'; } var selector = legendModel.get('selector', true); var selectorPosition = legendModel.get('selectorPosition', true); if (selector && (!selectorPosition || selectorPosition === 'auto')) { selectorPosition = orient === 'horizontal' ? 'end' : 'start'; } this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition); // Perform layout. var positionInfo = legendModel.getBoxLayoutParams(); var viewportSize = { width: api.getWidth(), height: api.getHeight() }; var padding = legendModel.get('padding'); var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding); var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition); // Place mainGroup, based on the calculated `mainRect`. var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({ width: mainRect.width, height: mainRect.height }, positionInfo), viewportSize, padding); this.group.attr('position', [layoutRect.x - mainRect.x, layoutRect.y - mainRect.y]); // Render background after group is layout. this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel)); }, /** * @protected */ resetInner: function resetInner() { this.getContentGroup().removeAll(); this._backgroundEl && this.group.remove(this._backgroundEl); this.getSelectorGroup().removeAll(); }, /** * @protected */ renderInner: function renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) { var contentGroup = this.getContentGroup(); var legendDrawnMap = zrUtil.createHashMap(); var selectMode = legendModel.get('selectedMode'); var excludeSeriesId = []; ecModel.eachRawSeries(function (seriesModel) { !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id); }); each(legendModel.getData(), function (itemModel, dataIndex) { var name = itemModel.get('name'); // Use empty string or \n as a newline string if (!this.newlineDisabled && (name === '' || name === '\n')) { contentGroup.add(new Group({ newline: true })); return; } // Representitive series. var seriesModel = ecModel.getSeriesByName(name)[0]; if (legendDrawnMap.get(name)) { // Have been drawed return; } // Legend to control series. if (seriesModel) { var data = seriesModel.getData(); var color = data.getVisual('color'); var borderColor = data.getVisual('borderColor'); // If color is a callback function if (typeof color === 'function') { // Use the first data color = color(seriesModel.getDataParams(0)); } // If borderColor is a callback function if (typeof borderColor === 'function') { // Use the first data borderColor = borderColor(seriesModel.getDataParams(0)); } // Using rect symbol defaultly var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect'; var symbolType = data.getVisual('symbol'); var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode); itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId)); legendDrawnMap.set(name, true); } else { // Legend to control data. In pie and funnel. ecModel.eachRawSeries(function (seriesModel) { // In case multiple series has same data name if (legendDrawnMap.get(name)) { return; } if (seriesModel.legendVisualProvider) { var provider = seriesModel.legendVisualProvider; if (!provider.containName(name)) { return; } var idx = provider.indexOfName(name); var color = provider.getItemVisual(idx, 'color'); var borderColor = provider.getItemVisual(idx, 'borderColor'); var legendSymbolType = 'roundRect'; var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, selectMode); // FIXME: consider different series has items with the same name. itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)) // Should not specify the series name, consider legend controls // more than one pie series. .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId)); legendDrawnMap.set(name, true); } }, this); } }, this); if (selector) { this._createSelector(selector, legendModel, api, orient, selectorPosition); } }, _createSelector: function _createSelector(selector, legendModel, api, orient, selectorPosition) { var selectorGroup = this.getSelectorGroup(); each(selector, function (selectorItem) { createSelectorButton(selectorItem); }); function createSelectorButton(selectorItem) { var type = selectorItem.type; var labelText = new graphic.Text({ style: { x: 0, y: 0, align: 'center', verticalAlign: 'middle' }, onclick: function onclick() { api.dispatchAction({ type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect' }); } }); selectorGroup.add(labelText); var labelModel = legendModel.getModel('selectorLabel'); var emphasisLabelModel = legendModel.getModel('emphasis.selectorLabel'); graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, emphasisLabelModel, { defaultText: selectorItem.title, isRectText: false }); graphic.setHoverStyle(labelText); } }, _createItem: function _createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode) { var itemWidth = legendModel.get('itemWidth'); var itemHeight = legendModel.get('itemHeight'); var inactiveColor = legendModel.get('inactiveColor'); var inactiveBorderColor = legendModel.get('inactiveBorderColor'); var symbolKeepAspect = legendModel.get('symbolKeepAspect'); var legendModelItemStyle = legendModel.getModel('itemStyle'); var isSelected = legendModel.isSelected(name); var itemGroup = new Group(); var textStyleModel = itemModel.getModel('textStyle'); var itemIcon = itemModel.get('icon'); var tooltipModel = itemModel.getModel('tooltip'); var legendGlobalTooltipModel = tooltipModel.parentModel; // Use user given icon first legendSymbolType = itemIcon || legendSymbolType; var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, // symbolKeepAspect default true for legend symbolKeepAspect == null ? true : symbolKeepAspect); itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected)); // Compose symbols // PENDING if (!itemIcon && symbolType // At least show one symbol, can't be all none && (symbolType !== legendSymbolType || symbolType === 'none')) { var size = itemHeight * 0.8; if (symbolType === 'none') { symbolType = 'circle'; } var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, // symbolKeepAspect default true for legend symbolKeepAspect == null ? true : symbolKeepAspect); // Put symbol in the center itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected)); } var textX = itemAlign === 'left' ? itemWidth + 5 : -5; var textAlign = itemAlign; var formatter = legendModel.get('formatter'); var content = name; if (typeof formatter === 'string' && formatter) { content = formatter.replace('{name}', name != null ? name : ''); } else if (typeof formatter === 'function') { content = formatter(name); } itemGroup.add(new graphic.Text({ style: graphic.setTextStyle({}, textStyleModel, { text: content, x: textX, y: itemHeight / 2, textFill: isSelected ? textStyleModel.getTextColor() : inactiveColor, textAlign: textAlign, textVerticalAlign: 'middle' }) })); // Add a invisible rect to increase the area of mouse hover var hitRect = new graphic.Rect({ shape: itemGroup.getBoundingRect(), invisible: true, tooltip: tooltipModel.get('show') ? zrUtil.extend({ content: name, // Defaul formatter formatter: legendGlobalTooltipModel.get('formatter', true) || function () { return name; }, formatterParams: { componentType: 'legend', legendIndex: legendModel.componentIndex, name: name, $vars: ['name'] } }, tooltipModel.option) : null }); itemGroup.add(hitRect); itemGroup.eachChild(function (child) { child.silent = true; }); hitRect.silent = !selectMode; this.getContentGroup().add(itemGroup); graphic.setHoverStyle(itemGroup); itemGroup.__legendDataIndex = dataIndex; return itemGroup; }, /** * @protected */ layoutInner: function layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) { var contentGroup = this.getContentGroup(); var selectorGroup = this.getSelectorGroup(); // Place items in contentGroup. layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height); var contentRect = contentGroup.getBoundingRect(); var contentPos = [-contentRect.x, -contentRect.y]; if (selector) { // Place buttons in selectorGroup layoutUtil.box( // Buttons in selectorGroup always layout horizontally 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true)); var selectorRect = selectorGroup.getBoundingRect(); var selectorPos = [-selectorRect.x, -selectorRect.y]; var selectorButtonGap = legendModel.get('selectorButtonGap', true); var orientIdx = legendModel.getOrient().index; var wh = orientIdx === 0 ? 'width' : 'height'; var hw = orientIdx === 0 ? 'height' : 'width'; var yx = orientIdx === 0 ? 'y' : 'x'; if (selectorPosition === 'end') { selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap; } else { contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap; } //Always align selector to content as 'middle' selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2; selectorGroup.attr('position', selectorPos); contentGroup.attr('position', contentPos); var mainRect = { x: 0, y: 0 }; mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh]; mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]); mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]); return mainRect; } else { contentGroup.attr('position', contentPos); return this.group.getBoundingRect(); } }, /** * @protected */ remove: function remove() { this.getContentGroup().removeAll(); this._isFirstRender = true; } }); function setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected) { var itemStyle; if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) { itemStyle = legendModelItemStyle.getItemStyle(); symbol.style.stroke = borderColor; if (!isSelected) { itemStyle.stroke = inactiveBorderColor; } } else { itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']); } return symbol.setStyle(itemStyle); } function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) { // downplay before unselect dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId); api.dispatchAction({ type: 'legendToggleSelect', name: seriesName != null ? seriesName : dataName }); // highlight after select dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId); } function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) { // If element hover will move to a hoverLayer. var el = api.getZr().storage.getDisplayList()[0]; if (!(el && el.useHoverLayer)) { api.dispatchAction({ type: 'highlight', seriesName: seriesName, name: dataName, excludeSeriesId: excludeSeriesId }); } } function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) { // If element hover will move to a hoverLayer. var el = api.getZr().storage.getDisplayList()[0]; if (!(el && el.useHoverLayer)) { api.dispatchAction({ type: 'downplay', seriesName: seriesName, name: dataName, excludeSeriesId: excludeSeriesId }); } } module.exports = _default; /***/ }), /* 858 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend/legendFilter.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ function _default(ecModel) { var legendModels = ecModel.findComponents({ mainType: 'legend' }); if (legendModels && legendModels.length) { ecModel.filterSeries(function (series) { // If in any legend component the status is not selected. // Because in legend series is assumed selected when it is not in the legend data. for (var i = 0; i < legendModels.length; i++) { if (!legendModels[i].isSelected(series.name)) { return false; } } return true; }); } } module.exports = _default; /***/ }), /* 859 */ /*!***************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend/ScrollableLegendModel.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var LegendModel = __webpack_require__(/*! ./LegendModel */ 855); var _layout = __webpack_require__(/*! ../../util/layout */ 488); var mergeLayoutParam = _layout.mergeLayoutParam; var getLayoutParams = _layout.getLayoutParams; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var ScrollableLegendModel = LegendModel.extend({ type: 'legend.scroll', /** * @param {number} scrollDataIndex */ setScrollDataIndex: function setScrollDataIndex(scrollDataIndex) { this.option.scrollDataIndex = scrollDataIndex; }, defaultOption: { scrollDataIndex: 0, pageButtonItemGap: 5, pageButtonGap: null, pageButtonPosition: 'end', // 'start' or 'end' pageFormatter: '{current}/{total}', // If null/undefined, do not show page. pageIcons: { horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'], vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z'] }, pageIconColor: '#2f4554', pageIconInactiveColor: '#aaa', pageIconSize: 15, // Can be [10, 3], which represents [width, height] pageTextStyle: { color: '#333' }, animationDurationUpdate: 800 }, /** * @override */ init: function init(option, parentModel, ecModel, extraOpt) { var inputPositionParams = getLayoutParams(option); ScrollableLegendModel.superCall(this, 'init', option, parentModel, ecModel, extraOpt); mergeAndNormalizeLayoutParams(this, option, inputPositionParams); }, /** * @override */ mergeOption: function mergeOption(option, extraOpt) { ScrollableLegendModel.superCall(this, 'mergeOption', option, extraOpt); mergeAndNormalizeLayoutParams(this, this.option, option); } }); // Do not `ignoreSize` to enable setting {left: 10, right: 10}. function mergeAndNormalizeLayoutParams(legendModel, target, raw) { var orient = legendModel.getOrient(); var ignoreSize = [1, 1]; ignoreSize[orient.index] = 0; mergeLayoutParam(target, raw, { type: 'box', ignoreSize: ignoreSize }); } var _default = ScrollableLegendModel; module.exports = _default; /***/ }), /* 860 */ /*!**************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend/ScrollableLegendView.js ***! \**************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var layoutUtil = __webpack_require__(/*! ../../util/layout */ 488); var LegendView = __webpack_require__(/*! ./LegendView */ 857); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * Separate legend and scrollable legend to reduce package size. */ var Group = graphic.Group; var WH = ['width', 'height']; var XY = ['x', 'y']; var ScrollableLegendView = LegendView.extend({ type: 'legend.scroll', newlineDisabled: true, init: function init() { ScrollableLegendView.superCall(this, 'init'); /** * @private * @type {number} For `scroll`. */ this._currentIndex = 0; /** * @private * @type {module:zrender/container/Group} */ this.group.add(this._containerGroup = new Group()); this._containerGroup.add(this.getContentGroup()); /** * @private * @type {module:zrender/container/Group} */ this.group.add(this._controllerGroup = new Group()); /** * * @private */ this._showController; }, /** * @override */ resetInner: function resetInner() { ScrollableLegendView.superCall(this, 'resetInner'); this._controllerGroup.removeAll(); this._containerGroup.removeClipPath(); this._containerGroup.__rectSize = null; }, /** * @override */ renderInner: function renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) { var me = this; // Render content items. ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition); var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length, // e.g., '3/12345' should not overlap with the control arrow button. var pageIconSize = legendModel.get('pageIconSize', true); if (!zrUtil.isArray(pageIconSize)) { pageIconSize = [pageIconSize, pageIconSize]; } createPageButton('pagePrev', 0); var pageTextStyleModel = legendModel.getModel('pageTextStyle'); controllerGroup.add(new graphic.Text({ name: 'pageText', style: { textFill: pageTextStyleModel.getTextColor(), font: pageTextStyleModel.getFont(), textVerticalAlign: 'middle', textAlign: 'center' }, silent: true })); createPageButton('pageNext', 1); function createPageButton(name, iconIdx) { var pageDataIndexName = name + 'DataIndex'; var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], { // Buttons will be created in each render, so we do not need // to worry about avoiding using legendModel kept in scope. onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api) }, { x: -pageIconSize[0] / 2, y: -pageIconSize[1] / 2, width: pageIconSize[0], height: pageIconSize[1] }); icon.name = name; controllerGroup.add(icon); } }, /** * @override */ layoutInner: function layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) { var selectorGroup = this.getSelectorGroup(); var orientIdx = legendModel.getOrient().index; var wh = WH[orientIdx]; var xy = XY[orientIdx]; var hw = WH[1 - orientIdx]; var yx = XY[1 - orientIdx]; selector && layoutUtil.box( // Buttons in selectorGroup always layout horizontally 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true)); var selectorButtonGap = legendModel.get('selectorButtonGap', true); var selectorRect = selectorGroup.getBoundingRect(); var selectorPos = [-selectorRect.x, -selectorRect.y]; var processMaxSize = zrUtil.clone(maxSize); selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap); var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx); if (selector) { if (selectorPosition === 'end') { selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap; } else { var offset = selectorRect[wh] + selectorButtonGap; selectorPos[orientIdx] -= offset; mainRect[xy] -= offset; } mainRect[wh] += selectorRect[wh] + selectorButtonGap; selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2; mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]); mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]); selectorGroup.attr('position', selectorPos); } return mainRect; }, _layoutContentAndController: function _layoutContentAndController(legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) { var contentGroup = this.getContentGroup(); var containerGroup = this._containerGroup; var controllerGroup = this._controllerGroup; // Place items in contentGroup. layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height); layoutUtil.box( // Buttons in controller are layout always horizontally. 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true)); var contentRect = contentGroup.getBoundingRect(); var controllerRect = controllerGroup.getBoundingRect(); var showController = this._showController = contentRect[wh] > maxSize[wh]; var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming. // If first rendering, `contentGroup.position` is [0, 0], which // does not make sense and may cause unexepcted animation if adopted. if (!isFirstRender) { contentPos[orientIdx] = contentGroup.position[orientIdx]; } // Layout container group based on 0. var containerPos = [0, 0]; var controllerPos = [-controllerRect.x, -controllerRect.y]; var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup. if (showController) { var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom. if (pageButtonPosition === 'end') { controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh]; } // controller is on the left / top. else { containerPos[orientIdx] += controllerRect[wh] + pageButtonGap; } } // Always align controller to content as 'middle'. controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2; contentGroup.attr('position', contentPos); containerGroup.attr('position', containerPos); controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`. // mainRect should not be calculated by `this.group.getBoundingRect()` // for sake of the overflow. var mainRect = { x: 0, y: 0 }; // Consider content may be overflow (should be clipped). mainRect[wh] = showController ? maxSize[wh] : contentRect[wh]; mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0. mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]); containerGroup.__rectSize = maxSize[wh]; if (showController) { var clipShape = { x: 0, y: 0 }; clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0); clipShape[hw] = mainRect[hw]; containerGroup.setClipPath(new graphic.Rect({ shape: clipShape })); // Consider content may be larger than container, container rect // can not be obtained from `containerGroup.getBoundingRect()`. containerGroup.__rectSize = clipShape[wh]; } else { // Do not remove or ignore controller. Keep them set as placeholders. controllerGroup.eachChild(function (child) { child.attr({ invisible: true, silent: true }); }); } // Content translate animation. var pageInfo = this._getPageInfo(legendModel); pageInfo.pageIndex != null && graphic.updateProps(contentGroup, { position: pageInfo.contentPosition }, // When switch from "show controller" to "not show controller", view should be // updated immediately without animation, otherwise causes weird effect. showController ? legendModel : false); this._updatePageInfoView(legendModel, pageInfo); return mainRect; }, _pageGo: function _pageGo(to, legendModel, api) { var scrollDataIndex = this._getPageInfo(legendModel)[to]; scrollDataIndex != null && api.dispatchAction({ type: 'legendScroll', scrollDataIndex: scrollDataIndex, legendId: legendModel.id }); }, _updatePageInfoView: function _updatePageInfoView(legendModel, pageInfo) { var controllerGroup = this._controllerGroup; zrUtil.each(['pagePrev', 'pageNext'], function (name) { var canJump = pageInfo[name + 'DataIndex'] != null; var icon = controllerGroup.childOfName(name); if (icon) { icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true)); icon.cursor = canJump ? 'pointer' : 'default'; } }); var pageText = controllerGroup.childOfName('pageText'); var pageFormatter = legendModel.get('pageFormatter'); var pageIndex = pageInfo.pageIndex; var current = pageIndex != null ? pageIndex + 1 : 0; var total = pageInfo.pageCount; pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current).replace('{total}', total) : pageFormatter({ current: current, total: total })); }, /** * @param {module:echarts/model/Model} legendModel * @return {Object} { * contentPosition: Array., null when data item not found. * pageIndex: number, null when data item not found. * pageCount: number, always be a number, can be 0. * pagePrevDataIndex: number, null when no previous page. * pageNextDataIndex: number, null when no next page. * } */ _getPageInfo: function _getPageInfo(legendModel) { var scrollDataIndex = legendModel.get('scrollDataIndex', true); var contentGroup = this.getContentGroup(); var containerRectSize = this._containerGroup.__rectSize; var orientIdx = legendModel.getOrient().index; var wh = WH[orientIdx]; var xy = XY[orientIdx]; var targetItemIndex = this._findTargetItemIndex(scrollDataIndex); var children = contentGroup.children(); var targetItem = children[targetItemIndex]; var itemCount = children.length; var pCount = !itemCount ? 0 : 1; var result = { contentPosition: contentGroup.position.slice(), pageCount: pCount, pageIndex: pCount - 1, pagePrevDataIndex: null, pageNextDataIndex: null }; if (!targetItem) { return result; } var targetItemInfo = getItemInfo(targetItem); result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy: // (1) Always align based on the left/top most item. // (2) It is user-friendly that the last item shown in the // current window is shown at the begining of next window. // Otherwise if half of the last item is cut by the window, // it will have no chance to display entirely. // (3) Consider that item size probably be different, we // have calculate pageIndex by size rather than item index, // and we can not get page index directly by division. // (4) The window is to narrow to contain more than // one item, we should make sure that the page can be fliped. for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) { currItemInfo = getItemInfo(children[i]); if ( // Half of the last item is out of the window. !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page // can be started at the current item or the last item. currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) { if (winEndItemInfo.i > winStartItemInfo.i) { winStartItemInfo = winEndItemInfo; } else { // e.g., when page size is smaller than item size. winStartItemInfo = currItemInfo; } if (winStartItemInfo) { if (result.pageNextDataIndex == null) { result.pageNextDataIndex = winStartItemInfo.i; } ++result.pageCount; } } winEndItemInfo = currItemInfo; } for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) { currItemInfo = getItemInfo(children[i]); if ( // If the the end item does not intersect with the window started // from the current item, a page can be settled. (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size. winStartItemInfo.i < winEndItemInfo.i) { winEndItemInfo = winStartItemInfo; if (result.pagePrevDataIndex == null) { result.pagePrevDataIndex = winStartItemInfo.i; } ++result.pageCount; ++result.pageIndex; } winStartItemInfo = currItemInfo; } return result; function getItemInfo(el) { if (el) { var itemRect = el.getBoundingRect(); var start = itemRect[xy] + el.position[orientIdx]; return { s: start, e: start + itemRect[wh], i: el.__legendDataIndex }; } } function intersect(itemInfo, winStart) { return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize; } }, _findTargetItemIndex: function _findTargetItemIndex(targetDataIndex) { if (!this._showController) { return 0; } var index; var contentGroup = this.getContentGroup(); var defaultIndex; contentGroup.eachChild(function (child, idx) { var legendDataIdx = child.__legendDataIndex; // FIXME // If the given targetDataIndex (from model) is illegal, // we use defaultIndex. But the index on the legend model and // action payload is still illegal. That case will not be // changed until some scenario requires. if (defaultIndex == null && legendDataIdx != null) { defaultIndex = idx; } if (legendDataIdx === targetDataIndex) { index = idx; } }); return index != null ? index : defaultIndex; } }); var _default = ScrollableLegendView; module.exports = _default; /***/ }), /* 861 */ /*!****************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/legend/scrollableLegendAction.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @event legendScroll * @type {Object} * @property {string} type 'legendScroll' * @property {string} scrollDataIndex */ echarts.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) { var scrollDataIndex = payload.scrollDataIndex; scrollDataIndex != null && ecModel.eachComponent({ mainType: 'legend', subType: 'scroll', query: payload }, function (legendModel) { legendModel.setScrollDataIndex(scrollDataIndex); }); }); /***/ }), /* 862 */ /*!*******************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom.js ***! \*******************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./dataZoomSlider */ 863); __webpack_require__(/*! ./dataZoomInside */ 866); /***/ }), /* 863 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoomSlider.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./dataZoom/typeDefaulter */ 807); __webpack_require__(/*! ./dataZoom/DataZoomModel */ 808); __webpack_require__(/*! ./dataZoom/DataZoomView */ 811); __webpack_require__(/*! ./dataZoom/SliderZoomModel */ 864); __webpack_require__(/*! ./dataZoom/SliderZoomView */ 865); __webpack_require__(/*! ./dataZoom/dataZoomProcessor */ 814); __webpack_require__(/*! ./dataZoom/dataZoomAction */ 815); /***/ }), /* 864 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/SliderZoomModel.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DataZoomModel = __webpack_require__(/*! ./DataZoomModel */ 808); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var SliderZoomModel = DataZoomModel.extend({ type: 'dataZoom.slider', layoutMode: 'box', /** * @protected */ defaultOption: { show: true, // ph => placeholder. Using placehoder here because // deault value can only be drived in view stage. right: 'ph', // Default align to grid rect. top: 'ph', // Default align to grid rect. width: 'ph', // Default align to grid rect. height: 'ph', // Default align to grid rect. left: null, // Default align to grid rect. bottom: null, // Default align to grid rect. backgroundColor: 'rgba(47,69,84,0)', // Background of slider zoom component. // dataBackgroundColor: '#ddd', // Background coor of data shadow and border of box, // highest priority, remain for compatibility of // previous version, but not recommended any more. dataBackground: { lineStyle: { color: '#2f4554', width: 0.5, opacity: 0.3 }, areaStyle: { color: 'rgba(47,69,84,0.3)', opacity: 0.3 } }, borderColor: '#ddd', // border color of the box. For compatibility, // if dataBackgroundColor is set, borderColor // is ignored. fillerColor: 'rgba(167,183,204,0.4)', // Color of selected area. // handleColor: 'rgba(89,170,216,0.95)', // Color of handle. // handleIcon: 'path://M4.9,17.8c0-1.4,4.5-10.5,5.5-12.4c0-0.1,0.6-1.1,0.9-1.1c0.4,0,0.9,1,0.9,1.1c1.1,2.2,5.4,11,5.4,12.4v17.8c0,1.5-0.6,2.1-1.3,2.1H6.1c-0.7,0-1.3-0.6-1.3-2.1V17.8z', /* eslint-disable */ handleIcon: 'M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z', /* eslint-enable */ // Percent of the slider height handleSize: '100%', handleStyle: { color: '#a7b7cc' }, labelPrecision: null, labelFormatter: null, showDetail: true, showDataShadow: 'auto', // Default auto decision. realtime: true, zoomLock: false, // Whether disable zoom. textStyle: { color: '#333' } } }); var _default = SliderZoomModel; module.exports = _default; /***/ }), /* 865 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/SliderZoomView.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var eventTool = __webpack_require__(/*! zrender/lib/core/event */ 408); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var throttle = __webpack_require__(/*! ../../util/throttle */ 510); var DataZoomView = __webpack_require__(/*! ./DataZoomView */ 811); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var layout = __webpack_require__(/*! ../../util/layout */ 488); var sliderMove = __webpack_require__(/*! ../helper/sliderMove */ 690); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Rect = graphic.Rect; var linearMap = numberUtil.linearMap; var asc = numberUtil.asc; var bind = zrUtil.bind; var each = zrUtil.each; // Constants var DEFAULT_LOCATION_EDGE_GAP = 7; var DEFAULT_FRAME_BORDER_WIDTH = 1; var DEFAULT_FILLER_SIZE = 30; var HORIZONTAL = 'horizontal'; var VERTICAL = 'vertical'; var LABEL_GAP = 5; var SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter']; var SliderZoomView = DataZoomView.extend({ type: 'dataZoom.slider', init: function init(ecModel, api) { /** * @private * @type {Object} */ this._displayables = {}; /** * @private * @type {string} */ this._orient; /** * [0, 100] * @private */ this._range; /** * [coord of the first handle, coord of the second handle] * @private */ this._handleEnds; /** * [length, thick] * @private * @type {Array.} */ this._size; /** * @private * @type {number} */ this._handleWidth; /** * @private * @type {number} */ this._handleHeight; /** * @private */ this._location; /** * @private */ this._dragging; /** * @private */ this._dataShadowInfo; this.api = api; }, /** * @override */ render: function render(dataZoomModel, ecModel, api, payload) { SliderZoomView.superApply(this, 'render', arguments); throttle.createOrUpdate(this, '_dispatchZoomAction', this.dataZoomModel.get('throttle'), 'fixRate'); this._orient = dataZoomModel.get('orient'); if (this.dataZoomModel.get('show') === false) { this.group.removeAll(); return; } // Notice: this._resetInterval() should not be executed when payload.type // is 'dataZoom', origin this._range should be maintained, otherwise 'pan' // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction, if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) { this._buildView(); } this._updateView(); }, /** * @override */ remove: function remove() { SliderZoomView.superApply(this, 'remove', arguments); throttle.clear(this, '_dispatchZoomAction'); }, /** * @override */ dispose: function dispose() { SliderZoomView.superApply(this, 'dispose', arguments); throttle.clear(this, '_dispatchZoomAction'); }, _buildView: function _buildView() { var thisGroup = this.group; thisGroup.removeAll(); this._resetLocation(); this._resetInterval(); var barGroup = this._displayables.barGroup = new graphic.Group(); this._renderBackground(); this._renderHandle(); this._renderDataShadow(); thisGroup.add(barGroup); this._positionGroup(); }, /** * @private */ _resetLocation: function _resetLocation() { var dataZoomModel = this.dataZoomModel; var api = this.api; // If some of x/y/width/height are not specified, // auto-adapt according to target grid. var coordRect = this._findCoordRect(); var ecSize = { width: api.getWidth(), height: api.getHeight() }; // Default align by coordinate system rect. var positionInfo = this._orient === HORIZONTAL ? { // Why using 'right', because right should be used in vertical, // and it is better to be consistent for dealing with position param merge. right: ecSize.width - coordRect.x - coordRect.width, top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP, width: coordRect.width, height: DEFAULT_FILLER_SIZE } : { // vertical right: DEFAULT_LOCATION_EDGE_GAP, top: coordRect.y, width: DEFAULT_FILLER_SIZE, height: coordRect.height }; // Do not write back to option and replace value 'ph', because // the 'ph' value should be recalculated when resize. var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value. zrUtil.each(['right', 'top', 'width', 'height'], function (name) { if (layoutParams[name] === 'ph') { layoutParams[name] = positionInfo[name]; } }); var layoutRect = layout.getLayoutRect(layoutParams, ecSize, dataZoomModel.padding); this._location = { x: layoutRect.x, y: layoutRect.y }; this._size = [layoutRect.width, layoutRect.height]; this._orient === VERTICAL && this._size.reverse(); }, /** * @private */ _positionGroup: function _positionGroup() { var thisGroup = this.group; var location = this._location; var orient = this._orient; // Just use the first axis to determine mapping. var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel(); var inverse = targetAxisModel && targetAxisModel.get('inverse'); var barGroup = this._displayables.barGroup; var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup. barGroup.attr(orient === HORIZONTAL && !inverse ? { scale: otherAxisInverse ? [1, 1] : [1, -1] } : orient === HORIZONTAL && inverse ? { scale: otherAxisInverse ? [-1, 1] : [-1, -1] } : orient === VERTICAL && !inverse ? { scale: otherAxisInverse ? [1, -1] : [1, 1], rotation: Math.PI / 2 // Dont use Math.PI, considering shadow direction. } : { scale: otherAxisInverse ? [-1, -1] : [-1, 1], rotation: Math.PI / 2 }); // Position barGroup var rect = thisGroup.getBoundingRect([barGroup]); thisGroup.attr('position', [location.x - rect.x, location.y - rect.y]); }, /** * @private */ _getViewExtent: function _getViewExtent() { return [0, this._size[0]]; }, _renderBackground: function _renderBackground() { var dataZoomModel = this.dataZoomModel; var size = this._size; var barGroup = this._displayables.barGroup; barGroup.add(new Rect({ silent: true, shape: { x: 0, y: 0, width: size[0], height: size[1] }, style: { fill: dataZoomModel.get('backgroundColor') }, z2: -40 })); // Click panel, over shadow, below handles. barGroup.add(new Rect({ shape: { x: 0, y: 0, width: size[0], height: size[1] }, style: { fill: 'transparent' }, z2: 0, onclick: zrUtil.bind(this._onClickPanelClick, this) })); }, _renderDataShadow: function _renderDataShadow() { var info = this._dataShadowInfo = this._prepareDataShadowInfo(); if (!info) { return; } var size = this._size; var seriesModel = info.series; var data = seriesModel.getRawData(); var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() // @see candlestick : info.otherDim; if (otherDim == null) { return; } var otherDataExtent = data.getDataExtent(otherDim); // Nice extent. var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3; otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset]; var otherShadowExtent = [0, size[1]]; var thisShadowExtent = [0, size[0]]; var areaPoints = [[size[0], 0], [0, 0]]; var linePoints = []; var step = thisShadowExtent[1] / (data.count() - 1); var thisCoord = 0; // Optimize for large data shadow var stride = Math.round(data.count() / size[0]); var lastIsEmpty; data.each([otherDim], function (value, index) { if (stride > 0 && index % stride) { thisCoord += step; return; } // FIXME // Should consider axis.min/axis.max when drawing dataShadow. // FIXME // 应该使用统一的空判断?还是在list里进行空判断? var isEmpty = value == null || isNaN(value) || value === ''; // See #4235. var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true); // Attempt to draw data shadow precisely when there are empty value. if (isEmpty && !lastIsEmpty && index) { areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]); linePoints.push([linePoints[linePoints.length - 1][0], 0]); } else if (!isEmpty && lastIsEmpty) { areaPoints.push([thisCoord, 0]); linePoints.push([thisCoord, 0]); } areaPoints.push([thisCoord, otherCoord]); linePoints.push([thisCoord, otherCoord]); thisCoord += step; lastIsEmpty = isEmpty; }); var dataZoomModel = this.dataZoomModel; // var dataBackgroundModel = dataZoomModel.getModel('dataBackground'); this._displayables.barGroup.add(new graphic.Polygon({ shape: { points: areaPoints }, style: zrUtil.defaults({ fill: dataZoomModel.get('dataBackgroundColor') }, dataZoomModel.getModel('dataBackground.areaStyle').getAreaStyle()), silent: true, z2: -20 })); this._displayables.barGroup.add(new graphic.Polyline({ shape: { points: linePoints }, style: dataZoomModel.getModel('dataBackground.lineStyle').getLineStyle(), silent: true, z2: -19 })); }, _prepareDataShadowInfo: function _prepareDataShadowInfo() { var dataZoomModel = this.dataZoomModel; var showDataShadow = dataZoomModel.get('showDataShadow'); if (showDataShadow === false) { return; } // Find a representative series. var result; var ecModel = this.ecModel; dataZoomModel.eachTargetAxis(function (dimNames, axisIndex) { var seriesModels = dataZoomModel.getAxisProxy(dimNames.name, axisIndex).getTargetSeriesModels(); zrUtil.each(seriesModels, function (seriesModel) { if (result) { return; } if (showDataShadow !== true && zrUtil.indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) { return; } var thisAxis = ecModel.getComponent(dimNames.axis, axisIndex).axis; var otherDim = getOtherDim(dimNames.name); var otherAxisInverse; var coordSys = seriesModel.coordinateSystem; if (otherDim != null && coordSys.getOtherAxis) { otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse; } otherDim = seriesModel.getData().mapDimension(otherDim); result = { thisAxis: thisAxis, series: seriesModel, thisDim: dimNames.name, otherDim: otherDim, otherAxisInverse: otherAxisInverse }; }, this); }, this); return result; }, _renderHandle: function _renderHandle() { var displaybles = this._displayables; var handles = displaybles.handles = []; var handleLabels = displaybles.handleLabels = []; var barGroup = this._displayables.barGroup; var size = this._size; var dataZoomModel = this.dataZoomModel; barGroup.add(displaybles.filler = new Rect({ draggable: true, cursor: getCursor(this._orient), drift: bind(this._onDragMove, this, 'all'), ondragstart: bind(this._showDataInfo, this, true), ondragend: bind(this._onDragEnd, this), onmouseover: bind(this._showDataInfo, this, true), onmouseout: bind(this._showDataInfo, this, false), style: { fill: dataZoomModel.get('fillerColor'), textPosition: 'inside' } })); // Frame border. barGroup.add(new Rect({ silent: true, subPixelOptimize: true, shape: { x: 0, y: 0, width: size[0], height: size[1] }, style: { stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'), lineWidth: DEFAULT_FRAME_BORDER_WIDTH, fill: 'rgba(0,0,0,0)' } })); each([0, 1], function (handleIndex) { var path = graphic.createIcon(dataZoomModel.get('handleIcon'), { cursor: getCursor(this._orient), draggable: true, drift: bind(this._onDragMove, this, handleIndex), ondragend: bind(this._onDragEnd, this), onmouseover: bind(this._showDataInfo, this, true), onmouseout: bind(this._showDataInfo, this, false) }, { x: -1, y: 0, width: 2, height: 2 }); var bRect = path.getBoundingRect(); this._handleHeight = numberUtil.parsePercent(dataZoomModel.get('handleSize'), this._size[1]); this._handleWidth = bRect.width / bRect.height * this._handleHeight; path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle()); var handleColor = dataZoomModel.get('handleColor'); // Compatitable with previous version if (handleColor != null) { path.style.fill = handleColor; } barGroup.add(handles[handleIndex] = path); var textStyleModel = dataZoomModel.textStyleModel; this.group.add(handleLabels[handleIndex] = new graphic.Text({ silent: true, invisible: true, style: { x: 0, y: 0, text: '', textVerticalAlign: 'middle', textAlign: 'center', textFill: textStyleModel.getTextColor(), textFont: textStyleModel.getFont() }, z2: 10 })); }, this); }, /** * @private */ _resetInterval: function _resetInterval() { var range = this._range = this.dataZoomModel.getPercentRange(); var viewExtent = this._getViewExtent(); this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)]; }, /** * @private * @param {(number|string)} handleIndex 0 or 1 or 'all' * @param {number} delta * @return {boolean} changed */ _updateInterval: function _updateInterval(handleIndex, delta) { var dataZoomModel = this.dataZoomModel; var handleEnds = this._handleEnds; var viewExtend = this._getViewExtent(); var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan(); var percentExtent = [0, 100]; sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null); var lastRange = this._range; var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]); return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1]; }, /** * @private */ _updateView: function _updateView(nonRealtime) { var displaybles = this._displayables; var handleEnds = this._handleEnds; var handleInterval = asc(handleEnds.slice()); var size = this._size; each([0, 1], function (handleIndex) { // Handles var handle = displaybles.handles[handleIndex]; var handleHeight = this._handleHeight; handle.attr({ scale: [handleHeight / 2, handleHeight / 2], position: [handleEnds[handleIndex], size[1] / 2 - handleHeight / 2] }); }, this); // Filler displaybles.filler.setShape({ x: handleInterval[0], y: 0, width: handleInterval[1] - handleInterval[0], height: size[1] }); this._updateDataInfo(nonRealtime); }, /** * @private */ _updateDataInfo: function _updateDataInfo(nonRealtime) { var dataZoomModel = this.dataZoomModel; var displaybles = this._displayables; var handleLabels = displaybles.handleLabels; var orient = this._orient; var labelTexts = ['', '']; // FIXME // date型,支持formatter,autoformatter(ec2 date.getAutoFormatter) if (dataZoomModel.get('showDetail')) { var axisProxy = dataZoomModel.findRepresentativeAxisProxy(); if (axisProxy) { var axis = axisProxy.getAxisModel().axis; var range = this._range; var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode. ? axisProxy.calculateDataWindow({ start: range[0], end: range[1] }).valueWindow : axisProxy.getDataValueWindow(); labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)]; } } var orderedHandleEnds = asc(this._handleEnds.slice()); setLabel.call(this, 0); setLabel.call(this, 1); function setLabel(handleIndex) { // Label // Text should not transform by barGroup. // Ignore handlers transform var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group); var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform); var offset = this._handleWidth / 2 + LABEL_GAP; var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform); handleLabels[handleIndex].setStyle({ x: textPoint[0], y: textPoint[1], textVerticalAlign: orient === HORIZONTAL ? 'middle' : direction, textAlign: orient === HORIZONTAL ? direction : 'center', text: labelTexts[handleIndex] }); } }, /** * @private */ _formatLabel: function _formatLabel(value, axis) { var dataZoomModel = this.dataZoomModel; var labelFormatter = dataZoomModel.get('labelFormatter'); var labelPrecision = dataZoomModel.get('labelPrecision'); if (labelPrecision == null || labelPrecision === 'auto') { labelPrecision = axis.getPixelPrecision(); } var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel(Math.round(value)) // param of toFixed should less then 20. : value.toFixed(Math.min(labelPrecision, 20)); return zrUtil.isFunction(labelFormatter) ? labelFormatter(value, valueStr) : zrUtil.isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr; }, /** * @private * @param {boolean} showOrHide true: show, false: hide */ _showDataInfo: function _showDataInfo(showOrHide) { // Always show when drgging. showOrHide = this._dragging || showOrHide; var handleLabels = this._displayables.handleLabels; handleLabels[0].attr('invisible', !showOrHide); handleLabels[1].attr('invisible', !showOrHide); }, _onDragMove: function _onDragMove(handleIndex, dx, dy, event) { this._dragging = true; // For mobile device, prevent screen slider on the button. eventTool.stop(event.event); // Transform dx, dy to bar coordination. var barTransform = this._displayables.barGroup.getLocalTransform(); var vertex = graphic.applyTransform([dx, dy], barTransform, true); var changed = this._updateInterval(handleIndex, vertex[0]); var realtime = this.dataZoomModel.get('realtime'); this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed, // which cause bad visual effect when progressive enabled. changed && realtime && this._dispatchZoomAction(); }, _onDragEnd: function _onDragEnd() { this._dragging = false; this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when // drag end will cause the whole view rerender, which is unnecessary. var realtime = this.dataZoomModel.get('realtime'); !realtime && this._dispatchZoomAction(); }, _onClickPanelClick: function _onClickPanelClick(e) { var size = this._size; var localPoint = this._displayables.barGroup.transformCoordToLocal(e.offsetX, e.offsetY); if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) { return; } var handleEnds = this._handleEnds; var center = (handleEnds[0] + handleEnds[1]) / 2; var changed = this._updateInterval('all', localPoint[0] - center); this._updateView(); changed && this._dispatchZoomAction(); }, /** * This action will be throttled. * @private */ _dispatchZoomAction: function _dispatchZoomAction() { var range = this._range; this.api.dispatchAction({ type: 'dataZoom', from: this.uid, dataZoomId: this.dataZoomModel.id, start: range[0], end: range[1] }); }, /** * @private */ _findCoordRect: function _findCoordRect() { // Find the grid coresponding to the first axis referred by dataZoom. var rect; each(this.getTargetCoordInfo(), function (coordInfoList) { if (!rect && coordInfoList.length) { var coordSys = coordInfoList[0].model.coordinateSystem; rect = coordSys.getRect && coordSys.getRect(); } }); if (!rect) { var width = this.api.getWidth(); var height = this.api.getHeight(); rect = { x: width * 0.2, y: height * 0.2, width: width * 0.6, height: height * 0.6 }; } return rect; } }); function getOtherDim(thisDim) { // FIXME // 这个逻辑和getOtherAxis里一致,但是写在这里是否不好 var map = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' }; return map[thisDim]; } function getCursor(orient) { return orient === 'vertical' ? 'ns-resize' : 'ew-resize'; } var _default = SliderZoomView; module.exports = _default; /***/ }), /* 866 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoomInside.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./dataZoom/typeDefaulter */ 807); __webpack_require__(/*! ./dataZoom/DataZoomModel */ 808); __webpack_require__(/*! ./dataZoom/DataZoomView */ 811); __webpack_require__(/*! ./dataZoom/InsideZoomModel */ 867); __webpack_require__(/*! ./dataZoom/InsideZoomView */ 868); __webpack_require__(/*! ./dataZoom/dataZoomProcessor */ 814); __webpack_require__(/*! ./dataZoom/dataZoomAction */ 815); /***/ }), /* 867 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/InsideZoomModel.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var DataZoomModel = __webpack_require__(/*! ./DataZoomModel */ 808); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = DataZoomModel.extend({ type: 'dataZoom.inside', /** * @protected */ defaultOption: { disabled: false, // Whether disable this inside zoom. zoomLock: false, // Whether disable zoom but only pan. zoomOnMouseWheel: true, // Can be: true / false / 'shift' / 'ctrl' / 'alt'. moveOnMouseMove: true, // Can be: true / false / 'shift' / 'ctrl' / 'alt'. moveOnMouseWheel: false, // Can be: true / false / 'shift' / 'ctrl' / 'alt'. preventDefaultMouseMove: true } }); module.exports = _default; /***/ }), /* 868 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/InsideZoomView.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var DataZoomView = __webpack_require__(/*! ./DataZoomView */ 811); var sliderMove = __webpack_require__(/*! ../helper/sliderMove */ 690); var roams = __webpack_require__(/*! ./roams */ 869); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var bind = zrUtil.bind; var InsideZoomView = DataZoomView.extend({ type: 'dataZoom.inside', /** * @override */ init: function init(ecModel, api) { /** * 'throttle' is used in this.dispatchAction, so we save range * to avoid missing some 'pan' info. * @private * @type {Array.} */ this._range; }, /** * @override */ render: function render(dataZoomModel, ecModel, api, payload) { InsideZoomView.superApply(this, 'render', arguments); // Hence the `throttle` util ensures to preserve command order, // here simply updating range all the time will not cause missing // any of the the roam change. this._range = dataZoomModel.getPercentRange(); // Reset controllers. zrUtil.each(this.getTargetCoordInfo(), function (coordInfoList, coordSysName) { var allCoordIds = zrUtil.map(coordInfoList, function (coordInfo) { return roams.generateCoordId(coordInfo.model); }); zrUtil.each(coordInfoList, function (coordInfo) { var coordModel = coordInfo.model; var getRange = {}; zrUtil.each(['pan', 'zoom', 'scrollMove'], function (eventName) { getRange[eventName] = bind(roamHandlers[eventName], this, coordInfo, coordSysName); }, this); roams.register(api, { coordId: roams.generateCoordId(coordModel), allCoordIds: allCoordIds, containsPoint: function containsPoint(e, x, y) { return coordModel.coordinateSystem.containPoint([x, y]); }, dataZoomId: dataZoomModel.id, dataZoomModel: dataZoomModel, getRange: getRange }); }, this); }, this); }, /** * @override */ dispose: function dispose() { roams.unregister(this.api, this.dataZoomModel.id); InsideZoomView.superApply(this, 'dispose', arguments); this._range = null; } }); var roamHandlers = { /** * @this {module:echarts/component/dataZoom/InsideZoomView} */ zoom: function zoom(coordInfo, coordSysName, controller, e) { var lastRange = this._range; var range = lastRange.slice(); // Calculate transform by the first axis. var axisModel = coordInfo.axisModels[0]; if (!axisModel) { return; } var directionInfo = getDirectionInfo[coordSysName](null, [e.originX, e.originY], axisModel, controller, coordInfo); var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0]; var scale = Math.max(1 / e.scale, 0); range[0] = (range[0] - percentPoint) * scale + percentPoint; range[1] = (range[1] - percentPoint) * scale + percentPoint; // Restrict range. var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan(); sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan); this._range = range; if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) { return range; } }, /** * @this {module:echarts/component/dataZoom/InsideZoomView} */ pan: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) { var directionInfo = getDirectionInfo[coordSysName]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordInfo); return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength; }), /** * @this {module:echarts/component/dataZoom/InsideZoomView} */ scrollMove: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) { var directionInfo = getDirectionInfo[coordSysName]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordInfo); return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta; }) }; function makeMover(getPercentDelta) { return function (coordInfo, coordSysName, controller, e) { var lastRange = this._range; var range = lastRange.slice(); // Calculate transform by the first axis. var axisModel = coordInfo.axisModels[0]; if (!axisModel) { return; } var percentDelta = getPercentDelta(range, axisModel, coordInfo, coordSysName, controller, e); sliderMove(percentDelta, range, [0, 100], 'all'); this._range = range; if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) { return range; } }; } var getDirectionInfo = { grid: function grid(oldPoint, newPoint, axisModel, controller, coordInfo) { var axis = axisModel.axis; var ret = {}; var rect = coordInfo.model.coordinateSystem.getRect(); oldPoint = oldPoint || [0, 0]; if (axis.dim === 'x') { ret.pixel = newPoint[0] - oldPoint[0]; ret.pixelLength = rect.width; ret.pixelStart = rect.x; ret.signal = axis.inverse ? 1 : -1; } else { // axis.dim === 'y' ret.pixel = newPoint[1] - oldPoint[1]; ret.pixelLength = rect.height; ret.pixelStart = rect.y; ret.signal = axis.inverse ? -1 : 1; } return ret; }, polar: function polar(oldPoint, newPoint, axisModel, controller, coordInfo) { var axis = axisModel.axis; var ret = {}; var polar = coordInfo.model.coordinateSystem; var radiusExtent = polar.getRadiusAxis().getExtent(); var angleExtent = polar.getAngleAxis().getExtent(); oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0]; newPoint = polar.pointToCoord(newPoint); if (axisModel.mainType === 'radiusAxis') { ret.pixel = newPoint[0] - oldPoint[0]; // ret.pixelLength = Math.abs(radiusExtent[1] - radiusExtent[0]); // ret.pixelStart = Math.min(radiusExtent[0], radiusExtent[1]); ret.pixelLength = radiusExtent[1] - radiusExtent[0]; ret.pixelStart = radiusExtent[0]; ret.signal = axis.inverse ? 1 : -1; } else { // 'angleAxis' ret.pixel = newPoint[1] - oldPoint[1]; // ret.pixelLength = Math.abs(angleExtent[1] - angleExtent[0]); // ret.pixelStart = Math.min(angleExtent[0], angleExtent[1]); ret.pixelLength = angleExtent[1] - angleExtent[0]; ret.pixelStart = angleExtent[0]; ret.signal = axis.inverse ? -1 : 1; } return ret; }, singleAxis: function singleAxis(oldPoint, newPoint, axisModel, controller, coordInfo) { var axis = axisModel.axis; var rect = coordInfo.model.coordinateSystem.getRect(); var ret = {}; oldPoint = oldPoint || [0, 0]; if (axis.orient === 'horizontal') { ret.pixel = newPoint[0] - oldPoint[0]; ret.pixelLength = rect.width; ret.pixelStart = rect.x; ret.signal = axis.inverse ? 1 : -1; } else { // 'vertical' ret.pixel = newPoint[1] - oldPoint[1]; ret.pixelLength = rect.height; ret.pixelStart = rect.y; ret.signal = axis.inverse ? -1 : 1; } return ret; } }; var _default = InsideZoomView; module.exports = _default; /***/ }), /* 869 */ /*!*************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/dataZoom/roams.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var RoamController = __webpack_require__(/*! ../../component/helper/RoamController */ 621); var throttleUtil = __webpack_require__(/*! ../../util/throttle */ 510); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Only create one roam controller for each coordinate system. // one roam controller might be refered by two inside data zoom // components (for example, one for x and one for y). When user // pan or zoom, only dispatch one action for those data zoom // components. var ATTR = '\0_ec_dataZoom_roams'; /** * @public * @param {module:echarts/ExtensionAPI} api * @param {Object} dataZoomInfo * @param {string} dataZoomInfo.coordId * @param {Function} dataZoomInfo.containsPoint * @param {Array.} dataZoomInfo.allCoordIds * @param {string} dataZoomInfo.dataZoomId * @param {Object} dataZoomInfo.getRange * @param {Function} dataZoomInfo.getRange.pan * @param {Function} dataZoomInfo.getRange.zoom * @param {Function} dataZoomInfo.getRange.scrollMove * @param {boolean} dataZoomInfo.dataZoomModel */ function register(api, dataZoomInfo) { var store = giveStore(api); var theDataZoomId = dataZoomInfo.dataZoomId; var theCoordId = dataZoomInfo.coordId; // Do clean when a dataZoom changes its target coordnate system. // Avoid memory leak, dispose all not-used-registered. zrUtil.each(store, function (record, coordId) { var dataZoomInfos = record.dataZoomInfos; if (dataZoomInfos[theDataZoomId] && zrUtil.indexOf(dataZoomInfo.allCoordIds, theCoordId) < 0) { delete dataZoomInfos[theDataZoomId]; record.count--; } }); cleanStore(store); var record = store[theCoordId]; // Create if needed. if (!record) { record = store[theCoordId] = { coordId: theCoordId, dataZoomInfos: {}, count: 0 }; record.controller = createController(api, record); record.dispatchAction = zrUtil.curry(dispatchAction, api); } // Update reference of dataZoom. !record.dataZoomInfos[theDataZoomId] && record.count++; record.dataZoomInfos[theDataZoomId] = dataZoomInfo; var controllerParams = mergeControllerParams(record.dataZoomInfos); record.controller.enable(controllerParams.controlType, controllerParams.opt); // Consider resize, area should be always updated. record.controller.setPointerChecker(dataZoomInfo.containsPoint); // Update throttle. throttleUtil.createOrUpdate(record, 'dispatchAction', dataZoomInfo.dataZoomModel.get('throttle', true), 'fixRate'); } /** * @public * @param {module:echarts/ExtensionAPI} api * @param {string} dataZoomId */ function unregister(api, dataZoomId) { var store = giveStore(api); zrUtil.each(store, function (record) { record.controller.dispose(); var dataZoomInfos = record.dataZoomInfos; if (dataZoomInfos[dataZoomId]) { delete dataZoomInfos[dataZoomId]; record.count--; } }); cleanStore(store); } /** * @public */ function generateCoordId(coordModel) { return coordModel.type + '\0_' + coordModel.id; } /** * Key: coordId, value: {dataZoomInfos: [], count, controller} * @type {Array.} */ function giveStore(api) { // Mount store on zrender instance, so that we do not // need to worry about dispose. var zr = api.getZr(); return zr[ATTR] || (zr[ATTR] = {}); } function createController(api, newRecord) { var controller = new RoamController(api.getZr()); zrUtil.each(['pan', 'zoom', 'scrollMove'], function (eventName) { controller.on(eventName, function (event) { var batch = []; zrUtil.each(newRecord.dataZoomInfos, function (info) { // Check whether the behaviors (zoomOnMouseWheel, moveOnMouseMove, // moveOnMouseWheel, ...) enabled. if (!event.isAvailableBehavior(info.dataZoomModel.option)) { return; } var method = (info.getRange || {})[eventName]; var range = method && method(newRecord.controller, event); !info.dataZoomModel.get('disabled', true) && range && batch.push({ dataZoomId: info.dataZoomId, start: range[0], end: range[1] }); }); batch.length && newRecord.dispatchAction(batch); }); }); return controller; } function cleanStore(store) { zrUtil.each(store, function (record, coordId) { if (!record.count) { record.controller.dispose(); delete store[coordId]; } }); } /** * This action will be throttled. */ function dispatchAction(api, batch) { api.dispatchAction({ type: 'dataZoom', batch: batch }); } /** * Merge roamController settings when multiple dataZooms share one roamController. */ function mergeControllerParams(dataZoomInfos) { var controlType; // DO NOT use reserved word (true, false, undefined) as key literally. Even if encapsulated // as string, it is probably revert to reserved word by compress tool. See #7411. var prefix = 'type_'; var typePriority = { 'type_true': 2, 'type_move': 1, 'type_false': 0, 'type_undefined': -1 }; var preventDefaultMouseMove = true; zrUtil.each(dataZoomInfos, function (dataZoomInfo) { var dataZoomModel = dataZoomInfo.dataZoomModel; var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true; if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) { controlType = oneType; } // Prevent default move event by default. If one false, do not prevent. Otherwise // users may be confused why it does not work when multiple insideZooms exist. preventDefaultMouseMove &= dataZoomModel.get('preventDefaultMouseMove', true); }); return { controlType: controlType, opt: { // RoamController will enable all of these functionalities, // and the final behavior is determined by its event listener // provided by each inside zoom. zoomOnMouseWheel: true, moveOnMouseMove: true, moveOnMouseWheel: true, preventDefaultMouseMove: !!preventDefaultMouseMove } }; } exports.register = register; exports.unregister = unregister; exports.generateCoordId = generateCoordId; /***/ }), /* 870 */ /*!********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ __webpack_require__(/*! ./visualMapContinuous */ 871); __webpack_require__(/*! ./visualMapPiecewise */ 882); /***/ }), /* 871 */ /*!******************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMapContinuous.js ***! \******************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var preprocessor = __webpack_require__(/*! ./visualMap/preprocessor */ 872); __webpack_require__(/*! ./visualMap/typeDefaulter */ 873); __webpack_require__(/*! ./visualMap/visualEncoding */ 874); __webpack_require__(/*! ./visualMap/ContinuousModel */ 875); __webpack_require__(/*! ./visualMap/ContinuousView */ 878); __webpack_require__(/*! ./visualMap/visualMapAction */ 881); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * DataZoom component entry */ echarts.registerPreprocessor(preprocessor); /***/ }), /* 872 */ /*!*********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/preprocessor.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var each = zrUtil.each; function _default(option) { var visualMap = option && option.visualMap; if (!zrUtil.isArray(visualMap)) { visualMap = visualMap ? [visualMap] : []; } each(visualMap, function (opt) { if (!opt) { return; } // rename splitList to pieces if (has(opt, 'splitList') && !has(opt, 'pieces')) { opt.pieces = opt.splitList; delete opt.splitList; } var pieces = opt.pieces; if (pieces && zrUtil.isArray(pieces)) { each(pieces, function (piece) { if (zrUtil.isObject(piece)) { if (has(piece, 'start') && !has(piece, 'min')) { piece.min = piece.start; } if (has(piece, 'end') && !has(piece, 'max')) { piece.max = piece.end; } } }); } }); } function has(obj, name) { return obj && obj.hasOwnProperty && obj.hasOwnProperty(name); } module.exports = _default; /***/ }), /* 873 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/typeDefaulter.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var Component = __webpack_require__(/*! ../../model/Component */ 486); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ Component.registerSubTypeDefaulter('visualMap', function (option) { // Compatible with ec2, when splitNumber === 0, continuous visualMap will be used. return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise'; }); /***/ }), /* 874 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/visualEncoding.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var visualSolution = __webpack_require__(/*! ../../visual/visualSolution */ 825); var VisualMapping = __webpack_require__(/*! ../../visual/VisualMapping */ 651); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var VISUAL_PRIORITY = echarts.PRIORITY.VISUAL.COMPONENT; echarts.registerVisual(VISUAL_PRIORITY, { createOnAllSeries: true, reset: function reset(seriesModel, ecModel) { var resetDefines = []; ecModel.eachComponent('visualMap', function (visualMapModel) { var pipelineContext = seriesModel.pipelineContext; if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) { return; } resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData()))); }); return resetDefines; } }); // Only support color. echarts.registerVisual(VISUAL_PRIORITY, { createOnAllSeries: true, reset: function reset(seriesModel, ecModel) { var data = seriesModel.getData(); var visualMetaList = []; ecModel.eachComponent('visualMap', function (visualMapModel) { if (visualMapModel.isTargetSeries(seriesModel)) { var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || { stops: [], outerColors: [] }; var concreteDim = visualMapModel.getDataDimension(data); var dimInfo = data.getDimensionInfo(concreteDim); if (dimInfo != null) { // visualMeta.dimension should be dimension index, but not concrete dimension. visualMeta.dimension = dimInfo.index; visualMetaList.push(visualMeta); } } }); // console.log(JSON.stringify(visualMetaList.map(a => a.stops))); seriesModel.getData().setVisual('visualMeta', visualMetaList); } }); // FIXME // performance and export for heatmap? // value can be Infinity or -Infinity function getColorVisual(seriesModel, visualMapModel, value, valueState) { var mappings = visualMapModel.targetVisuals[valueState]; var visualTypes = VisualMapping.prepareVisualTypes(mappings); var resultVisual = { color: seriesModel.getData().getVisual('color') // default color. }; for (var i = 0, len = visualTypes.length; i < len; i++) { var type = visualTypes[i]; var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type]; mapping && mapping.applyVisual(value, getVisual, setVisual); } return resultVisual.color; function getVisual(key) { return resultVisual[key]; } function setVisual(key, value) { resultVisual[key] = value; } } /***/ }), /* 875 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/ContinuousModel.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var VisualMapModel = __webpack_require__(/*! ./VisualMapModel */ 876); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ // Constant var DEFAULT_BAR_BOUND = [20, 140]; var ContinuousModel = VisualMapModel.extend({ type: 'visualMap.continuous', /** * @protected */ defaultOption: { align: 'auto', // 'auto', 'left', 'right', 'top', 'bottom' calculable: false, // This prop effect default component type determine, // See echarts/component/visualMap/typeDefaulter. range: null, // selected range. In default case `range` is [min, max] // and can auto change along with modification of min max, // util use specifid a range. realtime: true, // Whether realtime update. itemHeight: null, // The length of the range control edge. itemWidth: null, // The length of the other side. hoverLink: true, // Enable hover highlight. hoverLinkDataSize: null, // The size of hovered data. hoverLinkOnHandle: null // Whether trigger hoverLink when hover handle. // If not specified, follow the value of `realtime`. }, /** * @override */ optionUpdated: function optionUpdated(newOption, isInit) { ContinuousModel.superApply(this, 'optionUpdated', arguments); this.resetExtent(); this.resetVisual(function (mappingOption) { mappingOption.mappingMethod = 'linear'; mappingOption.dataExtent = this.getExtent(); }); this._resetRange(); }, /** * @protected * @override */ resetItemSize: function resetItemSize() { ContinuousModel.superApply(this, 'resetItemSize', arguments); var itemSize = this.itemSize; this._orient === 'horizontal' && itemSize.reverse(); (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]); (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]); }, /** * @private */ _resetRange: function _resetRange() { var dataExtent = this.getExtent(); var range = this.option.range; if (!range || range.auto) { // `range` should always be array (so we dont use other // value like 'auto') for user-friend. (consider getOption). dataExtent.auto = 1; this.option.range = dataExtent; } else if (zrUtil.isArray(range)) { if (range[0] > range[1]) { range.reverse(); } range[0] = Math.max(range[0], dataExtent[0]); range[1] = Math.min(range[1], dataExtent[1]); } }, /** * @protected * @override */ completeVisualOption: function completeVisualOption() { VisualMapModel.prototype.completeVisualOption.apply(this, arguments); zrUtil.each(this.stateList, function (state) { var symbolSize = this.option.controller[state].symbolSize; if (symbolSize && symbolSize[0] !== symbolSize[1]) { symbolSize[0] = 0; // For good looking. } }, this); }, /** * @override */ setSelected: function setSelected(selected) { this.option.range = selected.slice(); this._resetRange(); }, /** * @public */ getSelected: function getSelected() { var dataExtent = this.getExtent(); var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]); dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]); dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]); dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]); return dataInterval; }, /** * @override */ getValueState: function getValueState(value) { var range = this.option.range; var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'. // range[1] is processed likewise. return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange'; }, /** * @params {Array.} range target value: range[0] <= value && value <= range[1] * @return {Array.} [{seriesId, dataIndices: >}, ...] */ findTargetDataIndices: function findTargetDataIndices(range) { var result = []; this.eachTargetSeries(function (seriesModel) { var dataIndices = []; var data = seriesModel.getData(); data.each(this.getDataDimension(data), function (value, dataIndex) { range[0] <= value && value <= range[1] && dataIndices.push(dataIndex); }, this); result.push({ seriesId: seriesModel.id, dataIndex: dataIndices }); }, this); return result; }, /** * @implement */ getVisualMeta: function getVisualMeta(getColorVisual) { var oVals = getColorStopValues(this, 'outOfRange', this.getExtent()); var iVals = getColorStopValues(this, 'inRange', this.option.range.slice()); var stops = []; function setStop(value, valueState) { stops.push({ value: value, color: getColorVisual(value, valueState) }); } // Format to: outOfRange -- inRange -- outOfRange. var iIdx = 0; var oIdx = 0; var iLen = iVals.length; var oLen = oVals.length; for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) { // If oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored. if (oVals[oIdx] < iVals[iIdx]) { setStop(oVals[oIdx], 'outOfRange'); } } for (var first = 1; iIdx < iLen; iIdx++, first = 0) { // If range is full, value beyond min, max will be clamped. // make a singularity first && stops.length && setStop(iVals[iIdx], 'outOfRange'); setStop(iVals[iIdx], 'inRange'); } for (var first = 1; oIdx < oLen; oIdx++) { if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) { // make a singularity if (first) { stops.length && setStop(stops[stops.length - 1].value, 'outOfRange'); first = 0; } setStop(oVals[oIdx], 'outOfRange'); } } var stopsLen = stops.length; return { stops: stops, outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent'] }; } }); function getColorStopValues(visualMapModel, valueState, dataExtent) { if (dataExtent[0] === dataExtent[1]) { return dataExtent.slice(); } // When using colorHue mapping, it is not linear color any more. // Moreover, canvas gradient seems not to be accurate linear. // FIXME // Should be arbitrary value 100? or based on pixel size? var count = 200; var step = (dataExtent[1] - dataExtent[0]) / count; var value = dataExtent[0]; var stopValues = []; for (var i = 0; i <= count && value < dataExtent[1]; i++) { stopValues.push(value); value += step; } stopValues.push(dataExtent[1]); return stopValues; } var _default = ContinuousModel; module.exports = _default; /***/ }), /* 876 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/VisualMapModel.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var env = __webpack_require__(/*! zrender/lib/core/env */ 402); var visualDefault = __webpack_require__(/*! ../../visual/visualDefault */ 877); var VisualMapping = __webpack_require__(/*! ../../visual/VisualMapping */ 651); var visualSolution = __webpack_require__(/*! ../../visual/visualSolution */ 825); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var mapVisual = VisualMapping.mapVisual; var eachVisual = VisualMapping.eachVisual; var isArray = zrUtil.isArray; var each = zrUtil.each; var asc = numberUtil.asc; var linearMap = numberUtil.linearMap; var noop = zrUtil.noop; var VisualMapModel = echarts.extendComponentModel({ type: 'visualMap', dependencies: ['series'], /** * @readOnly * @type {Array.} */ stateList: ['inRange', 'outOfRange'], /** * @readOnly * @type {Array.} */ replacableOptionKeys: ['inRange', 'outOfRange', 'target', 'controller', 'color'], /** * [lowerBound, upperBound] * * @readOnly * @type {Array.} */ dataBound: [-Infinity, Infinity], /** * @readOnly * @type {string|Object} */ layoutMode: { type: 'box', ignoreSize: true }, /** * @protected */ defaultOption: { show: true, zlevel: 0, z: 4, seriesIndex: 'all', // 'all' or null/undefined: all series. // A number or an array of number: the specified series. // set min: 0, max: 200, only for campatible with ec2. // In fact min max should not have default value. min: 0, // min value, must specified if pieces is not specified. max: 200, // max value, must specified if pieces is not specified. dimension: null, inRange: null, // 'color', 'colorHue', 'colorSaturation', 'colorLightness', 'colorAlpha', // 'symbol', 'symbolSize' outOfRange: null, // 'color', 'colorHue', 'colorSaturation', // 'colorLightness', 'colorAlpha', // 'symbol', 'symbolSize' left: 0, // 'center' ¦ 'left' ¦ 'right' ¦ {number} (px) right: null, // The same as left. top: null, // 'top' ¦ 'bottom' ¦ 'center' ¦ {number} (px) bottom: 0, // The same as top. itemWidth: null, itemHeight: null, inverse: false, orient: 'vertical', // 'horizontal' ¦ 'vertical' backgroundColor: 'rgba(0,0,0,0)', borderColor: '#ccc', // 值域边框颜色 contentColor: '#5793f3', inactiveColor: '#aaa', borderWidth: 0, // 值域边框线宽,单位px,默认为0(无边框) padding: 5, // 值域内边距,单位px,默认各方向内边距为5, // 接受数组分别设定上右下左边距,同css textGap: 10, // precision: 0, // 小数精度,默认为0,无小数点 color: null, //颜色(deprecated,兼容ec2,顺序同pieces,不同于inRange/outOfRange) formatter: null, text: null, // 文本,如['高', '低'],兼容ec2,text[0]对应高值,text[1]对应低值 textStyle: { color: '#333' // 值域文字颜色 } }, /** * @protected */ init: function init(option, parentModel, ecModel) { /** * @private * @type {Array.} */ this._dataExtent; /** * @readOnly */ this.targetVisuals = {}; /** * @readOnly */ this.controllerVisuals = {}; /** * @readOnly */ this.textStyleModel; /** * [width, height] * @readOnly * @type {Array.} */ this.itemSize; this.mergeDefaultAndTheme(option, ecModel); }, /** * @protected */ optionUpdated: function optionUpdated(newOption, isInit) { var thisOption = this.option; // FIXME // necessary? // Disable realtime view update if canvas is not supported. if (!env.canvasSupported) { thisOption.realtime = false; } !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys); this.textStyleModel = this.getModel('textStyle'); this.resetItemSize(); this.completeVisualOption(); }, /** * @protected */ resetVisual: function resetVisual(supplementVisualOption) { var stateList = this.stateList; supplementVisualOption = zrUtil.bind(supplementVisualOption, this); this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption); this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption); }, /** * @protected * @return {Array.} An array of series indices. */ getTargetSeriesIndices: function getTargetSeriesIndices() { var optionSeriesIndex = this.option.seriesIndex; var seriesIndices = []; if (optionSeriesIndex == null || optionSeriesIndex === 'all') { this.ecModel.eachSeries(function (seriesModel, index) { seriesIndices.push(index); }); } else { seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex); } return seriesIndices; }, /** * @public */ eachTargetSeries: function eachTargetSeries(callback, context) { zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) { callback.call(context, this.ecModel.getSeriesByIndex(seriesIndex)); }, this); }, /** * @pubilc */ isTargetSeries: function isTargetSeries(seriesModel) { var is = false; this.eachTargetSeries(function (model) { model === seriesModel && (is = true); }); return is; }, /** * @example * this.formatValueText(someVal); // format single numeric value to text. * this.formatValueText(someVal, true); // format single category value to text. * this.formatValueText([min, max]); // format numeric min-max to text. * this.formatValueText([this.dataBound[0], max]); // using data lower bound. * this.formatValueText([min, this.dataBound[1]]); // using data upper bound. * * @param {number|Array.} value Real value, or this.dataBound[0 or 1]. * @param {boolean} [isCategory=false] Only available when value is number. * @param {Array.} edgeSymbols Open-close symbol when value is interval. * @return {string} * @protected */ formatValueText: function formatValueText(value, isCategory, edgeSymbols) { var option = this.option; var precision = option.precision; var dataBound = this.dataBound; var formatter = option.formatter; var isMinMax; var textValue; edgeSymbols = edgeSymbols || ['<', '>']; if (zrUtil.isArray(value)) { value = value.slice(); isMinMax = true; } textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value); if (zrUtil.isString(formatter)) { return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue); } else if (zrUtil.isFunction(formatter)) { return isMinMax ? formatter(value[0], value[1]) : formatter(value); } if (isMinMax) { if (value[0] === dataBound[0]) { return edgeSymbols[0] + ' ' + textValue[1]; } else if (value[1] === dataBound[1]) { return edgeSymbols[1] + ' ' + textValue[0]; } else { return textValue[0] + ' - ' + textValue[1]; } } else { // Format single value (includes category case). return textValue; } function toFixed(val) { return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20)); } }, /** * @protected */ resetExtent: function resetExtent() { var thisOption = this.option; // Can not calculate data extent by data here. // Because series and data may be modified in processing stage. // So we do not support the feature "auto min/max". var extent = asc([thisOption.min, thisOption.max]); this._dataExtent = extent; }, /** * @public * @param {module:echarts/data/List} list * @return {string} Concrete dimention. If return null/undefined, * no dimension used. */ getDataDimension: function getDataDimension(list) { var optDim = this.option.dimension; var listDimensions = list.dimensions; if (optDim == null && !listDimensions.length) { return; } if (optDim != null) { return list.getDimension(optDim); } var dimNames = list.dimensions; for (var i = dimNames.length - 1; i >= 0; i--) { var dimName = dimNames[i]; var dimInfo = list.getDimensionInfo(dimName); if (!dimInfo.isCalculationCoord) { return dimName; } } }, /** * @public * @override */ getExtent: function getExtent() { return this._dataExtent.slice(); }, /** * @protected */ completeVisualOption: function completeVisualOption() { var ecModel = this.ecModel; var thisOption = this.option; var base = { inRange: thisOption.inRange, outOfRange: thisOption.outOfRange }; var target = thisOption.target || (thisOption.target = {}); var controller = thisOption.controller || (thisOption.controller = {}); zrUtil.merge(target, base); // Do not override zrUtil.merge(controller, base); // Do not override var isCategory = this.isCategory(); completeSingle.call(this, target); completeSingle.call(this, controller); completeInactive.call(this, target, 'inRange', 'outOfRange'); // completeInactive.call(this, target, 'outOfRange', 'inRange'); completeController.call(this, controller); function completeSingle(base) { // Compatible with ec2 dataRange.color. // The mapping order of dataRange.color is: [high value, ..., low value] // whereas inRange.color and outOfRange.color is [low value, ..., high value] // Notice: ec2 has no inverse. if (isArray(thisOption.color) // If there has been inRange: {symbol: ...}, adding color is a mistake. // So adding color only when no inRange defined. && !base.inRange) { base.inRange = { color: thisOption.color.slice().reverse() }; } // Compatible with previous logic, always give a defautl color, otherwise // simple config with no inRange and outOfRange will not work. // Originally we use visualMap.color as the default color, but setOption at // the second time the default color will be erased. So we change to use // constant DEFAULT_COLOR. // If user do not want the default color, set inRange: {color: null}. base.inRange = base.inRange || { color: ecModel.get('gradientColor') }; // If using shortcut like: {inRange: 'symbol'}, complete default value. each(this.stateList, function (state) { var visualType = base[state]; if (zrUtil.isString(visualType)) { var defa = visualDefault.get(visualType, 'active', isCategory); if (defa) { base[state] = {}; base[state][visualType] = defa; } else { // Mark as not specified. delete base[state]; } } }, this); } function completeInactive(base, stateExist, stateAbsent) { var optExist = base[stateExist]; var optAbsent = base[stateAbsent]; if (optExist && !optAbsent) { optAbsent = base[stateAbsent] = {}; each(optExist, function (visualData, visualType) { if (!VisualMapping.isValidType(visualType)) { return; } var defa = visualDefault.get(visualType, 'inactive', isCategory); if (defa != null) { optAbsent[visualType] = defa; // Compatibable with ec2: // Only inactive color to rgba(0,0,0,0) can not // make label transparent, so use opacity also. if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) { optAbsent.opacity = [0, 0]; } } }); } } function completeController(controller) { var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol; var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize; var inactiveColor = this.get('inactiveColor'); each(this.stateList, function (state) { var itemSize = this.itemSize; var visuals = controller[state]; // Set inactive color for controller if no other color // attr (like colorAlpha) specified. if (!visuals) { visuals = controller[state] = { color: isCategory ? inactiveColor : [inactiveColor] }; } // Consistent symbol and symbolSize if not specified. if (visuals.symbol == null) { visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']); } if (visuals.symbolSize == null) { visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]); } // Filter square and none. visuals.symbol = mapVisual(visuals.symbol, function (symbol) { return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol; }); // Normalize symbolSize var symbolSize = visuals.symbolSize; if (symbolSize != null) { var max = -Infinity; // symbolSize can be object when categories defined. eachVisual(symbolSize, function (value) { value > max && (max = value); }); visuals.symbolSize = mapVisual(symbolSize, function (value) { return linearMap(value, [0, max], [0, itemSize[0]], true); }); } }, this); } }, /** * @protected */ resetItemSize: function resetItemSize() { this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))]; }, /** * @public */ isCategory: function isCategory() { return !!this.option.categories; }, /** * @public * @abstract */ setSelected: noop, /** * @public * @abstract * @param {*|module:echarts/data/List} valueOrData * @param {number} dataIndex * @return {string} state See this.stateList */ getValueState: noop, /** * FIXME * Do not publish to thirt-part-dev temporarily * util the interface is stable. (Should it return * a function but not visual meta?) * * @pubilc * @abstract * @param {Function} getColorVisual * params: value, valueState * return: color * @return {Object} visualMeta * should includes {stops, outerColors} * outerColor means [colorBeyondMinValue, colorBeyondMaxValue] */ getVisualMeta: noop }); var _default = VisualMapModel; module.exports = _default; /***/ }), /* 877 */ /*!*********************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/visual/visualDefault.js ***! \*********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @file Visual mapping. */ var visualDefault = { /** * @public */ get: function get(visualType, key, isCategory) { var value = zrUtil.clone((defaultOption[visualType] || {})[key]); return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value; } }; var defaultOption = { color: { active: ['#006edd', '#e0ffff'], inactive: ['rgba(0,0,0,0)'] }, colorHue: { active: [0, 360], inactive: [0, 0] }, colorSaturation: { active: [0.3, 1], inactive: [0, 0] }, colorLightness: { active: [0.9, 0.5], inactive: [0, 0] }, colorAlpha: { active: [0.3, 1], inactive: [0, 0] }, opacity: { active: [0.3, 1], inactive: [0, 0] }, symbol: { active: ['circle', 'roundRect', 'diamond'], inactive: ['none'] }, symbolSize: { active: [10, 50], inactive: [0, 0] } }; var _default = visualDefault; module.exports = _default; /***/ }), /* 878 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/ContinuousView.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var LinearGradient = __webpack_require__(/*! zrender/lib/graphic/LinearGradient */ 481); var eventTool = __webpack_require__(/*! zrender/lib/core/event */ 408); var VisualMapView = __webpack_require__(/*! ./VisualMapView */ 879); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var numberUtil = __webpack_require__(/*! ../../util/number */ 489); var sliderMove = __webpack_require__(/*! ../helper/sliderMove */ 690); var helper = __webpack_require__(/*! ./helper */ 880); var modelUtil = __webpack_require__(/*! ../../util/model */ 444); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var linearMap = numberUtil.linearMap; var each = zrUtil.each; var mathMin = Math.min; var mathMax = Math.max; // Arbitrary value var HOVER_LINK_SIZE = 12; var HOVER_LINK_OUT = 6; // Notice: // Any "interval" should be by the order of [low, high]. // "handle0" (handleIndex === 0) maps to // low data value: this._dataInterval[0] and has low coord. // "handle1" (handleIndex === 1) maps to // high data value: this._dataInterval[1] and has high coord. // The logic of transform is implemented in this._createBarGroup. var ContinuousView = VisualMapView.extend({ type: 'visualMap.continuous', /** * @override */ init: function init() { ContinuousView.superApply(this, 'init', arguments); /** * @private */ this._shapes = {}; /** * @private */ this._dataInterval = []; /** * @private */ this._handleEnds = []; /** * @private */ this._orient; /** * @private */ this._useHandle; /** * @private */ this._hoverLinkDataIndices = []; /** * @private */ this._dragging; /** * @private */ this._hovering; }, /** * @protected * @override */ doRender: function doRender(visualMapModel, ecModel, api, payload) { if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) { this._buildView(); } }, /** * @private */ _buildView: function _buildView() { this.group.removeAll(); var visualMapModel = this.visualMapModel; var thisGroup = this.group; this._orient = visualMapModel.get('orient'); this._useHandle = visualMapModel.get('calculable'); this._resetInterval(); this._renderBar(thisGroup); var dataRangeText = visualMapModel.get('text'); this._renderEndsText(thisGroup, dataRangeText, 0); this._renderEndsText(thisGroup, dataRangeText, 1); // Do this for background size calculation. this._updateView(true); // After updating view, inner shapes is built completely, // and then background can be rendered. this.renderBackground(thisGroup); // Real update view this._updateView(); this._enableHoverLinkToSeries(); this._enableHoverLinkFromSeries(); this.positionGroup(thisGroup); }, /** * @private */ _renderEndsText: function _renderEndsText(group, dataRangeText, endsIndex) { if (!dataRangeText) { return; } // Compatible with ec2, text[0] map to high value, text[1] map low value. var text = dataRangeText[1 - endsIndex]; text = text != null ? text + '' : ''; var visualMapModel = this.visualMapModel; var textGap = visualMapModel.get('textGap'); var itemSize = visualMapModel.itemSize; var barGroup = this._shapes.barGroup; var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup); var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup); var orient = this._orient; var textStyleModel = this.visualMapModel.textStyleModel; this.group.add(new graphic.Text({ style: { x: position[0], y: position[1], textVerticalAlign: orient === 'horizontal' ? 'middle' : align, textAlign: orient === 'horizontal' ? align : 'center', text: text, textFont: textStyleModel.getFont(), textFill: textStyleModel.getTextColor() } })); }, /** * @private */ _renderBar: function _renderBar(targetGroup) { var visualMapModel = this.visualMapModel; var shapes = this._shapes; var itemSize = visualMapModel.itemSize; var orient = this._orient; var useHandle = this._useHandle; var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize); var barGroup = shapes.barGroup = this._createBarGroup(itemAlign); // Bar barGroup.add(shapes.outOfRange = createPolygon()); barGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true))); var textRect = visualMapModel.textStyleModel.getTextRect('国'); var textSize = mathMax(textRect.width, textRect.height); // Handle if (useHandle) { shapes.handleThumbs = []; shapes.handleLabels = []; shapes.handleLabelPoints = []; this._createHandle(barGroup, 0, itemSize, textSize, orient, itemAlign); this._createHandle(barGroup, 1, itemSize, textSize, orient, itemAlign); } this._createIndicator(barGroup, itemSize, textSize, orient); targetGroup.add(barGroup); }, /** * @private */ _createHandle: function _createHandle(barGroup, handleIndex, itemSize, textSize, orient) { var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false); var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true); var handleThumb = createPolygon(createHandlePoints(handleIndex, textSize), getCursor(this._orient), onDrift, onDragEnd); handleThumb.position[0] = itemSize[0]; barGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by // transform (orient/inverse). So label is built separately but not // use zrender/graphic/helper/RectText, and is located based on view // group (according to handleLabelPoint) but not barGroup. var textStyleModel = this.visualMapModel.textStyleModel; var handleLabel = new graphic.Text({ draggable: true, drift: onDrift, onmousemove: function onmousemove(e) { // Fot mobile devicem, prevent screen slider on the button. eventTool.stop(e.event); }, ondragend: onDragEnd, style: { x: 0, y: 0, text: '', textFont: textStyleModel.getFont(), textFill: textStyleModel.getTextColor() } }); this.group.add(handleLabel); var handleLabelPoint = [orient === 'horizontal' ? textSize / 2 : textSize * 1.5, orient === 'horizontal' ? handleIndex === 0 ? -(textSize * 1.5) : textSize * 1.5 : handleIndex === 0 ? -textSize / 2 : textSize / 2]; var shapes = this._shapes; shapes.handleThumbs[handleIndex] = handleThumb; shapes.handleLabelPoints[handleIndex] = handleLabelPoint; shapes.handleLabels[handleIndex] = handleLabel; }, /** * @private */ _createIndicator: function _createIndicator(barGroup, itemSize, textSize, orient) { var indicator = createPolygon([[0, 0]], 'move'); indicator.position[0] = itemSize[0]; indicator.attr({ invisible: true, silent: true }); barGroup.add(indicator); var textStyleModel = this.visualMapModel.textStyleModel; var indicatorLabel = new graphic.Text({ silent: true, invisible: true, style: { x: 0, y: 0, text: '', textFont: textStyleModel.getFont(), textFill: textStyleModel.getTextColor() } }); this.group.add(indicatorLabel); var indicatorLabelPoint = [orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT + 3, 0]; var shapes = this._shapes; shapes.indicator = indicator; shapes.indicatorLabel = indicatorLabel; shapes.indicatorLabelPoint = indicatorLabelPoint; }, /** * @private */ _dragHandle: function _dragHandle(handleIndex, isEnd, dx, dy) { if (!this._useHandle) { return; } this._dragging = !isEnd; if (!isEnd) { // Transform dx, dy to bar coordination. var vertex = this._applyTransform([dx, dy], this._shapes.barGroup, true); this._updateInterval(handleIndex, vertex[1]); // Considering realtime, update view should be executed // before dispatch action. this._updateView(); } // dragEnd do not dispatch action when realtime. if (isEnd === !this.visualMapModel.get('realtime')) { // jshint ignore:line this.api.dispatchAction({ type: 'selectDataRange', from: this.uid, visualMapId: this.visualMapModel.id, selected: this._dataInterval.slice() }); } if (isEnd) { !this._hovering && this._clearHoverLinkToSeries(); } else if (useHoverLinkOnHandle(this.visualMapModel)) { this._doHoverLinkToSeries(this._handleEnds[handleIndex], false); } }, /** * @private */ _resetInterval: function _resetInterval() { var visualMapModel = this.visualMapModel; var dataInterval = this._dataInterval = visualMapModel.getSelected(); var dataExtent = visualMapModel.getExtent(); var sizeExtent = [0, visualMapModel.itemSize[1]]; this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)]; }, /** * @private * @param {(number|string)} handleIndex 0 or 1 or 'all' * @param {number} dx * @param {number} dy */ _updateInterval: function _updateInterval(handleIndex, delta) { delta = delta || 0; var visualMapModel = this.visualMapModel; var handleEnds = this._handleEnds; var sizeExtent = [0, visualMapModel.itemSize[1]]; sliderMove(delta, handleEnds, sizeExtent, handleIndex, // cross is forbiden 0); var dataExtent = visualMapModel.getExtent(); // Update data interval. this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)]; }, /** * @private */ _updateView: function _updateView(forSketch) { var visualMapModel = this.visualMapModel; var dataExtent = visualMapModel.getExtent(); var shapes = this._shapes; var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]]; var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds; var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange'); var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange'); shapes.inRange.setStyle({ fill: visualInRange.barColor, opacity: visualInRange.opacity }).setShape('points', visualInRange.barPoints); shapes.outOfRange.setStyle({ fill: visualOutOfRange.barColor, opacity: visualOutOfRange.opacity }).setShape('points', visualOutOfRange.barPoints); this._updateHandle(inRangeHandleEnds, visualInRange); }, /** * @private */ _createBarVisual: function _createBarVisual(dataInterval, dataExtent, handleEnds, forceState) { var opts = { forceState: forceState, convertOpacityToAlpha: true }; var colorStops = this._makeColorGradient(dataInterval, opts); var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)]; var barPoints = this._createBarPoints(handleEnds, symbolSizes); return { barColor: new LinearGradient(0, 0, 0, 1, colorStops), barPoints: barPoints, handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color] }; }, /** * @private */ _makeColorGradient: function _makeColorGradient(dataInterval, opts) { // Considering colorHue, which is not linear, so we have to sample // to calculate gradient color stops, but not only caculate head // and tail. var sampleNumber = 100; // Arbitrary value. var colorStops = []; var step = (dataInterval[1] - dataInterval[0]) / sampleNumber; colorStops.push({ color: this.getControllerVisual(dataInterval[0], 'color', opts), offset: 0 }); for (var i = 1; i < sampleNumber; i++) { var currValue = dataInterval[0] + step * i; if (currValue > dataInterval[1]) { break; } colorStops.push({ color: this.getControllerVisual(currValue, 'color', opts), offset: i / sampleNumber }); } colorStops.push({ color: this.getControllerVisual(dataInterval[1], 'color', opts), offset: 1 }); return colorStops; }, /** * @private */ _createBarPoints: function _createBarPoints(handleEnds, symbolSizes) { var itemSize = this.visualMapModel.itemSize; return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]]; }, /** * @private */ _createBarGroup: function _createBarGroup(itemAlign) { var orient = this._orient; var inverse = this.visualMapModel.get('inverse'); return new graphic.Group(orient === 'horizontal' && !inverse ? { scale: itemAlign === 'bottom' ? [1, 1] : [-1, 1], rotation: Math.PI / 2 } : orient === 'horizontal' && inverse ? { scale: itemAlign === 'bottom' ? [-1, 1] : [1, 1], rotation: -Math.PI / 2 } : orient === 'vertical' && !inverse ? { scale: itemAlign === 'left' ? [1, -1] : [-1, -1] } : { scale: itemAlign === 'left' ? [1, 1] : [-1, 1] }); }, /** * @private */ _updateHandle: function _updateHandle(handleEnds, visualInRange) { if (!this._useHandle) { return; } var shapes = this._shapes; var visualMapModel = this.visualMapModel; var handleThumbs = shapes.handleThumbs; var handleLabels = shapes.handleLabels; each([0, 1], function (handleIndex) { var handleThumb = handleThumbs[handleIndex]; handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]); handleThumb.position[1] = handleEnds[handleIndex]; // Update handle label position. var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group)); handleLabels[handleIndex].setStyle({ x: textPoint[0], y: textPoint[1], text: visualMapModel.formatValueText(this._dataInterval[handleIndex]), textVerticalAlign: 'middle', textAlign: this._applyTransform(this._orient === 'horizontal' ? handleIndex === 0 ? 'bottom' : 'top' : 'left', shapes.barGroup) }); }, this); }, /** * @private * @param {number} cursorValue * @param {number} textValue * @param {string} [rangeSymbol] * @param {number} [halfHoverLinkSize] */ _showIndicator: function _showIndicator(cursorValue, textValue, rangeSymbol, halfHoverLinkSize) { var visualMapModel = this.visualMapModel; var dataExtent = visualMapModel.getExtent(); var itemSize = visualMapModel.itemSize; var sizeExtent = [0, itemSize[1]]; var pos = linearMap(cursorValue, dataExtent, sizeExtent, true); var shapes = this._shapes; var indicator = shapes.indicator; if (!indicator) { return; } indicator.position[1] = pos; indicator.attr('invisible', false); indicator.setShape('points', createIndicatorPoints(!!rangeSymbol, halfHoverLinkSize, pos, itemSize[1])); var opts = { convertOpacityToAlpha: true }; var color = this.getControllerVisual(cursorValue, 'color', opts); indicator.setStyle('fill', color); // Update handle label position. var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group)); var indicatorLabel = shapes.indicatorLabel; indicatorLabel.attr('invisible', false); var align = this._applyTransform('left', shapes.barGroup); var orient = this._orient; indicatorLabel.setStyle({ text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue), textVerticalAlign: orient === 'horizontal' ? align : 'middle', textAlign: orient === 'horizontal' ? 'center' : align, x: textPoint[0], y: textPoint[1] }); }, /** * @private */ _enableHoverLinkToSeries: function _enableHoverLinkToSeries() { var self = this; this._shapes.barGroup.on('mousemove', function (e) { self._hovering = true; if (!self._dragging) { var itemSize = self.visualMapModel.itemSize; var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.barGroup, true, true); // For hover link show when hover handle, which might be // below or upper than sizeExtent. pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]); self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]); } }).on('mouseout', function () { // When mouse is out of handle, hoverLink still need // to be displayed when realtime is set as false. self._hovering = false; !self._dragging && self._clearHoverLinkToSeries(); }); }, /** * @private */ _enableHoverLinkFromSeries: function _enableHoverLinkFromSeries() { var zr = this.api.getZr(); if (this.visualMapModel.option.hoverLink) { zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this); zr.on('mouseout', this._hideIndicator, this); } else { this._clearHoverLinkFromSeries(); } }, /** * @private */ _doHoverLinkToSeries: function _doHoverLinkToSeries(cursorPos, hoverOnBar) { var visualMapModel = this.visualMapModel; var itemSize = visualMapModel.itemSize; if (!visualMapModel.option.hoverLink) { return; } var sizeExtent = [0, itemSize[1]]; var dataExtent = visualMapModel.getExtent(); // For hover link show when hover handle, which might be below or upper than sizeExtent. cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]); var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent); var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize]; var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true); var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html, // where china and india has very large population. hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity); hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle, // otherwise labels overlap, especially when dragging. if (hoverOnBar) { if (valueRange[0] === -Infinity) { this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize); } else if (valueRange[1] === Infinity) { this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize); } else { this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize); } } // When realtime is set as false, handles, which are in barGroup, // also trigger hoverLink, which help user to realize where they // focus on when dragging. (see test/heatmap-large.html) // When realtime is set as true, highlight will not show when hover // handle, because the label on handle, which displays a exact value // but not range, might mislead users. var oldBatch = this._hoverLinkDataIndices; var newBatch = []; if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) { newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange); } var resultBatches = modelUtil.compressBatches(oldBatch, newBatch); this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel)); this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel)); }, /** * @private */ _hoverLinkFromSeriesMouseOver: function _hoverLinkFromSeriesMouseOver(e) { var el = e.target; var visualMapModel = this.visualMapModel; if (!el || el.dataIndex == null) { return; } var dataModel = this.ecModel.getSeriesByIndex(el.seriesIndex); if (!visualMapModel.isTargetSeries(dataModel)) { return; } var data = dataModel.getData(el.dataType); var value = data.get(visualMapModel.getDataDimension(data), el.dataIndex, true); if (!isNaN(value)) { this._showIndicator(value, value); } }, /** * @private */ _hideIndicator: function _hideIndicator() { var shapes = this._shapes; shapes.indicator && shapes.indicator.attr('invisible', true); shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true); }, /** * @private */ _clearHoverLinkToSeries: function _clearHoverLinkToSeries() { this._hideIndicator(); var indices = this._hoverLinkDataIndices; this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel)); indices.length = 0; }, /** * @private */ _clearHoverLinkFromSeries: function _clearHoverLinkFromSeries() { this._hideIndicator(); var zr = this.api.getZr(); zr.off('mouseover', this._hoverLinkFromSeriesMouseOver); zr.off('mouseout', this._hideIndicator); }, /** * @private */ _applyTransform: function _applyTransform(vertex, element, inverse, global) { var transform = graphic.getTransform(element, global ? null : this.group); return graphic[zrUtil.isArray(vertex) ? 'applyTransform' : 'transformDirection'](vertex, transform, inverse); }, /** * @private */ _dispatchHighDown: function _dispatchHighDown(type, batch) { batch && batch.length && this.api.dispatchAction({ type: type, batch: batch }); }, /** * @override */ dispose: function dispose() { this._clearHoverLinkFromSeries(); this._clearHoverLinkToSeries(); }, /** * @override */ remove: function remove() { this._clearHoverLinkFromSeries(); this._clearHoverLinkToSeries(); } }); function createPolygon(points, cursor, onDrift, onDragEnd) { return new graphic.Polygon({ shape: { points: points }, draggable: !!onDrift, cursor: cursor, drift: onDrift, onmousemove: function onmousemove(e) { // Fot mobile devicem, prevent screen slider on the button. eventTool.stop(e.event); }, ondragend: onDragEnd }); } function createHandlePoints(handleIndex, textSize) { return handleIndex === 0 ? [[0, 0], [textSize, 0], [textSize, -textSize]] : [[0, 0], [textSize, 0], [textSize, textSize]]; } function createIndicatorPoints(isRange, halfHoverLinkSize, pos, extentMax) { return isRange ? [ // indicate range [0, -mathMin(halfHoverLinkSize, mathMax(pos, 0))], [HOVER_LINK_OUT, 0], [0, mathMin(halfHoverLinkSize, mathMax(extentMax - pos, 0))]] : [ // indicate single value [0, 0], [5, -5], [5, 5]]; } function getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) { var halfHoverLinkSize = HOVER_LINK_SIZE / 2; var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize'); if (hoverLinkDataSize) { halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2; } return halfHoverLinkSize; } function useHoverLinkOnHandle(visualMapModel) { var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle'); return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle); } function getCursor(orient) { return orient === 'vertical' ? 'ns-resize' : 'ew-resize'; } var _default = ContinuousView; module.exports = _default; /***/ }), /* 879 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/VisualMapView.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var formatUtil = __webpack_require__(/*! ../../util/format */ 490); var layout = __webpack_require__(/*! ../../util/layout */ 488); var VisualMapping = __webpack_require__(/*! ../../visual/VisualMapping */ 651); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _default = echarts.extendComponentView({ type: 'visualMap', /** * @readOnly * @type {Object} */ autoPositionValues: { left: 1, right: 1, top: 1, bottom: 1 }, init: function init(ecModel, api) { /** * @readOnly * @type {module:echarts/model/Global} */ this.ecModel = ecModel; /** * @readOnly * @type {module:echarts/ExtensionAPI} */ this.api = api; /** * @readOnly * @type {module:echarts/component/visualMap/visualMapModel} */ this.visualMapModel; }, /** * @protected */ render: function render(visualMapModel, ecModel, api, payload) { this.visualMapModel = visualMapModel; if (visualMapModel.get('show') === false) { this.group.removeAll(); return; } this.doRender.apply(this, arguments); }, /** * @protected */ renderBackground: function renderBackground(group) { var visualMapModel = this.visualMapModel; var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0); var rect = group.getBoundingRect(); group.add(new graphic.Rect({ z2: -1, // Lay background rect on the lowest layer. silent: true, shape: { x: rect.x - padding[3], y: rect.y - padding[0], width: rect.width + padding[3] + padding[1], height: rect.height + padding[0] + padding[2] }, style: { fill: visualMapModel.get('backgroundColor'), stroke: visualMapModel.get('borderColor'), lineWidth: visualMapModel.get('borderWidth') } })); }, /** * @protected * @param {number} targetValue can be Infinity or -Infinity * @param {string=} visualCluster Only can be 'color' 'opacity' 'symbol' 'symbolSize' * @param {Object} [opts] * @param {string=} [opts.forceState] Specify state, instead of using getValueState method. * @param {string=} [opts.convertOpacityToAlpha=false] For color gradient in controller widget. * @return {*} Visual value. */ getControllerVisual: function getControllerVisual(targetValue, visualCluster, opts) { opts = opts || {}; var forceState = opts.forceState; var visualMapModel = this.visualMapModel; var visualObj = {}; // Default values. if (visualCluster === 'symbol') { visualObj.symbol = visualMapModel.get('itemSymbol'); } if (visualCluster === 'color') { var defaultColor = visualMapModel.get('contentColor'); visualObj.color = defaultColor; } function getter(key) { return visualObj[key]; } function setter(key, value) { visualObj[key] = value; } var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)]; var visualTypes = VisualMapping.prepareVisualTypes(mappings); zrUtil.each(visualTypes, function (type) { var visualMapping = mappings[type]; if (opts.convertOpacityToAlpha && type === 'opacity') { type = 'colorAlpha'; visualMapping = mappings.__alphaForOpacity; } if (VisualMapping.dependsOn(type, visualCluster)) { visualMapping && visualMapping.applyVisual(targetValue, getter, setter); } }); return visualObj[visualCluster]; }, /** * @protected */ positionGroup: function positionGroup(group) { var model = this.visualMapModel; var api = this.api; layout.positionElement(group, model.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() }); }, /** * @protected * @abstract */ doRender: zrUtil.noop }); module.exports = _default; /***/ }), /* 880 */ /*!***************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/helper.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var _layout = __webpack_require__(/*! ../../util/layout */ 488); var getLayoutRect = _layout.getLayoutRect; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * @param {module:echarts/component/visualMap/VisualMapModel} visualMapModel\ * @param {module:echarts/ExtensionAPI} api * @param {Array.} itemSize always [short, long] * @return {string} 'left' or 'right' or 'top' or 'bottom' */ function getItemAlign(visualMapModel, api, itemSize) { var modelOption = visualMapModel.option; var itemAlign = modelOption.align; if (itemAlign != null && itemAlign !== 'auto') { return itemAlign; } // Auto decision align. var ecSize = { width: api.getWidth(), height: api.getHeight() }; var realIndex = modelOption.orient === 'horizontal' ? 1 : 0; var paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']]; var reals = paramsSet[realIndex]; var fakeValue = [0, null, 10]; var layoutInput = {}; for (var i = 0; i < 3; i++) { layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i]; layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]]; } var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex]; var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding); return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1]; } /** * Prepare dataIndex for outside usage, where dataIndex means rawIndex, and * dataIndexInside means filtered index. */ function makeHighDownBatch(batch, visualMapModel) { zrUtil.each(batch || [], function (batchItem) { if (batchItem.dataIndex != null) { batchItem.dataIndexInside = batchItem.dataIndex; batchItem.dataIndex = null; } batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : ''); }); return batch; } exports.getItemAlign = getItemAlign; exports.makeHighDownBatch = makeHighDownBatch; /***/ }), /* 881 */ /*!************************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/visualMapAction.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../../echarts */ 398); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var actionInfo = { type: 'selectDataRange', event: 'dataRangeSelected', // FIXME use updateView appears wrong update: 'update' }; echarts.registerAction(actionInfo, function (payload, ecModel) { ecModel.eachComponent({ mainType: 'visualMap', query: payload }, function (model) { model.setSelected(payload.selected); }); }); /***/ }), /* 882 */ /*!*****************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMapPiecewise.js ***! \*****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var echarts = __webpack_require__(/*! ../echarts */ 398); var preprocessor = __webpack_require__(/*! ./visualMap/preprocessor */ 872); __webpack_require__(/*! ./visualMap/typeDefaulter */ 873); __webpack_require__(/*! ./visualMap/visualEncoding */ 874); __webpack_require__(/*! ./visualMap/PiecewiseModel */ 883); __webpack_require__(/*! ./visualMap/PiecewiseView */ 884); __webpack_require__(/*! ./visualMap/visualMapAction */ 881); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * DataZoom component entry */ echarts.registerPreprocessor(preprocessor); /***/ }), /* 883 */ /*!***********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/PiecewiseModel.js ***! \***********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var _config = __webpack_require__(/*! ../../config */ 399); var __DEV__ = _config.__DEV__; var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var VisualMapModel = __webpack_require__(/*! ./VisualMapModel */ 876); var VisualMapping = __webpack_require__(/*! ../../visual/VisualMapping */ 651); var visualDefault = __webpack_require__(/*! ../../visual/visualDefault */ 877); var _number = __webpack_require__(/*! ../../util/number */ 489); var reformIntervals = _number.reformIntervals; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PiecewiseModel = VisualMapModel.extend({ type: 'visualMap.piecewise', /** * Order Rule: * * option.categories / option.pieces / option.text / option.selected: * If !option.inverse, * Order when vertical: ['top', ..., 'bottom']. * Order when horizontal: ['left', ..., 'right']. * If option.inverse, the meaning of * the order should be reversed. * * this._pieceList: * The order is always [low, ..., high]. * * Mapping from location to low-high: * If !option.inverse * When vertical, top is high. * When horizontal, right is high. * If option.inverse, reverse. */ /** * @protected */ defaultOption: { selected: null, // Object. If not specified, means selected. // When pieces and splitNumber: {'0': true, '5': true} // When categories: {'cate1': false, 'cate3': true} // When selected === false, means all unselected. minOpen: false, // Whether include values that smaller than `min`. maxOpen: false, // Whether include values that bigger than `max`. align: 'auto', // 'auto', 'left', 'right' itemWidth: 20, // When put the controller vertically, it is the length of // horizontal side of each item. Otherwise, vertical side. itemHeight: 14, // When put the controller vertically, it is the length of // vertical side of each item. Otherwise, horizontal side. itemSymbol: 'roundRect', pieceList: null, // Each item is Object, with some of those attrs: // {min, max, lt, gt, lte, gte, value, // color, colorSaturation, colorAlpha, opacity, // symbol, symbolSize}, which customize the range or visual // coding of the certain piece. Besides, see "Order Rule". categories: null, // category names, like: ['some1', 'some2', 'some3']. // Attr min/max are ignored when categories set. See "Order Rule" splitNumber: 5, // If set to 5, auto split five pieces equally. // If set to 0 and component type not set, component type will be // determined as "continuous". (It is less reasonable but for ec2 // compatibility, see echarts/component/visualMap/typeDefaulter) selectedMode: 'multiple', // Can be 'multiple' or 'single'. itemGap: 10, // The gap between two items, in px. hoverLink: true, // Enable hover highlight. showLabel: null // By default, when text is used, label will hide (the logic // is remained for compatibility reason) }, /** * @override */ optionUpdated: function optionUpdated(newOption, isInit) { PiecewiseModel.superApply(this, 'optionUpdated', arguments); /** * The order is always [low, ..., high]. * [{text: string, interval: Array.}, ...] * @private * @type {Array.} */ this._pieceList = []; this.resetExtent(); /** * 'pieces', 'categories', 'splitNumber' * @type {string} */ var mode = this._mode = this._determineMode(); resetMethods[this._mode].call(this); this._resetSelected(newOption, isInit); var categories = this.option.categories; this.resetVisual(function (mappingOption, state) { if (mode === 'categories') { mappingOption.mappingMethod = 'category'; mappingOption.categories = zrUtil.clone(categories); } else { mappingOption.dataExtent = this.getExtent(); mappingOption.mappingMethod = 'piecewise'; mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) { var piece = zrUtil.clone(piece); if (state !== 'inRange') { // FIXME // outOfRange do not support special visual in pieces. piece.visual = null; } return piece; }); } }); }, /** * @protected * @override */ completeVisualOption: function completeVisualOption() { // Consider this case: // visualMap: { // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}] // } // where no inRange/outOfRange set but only pieces. So we should make // default inRange/outOfRange for this case, otherwise visuals that only // appear in `pieces` will not be taken into account in visual encoding. var option = this.option; var visualTypesInPieces = {}; var visualTypes = VisualMapping.listVisualTypes(); var isCategory = this.isCategory(); zrUtil.each(option.pieces, function (piece) { zrUtil.each(visualTypes, function (visualType) { if (piece.hasOwnProperty(visualType)) { visualTypesInPieces[visualType] = 1; } }); }); zrUtil.each(visualTypesInPieces, function (v, visualType) { var exists = 0; zrUtil.each(this.stateList, function (state) { exists |= has(option, state, visualType) || has(option.target, state, visualType); }, this); !exists && zrUtil.each(this.stateList, function (state) { (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory); }); }, this); function has(obj, state, visualType) { return obj && obj[state] && (zrUtil.isObject(obj[state]) ? obj[state].hasOwnProperty(visualType) : obj[state] === visualType // e.g., inRange: 'symbol' ); } VisualMapModel.prototype.completeVisualOption.apply(this, arguments); }, _resetSelected: function _resetSelected(newOption, isInit) { var thisOption = this.option; var pieceList = this._pieceList; // Selected do not merge but all override. var selected = (isInit ? thisOption : newOption).selected || {}; thisOption.selected = selected; // Consider 'not specified' means true. zrUtil.each(pieceList, function (piece, index) { var key = this.getSelectedMapKey(piece); if (!selected.hasOwnProperty(key)) { selected[key] = true; } }, this); if (thisOption.selectedMode === 'single') { // Ensure there is only one selected. var hasSel = false; zrUtil.each(pieceList, function (piece, index) { var key = this.getSelectedMapKey(piece); if (selected[key]) { hasSel ? selected[key] = false : hasSel = true; } }, this); } // thisOption.selectedMode === 'multiple', default: all selected. }, /** * @public */ getSelectedMapKey: function getSelectedMapKey(piece) { return this._mode === 'categories' ? piece.value + '' : piece.index + ''; }, /** * @public */ getPieceList: function getPieceList() { return this._pieceList; }, /** * @private * @return {string} */ _determineMode: function _determineMode() { var option = this.option; return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber'; }, /** * @public * @override */ setSelected: function setSelected(selected) { this.option.selected = zrUtil.clone(selected); }, /** * @public * @override */ getValueState: function getValueState(value) { var index = VisualMapping.findPieceIndex(value, this._pieceList); return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange'; }, /** * @public * @params {number} pieceIndex piece index in visualMapModel.getPieceList() * @return {Array.} [{seriesId, dataIndex: >}, ...] */ findTargetDataIndices: function findTargetDataIndices(pieceIndex) { var result = []; this.eachTargetSeries(function (seriesModel) { var dataIndices = []; var data = seriesModel.getData(); data.each(this.getDataDimension(data), function (value, dataIndex) { // Should always base on model pieceList, because it is order sensitive. var pIdx = VisualMapping.findPieceIndex(value, this._pieceList); pIdx === pieceIndex && dataIndices.push(dataIndex); }, this); result.push({ seriesId: seriesModel.id, dataIndex: dataIndices }); }, this); return result; }, /** * @private * @param {Object} piece piece.value or piece.interval is required. * @return {number} Can be Infinity or -Infinity */ getRepresentValue: function getRepresentValue(piece) { var representValue; if (this.isCategory()) { representValue = piece.value; } else { if (piece.value != null) { representValue = piece.value; } else { var pieceInterval = piece.interval || []; representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2; } } return representValue; }, getVisualMeta: function getVisualMeta(getColorVisual) { // Do not support category. (category axis is ordinal, numerical) if (this.isCategory()) { return; } var stops = []; var outerColors = []; var visualMapModel = this; function setStop(interval, valueState) { var representValue = visualMapModel.getRepresentValue({ interval: interval }); if (!valueState) { valueState = visualMapModel.getValueState(representValue); } var color = getColorVisual(representValue, valueState); if (interval[0] === -Infinity) { outerColors[0] = color; } else if (interval[1] === Infinity) { outerColors[1] = color; } else { stops.push({ value: interval[0], color: color }, { value: interval[1], color: color }); } } // Suplement var pieceList = this._pieceList.slice(); if (!pieceList.length) { pieceList.push({ interval: [-Infinity, Infinity] }); } else { var edge = pieceList[0].interval[0]; edge !== -Infinity && pieceList.unshift({ interval: [-Infinity, edge] }); edge = pieceList[pieceList.length - 1].interval[1]; edge !== Infinity && pieceList.push({ interval: [edge, Infinity] }); } var curr = -Infinity; zrUtil.each(pieceList, function (piece) { var interval = piece.interval; if (interval) { // Fulfill gap. interval[0] > curr && setStop([curr, interval[0]], 'outOfRange'); setStop(interval.slice()); curr = interval[1]; } }, this); return { stops: stops, outerColors: outerColors }; } }); /** * Key is this._mode * @type {Object} * @this {module:echarts/component/viusalMap/PiecewiseMode} */ var resetMethods = { splitNumber: function splitNumber() { var thisOption = this.option; var pieceList = this._pieceList; var precision = Math.min(thisOption.precision, 20); var dataExtent = this.getExtent(); var splitNumber = thisOption.splitNumber; splitNumber = Math.max(parseInt(splitNumber, 10), 1); thisOption.splitNumber = splitNumber; var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption while (+splitStep.toFixed(precision) !== splitStep && precision < 5) { precision++; } thisOption.precision = precision; splitStep = +splitStep.toFixed(precision); if (thisOption.minOpen) { pieceList.push({ interval: [-Infinity, dataExtent[0]], close: [0, 0] }); } for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) { var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep; pieceList.push({ interval: [curr, max], close: [1, 1] }); } if (thisOption.maxOpen) { pieceList.push({ interval: [dataExtent[1], Infinity], close: [0, 0] }); } reformIntervals(pieceList); zrUtil.each(pieceList, function (piece, index) { piece.index = index; piece.text = this.formatValueText(piece.interval); }, this); }, categories: function categories() { var thisOption = this.option; zrUtil.each(thisOption.categories, function (cate) { // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。 // 是否改一致。 this._pieceList.push({ text: this.formatValueText(cate, true), value: cate }); }, this); // See "Order Rule". normalizeReverse(thisOption, this._pieceList); }, pieces: function pieces() { var thisOption = this.option; var pieceList = this._pieceList; zrUtil.each(thisOption.pieces, function (pieceListItem, index) { if (!zrUtil.isObject(pieceListItem)) { pieceListItem = { value: pieceListItem }; } var item = { text: '', index: index }; if (pieceListItem.label != null) { item.text = pieceListItem.label; } if (pieceListItem.hasOwnProperty('value')) { var value = item.value = pieceListItem.value; item.interval = [value, value]; item.close = [1, 1]; } else { // `min` `max` is legacy option. // `lt` `gt` `lte` `gte` is recommanded. var interval = item.interval = []; var close = item.close = [0, 0]; var closeList = [1, 0, 1]; var infinityList = [-Infinity, Infinity]; var useMinMax = []; for (var lg = 0; lg < 2; lg++) { var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg]; for (var i = 0; i < 3 && interval[lg] == null; i++) { interval[lg] = pieceListItem[names[i]]; close[lg] = closeList[i]; useMinMax[lg] = i === 2; } interval[lg] == null && (interval[lg] = infinityList[lg]); } useMinMax[0] && interval[1] === Infinity && (close[0] = 0); useMinMax[1] && interval[0] === -Infinity && (close[1] = 0); if (interval[0] === interval[1] && close[0] && close[1]) { // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}], // we use value to lift the priority when min === max item.value = interval[0]; } } item.visual = VisualMapping.retrieveVisuals(pieceListItem); pieceList.push(item); }, this); // See "Order Rule". normalizeReverse(thisOption, pieceList); // Only pieces reformIntervals(pieceList); zrUtil.each(pieceList, function (piece) { var close = piece.close; var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]]; piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols); }, this); } }; function normalizeReverse(thisOption, pieceList) { var inverse = thisOption.inverse; if (thisOption.orient === 'vertical' ? !inverse : inverse) { pieceList.reverse(); } } var _default = PiecewiseModel; module.exports = _default; /***/ }), /* 884 */ /*!**********************************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/echarts/lib/component/visualMap/PiecewiseView.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var zrUtil = __webpack_require__(/*! zrender/lib/core/util */ 403); var VisualMapView = __webpack_require__(/*! ./VisualMapView */ 879); var graphic = __webpack_require__(/*! ../../util/graphic */ 451); var _symbol = __webpack_require__(/*! ../../util/symbol */ 543); var createSymbol = _symbol.createSymbol; var layout = __webpack_require__(/*! ../../util/layout */ 488); var helper = __webpack_require__(/*! ./helper */ 880); /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ var PiecewiseVisualMapView = VisualMapView.extend({ type: 'visualMap.piecewise', /** * @protected * @override */ doRender: function doRender() { var thisGroup = this.group; thisGroup.removeAll(); var visualMapModel = this.visualMapModel; var textGap = visualMapModel.get('textGap'); var textStyleModel = visualMapModel.textStyleModel; var textFont = textStyleModel.getFont(); var textFill = textStyleModel.getTextColor(); var itemAlign = this._getItemAlign(); var itemSize = visualMapModel.itemSize; var viewData = this._getViewData(); var endsText = viewData.endsText; var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText); endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign); zrUtil.each(viewData.viewPieceList, renderItem, this); endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign); layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap')); this.renderBackground(thisGroup); this.positionGroup(thisGroup); function renderItem(item) { var piece = item.piece; var itemGroup = new graphic.Group(); itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece); this._enableHoverLink(itemGroup, item.indexInModelPieceList); var representValue = visualMapModel.getRepresentValue(piece); this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]); if (showLabel) { var visualState = this.visualMapModel.getValueState(representValue); itemGroup.add(new graphic.Text({ style: { x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap, y: itemSize[1] / 2, text: piece.text, textVerticalAlign: 'middle', textAlign: itemAlign, textFont: textFont, textFill: textFill, opacity: visualState === 'outOfRange' ? 0.5 : 1 } })); } thisGroup.add(itemGroup); } }, /** * @private */ _enableHoverLink: function _enableHoverLink(itemGroup, pieceIndex) { itemGroup.on('mouseover', zrUtil.bind(onHoverLink, this, 'highlight')).on('mouseout', zrUtil.bind(onHoverLink, this, 'downplay')); function onHoverLink(method) { var visualMapModel = this.visualMapModel; visualMapModel.option.hoverLink && this.api.dispatchAction({ type: method, batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel) }); } }, /** * @private */ _getItemAlign: function _getItemAlign() { var visualMapModel = this.visualMapModel; var modelOption = visualMapModel.option; if (modelOption.orient === 'vertical') { return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize); } else { // horizontal, most case left unless specifying right. var align = modelOption.align; if (!align || align === 'auto') { align = 'left'; } return align; } }, /** * @private */ _renderEndsText: function _renderEndsText(group, text, itemSize, showLabel, itemAlign) { if (!text) { return; } var itemGroup = new graphic.Group(); var textStyleModel = this.visualMapModel.textStyleModel; itemGroup.add(new graphic.Text({ style: { x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2, y: itemSize[1] / 2, textVerticalAlign: 'middle', textAlign: showLabel ? itemAlign : 'center', text: text, textFont: textStyleModel.getFont(), textFill: textStyleModel.getTextColor() } })); group.add(itemGroup); }, /** * @private * @return {Object} {peiceList, endsText} The order is the same as screen pixel order. */ _getViewData: function _getViewData() { var visualMapModel = this.visualMapModel; var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) { return { piece: piece, indexInModelPieceList: index }; }); var endsText = visualMapModel.get('text'); // Consider orient and inverse. var orient = visualMapModel.get('orient'); var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high] if (orient === 'horizontal' ? inverse : !inverse) { viewPieceList.reverse(); } // Origin order of endsText is [high, low] else if (endsText) { endsText = endsText.slice().reverse(); } return { viewPieceList: viewPieceList, endsText: endsText }; }, /** * @private */ _createItemSymbol: function _createItemSymbol(group, representValue, shapeParam) { group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color'))); }, /** * @private */ _onItemClick: function _onItemClick(piece) { var visualMapModel = this.visualMapModel; var option = visualMapModel.option; var selected = zrUtil.clone(option.selected); var newKey = visualMapModel.getSelectedMapKey(piece); if (option.selectedMode === 'single') { selected[newKey] = true; zrUtil.each(selected, function (o, key) { selected[key] = key === newKey; }); } else { selected[newKey] = !selected[newKey]; } this.api.dispatchAction({ type: 'selectDataRange', from: this.uid, visualMapId: this.visualMapModel.id, selected: selected }); } }); var _default = PiecewiseVisualMapView; module.exports = _default; /***/ }), /* 885 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/vml/vml.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ./graphic */ 886); var _zrender = __webpack_require__(/*! ../zrender */ 400); var registerPainter = _zrender.registerPainter; var Painter = __webpack_require__(/*! ./Painter */ 888); registerPainter('vml', Painter); /***/ }), /* 886 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/vml/graphic.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4); var env = __webpack_require__(/*! ../core/env */ 402); var _vector = __webpack_require__(/*! ../core/vector */ 405); var applyTransform = _vector.applyTransform; var BoundingRect = __webpack_require__(/*! ../core/BoundingRect */ 425); var colorTool = __webpack_require__(/*! ../tool/color */ 421); var textContain = __webpack_require__(/*! ../contain/text */ 438); var textHelper = __webpack_require__(/*! ../graphic/helper/text */ 437); var RectText = __webpack_require__(/*! ../graphic/mixin/RectText */ 436); var Displayable = __webpack_require__(/*! ../graphic/Displayable */ 435); var ZImage = __webpack_require__(/*! ../graphic/Image */ 434); var Text = __webpack_require__(/*! ../graphic/Text */ 465); var Path = __webpack_require__(/*! ../graphic/Path */ 453); var PathProxy = __webpack_require__(/*! ../core/PathProxy */ 454); var Gradient = __webpack_require__(/*! ../graphic/Gradient */ 482); var vmlCore = __webpack_require__(/*! ./core */ 887); // http://www.w3.org/TR/NOTE-VML // TODO Use proxy like svg instead of overwrite brush methods var CMD = PathProxy.CMD; var round = Math.round; var sqrt = Math.sqrt; var abs = Math.abs; var cos = Math.cos; var sin = Math.sin; var mathMax = Math.max; if (!env.canvasSupported) { var comma = ','; var imageTransformPrefix = 'progid:DXImageTransform.Microsoft'; var Z = 21600; var Z2 = Z / 2; var ZLEVEL_BASE = 100000; var Z_BASE = 1000; var initRootElStyle = function initRootElStyle(el) { el.style.cssText = 'position:absolute;left:0;top:0;width:1px;height:1px;'; el.coordsize = Z + ',' + Z; el.coordorigin = '0,0'; }; var encodeHtmlAttribute = function encodeHtmlAttribute(s) { return String(s).replace(/&/g, '&').replace(/"/g, '"'); }; var rgb2Str = function rgb2Str(r, g, b) { return 'rgb(' + [r, g, b].join(',') + ')'; }; var append = function append(parent, child) { if (child && parent && child.parentNode !== parent) { parent.appendChild(child); } }; var remove = function remove(parent, child) { if (child && parent && child.parentNode === parent) { parent.removeChild(child); } }; var getZIndex = function getZIndex(zlevel, z, z2) { // z 的取值范围为 [0, 1000] return (parseFloat(zlevel) || 0) * ZLEVEL_BASE + (parseFloat(z) || 0) * Z_BASE + z2; }; var parsePercent = textHelper.parsePercent; /*************************************************** * PATH **************************************************/ var setColorAndOpacity = function setColorAndOpacity(el, color, opacity) { var colorArr = colorTool.parse(color); opacity = +opacity; if (isNaN(opacity)) { opacity = 1; } if (colorArr) { el.color = rgb2Str(colorArr[0], colorArr[1], colorArr[2]); el.opacity = opacity * colorArr[3]; } }; var getColorAndAlpha = function getColorAndAlpha(color) { var colorArr = colorTool.parse(color); return [rgb2Str(colorArr[0], colorArr[1], colorArr[2]), colorArr[3]]; }; var updateFillNode = function updateFillNode(el, style, zrEl) { // TODO pattern var fill = style.fill; if (fill != null) { // Modified from excanvas if (fill instanceof Gradient) { var gradientType; var angle = 0; var focus = [0, 0]; // additional offset var shift = 0; // scale factor for offset var expansion = 1; var rect = zrEl.getBoundingRect(); var rectWidth = rect.width; var rectHeight = rect.height; if (fill.type === 'linear') { gradientType = 'gradient'; var transform = zrEl.transform; var p0 = [fill.x * rectWidth, fill.y * rectHeight]; var p1 = [fill.x2 * rectWidth, fill.y2 * rectHeight]; if (transform) { applyTransform(p0, p0, transform); applyTransform(p1, p1, transform); } var dx = p1[0] - p0[0]; var dy = p1[1] - p0[1]; angle = Math.atan2(dx, dy) * 180 / Math.PI; // The angle should be a non-negative number. if (angle < 0) { angle += 360; } // Very small angles produce an unexpected result because they are // converted to a scientific notation string. if (angle < 1e-6) { angle = 0; } } else { gradientType = 'gradientradial'; var p0 = [fill.x * rectWidth, fill.y * rectHeight]; var transform = zrEl.transform; var scale = zrEl.scale; var width = rectWidth; var height = rectHeight; focus = [ // Percent in bounding rect (p0[0] - rect.x) / width, (p0[1] - rect.y) / height]; if (transform) { applyTransform(p0, p0, transform); } width /= scale[0] * Z; height /= scale[1] * Z; var dimension = mathMax(width, height); shift = 2 * 0 / dimension; expansion = 2 * fill.r / dimension - shift; } // We need to sort the color stops in ascending order by offset, // otherwise IE won't interpret it correctly. var stops = fill.colorStops.slice(); stops.sort(function (cs1, cs2) { return cs1.offset - cs2.offset; }); var length = stops.length; // Color and alpha list of first and last stop var colorAndAlphaList = []; var colors = []; for (var i = 0; i < length; i++) { var stop = stops[i]; var colorAndAlpha = getColorAndAlpha(stop.color); colors.push(stop.offset * expansion + shift + ' ' + colorAndAlpha[0]); if (i === 0 || i === length - 1) { colorAndAlphaList.push(colorAndAlpha); } } if (length >= 2) { var color1 = colorAndAlphaList[0][0]; var color2 = colorAndAlphaList[1][0]; var opacity1 = colorAndAlphaList[0][1] * style.opacity; var opacity2 = colorAndAlphaList[1][1] * style.opacity; el.type = gradientType; el.method = 'none'; el.focus = '100%'; el.angle = angle; el.color = color1; el.color2 = color2; el.colors = colors.join(','); // When colors attribute is used, the meanings of opacity and o:opacity2 // are reversed. el.opacity = opacity2; // FIXME g_o_:opacity ? el.opacity2 = opacity1; } if (gradientType === 'radial') { el.focusposition = focus.join(','); } } else { // FIXME Change from Gradient fill to color fill setColorAndOpacity(el, fill, style.opacity); } } }; var updateStrokeNode = function updateStrokeNode(el, style) { // if (style.lineJoin != null) { // el.joinstyle = style.lineJoin; // } // if (style.miterLimit != null) { // el.miterlimit = style.miterLimit * Z; // } // if (style.lineCap != null) { // el.endcap = style.lineCap; // } if (style.lineDash) { el.dashstyle = style.lineDash.join(' '); } if (style.stroke != null && !(style.stroke instanceof Gradient)) { setColorAndOpacity(el, style.stroke, style.opacity); } }; var updateFillAndStroke = function updateFillAndStroke(vmlEl, type, style, zrEl) { var isFill = type === 'fill'; var el = vmlEl.getElementsByTagName(type)[0]; // Stroke must have lineWidth if (style[type] != null && style[type] !== 'none' && (isFill || !isFill && style.lineWidth)) { vmlEl[isFill ? 'filled' : 'stroked'] = 'true'; // FIXME Remove before updating, or set `colors` will throw error if (style[type] instanceof Gradient) { remove(vmlEl, el); } if (!el) { el = vmlCore.createNode(type); } isFill ? updateFillNode(el, style, zrEl) : updateStrokeNode(el, style); append(vmlEl, el); } else { vmlEl[isFill ? 'filled' : 'stroked'] = 'false'; remove(vmlEl, el); } }; var points = [[], [], []]; var pathDataToString = function pathDataToString(path, m) { var M = CMD.M; var C = CMD.C; var L = CMD.L; var A = CMD.A; var Q = CMD.Q; var str = []; var nPoint; var cmdStr; var cmd; var i; var xi; var yi; var data = path.data; var dataLength = path.len(); for (i = 0; i < dataLength;) { cmd = data[i++]; cmdStr = ''; nPoint = 0; switch (cmd) { case M: cmdStr = ' m '; nPoint = 1; xi = data[i++]; yi = data[i++]; points[0][0] = xi; points[0][1] = yi; break; case L: cmdStr = ' l '; nPoint = 1; xi = data[i++]; yi = data[i++]; points[0][0] = xi; points[0][1] = yi; break; case Q: case C: cmdStr = ' c '; nPoint = 3; var x1 = data[i++]; var y1 = data[i++]; var x2 = data[i++]; var y2 = data[i++]; var x3; var y3; if (cmd === Q) { // Convert quadratic to cubic using degree elevation x3 = x2; y3 = y2; x2 = (x2 + 2 * x1) / 3; y2 = (y2 + 2 * y1) / 3; x1 = (xi + 2 * x1) / 3; y1 = (yi + 2 * y1) / 3; } else { x3 = data[i++]; y3 = data[i++]; } points[0][0] = x1; points[0][1] = y1; points[1][0] = x2; points[1][1] = y2; points[2][0] = x3; points[2][1] = y3; xi = x3; yi = y3; break; case A: var x = 0; var y = 0; var sx = 1; var sy = 1; var angle = 0; if (m) { // Extract SRT from matrix x = m[4]; y = m[5]; sx = sqrt(m[0] * m[0] + m[1] * m[1]); sy = sqrt(m[2] * m[2] + m[3] * m[3]); angle = Math.atan2(-m[1] / sy, m[0] / sx); } var cx = data[i++]; var cy = data[i++]; var rx = data[i++]; var ry = data[i++]; var startAngle = data[i++] + angle; var endAngle = data[i++] + startAngle + angle; // FIXME // var psi = data[i++]; i++; var clockwise = data[i++]; var x0 = cx + cos(startAngle) * rx; var y0 = cy + sin(startAngle) * ry; var x1 = cx + cos(endAngle) * rx; var y1 = cy + sin(endAngle) * ry; var type = clockwise ? ' wa ' : ' at '; if (Math.abs(x0 - x1) < 1e-4) { // IE won't render arches drawn counter clockwise if x0 == x1. if (Math.abs(endAngle - startAngle) > 1e-2) { // Offset x0 by 1/80 of a pixel. Use something // that can be represented in binary if (clockwise) { x0 += 270 / Z; } } else { // Avoid case draw full circle if (Math.abs(y0 - cy) < 1e-4) { if (clockwise && x0 < cx || !clockwise && x0 > cx) { y1 -= 270 / Z; } else { y1 += 270 / Z; } } else if (clockwise && y0 < cy || !clockwise && y0 > cy) { x1 += 270 / Z; } else { x1 -= 270 / Z; } } } str.push(type, round(((cx - rx) * sx + x) * Z - Z2), comma, round(((cy - ry) * sy + y) * Z - Z2), comma, round(((cx + rx) * sx + x) * Z - Z2), comma, round(((cy + ry) * sy + y) * Z - Z2), comma, round((x0 * sx + x) * Z - Z2), comma, round((y0 * sy + y) * Z - Z2), comma, round((x1 * sx + x) * Z - Z2), comma, round((y1 * sy + y) * Z - Z2)); xi = x1; yi = y1; break; case CMD.R: var p0 = points[0]; var p1 = points[1]; // x0, y0 p0[0] = data[i++]; p0[1] = data[i++]; // x1, y1 p1[0] = p0[0] + data[i++]; p1[1] = p0[1] + data[i++]; if (m) { applyTransform(p0, p0, m); applyTransform(p1, p1, m); } p0[0] = round(p0[0] * Z - Z2); p1[0] = round(p1[0] * Z - Z2); p0[1] = round(p0[1] * Z - Z2); p1[1] = round(p1[1] * Z - Z2); str.push( // x0, y0 ' m ', p0[0], comma, p0[1], // x1, y0 ' l ', p1[0], comma, p0[1], // x1, y1 ' l ', p1[0], comma, p1[1], // x0, y1 ' l ', p0[0], comma, p1[1]); break; case CMD.Z: // FIXME Update xi, yi str.push(' x '); } if (nPoint > 0) { str.push(cmdStr); for (var k = 0; k < nPoint; k++) { var p = points[k]; m && applyTransform(p, p, m); // 不 round 会非常慢 str.push(round(p[0] * Z - Z2), comma, round(p[1] * Z - Z2), k < nPoint - 1 ? comma : ''); } } } return str.join(''); }; // Rewrite the original path method Path.prototype.brushVML = function (vmlRoot) { var style = this.style; var vmlEl = this._vmlEl; if (!vmlEl) { vmlEl = vmlCore.createNode('shape'); initRootElStyle(vmlEl); this._vmlEl = vmlEl; } updateFillAndStroke(vmlEl, 'fill', style, this); updateFillAndStroke(vmlEl, 'stroke', style, this); var m = this.transform; var needTransform = m != null; var strokeEl = vmlEl.getElementsByTagName('stroke')[0]; if (strokeEl) { var lineWidth = style.lineWidth; // Get the line scale. // Determinant of this.m_ means how much the area is enlarged by the // transformation. So its square root can be used as a scale factor // for width. if (needTransform && !style.strokeNoScale) { var det = m[0] * m[3] - m[1] * m[2]; lineWidth *= sqrt(abs(det)); } strokeEl.weight = lineWidth + 'px'; } var path = this.path || (this.path = new PathProxy()); if (this.__dirtyPath) { path.beginPath(); path.subPixelOptimize = false; this.buildPath(path, this.shape); path.toStatic(); this.__dirtyPath = false; } vmlEl.path = pathDataToString(path, this.transform); vmlEl.style.zIndex = getZIndex(this.zlevel, this.z, this.z2); // Append to root append(vmlRoot, vmlEl); // Text if (style.text != null) { this.drawRectText(vmlRoot, this.getBoundingRect()); } else { this.removeRectText(vmlRoot); } }; Path.prototype.onRemove = function (vmlRoot) { remove(vmlRoot, this._vmlEl); this.removeRectText(vmlRoot); }; Path.prototype.onAdd = function (vmlRoot) { append(vmlRoot, this._vmlEl); this.appendRectText(vmlRoot); }; /*************************************************** * IMAGE **************************************************/ var isImage = function isImage(img) { // FIXME img instanceof Image 如果 img 是一个字符串的时候,IE8 下会报错 return _typeof(img) === 'object' && img.tagName && img.tagName.toUpperCase() === 'IMG'; // return img instanceof Image; }; // Rewrite the original path method ZImage.prototype.brushVML = function (vmlRoot) { var style = this.style; var image = style.image; // Image original width, height var ow; var oh; if (isImage(image)) { var src = image.src; if (src === this._imageSrc) { ow = this._imageWidth; oh = this._imageHeight; } else { var imageRuntimeStyle = image.runtimeStyle; var oldRuntimeWidth = imageRuntimeStyle.width; var oldRuntimeHeight = imageRuntimeStyle.height; imageRuntimeStyle.width = 'auto'; imageRuntimeStyle.height = 'auto'; // get the original size ow = image.width; oh = image.height; // and remove overides imageRuntimeStyle.width = oldRuntimeWidth; imageRuntimeStyle.height = oldRuntimeHeight; // Caching image original width, height and src this._imageSrc = src; this._imageWidth = ow; this._imageHeight = oh; } image = src; } else { if (image === this._imageSrc) { ow = this._imageWidth; oh = this._imageHeight; } } if (!image) { return; } var x = style.x || 0; var y = style.y || 0; var dw = style.width; var dh = style.height; var sw = style.sWidth; var sh = style.sHeight; var sx = style.sx || 0; var sy = style.sy || 0; var hasCrop = sw && sh; var vmlEl = this._vmlEl; if (!vmlEl) { // FIXME 使用 group 在 left, top 都不是 0 的时候就无法显示了。 // vmlEl = vmlCore.createNode('group'); vmlEl = vmlCore.doc.createElement('div'); initRootElStyle(vmlEl); this._vmlEl = vmlEl; } var vmlElStyle = vmlEl.style; var hasRotation = false; var m; var scaleX = 1; var scaleY = 1; if (this.transform) { m = this.transform; scaleX = sqrt(m[0] * m[0] + m[1] * m[1]); scaleY = sqrt(m[2] * m[2] + m[3] * m[3]); hasRotation = m[1] || m[2]; } if (hasRotation) { // If filters are necessary (rotation exists), create them // filters are bog-slow, so only create them if abbsolutely necessary // The following check doesn't account for skews (which don't exist // in the canvas spec (yet) anyway. // From excanvas var p0 = [x, y]; var p1 = [x + dw, y]; var p2 = [x, y + dh]; var p3 = [x + dw, y + dh]; applyTransform(p0, p0, m); applyTransform(p1, p1, m); applyTransform(p2, p2, m); applyTransform(p3, p3, m); var maxX = mathMax(p0[0], p1[0], p2[0], p3[0]); var maxY = mathMax(p0[1], p1[1], p2[1], p3[1]); var transformFilter = []; transformFilter.push('M11=', m[0] / scaleX, comma, 'M12=', m[2] / scaleY, comma, 'M21=', m[1] / scaleX, comma, 'M22=', m[3] / scaleY, comma, 'Dx=', round(x * scaleX + m[4]), comma, 'Dy=', round(y * scaleY + m[5])); vmlElStyle.padding = '0 ' + round(maxX) + 'px ' + round(maxY) + 'px 0'; // FIXME DXImageTransform 在 IE11 的兼容模式下不起作用 vmlElStyle.filter = imageTransformPrefix + '.Matrix(' + transformFilter.join('') + ', SizingMethod=clip)'; } else { if (m) { x = x * scaleX + m[4]; y = y * scaleY + m[5]; } vmlElStyle.filter = ''; vmlElStyle.left = round(x) + 'px'; vmlElStyle.top = round(y) + 'px'; } var imageEl = this._imageEl; var cropEl = this._cropEl; if (!imageEl) { imageEl = vmlCore.doc.createElement('div'); this._imageEl = imageEl; } var imageELStyle = imageEl.style; if (hasCrop) { // Needs know image original width and height if (!(ow && oh)) { var tmpImage = new Image(); var self = this; tmpImage.onload = function () { tmpImage.onload = null; ow = tmpImage.width; oh = tmpImage.height; // Adjust image width and height to fit the ratio destinationSize / sourceSize imageELStyle.width = round(scaleX * ow * dw / sw) + 'px'; imageELStyle.height = round(scaleY * oh * dh / sh) + 'px'; // Caching image original width, height and src self._imageWidth = ow; self._imageHeight = oh; self._imageSrc = image; }; tmpImage.src = image; } else { imageELStyle.width = round(scaleX * ow * dw / sw) + 'px'; imageELStyle.height = round(scaleY * oh * dh / sh) + 'px'; } if (!cropEl) { cropEl = vmlCore.doc.createElement('div'); cropEl.style.overflow = 'hidden'; this._cropEl = cropEl; } var cropElStyle = cropEl.style; cropElStyle.width = round((dw + sx * dw / sw) * scaleX); cropElStyle.height = round((dh + sy * dh / sh) * scaleY); cropElStyle.filter = imageTransformPrefix + '.Matrix(Dx=' + -sx * dw / sw * scaleX + ',Dy=' + -sy * dh / sh * scaleY + ')'; if (!cropEl.parentNode) { vmlEl.appendChild(cropEl); } if (imageEl.parentNode !== cropEl) { cropEl.appendChild(imageEl); } } else { imageELStyle.width = round(scaleX * dw) + 'px'; imageELStyle.height = round(scaleY * dh) + 'px'; vmlEl.appendChild(imageEl); if (cropEl && cropEl.parentNode) { vmlEl.removeChild(cropEl); this._cropEl = null; } } var filterStr = ''; var alpha = style.opacity; if (alpha < 1) { filterStr += '.Alpha(opacity=' + round(alpha * 100) + ') '; } filterStr += imageTransformPrefix + '.AlphaImageLoader(src=' + image + ', SizingMethod=scale)'; imageELStyle.filter = filterStr; vmlEl.style.zIndex = getZIndex(this.zlevel, this.z, this.z2); // Append to root append(vmlRoot, vmlEl); // Text if (style.text != null) { this.drawRectText(vmlRoot, this.getBoundingRect()); } }; ZImage.prototype.onRemove = function (vmlRoot) { remove(vmlRoot, this._vmlEl); this._vmlEl = null; this._cropEl = null; this._imageEl = null; this.removeRectText(vmlRoot); }; ZImage.prototype.onAdd = function (vmlRoot) { append(vmlRoot, this._vmlEl); this.appendRectText(vmlRoot); }; /*************************************************** * TEXT **************************************************/ var DEFAULT_STYLE_NORMAL = 'normal'; var fontStyleCache = {}; var fontStyleCacheCount = 0; var MAX_FONT_CACHE_SIZE = 100; var fontEl = document.createElement('div'); var getFontStyle = function getFontStyle(fontString) { var fontStyle = fontStyleCache[fontString]; if (!fontStyle) { // Clear cache if (fontStyleCacheCount > MAX_FONT_CACHE_SIZE) { fontStyleCacheCount = 0; fontStyleCache = {}; } var style = fontEl.style; var fontFamily; try { style.font = fontString; fontFamily = style.fontFamily.split(',')[0]; } catch (e) {} fontStyle = { style: style.fontStyle || DEFAULT_STYLE_NORMAL, variant: style.fontVariant || DEFAULT_STYLE_NORMAL, weight: style.fontWeight || DEFAULT_STYLE_NORMAL, size: parseFloat(style.fontSize || 12) | 0, family: fontFamily || 'Microsoft YaHei' }; fontStyleCache[fontString] = fontStyle; fontStyleCacheCount++; } return fontStyle; }; var textMeasureEl; // Overwrite measure text method textContain.$override('measureText', function (text, textFont) { var doc = vmlCore.doc; if (!textMeasureEl) { textMeasureEl = doc.createElement('div'); textMeasureEl.style.cssText = 'position:absolute;top:-20000px;left:0;' + 'padding:0;margin:0;border:none;white-space:pre;'; vmlCore.doc.body.appendChild(textMeasureEl); } try { textMeasureEl.style.font = textFont; } catch (ex) {// Ignore failures to set to invalid font. } textMeasureEl.innerHTML = ''; // Don't use innerHTML or innerText because they allow markup/whitespace. textMeasureEl.appendChild(doc.createTextNode(text)); return { width: textMeasureEl.offsetWidth }; }); var tmpRect = new BoundingRect(); var drawRectText = function drawRectText(vmlRoot, rect, textRect, fromTextEl) { var style = this.style; // Optimize, avoid normalize every time. this.__dirty && textHelper.normalizeTextStyle(style, true); var text = style.text; // Convert to string text != null && (text += ''); if (!text) { return; } // Convert rich text to plain text. Rich text is not supported in // IE8-, but tags in rich text template will be removed. if (style.rich) { var contentBlock = textContain.parseRichText(text, style); text = []; for (var i = 0; i < contentBlock.lines.length; i++) { var tokens = contentBlock.lines[i].tokens; var textLine = []; for (var j = 0; j < tokens.length; j++) { textLine.push(tokens[j].text); } text.push(textLine.join('')); } text = text.join('\n'); } var x; var y; var align = style.textAlign; var verticalAlign = style.textVerticalAlign; var fontStyle = getFontStyle(style.font); // FIXME encodeHtmlAttribute ? var font = fontStyle.style + ' ' + fontStyle.variant + ' ' + fontStyle.weight + ' ' + fontStyle.size + 'px "' + fontStyle.family + '"'; textRect = textRect || textContain.getBoundingRect(text, font, align, verticalAlign, style.textPadding, style.textLineHeight); // Transform rect to view space var m = this.transform; // Ignore transform for text in other element if (m && !fromTextEl) { tmpRect.copy(rect); tmpRect.applyTransform(m); rect = tmpRect; } if (!fromTextEl) { var textPosition = style.textPosition; // Text position represented by coord if (textPosition instanceof Array) { x = rect.x + parsePercent(textPosition[0], rect.width); y = rect.y + parsePercent(textPosition[1], rect.height); align = align || 'left'; } else { var res = this.calculateTextPosition ? this.calculateTextPosition({}, style, rect) : textContain.calculateTextPosition({}, style, rect); x = res.x; y = res.y; // Default align and baseline when has textPosition align = align || res.textAlign; verticalAlign = verticalAlign || res.textVerticalAlign; } } else { x = rect.x; y = rect.y; } x = textContain.adjustTextX(x, textRect.width, align); y = textContain.adjustTextY(y, textRect.height, verticalAlign); // Force baseline 'middle' y += textRect.height / 2; // var fontSize = fontStyle.size; // 1.75 is an arbitrary number, as there is no info about the text baseline // switch (baseline) { // case 'hanging': // case 'top': // y += fontSize / 1.75; // break; // case 'middle': // break; // default: // // case null: // // case 'alphabetic': // // case 'ideographic': // // case 'bottom': // y -= fontSize / 2.25; // break; // } // switch (align) { // case 'left': // break; // case 'center': // x -= textRect.width / 2; // break; // case 'right': // x -= textRect.width; // break; // case 'end': // align = elementStyle.direction == 'ltr' ? 'right' : 'left'; // break; // case 'start': // align = elementStyle.direction == 'rtl' ? 'right' : 'left'; // break; // default: // align = 'left'; // } var createNode = vmlCore.createNode; var textVmlEl = this._textVmlEl; var pathEl; var textPathEl; var skewEl; if (!textVmlEl) { textVmlEl = createNode('line'); pathEl = createNode('path'); textPathEl = createNode('textpath'); skewEl = createNode('skew'); // FIXME Why here is not cammel case // Align 'center' seems wrong textPathEl.style['v-text-align'] = 'left'; initRootElStyle(textVmlEl); pathEl.textpathok = true; textPathEl.on = true; textVmlEl.from = '0 0'; textVmlEl.to = '1000 0.05'; append(textVmlEl, skewEl); append(textVmlEl, pathEl); append(textVmlEl, textPathEl); this._textVmlEl = textVmlEl; } else { // 这里是在前面 appendChild 保证顺序的前提下 skewEl = textVmlEl.firstChild; pathEl = skewEl.nextSibling; textPathEl = pathEl.nextSibling; } var coords = [x, y]; var textVmlElStyle = textVmlEl.style; // Ignore transform for text in other element if (m && fromTextEl) { applyTransform(coords, coords, m); skewEl.on = true; skewEl.matrix = m[0].toFixed(3) + comma + m[2].toFixed(3) + comma + m[1].toFixed(3) + comma + m[3].toFixed(3) + ',0,0'; // Text position skewEl.offset = (round(coords[0]) || 0) + ',' + (round(coords[1]) || 0); // Left top point as origin skewEl.origin = '0 0'; textVmlElStyle.left = '0px'; textVmlElStyle.top = '0px'; } else { skewEl.on = false; textVmlElStyle.left = round(x) + 'px'; textVmlElStyle.top = round(y) + 'px'; } textPathEl.string = encodeHtmlAttribute(text); // TODO try { textPathEl.style.font = font; } // Error font format catch (e) {} updateFillAndStroke(textVmlEl, 'fill', { fill: style.textFill, opacity: style.opacity }, this); updateFillAndStroke(textVmlEl, 'stroke', { stroke: style.textStroke, opacity: style.opacity, lineDash: style.lineDash || null // style.lineDash can be `false`. }, this); textVmlEl.style.zIndex = getZIndex(this.zlevel, this.z, this.z2); // Attached to root append(vmlRoot, textVmlEl); }; var removeRectText = function removeRectText(vmlRoot) { remove(vmlRoot, this._textVmlEl); this._textVmlEl = null; }; var appendRectText = function appendRectText(vmlRoot) { append(vmlRoot, this._textVmlEl); }; var list = [RectText, Displayable, ZImage, Path, Text]; // In case Displayable has been mixed in RectText for (var i = 0; i < list.length; i++) { var proto = list[i].prototype; proto.drawRectText = drawRectText; proto.removeRectText = removeRectText; proto.appendRectText = appendRectText; } Text.prototype.brushVML = function (vmlRoot) { var style = this.style; if (style.text != null) { this.drawRectText(vmlRoot, { x: style.x || 0, y: style.y || 0, width: 0, height: 0 }, this.getBoundingRect(), true); } else { this.removeRectText(vmlRoot); } }; Text.prototype.onRemove = function (vmlRoot) { this.removeRectText(vmlRoot); }; Text.prototype.onAdd = function (vmlRoot) { this.appendRectText(vmlRoot); }; } /***/ }), /* 887 */ /*!*********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/vml/core.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var env = __webpack_require__(/*! ../core/env */ 402); var urn = 'urn:schemas-microsoft-com:vml'; var win = typeof window === 'undefined' ? null : window; var vmlInited = false; var doc = win && win.document; function createNode(tagName) { return doCreateNode(tagName); } // Avoid assign to an exported variable, for transforming to cjs. var doCreateNode; if (doc && !env.canvasSupported) { try { !doc.namespaces.zrvml && doc.namespaces.add('zrvml', urn); doCreateNode = function doCreateNode(tagName) { return doc.createElement(''); }; } catch (e) { doCreateNode = function doCreateNode(tagName) { return doc.createElement('<' + tagName + ' xmlns="' + urn + '" class="zrvml">'); }; } } // From raphael function initVML() { if (vmlInited || !doc) { return; } vmlInited = true; var styleSheets = doc.styleSheets; if (styleSheets.length < 31) { doc.createStyleSheet().addRule('.zrvml', 'behavior:url(#default#VML)'); } else { // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx styleSheets[0].addRule('.zrvml', 'behavior:url(#default#VML)'); } } exports.doc = doc; exports.createNode = createNode; exports.initVML = initVML; /***/ }), /* 888 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/vml/Painter.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var logError = __webpack_require__(/*! ../core/log */ 423); var vmlCore = __webpack_require__(/*! ./core */ 887); var _util = __webpack_require__(/*! ../core/util */ 403); var each = _util.each; /** * VML Painter. * * @module zrender/vml/Painter */ function parseInt10(val) { return parseInt(val, 10); } /** * @alias module:zrender/vml/Painter */ function VMLPainter(root, storage) { vmlCore.initVML(); this.root = root; this.storage = storage; var vmlViewport = document.createElement('div'); var vmlRoot = document.createElement('div'); vmlViewport.style.cssText = 'display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;'; vmlRoot.style.cssText = 'position:absolute;left:0;top:0;'; root.appendChild(vmlViewport); this._vmlRoot = vmlRoot; this._vmlViewport = vmlViewport; this.resize(); // Modify storage var oldDelFromStorage = storage.delFromStorage; var oldAddToStorage = storage.addToStorage; storage.delFromStorage = function (el) { oldDelFromStorage.call(storage, el); if (el) { el.onRemove && el.onRemove(vmlRoot); } }; storage.addToStorage = function (el) { // Displayable already has a vml node el.onAdd && el.onAdd(vmlRoot); oldAddToStorage.call(storage, el); }; this._firstPaint = true; } VMLPainter.prototype = { constructor: VMLPainter, getType: function getType() { return 'vml'; }, /** * @return {HTMLDivElement} */ getViewportRoot: function getViewportRoot() { return this._vmlViewport; }, getViewportRootOffset: function getViewportRootOffset() { var viewportRoot = this.getViewportRoot(); if (viewportRoot) { return { offsetLeft: viewportRoot.offsetLeft || 0, offsetTop: viewportRoot.offsetTop || 0 }; } }, /** * 刷新 */ refresh: function refresh() { var list = this.storage.getDisplayList(true, true); this._paintList(list); }, _paintList: function _paintList(list) { var vmlRoot = this._vmlRoot; for (var i = 0; i < list.length; i++) { var el = list[i]; if (el.invisible || el.ignore) { if (!el.__alreadyNotVisible) { el.onRemove(vmlRoot); } // Set as already invisible el.__alreadyNotVisible = true; } else { if (el.__alreadyNotVisible) { el.onAdd(vmlRoot); } el.__alreadyNotVisible = false; if (el.__dirty) { el.beforeBrush && el.beforeBrush(); (el.brushVML || el.brush).call(el, vmlRoot); el.afterBrush && el.afterBrush(); } } el.__dirty = false; } if (this._firstPaint) { // Detached from document at first time // to avoid page refreshing too many times // FIXME 如果每次都先 removeChild 可能会导致一些填充和描边的效果改变 this._vmlViewport.appendChild(vmlRoot); this._firstPaint = false; } }, resize: function resize(width, height) { var width = width == null ? this._getWidth() : width; var height = height == null ? this._getHeight() : height; if (this._width !== width || this._height !== height) { this._width = width; this._height = height; var vmlViewportStyle = this._vmlViewport.style; vmlViewportStyle.width = width + 'px'; vmlViewportStyle.height = height + 'px'; } }, dispose: function dispose() { this.root.innerHTML = ''; this._vmlRoot = this._vmlViewport = this.storage = null; }, getWidth: function getWidth() { return this._width; }, getHeight: function getHeight() { return this._height; }, clear: function clear() { if (this._vmlViewport) { this.root.removeChild(this._vmlViewport); } }, _getWidth: function _getWidth() { var root = this.root; var stl = root.currentStyle; return (root.clientWidth || parseInt10(stl.width)) - parseInt10(stl.paddingLeft) - parseInt10(stl.paddingRight) | 0; }, _getHeight: function _getHeight() { var root = this.root; var stl = root.currentStyle; return (root.clientHeight || parseInt10(stl.height)) - parseInt10(stl.paddingTop) - parseInt10(stl.paddingBottom) | 0; } }; // Not supported methods function createMethodNotSupport(method) { return function () { logError('In IE8.0 VML mode painter not support method "' + method + '"'); }; } // Unsupported methods each(['getLayer', 'insertLayer', 'eachLayer', 'eachBuiltinLayer', 'eachOtherLayer', 'getLayers', 'modLayer', 'delLayer', 'clearLayer', 'toDataURL', 'pathToImage'], function (name) { VMLPainter.prototype[name] = createMethodNotSupport(name); }); var _default = VMLPainter; module.exports = _default; /***/ }), /* 889 */ /*!********************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/svg/svg.js ***! \********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(/*! ./graphic */ 890); var _zrender = __webpack_require__(/*! ../zrender */ 400); var registerPainter = _zrender.registerPainter; var Painter = __webpack_require__(/*! ./Painter */ 892); registerPainter('svg', Painter); /***/ }), /* 890 */ /*!************************************************************************!*\ !*** D:/work-gunshi/xytSk-App/node_modules/zrender/lib/svg/graphic.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _core = __webpack_require__(/*! ./core */ 891); var createElement = _core.createElement; var PathProxy = __webpack_require__(/*! ../core/PathProxy */ 454); var BoundingRect = __webpack_require__(/*! ../core/BoundingRect */ 425); var matrix = __webpack_require__(/*! ../core/matrix */ 416); var textContain = __webpack_require__(/*! ../contain/text */ 438); var textHelper = __webpack_require__(/*! ../graphic/helper/text */ 437); var Text = __webpack_require__(/*! ../graphic/Text */ 465); // TODO // 1. shadow // 2. Image: sx, sy, sw, sh var CMD = PathProxy.CMD; var arrayJoin = Array.prototype.join; var NONE = 'none'; var mathRound = Math.round; var mathSin = Math.sin; var mathCos = Math.cos; var PI = Math.PI; var PI2 = Math.PI * 2; var degree = 180 / PI; var EPSILON = 1e-4; function round4(val) { return mathRound(val * 1e4) / 1e4; } function isAroundZero(val) { return val < EPSILON && val > -EPSILON; } function pathHasFill(style, isText) { var fill = isText ? style.textFill : style.fill; return fill != null && fill !== NONE; } function pathHasStroke(style, isText) { var stroke = isText ? style.textStroke : style.stroke; return stroke != null && stroke !== NONE; } function setTransform(svgEl, m) { if (m) { attr(svgEl, 'transform', 'matrix(' + arrayJoin.call(m, ',') + ')'); } } function attr(el, key, val) { if (!val || val.type !== 'linear' && val.type !== 'radial') { // Don't set attribute for gradient, since it need new dom nodes el.setAttribute(key, val); } } function attrXLink(el, key, val) { el.setAttributeNS('http://www.w3.org/1999/xlink', key, val); } function bindStyle(svgEl, style, isText, el) { if (pathHasFill(style, isText)) { var fill = isText ? style.textFill : style.fill; fill = fill === 'transparent' ? NONE : fill; attr(svgEl, 'fill', fill); attr(svgEl, 'fill-opacity', style.fillOpacity != null ? style.fillOpacity * style.opacity : style.opacity); } else { attr(svgEl, 'fill', NONE); } if (pathHasStroke(style, isText)) { var stroke = isText ? style.textStroke : style.stroke; stroke = stroke === 'transparent' ? NONE : stroke; attr(svgEl, 'stroke', stroke); var strokeWidth = isText ? style.textStrokeWidth : style.lineWidth; var strokeScale = !isText && style.strokeNoScale ? el.getLineScale() : 1; attr(svgEl, 'stroke-width', strokeWidth / strokeScale); // stroke then fill for text; fill then stroke for others attr(svgEl, 'paint-order', isText ? 'stroke' : 'fill'); attr(svgEl, 'stroke-opacity', style.strokeOpacity != null ? style.strokeOpacity : style.opacity); var lineDash = style.lineDash; if (lineDash) { attr(svgEl, 'stroke-dasharray', style.lineDash.join(',')); attr(svgEl, 'stroke-dashoffset', mathRound(style.lineDashOffset || 0)); } else { attr(svgEl, 'stroke-dasharray', ''); } // PENDING style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap); style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin); style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit); } else { attr(svgEl, 'stroke', NONE); } } /*************************************************** * PATH **************************************************/ function pathDataToString(path) { var str = []; var data = path.data; var dataLength = path.len(); for (var i = 0; i < dataLength;) { var cmd = data[i++]; var cmdStr = ''; var nData = 0; switch (cmd) { case CMD.M: cmdStr = 'M'; nData = 2; break; case CMD.L: cmdStr = 'L'; nData = 2; break; case CMD.Q: cmdStr = 'Q'; nData = 4; break; case CMD.C: cmdStr = 'C'; nData = 6; break; case CMD.A: var cx = data[i++]; var cy = data[i++]; var rx = data[i++]; var ry = data[i++]; var theta = data[i++]; var dTheta = data[i++]; var psi = data[i++]; var clockwise = data[i++]; var dThetaPositive = Math.abs(dTheta); var isCircle = isAroundZero(dThetaPositive - PI2) || (clockwise ? dTheta >= PI2 : -dTheta >= PI2); // Mapping to 0~2PI var unifiedTheta = dTheta > 0 ? dTheta % PI2 : dTheta % PI2 + PI2; var large = false; if (isCircle) { large = true; } else if (isAroundZero(dThetaPositive)) { large = false; } else { large = unifiedTheta >= PI === !!clockwise; } var x0 = round4(cx + rx * mathCos(theta)); var y0 = round4(cy + ry * mathSin(theta)); // It will not draw if start point and end point are exactly the same // We need to shift the end point with a small value // FIXME A better way to draw circle ? if (isCircle) { if (clockwise) { dTheta = PI2 - 1e-4; } else { dTheta = -PI2 + 1e-4; } large = true; if (i === 9) { // Move to (x0, y0) only when CMD.A comes at the // first position of a shape. // For instance, when drawing a ring, CMD.A comes // after CMD.M, so it's unnecessary to move to // (x0, y0). str.push('M', x0, y0); } } var x = round4(cx + rx * mathCos(theta + dTheta)); var y = round4(cy + ry * mathSin(theta + dTheta)); // FIXME Ellipse str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y); break; case CMD.Z: cmdStr = 'Z'; break; case CMD.R: var x = round4(data[i++]); var y = round4(data[i++]); var w = round4(data[i++]); var h = round4(data[i++]); str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y); break; } cmdStr && str.push(cmdStr); for (var j = 0; j < nData; j++) { // PENDING With scale str.push(round4(data[i++])); } } return str.join(' '); } var svgPath = {}; svgPath.brush = function (el) { var style = el.style; var svgEl = el.__svgEl; if (!svgEl) { svgEl = createElement('path'); el.__svgEl = svgEl; } if (!el.path) { el.createPathProxy(); } var path = el.path; if (el.__dirtyPath) { path.beginPath(); path.subPixelOptimize = false; el.buildPath(path, el.shape); el.__dirtyPath = false; var pathStr = pathDataToString(path); if (pathStr.indexOf('NaN') < 0) { // Ignore illegal path, which may happen such in out-of-range // data in Calendar series. attr(svgEl, 'd', pathStr); } } bindStyle(svgEl, style, false, el); setTransform(svgEl, el.transform); if (style.text != null) { svgTextDrawRectText(el, el.getBoundingRect()); } else { removeOldTextNode(el); } }; /*************************************************** * IMAGE **************************************************/ var svgImage = {}; svgImage.brush = function (el) { var style = el.style; var image = style.image; if (image instanceof HTMLImageElement) { var src = image.src; image = src; } if (!image) { return; } var x = style.x || 0; var y = style.y || 0; var dw = style.width; var dh = style.height; var svgEl = el.__svgEl; if (!svgEl) { svgEl = createElement('image'); el.__svgEl = svgEl; } if (image !== el.__imageSrc) { attrXLink(svgEl, 'href', image); // Caching image src el.__imageSrc = image; } attr(svgEl, 'width', dw); attr(svgEl, 'height', dh); attr(svgEl, 'x', x); attr(svgEl, 'y', y); setTransform(svgEl, el.transform); if (style.text != null) { svgTextDrawRectText(el, el.getBoundingRect()); } else { removeOldTextNode(el); } }; /*************************************************** * TEXT **************************************************/ var svgText = {}; var _tmpTextHostRect = new BoundingRect(); var _tmpTextBoxPos = {}; var _tmpTextTransform = []; var TEXT_ALIGN_TO_ANCHRO = { left: 'start', right: 'end', center: 'middle', middle: 'middle' }; /** * @param {module:zrender/Element} el * @param {Object|boolean} [hostRect] {x, y, width, height} * If set false, rect text is not used. */ var svgTextDrawRectText = function svgTextDrawRectText(el, hostRect) { var style = el.style; var elTransform = el.transform; var needTransformTextByHostEl = el instanceof Text || style.transformText; el.__dirty && textHelper.normalizeTextStyle(style, true); var text = style.text; // Convert to string text != null && (text += ''); if (!textHelper.needDrawText(text, style)) { return; } // render empty text for svg if no text but need draw text. text == null && (text = ''); // Follow the setting in the canvas renderer, if not transform the // text, transform the hostRect, by which the text is located. if (!needTransformTextByHostEl && elTransform) { _tmpTextHostRect.copy(hostRect); _tmpTextHostRect.applyTransform(elTransform); hostRect = _tmpTextHostRect; } var textSvgEl = el.__textSvgEl; if (!textSvgEl) { textSvgEl = createElement('text'); el.__textSvgEl = textSvgEl; } // style.font has been normalized by `normalizeTextStyle`. var textSvgElStyle = textSvgEl.style; var font = style.font || textContain.DEFAULT_FONT; var computedFont = textSvgEl.__computedFont; if (font !== textSvgEl.__styleFont) { textSvgElStyle.font = textSvgEl.__styleFont = font; // The computedFont might not be the orginal font if it is illegal font. computedFont = textSvgEl.__computedFont = textSvgElStyle.font; } var textPadding = style.textPadding; var textLineHeight = style.textLineHeight; var contentBlock = el.__textCotentBlock; if (!contentBlock || el.__dirtyText) { contentBlock = el.__textCotentBlock = textContain.parsePlainText(text, computedFont, textPadding, textLineHeight, style.truncate); } var outerHeight = contentBlock.outerHeight; var lineHeight = contentBlock.lineHeight; textHelper.getBoxPosition(_tmpTextBoxPos, el, style, hostRect); var baseX = _tmpTextBoxPos.baseX; var baseY = _tmpTextBoxPos.baseY; var textAlign = _tmpTextBoxPos.textAlign || 'left'; var textVerticalAlign = _tmpTextBoxPos.textVerticalAlign; setTextTransform(textSvgEl, needTransformTextByHostEl, elTransform, style, hostRect, baseX, baseY); var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign); var textX = baseX; var textY = boxY; // TODO needDrawBg if (textPadding) { textX = getTextXForPadding(baseX, textAlign, textPadding); textY += textPadding[0]; } // `textBaseline` is set as 'middle'. textY += lineHeight / 2; bindStyle(textSvgEl, style, true, el); // FIXME // Add a