nsc-react-component 2.0.15 → 2.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/lib/{affix → base/affix}/index.d.ts +0 -0
  2. package/lib/{affix → base/affix}/index.js +1 -1
  3. package/lib/{alert → base/alert}/index.d.ts +0 -0
  4. package/lib/{alert → base/alert}/index.js +1 -1
  5. package/lib/{anchor → base/anchor}/index.d.ts +0 -0
  6. package/lib/{anchor → base/anchor}/index.js +1 -1
  7. package/lib/{avatar → base/avatar}/index.d.ts +0 -0
  8. package/lib/{avatar → base/avatar}/index.js +1 -1
  9. package/lib/{backTop → base/backTop}/index.d.ts +0 -0
  10. package/lib/{backTop → base/backTop}/index.js +1 -1
  11. package/lib/{badge → base/badge}/index.d.ts +0 -0
  12. package/lib/{badge → base/badge}/index.js +1 -1
  13. package/lib/{breadcrumb → base/breadcrumb}/index.d.ts +0 -0
  14. package/lib/{breadcrumb → base/breadcrumb}/index.js +1 -1
  15. package/lib/{button → base/button}/index.d.ts +0 -0
  16. package/lib/{button → base/button}/index.js +2 -2
  17. package/lib/{button → base/button}/index.less +0 -0
  18. package/lib/{calendar → base/calendar}/index.d.ts +0 -0
  19. package/lib/{calendar → base/calendar}/index.js +1 -1
  20. package/lib/{card → base/card}/index.d.ts +0 -0
  21. package/lib/{card → base/card}/index.js +1 -1
  22. package/lib/{carousel → base/carousel}/index.d.ts +0 -0
  23. package/lib/{carousel → base/carousel}/index.js +1 -1
  24. package/lib/{cascader → base/cascader}/index.d.ts +0 -0
  25. package/lib/base/cascader/index.js +268 -0
  26. package/lib/{chart → base/chart}/index.d.ts +0 -0
  27. package/lib/base/chart/index.js +353 -0
  28. package/lib/{checkbox → base/checkbox}/CheckboxGroup.d.ts +0 -0
  29. package/lib/base/checkbox/CheckboxGroup.js +340 -0
  30. package/lib/{checkbox → base/checkbox}/index.d.ts +0 -0
  31. package/lib/{checkbox → base/checkbox}/index.js +1 -1
  32. package/lib/{collapse → base/collapse}/index.d.ts +0 -0
  33. package/lib/{collapse → base/collapse}/index.js +1 -1
  34. package/lib/{comment → base/comment}/index.d.ts +0 -0
  35. package/lib/{comment → base/comment}/index.js +1 -1
  36. package/lib/{common → base/common}/BodyRow/index.d.ts +0 -0
  37. package/lib/{common → base/common}/BodyRow/index.js +1 -1
  38. package/lib/{common → base/common}/BodyRow/index.less +0 -0
  39. package/lib/{common → base/common}/Icon.d.ts +0 -0
  40. package/lib/{common → base/common}/Icon.js +1 -1
  41. package/lib/{common → base/common}/IconFont.d.ts +0 -0
  42. package/lib/base/common/IconFont.js +17 -0
  43. package/lib/{common → base/common}/NoAuthority.d.ts +0 -0
  44. package/lib/{common → base/common}/NoAuthority.js +1 -1
  45. package/lib/{common → base/common}/NoData.d.ts +0 -0
  46. package/lib/{common → base/common}/NoData.js +1 -1
  47. package/lib/{common → base/common}/NoData.less +0 -0
  48. package/lib/{common → base/common}/NoMessage.d.ts +0 -0
  49. package/lib/{common → base/common}/NoMessage.js +1 -1
  50. package/lib/{common → base/common}/NoNetWork.d.ts +0 -0
  51. package/lib/{common → base/common}/NoNetWork.js +1 -1
  52. package/lib/{common → base/common}/Page404.d.ts +0 -0
  53. package/lib/{common → base/common}/Page404.js +1 -1
  54. package/lib/{common → base/common}/PageRequest.d.ts +0 -0
  55. package/lib/{common → base/common}/PageRequest.js +1 -1
  56. package/lib/{common → base/common}/TreePanel.d.ts +2 -1
  57. package/lib/base/common/TreePanel.js +290 -0
  58. package/lib/{common → base/common}/img/NoAuthority.png +0 -0
  59. package/lib/{common → base/common}/img/NoData.png +0 -0
  60. package/lib/{common → base/common}/img/NoMessage.png +0 -0
  61. package/lib/{common → base/common}/img/NoNetWork.png +0 -0
  62. package/lib/{common → base/common}/img/Page404.png +0 -0
  63. package/lib/{common → base/common}/withZhLocale.d.ts +0 -0
  64. package/lib/base/common/withZhLocale.js +20 -0
  65. package/lib/{configProvider → base/configProvider}/index.d.ts +0 -0
  66. package/lib/{configProvider → base/configProvider}/index.js +1 -1
  67. package/lib/{datepick → base/datepick}/Rangepicker.d.ts +0 -0
  68. package/lib/base/datepick/Rangepicker.js +553 -0
  69. package/lib/{datepick → base/datepick}/index.d.ts +0 -0
  70. package/lib/{datepick → base/datepick}/index.js +1 -1
  71. package/lib/{datepick → base/datepick}/index.less +0 -0
  72. package/lib/{descriptions → base/descriptions}/index.d.ts +0 -0
  73. package/lib/{descriptions → base/descriptions}/index.js +1 -1
  74. package/lib/{divider → base/divider}/index.d.ts +0 -0
  75. package/lib/{divider → base/divider}/index.js +1 -1
  76. package/lib/{drawer → base/drawer}/index.d.ts +0 -0
  77. package/lib/{drawer → base/drawer}/index.js +1 -1
  78. package/lib/{dropdown → base/dropdown}/index.d.ts +0 -0
  79. package/lib/{dropdown → base/dropdown}/index.js +1 -1
  80. package/lib/{form → base/form}/Form.d.ts +0 -0
  81. package/lib/base/form/Form.js +415 -0
  82. package/lib/{form → base/form}/filed/Cascader.d.ts +0 -0
  83. package/lib/{form → base/form}/filed/Cascader.js +1 -1
  84. package/lib/{form → base/form}/filed/Checkbox.d.ts +0 -0
  85. package/lib/{form → base/form}/filed/Checkbox.js +1 -1
  86. package/lib/{form → base/form}/filed/DatePicker.d.ts +0 -0
  87. package/lib/{form → base/form}/filed/DatePicker.js +1 -1
  88. package/lib/{form → base/form}/filed/FormItem.d.ts +0 -0
  89. package/lib/{form → base/form}/filed/FormItem.js +1 -1
  90. package/lib/{form → base/form}/filed/Input.d.ts +0 -0
  91. package/lib/{form → base/form}/filed/Input.js +1 -1
  92. package/lib/{form → base/form}/filed/InputEamil.d.ts +0 -0
  93. package/lib/{form → base/form}/filed/InputEamil.js +1 -1
  94. package/lib/{form → base/form}/filed/InputNumber.d.ts +0 -0
  95. package/lib/{form → base/form}/filed/InputNumber.js +1 -1
  96. package/lib/{form → base/form}/filed/InputPassword.d.ts +0 -0
  97. package/lib/{form → base/form}/filed/InputPassword.js +1 -1
  98. package/lib/{form → base/form}/filed/Item.d.ts +0 -0
  99. package/lib/base/form/filed/Item.js +161 -0
  100. package/lib/{form → base/form}/filed/Radio.d.ts +0 -0
  101. package/lib/{form → base/form}/filed/Radio.js +1 -1
  102. package/lib/{form → base/form}/filed/RangerPicker.d.ts +0 -0
  103. package/lib/{form → base/form}/filed/RangerPicker.js +1 -1
  104. package/lib/{form → base/form}/filed/Rate.d.ts +0 -0
  105. package/lib/{form → base/form}/filed/Rate.js +1 -1
  106. package/lib/{form → base/form}/filed/Select.d.ts +0 -0
  107. package/lib/{form → base/form}/filed/Select.js +1 -1
  108. package/lib/{form → base/form}/filed/Slider.d.ts +0 -0
  109. package/lib/{form → base/form}/filed/Slider.js +1 -1
  110. package/lib/{form → base/form}/filed/Switch.d.ts +0 -0
  111. package/lib/{form → base/form}/filed/Switch.js +1 -1
  112. package/lib/{form → base/form}/filed/TagSelect.d.ts +0 -0
  113. package/lib/{form → base/form}/filed/TagSelect.js +1 -1
  114. package/lib/{form → base/form}/filed/TextArea.d.ts +0 -0
  115. package/lib/{form → base/form}/filed/TextArea.js +1 -1
  116. package/lib/{form → base/form}/filed/Upload.d.ts +0 -0
  117. package/lib/{form → base/form}/filed/Upload.js +1 -1
  118. package/lib/{form → base/form}/index.d.ts +0 -0
  119. package/lib/{form → base/form}/index.js +1 -1
  120. package/lib/{grid → base/grid}/Col.d.ts +0 -0
  121. package/lib/{grid → base/grid}/Col.js +1 -1
  122. package/lib/{grid → base/grid}/Row.d.ts +0 -0
  123. package/lib/{grid → base/grid}/Row.js +1 -1
  124. package/lib/{grid → base/grid}/index.d.ts +0 -0
  125. package/lib/{grid → base/grid}/index.js +0 -0
  126. package/lib/{image → base/image}/index.d.ts +0 -0
  127. package/lib/{image → base/image}/index.js +1 -1
  128. package/lib/{input → base/input}/Email.d.ts +0 -0
  129. package/lib/{input → base/input}/Email.js +1 -1
  130. package/lib/{input → base/input}/Number.d.ts +0 -0
  131. package/lib/{input → base/input}/Number.js +1 -1
  132. package/lib/{input → base/input}/Password.d.ts +0 -3
  133. package/lib/{input → base/input}/Password.js +1 -1
  134. package/lib/{input → base/input}/Search.d.ts +0 -3
  135. package/lib/{input → base/input}/Search.js +1 -1
  136. package/lib/{input → base/input}/TextArea.d.ts +0 -3
  137. package/lib/{input → base/input}/TextArea.js +1 -1
  138. package/lib/{input → base/input}/index.d.ts +0 -0
  139. package/lib/base/input/index.js +242 -0
  140. package/lib/{input → base/input}/index.less +0 -0
  141. package/lib/{layout → base/layout}/index.d.ts +0 -0
  142. package/lib/{layout → base/layout}/index.js +1 -1
  143. package/lib/{list → base/list}/index.d.ts +0 -0
  144. package/lib/{list → base/list}/index.js +1 -1
  145. package/lib/{menu → base/menu}/index.d.ts +0 -0
  146. package/lib/base/menu/index.js +247 -0
  147. package/lib/{message → base/message}/index.d.ts +0 -0
  148. package/lib/{message → base/message}/index.js +1 -1
  149. package/lib/{modal → base/modal}/index.d.ts +0 -0
  150. package/lib/{modal → base/modal}/index.js +1 -1
  151. package/lib/{notification → base/notification}/index.d.ts +0 -0
  152. package/lib/{notification → base/notification}/index.js +1 -1
  153. package/lib/{pageHeader → base/pageHeader}/index.d.ts +0 -0
  154. package/lib/{pageHeader → base/pageHeader}/index.js +1 -1
  155. package/lib/{pagination → base/pagination}/index.d.ts +0 -0
  156. package/lib/{pagination → base/pagination}/index.js +1 -1
  157. package/lib/{popconfirm → base/popconfirm}/index.d.ts +0 -0
  158. package/lib/{popconfirm → base/popconfirm}/index.js +1 -1
  159. package/lib/{popover → base/popover}/index.d.ts +0 -0
  160. package/lib/{popover → base/popover}/index.js +1 -1
  161. package/lib/{progress → base/progress}/index.d.ts +0 -0
  162. package/lib/{progress → base/progress}/index.js +1 -1
  163. package/lib/{radio → base/radio}/RadioGroup.d.ts +0 -0
  164. package/lib/base/radio/RadioGroup.js +378 -0
  165. package/lib/{radio → base/radio}/index.d.ts +0 -0
  166. package/lib/{radio → base/radio}/index.js +1 -1
  167. package/lib/{result → base/result}/index.d.ts +0 -0
  168. package/lib/{result → base/result}/index.js +1 -1
  169. package/lib/{select → base/select}/index.d.ts +0 -0
  170. package/lib/base/select/index.js +529 -0
  171. package/lib/{select → base/select}/index.less +0 -0
  172. package/lib/{skeleton → base/skeleton}/index.d.ts +0 -0
  173. package/lib/{skeleton → base/skeleton}/index.js +1 -1
  174. package/lib/{space → base/space}/index.d.ts +0 -0
  175. package/lib/{space → base/space}/index.js +1 -1
  176. package/lib/{spin → base/spin}/index.d.ts +0 -0
  177. package/lib/{spin → base/spin}/index.js +1 -1
  178. package/lib/{statistic → base/statistic}/index.d.ts +0 -0
  179. package/lib/{statistic → base/statistic}/index.js +1 -1
  180. package/lib/{steps → base/steps}/index.d.ts +0 -0
  181. package/lib/{steps → base/steps}/index.js +1 -1
  182. package/lib/{table → base/table}/index.d.ts +10 -2
  183. package/lib/base/table/index.js +902 -0
  184. package/lib/{table → base/table}/index.module.less +22 -0
  185. package/lib/{table → base/table}/resize.module.less +0 -0
  186. package/lib/{tabs → base/tabs}/Tabpane.d.ts +0 -0
  187. package/lib/{tabs → base/tabs}/Tabpane.js +1 -1
  188. package/lib/{tabs → base/tabs}/index.d.ts +0 -0
  189. package/lib/{tabs → base/tabs}/index.js +1 -1
  190. package/lib/{tagSelect → base/tagSelect}/TagSelect.d.ts +0 -0
  191. package/lib/base/tagSelect/TagSelect.js +268 -0
  192. package/lib/{tagSelect → base/tagSelect}/index.d.ts +0 -0
  193. package/lib/base/tagSelect/index.js +188 -0
  194. package/lib/{tagSelect → base/tagSelect}/index.less +0 -0
  195. package/lib/{timeline → base/timeline}/index.d.ts +0 -0
  196. package/lib/{timeline → base/timeline}/index.js +1 -1
  197. package/lib/{tooltip → base/tooltip}/index.d.ts +0 -0
  198. package/lib/{tooltip → base/tooltip}/index.js +1 -1
  199. package/lib/{tree → base/tree}/TreeSearch.d.ts +0 -0
  200. package/lib/base/tree/TreeSearch.js +273 -0
  201. package/lib/{tree → base/tree}/index.d.ts +0 -0
  202. package/lib/base/tree/index.js +307 -0
  203. package/lib/{tree → base/tree}/index.less +0 -0
  204. package/lib/{typography → base/typography}/index.d.ts +0 -0
  205. package/lib/{typography → base/typography}/index.js +1 -1
  206. package/lib/index.d.ts +63 -63
  207. package/lib/index.js +63 -63
  208. package/lib/{pageComponents → page}/BasePage/Form.d.ts +0 -0
  209. package/lib/page/BasePage/Form.js +244 -0
  210. package/lib/{pageComponents → page}/BasePage/index.d.ts +0 -0
  211. package/lib/page/BasePage/index.js +636 -0
  212. package/lib/{pageComponents → page}/BasePage/index.module.less +0 -0
  213. package/lib/utils.d.ts +1 -0
  214. package/lib/utils.js +16 -9
  215. package/package.json +1 -1
  216. package/lib/cascader/index.js +0 -268
  217. package/lib/chart/index.js +0 -353
  218. package/lib/checkbox/CheckboxGroup.js +0 -340
  219. package/lib/common/IconFont.js +0 -17
  220. package/lib/common/TreePanel.js +0 -303
  221. package/lib/common/withZhLocale.js +0 -20
  222. package/lib/datepick/Rangepicker.js +0 -553
  223. package/lib/form/Form.js +0 -415
  224. package/lib/form/filed/Item.js +0 -161
  225. package/lib/input/index.js +0 -242
  226. package/lib/menu/index.js +0 -247
  227. package/lib/pageComponents/BasePage/Form.js +0 -244
  228. package/lib/pageComponents/BasePage/index.js +0 -658
  229. package/lib/radio/RadioGroup.js +0 -378
  230. package/lib/select/index.js +0 -529
  231. package/lib/table/index.js +0 -756
  232. package/lib/tagSelect/TagSelect.js +0 -268
  233. package/lib/tagSelect/index.js +0 -188
  234. package/lib/tree/TreeSearch.js +0 -274
  235. package/lib/tree/index.js +0 -293
@@ -0,0 +1,353 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
+
3
+ var _excluded = ["url", "listeners"];
4
+
5
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
+
7
+ 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."); }
8
+
9
+ 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); }
10
+
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
12
+
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
+
15
+ 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; }
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+
21
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
22
+
23
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
24
+
25
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
26
+
27
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
28
+
29
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
30
+
31
+ 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }
32
+
33
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
34
+
35
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
36
+
37
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
38
+
39
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
40
+
41
+ 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; } }
42
+
43
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
44
+
45
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
46
+
47
+ import React, { PureComponent } from "react";
48
+ import * as echarts from "echarts";
49
+ import Store from "@bj-nsc/msn";
50
+ import { utils } from "@bj-nsc/msn/lib/utils";
51
+ import { px2vw } from "../../utils";
52
+ import { isArray, isObject } from "@bj-nsc/functions";
53
+
54
+ //data示例
55
+
56
+ /**
57
+ 数组:
58
+ data=[{name:'1月',value:20},{name:'2月',value:10},{name:'3月',value:25}]
59
+ 对象
60
+ data={name:['1月','2月','3月'],value:[20,30,40]}
61
+ */
62
+ var NscChart = /*#__PURE__*/function (_PureComponent) {
63
+ _inherits(NscChart, _PureComponent);
64
+
65
+ var _super = _createSuper(NscChart);
66
+
67
+ function NscChart(props) {
68
+ var _this2;
69
+
70
+ _classCallCheck(this, NscChart);
71
+
72
+ _this2 = _super.call(this, props);
73
+
74
+ _defineProperty(_assertThisInitialized(_this2), "chartRef", /*#__PURE__*/React.createRef());
75
+
76
+ _defineProperty(_assertThisInitialized(_this2), "myChart", null);
77
+
78
+ _defineProperty(_assertThisInitialized(_this2), "store", {});
79
+
80
+ _defineProperty(_assertThisInitialized(_this2), "state", {
81
+ dataSource: null
82
+ });
83
+
84
+ _defineProperty(_assertThisInitialized(_this2), "isFirst", true);
85
+
86
+ var data = props.data,
87
+ _props$store = props.store,
88
+ store = _props$store === void 0 ? {} : _props$store,
89
+ children = props.children,
90
+ options = props.option,
91
+ _props$autoLoad = props.autoLoad,
92
+ autoLoad = _props$autoLoad === void 0 ? true : _props$autoLoad;
93
+
94
+ var url = store.url,
95
+ _store$listeners = store.listeners,
96
+ listenersPops = _store$listeners === void 0 ? {} : _store$listeners,
97
+ stores = _objectWithoutProperties(store, _excluded);
98
+
99
+ if (!children) {
100
+ if (!(data || url || options)) {
101
+ throw new Error("url、data、option不能都为空!");
102
+ }
103
+
104
+ var _this = _assertThisInitialized(_this2);
105
+
106
+ var storeProps = _objectSpread({
107
+ model: "model",
108
+ component: _assertThisInitialized(_this2),
109
+ listeners: {
110
+ onBeforeLoad: function onBeforeLoad(store, options) {
111
+ utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
112
+ },
113
+ load: function load(data, modelData, store) {
114
+ _this.setState({
115
+ dataSource: modelData
116
+ }, function () {
117
+ if (_this.isFirst && autoLoad) {
118
+ _this.init();
119
+
120
+ _this.isFirst = false;
121
+ }
122
+ });
123
+
124
+ utils.callback(listenersPops.load, _this, [data, modelData, store]);
125
+ },
126
+ dataChanged: function dataChanged(data, modelData, store) {
127
+ _this.setState({
128
+ dataSource: modelData
129
+ }, function () {
130
+ if (autoLoad) {
131
+ _this.init();
132
+ }
133
+ });
134
+
135
+ utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
136
+ }
137
+ }
138
+ }, stores);
139
+
140
+ if (url && data == null) {
141
+ storeProps = _objectSpread(_objectSpread({}, {
142
+ autoLoad: true,
143
+ url: url
144
+ }), storeProps);
145
+ }
146
+
147
+ _this2.store = new Store(storeProps);
148
+ }
149
+
150
+ return _this2;
151
+ }
152
+
153
+ _createClass(NscChart, [{
154
+ key: "componentDidMount",
155
+ value: function componentDidMount() {
156
+ var _this$props = this.props,
157
+ data = _this$props.data,
158
+ _this$props$autoLoad = _this$props.autoLoad,
159
+ autoLoad = _this$props$autoLoad === void 0 ? true : _this$props$autoLoad,
160
+ store = _this$props.store,
161
+ option = _this$props.option;
162
+
163
+ if (data && autoLoad) {
164
+ this.init();
165
+ } else if (!data && !(store !== null && store !== void 0 && store.url) && option) {
166
+ this.init();
167
+ }
168
+ }
169
+ }, {
170
+ key: "componentDidUpdate",
171
+ value: function componentDidUpdate(prevProps, prevState, snapshot) {
172
+ var _this$props$autoLoad2 = this.props.autoLoad,
173
+ autoLoad = _this$props$autoLoad2 === void 0 ? true : _this$props$autoLoad2;
174
+
175
+ if (autoLoad) {
176
+ if (JSON.stringify(prevProps.data) !== JSON.stringify(this.props.data)) {
177
+ this.init();
178
+ } else if (JSON.stringify(prevProps.option) !== JSON.stringify(this.props.option)) {
179
+ this.init();
180
+ }
181
+ }
182
+ }
183
+ }, {
184
+ key: "reSetChart",
185
+ value: function reSetChart() {
186
+ this.init();
187
+ }
188
+ }, {
189
+ key: "isString",
190
+ value: function isString(v) {
191
+ return typeof v === "string";
192
+ }
193
+ }, {
194
+ key: "componentWillUnmount",
195
+ value: function componentWillUnmount() {
196
+ window.removeEventListener("resize", this.handleChartResize.bind(this));
197
+ }
198
+ }, {
199
+ key: "isReplace",
200
+ value: function isReplace(v) {
201
+ return /^{.*}$/gi.test(v);
202
+ }
203
+ }, {
204
+ key: "replace",
205
+ value: function replace(v) {
206
+ return v.substring(1, v.length - 1);
207
+ }
208
+ }, {
209
+ key: "dataConversion",
210
+ value: function dataConversion(data, datas, dataMap) {
211
+ var _this3 = this;
212
+
213
+ var result;
214
+
215
+ if (data) {
216
+ if (this.isString(data) && this.isReplace(data)) {
217
+ result = dataMap[this.replace(data)];
218
+ } else if (isArray(data)) {
219
+ data.map(function (item) {
220
+ var v = item.value;
221
+
222
+ if (v && _this3.isReplace(v)) {
223
+ item.value = _this3.dataConversion(v, datas, dataMap);
224
+ }
225
+ });
226
+ result = data;
227
+ } else if (isObject(data)) {
228
+ result = [];
229
+
230
+ if (isArray(datas)) {
231
+ datas.map(function (item) {
232
+ var tempObj = {};
233
+
234
+ for (var key in item) {
235
+ var v = item[key];
236
+
237
+ if (_this3.isReplace(v)) {
238
+ tempObj[key] = item[_this3.replace(v)];
239
+ } else {
240
+ tempObj[key] = v;
241
+ }
242
+ }
243
+
244
+ result.push(tempObj);
245
+ });
246
+ }
247
+ }
248
+ }
249
+
250
+ return result;
251
+ }
252
+ }, {
253
+ key: "objectConversion",
254
+ value: function objectConversion(obj, datas, dataMap) {
255
+ var _this4 = this;
256
+
257
+ var tempObj;
258
+
259
+ if (obj) {
260
+ if (isArray(obj)) {
261
+ tempObj = _toConsumableArray(obj);
262
+ tempObj.map(function (item) {
263
+ if (item.data) {
264
+ item.data = _this4.dataConversion(item.data, datas, dataMap);
265
+ }
266
+ });
267
+ } else if (this.isString(obj)) {
268
+ tempObj = obj;
269
+ tempObj.data = this.dataConversion(tempObj, datas, dataMap);
270
+ } else if (isObject(obj)) {
271
+ tempObj = _objectSpread({}, obj);
272
+ tempObj.data = this.dataConversion(tempObj.data, datas, dataMap);
273
+ }
274
+ }
275
+
276
+ return tempObj;
277
+ }
278
+ }, {
279
+ key: "init",
280
+ value: function init() {
281
+ var _myChart$getZr, _myChart$getZr2;
282
+
283
+ var _this$props2 = this.props,
284
+ option = _this$props2.option,
285
+ data = _this$props2.data,
286
+ OnClick = _this$props2.OnClick,
287
+ OnZrClick = _this$props2.OnZrClick;
288
+ var dataSource = this.state.dataSource;
289
+ var dataMap = {};
290
+ var newDatas = data || dataSource;
291
+
292
+ var newOption = _objectSpread({}, option);
293
+
294
+ if (isArray(newDatas)) {
295
+ newDatas.map(function (item) {
296
+ for (var key in item) {
297
+ if (dataMap[key] == null) {
298
+ dataMap[key] = [];
299
+ }
300
+
301
+ dataMap[key].push(item[key]);
302
+ }
303
+ });
304
+ } else if (isObject(newDatas)) {
305
+ dataMap = newDatas;
306
+ }
307
+
308
+ newOption.xAxis = this.objectConversion(newOption.xAxis, newDatas, dataMap);
309
+ newOption.yAxis = this.objectConversion(newOption.yAxis, newDatas, dataMap);
310
+ newOption.series = this.objectConversion(newOption.series, newDatas, dataMap);
311
+ var myChart = this.myChart = echarts.init(this.chartRef.current); //初始化echarts,通过ref属性获取dom
312
+
313
+ myChart.clear();
314
+ myChart.off("click");
315
+ myChart === null || myChart === void 0 ? void 0 : (_myChart$getZr = myChart.getZr()) === null || _myChart$getZr === void 0 ? void 0 : _myChart$getZr.off("click");
316
+ myChart.setOption(newOption);
317
+ myChart.on("click", function (params) {
318
+ OnClick && OnClick(params, myChart);
319
+ });
320
+ myChart === null || myChart === void 0 ? void 0 : (_myChart$getZr2 = myChart.getZr()) === null || _myChart$getZr2 === void 0 ? void 0 : _myChart$getZr2.on("click", function (params) {
321
+ OnZrClick && OnZrClick(params, myChart);
322
+ });
323
+ window.addEventListener("resize", this.handleChartResize.bind(this));
324
+ }
325
+ }, {
326
+ key: "handleChartResize",
327
+ value: function handleChartResize() {
328
+ if (this.myChart) {
329
+ this.myChart.resize();
330
+ }
331
+ }
332
+ }, {
333
+ key: "render",
334
+ value: function render() {
335
+ var _this$props3 = this.props,
336
+ width = _this$props3.width,
337
+ height = _this$props3.height;
338
+ var boxStyle = {
339
+ width: typeof width == "number" ? px2vw(width) : width,
340
+ height: typeof height == "number" ? px2vw(height) : height
341
+ };
342
+ return /*#__PURE__*/React.createElement("div", {
343
+ style: boxStyle,
344
+ ref: this.chartRef
345
+ });
346
+ }
347
+ }]);
348
+
349
+ return NscChart;
350
+ }(PureComponent);
351
+
352
+ export default NscChart;
353
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvY2hhcnQvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsImVjaGFydHMiLCJTdG9yZSIsInV0aWxzIiwicHgydnciLCJpc0FycmF5IiwiaXNPYmplY3QiLCJOc2NDaGFydCIsInByb3BzIiwiY3JlYXRlUmVmIiwiZGF0YVNvdXJjZSIsImRhdGEiLCJzdG9yZSIsImNoaWxkcmVuIiwib3B0aW9ucyIsIm9wdGlvbiIsImF1dG9Mb2FkIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsInN0b3JlcyIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJtb2RlbERhdGEiLCJzZXRTdGF0ZSIsImlzRmlyc3QiLCJpbml0IiwiZGF0YUNoYW5nZWQiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJzbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ2Iiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZUNoYXJ0UmVzaXplIiwiYmluZCIsInRlc3QiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJkYXRhcyIsImRhdGFNYXAiLCJyZXN1bHQiLCJpc1N0cmluZyIsImlzUmVwbGFjZSIsInJlcGxhY2UiLCJtYXAiLCJpdGVtIiwidmFsdWUiLCJkYXRhQ29udmVyc2lvbiIsInRlbXBPYmoiLCJrZXkiLCJwdXNoIiwib2JqIiwiT25DbGljayIsIk9uWnJDbGljayIsInN0YXRlIiwibmV3RGF0YXMiLCJuZXdPcHRpb24iLCJ4QXhpcyIsIm9iamVjdENvbnZlcnNpb24iLCJ5QXhpcyIsInNlcmllcyIsIm15Q2hhcnQiLCJjaGFydFJlZiIsImN1cnJlbnQiLCJjbGVhciIsIm9mZiIsImdldFpyIiwic2V0T3B0aW9uIiwib24iLCJwYXJhbXMiLCJhZGRFdmVudExpc3Rl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QUFMLENBQWFVLE1BQWI7QUFDRDtBQUNGOzs7V0FFRCxrQkFBUztBQUNQLHlCQUEwQixLQUFLeEUsS0FBL0I7QUFBQSxVQUFReUUsS0FBUixnQkFBUUEsS0FBUjtBQUFBLFVBQWVDLE1BQWYsZ0JBQWVBLE1BQWY7QUFDQSxVQUFNQyxRQUFRLEdBQUc7QUFDZkYsUUFBQUEsS0FBSyxFQUFFLE9BQU9BLEtBQVAsSUFBZ0IsUUFBaEIsR0FBMkI3RSxLQUFLLENBQUM2RSxLQUFELENBQWhDLEdBQTBDQSxLQURsQztBQUVmQyxRQUFBQSxNQUFNLEVBQUUsT0FBT0EsTUFBUCxJQUFpQixRQUFqQixHQUE0QjlFLEtBQUssQ0FBQzhFLE1BQUQsQ0FBakMsR0FBNENBO0FBRnJDLE9BQWpCO0FBSUEsMEJBQU87QUFBSyxRQUFBLEtBQUssRUFBRUMsUUFBWjtBQUFzQixRQUFBLEdBQUcsRUFBRSxLQUFLWjtBQUFoQyxRQUFQO0FBQ0Q7Ozs7RUExTm9CdkUsYTs7QUE2TnZCLGVBQWVPLFFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gXCJlY2hhcnRzXCI7XHJcbmltcG9ydCB7IEVDaGFydHMgfSBmcm9tIFwiZWNoYXJ0cy9saWIvZWNoYXJ0c1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHsgcHgydncgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNPYmplY3QgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW50ZXJmYWNlIENoYXJ0UHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBvcHRpb246IGFueTtcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PiB8IE9iamVjdDtcclxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOWuveW6plxyXG4gIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nOyAvL+WbvuihqOmVv+W6plxyXG4gIGF1dG9Mb2FkPzogYm9vbGVhbjsgLy/mlbDmja7mlLnlj5jvvIzoh6rliqjliLfmlrDlm77ooags6buY6K6kdHJ1ZVxyXG4gIE9uQ2xpY2s/OiAocGFyYW1zOiBhbnksIGU/OiBhbnkpID0+IHZvaWQ7IC8v5Zu+6KGo54K55Ye75LqL5Lu2XHJcbiAgT25ackNsaWNrPzogKHBhcmFtczogYW55LCBlPzogYW55KSA9PiB2b2lkOyAvL+WbvuihqOeCueWHu+S6i+S7tlxyXG4gIFtwcm9OYW1lczogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vL2RhdGHnpLrkvotcclxuLyoqXHJcbiDmlbDnu4TvvJpcclxuIGRhdGE9W3tuYW1lOicx5pyIJyx2YWx1ZToyMH0se25hbWU6JzLmnIgnLHZhbHVlOjEwfSx7bmFtZTonM+aciCcsdmFsdWU6MjV9XVxyXG4g5a+56LGhXHJcbiBkYXRhPXtuYW1lOlsnMeaciCcsJzLmnIgnLCcz5pyIJ10sdmFsdWU6WzIwLDMwLDQwXX1cclxuICovXHJcbmNsYXNzIE5zY0NoYXJ0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxDaGFydFByb3BzPiB7XHJcbiAgY2hhcnRSZWYgPSBSZWFjdC5jcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcbiAgbXlDaGFydDogRUNoYXJ0cyB8IG51bGwgPSBudWxsO1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IG51bGwsXHJcbiAgfTtcclxuICBpc0ZpcnN0ID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9uOiBvcHRpb25zLFxyXG4gICAgICBhdXRvTG9hZCA9IHRydWUsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7IHVybCwgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sIC4uLnN0b3JlcyB9ID0gc3RvcmU7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGlmICghKGRhdGEgfHwgdXJsIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBZGF0YeOAgW9wdGlvbuS4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgICBsZXQgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChfdGhpcy5pc0ZpcnN0ICYmIGF1dG9Mb2FkKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5pc0ZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuaW5pdCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKHVybCAmJiBkYXRhID09IG51bGwpIHtcclxuICAgICAgICBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBhdXRvTG9hZDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgYXV0b0xvYWQgPSB0cnVlLCBzdG9yZSwgb3B0aW9uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKGRhdGEgJiYgYXV0b0xvYWQpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9IGVsc2UgaWYgKCFkYXRhICYmICFzdG9yZT8udXJsICYmIG9wdGlvbikge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8Q2hhcnRQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PHt9PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGF1dG9Mb2FkID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhdXRvTG9hZCkge1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLmRhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmRhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkocHJldlByb3BzLm9wdGlvbikgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMub3B0aW9uKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVTZXRDaGFydCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuICBpc1N0cmluZyh2KSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCI7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhpcy5oYW5kbGVDaGFydFJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIGlzUmVwbGFjZSh2KSB7XHJcbiAgICByZXR1cm4gL157Lip9JC9naS50ZXN0KHYpO1xyXG4gIH1cclxuICByZXBsYWNlKHYpIHtcclxuICAgIHJldHVybiB2LnN1YnN0cmluZygxLCB2Lmxlbmd0aCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0YUNvbnZlcnNpb24oZGF0YSwgZGF0YXMsIGRhdGFNYXApIHtcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pc1N0cmluZyhkYXRhKSAmJiB0aGlzLmlzUmVwbGFjZShkYXRhKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGRhdGFNYXBbdGhpcy5yZXBsYWNlKGRhdGEpXTtcclxuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbS52YWx1ZTtcclxuICAgICAgICAgIGlmICh2ICYmIHRoaXMuaXNSZXBsYWNlKHYpKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLmRhdGFDb252ZXJzaW9uKHYsIGRhdGFzLCBkYXRhTWFwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQgPSBkYXRhO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGRhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gW107XHJcbiAgICAgICAgaWYgKGlzQXJyYXkoZGF0YXMpKSB7XHJcbiAgICAgICAgICBkYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgdmFyIHRlbXBPYmogPSB7fTtcclxuICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIGl0ZW0pIHtcclxuICAgICAgICAgICAgICBsZXQgdiA9IGl0ZW1ba2V5XTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlcGxhY2UodikpIHtcclxuICAgICAgICAgICAgICAgIHRlbXBPYmpba2V5XSA9IGl0ZW1bdGhpcy5yZXBsYWNlKHYpXTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGVtcE9ialtrZXldID0gdjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzdWx0LnB1c2godGVtcE9iaik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gIG9iamVjdENvbnZlcnNpb24ob2JqLCBkYXRhcywgZGF0YU1hcCkge1xyXG4gICAgbGV0IHRlbXBPYmo6IGFueTtcclxuICAgIGlmIChvYmopIHtcclxuICAgICAgaWYgKGlzQXJyYXkob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBbLi4ub2JqXTtcclxuICAgICAgICB0ZW1wT2JqLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uZGF0YSkge1xyXG4gICAgICAgICAgICBpdGVtLmRhdGEgPSB0aGlzLmRhdGFDb252ZXJzaW9uKGl0ZW0uZGF0YSwgZGF0YXMsIGRhdGFNYXApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdHJpbmcob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSBvYmo7XHJcbiAgICAgICAgdGVtcE9iai5kYXRhID0gdGhpcy5kYXRhQ29udmVyc2lvbih0ZW1wT2JqLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgIHRlbXBPYmogPSB7IC4uLm9iaiB9O1xyXG4gICAgICAgIHRlbXBPYmouZGF0YSA9IHRoaXMuZGF0YUNvbnZlcnNpb24odGVtcE9iai5kYXRhLCBkYXRhcywgZGF0YU1hcCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0ZW1wT2JqO1xyXG4gIH1cclxuICBpbml0KCkge1xyXG4gICAgY29uc3QgeyBvcHRpb24sIGRhdGEsIE9uQ2xpY2ssIE9uWnJDbGljayB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBkYXRhTWFwOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IG5ld0RhdGFzID0gZGF0YSB8fCBkYXRhU291cmNlO1xyXG4gICAgbGV0IG5ld09wdGlvbjogYW55ID0geyAuLi5vcHRpb24gfTtcclxuICAgIGlmIChpc0FycmF5KG5ld0RhdGFzKSkge1xyXG4gICAgICBuZXdEYXRhcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gaXRlbSkge1xyXG4gICAgICAgICAgaWYgKGRhdGFNYXBba2V5XSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGRhdGFNYXBba2V5XSA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGF0YU1hcFtrZXldLnB1c2goaXRlbVtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChpc09iamVjdChuZXdEYXRhcykpIHtcclxuICAgICAgZGF0YU1hcCA9IG5ld0RhdGFzO1xyXG4gICAgfVxyXG4gICAgbmV3T3B0aW9uLnhBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi54QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnlBeGlzID0gdGhpcy5vYmplY3RDb252ZXJzaW9uKG5ld09wdGlvbi55QXhpcywgbmV3RGF0YXMsIGRhdGFNYXApO1xyXG4gICAgbmV3T3B0aW9uLnNlcmllcyA9IHRoaXMub2JqZWN0Q29udmVyc2lvbihcclxuICAgICAgbmV3T3B0aW9uLnNlcmllcyxcclxuICAgICAgbmV3RGF0YXMsXHJcbiAgICAgIGRhdGFNYXBcclxuICAgICk7XHJcbiAgICBjb25zdCBteUNoYXJ0ID0gKHRoaXMubXlDaGFydCA9IGVjaGFydHMuaW5pdChcclxuICAgICAgdGhpcy5jaGFydFJlZi5jdXJyZW50IGFzIEhUTUxEaXZFbGVtZW50XHJcbiAgICApKTsgLy/liJ3lp4vljJZlY2hhcnRz77yM6YCa6L+HcmVm5bGe5oCn6I635Y+WZG9tXHJcbiAgICBteUNoYXJ0LmNsZWFyKCk7XHJcbiAgICBteUNoYXJ0Lm9mZihcImNsaWNrXCIpO1xyXG4gICAgbXlDaGFydD8uZ2V0WnIoKT8ub2ZmKFwiY2xpY2tcIik7XHJcbiAgICBteUNoYXJ0LnNldE9wdGlvbihuZXdPcHRpb24pO1xyXG4gICAgbXlDaGFydC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcclxuICAgICAgT25DbGljayAmJiBPbkNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuICAgIG15Q2hhcnQ/LmdldFpyKCk/Lm9uKFwiY2xpY2tcIiwgKHBhcmFtcykgPT4ge1xyXG4gICAgICBPblpyQ2xpY2sgJiYgT25ackNsaWNrKHBhcmFtcywgbXlDaGFydCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLmhhbmRsZUNoYXJ0UmVzaXplLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhcnRSZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5teUNoYXJ0KSB7XHJcbiAgICAgIHRoaXMubXlDaGFydC5yZXNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGJveFN0eWxlID0ge1xyXG4gICAgICB3aWR0aDogdHlwZW9mIHdpZHRoID09IFwibnVtYmVyXCIgPyBweDJ2dyh3aWR0aCkgOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0eXBlb2YgaGVpZ2h0ID09IFwibnVtYmVyXCIgPyBweDJ2dyhoZWlnaHQpIDogaGVpZ2h0LFxyXG4gICAgfTtcclxuICAgIHJldHVybiA8ZGl2IHN0eWxlPXtib3hTdHlsZX0gcmVmPXt0aGlzLmNoYXJ0UmVmfT48L2Rpdj47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOc2NDaGFydDtcclxuIl19