nsc-react-component 2.12.2 → 2.13.1

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 (311) hide show
  1. package/lib/Interface.js +1 -1
  2. package/lib/Interface.js.map +1 -0
  3. package/lib/base/affix/index.js +5 -46
  4. package/lib/base/affix/index.js.map +1 -0
  5. package/lib/base/alert/index.js +5 -46
  6. package/lib/base/alert/index.js.map +1 -0
  7. package/lib/base/anchor/index.js +8 -49
  8. package/lib/base/anchor/index.js.map +1 -0
  9. package/lib/base/avatar/index.js +8 -49
  10. package/lib/base/avatar/index.js.map +1 -0
  11. package/lib/base/backTop/index.js +5 -46
  12. package/lib/base/backTop/index.js.map +1 -0
  13. package/lib/base/badge/index.js +8 -49
  14. package/lib/base/badge/index.js.map +1 -0
  15. package/lib/base/breadcrumb/index.js +5 -46
  16. package/lib/base/breadcrumb/index.js.map +1 -0
  17. package/lib/base/button/index.d.ts +1 -1
  18. package/lib/base/button/index.js +93 -134
  19. package/lib/base/button/index.js.map +1 -0
  20. package/lib/base/calendar/index.js +5 -46
  21. package/lib/base/calendar/index.js.map +1 -0
  22. package/lib/base/card/index.js +8 -50
  23. package/lib/base/card/index.js.map +1 -0
  24. package/lib/base/carousel/index.js +5 -46
  25. package/lib/base/carousel/index.js.map +1 -0
  26. package/lib/base/cascader/index.d.ts +3 -3
  27. package/lib/base/cascader/index.js +150 -221
  28. package/lib/base/cascader/index.js.map +1 -0
  29. package/lib/base/chart/index.d.ts +2 -2
  30. package/lib/base/chart/index.js +178 -287
  31. package/lib/base/chart/index.js.map +1 -0
  32. package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
  33. package/lib/base/checkbox/CheckboxGroup.js +165 -258
  34. package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
  35. package/lib/base/checkbox/index.d.ts +2 -2
  36. package/lib/base/checkbox/index.js +8 -48
  37. package/lib/base/checkbox/index.js.map +1 -0
  38. package/lib/base/collapse/index.js +8 -49
  39. package/lib/base/collapse/index.js.map +1 -0
  40. package/lib/base/comment/index.js +5 -46
  41. package/lib/base/comment/index.js.map +1 -0
  42. package/lib/base/common/BodyRow/index.js +48 -102
  43. package/lib/base/common/BodyRow/index.js.map +1 -0
  44. package/lib/base/common/EllipseCell/index.d.ts +1 -1
  45. package/lib/base/common/EllipseCell/index.js +16 -57
  46. package/lib/base/common/EllipseCell/index.js.map +1 -0
  47. package/lib/base/common/FileIcon.d.ts +2 -2
  48. package/lib/base/common/FileIcon.js +86 -132
  49. package/lib/base/common/FileIcon.js.map +1 -0
  50. package/lib/base/common/Icon.d.ts +2 -2
  51. package/lib/base/common/Icon.js +42 -96
  52. package/lib/base/common/Icon.js.map +1 -0
  53. package/lib/base/common/IconData.js +2 -2
  54. package/lib/base/common/IconData.js.map +1 -0
  55. package/lib/base/common/IconFont.d.ts +2 -2
  56. package/lib/base/common/IconFont.js +6 -8
  57. package/lib/base/common/IconFont.js.map +1 -0
  58. package/lib/base/common/NoAuthority.d.ts +2 -2
  59. package/lib/base/common/NoAuthority.js +13 -53
  60. package/lib/base/common/NoAuthority.js.map +1 -0
  61. package/lib/base/common/NoData.d.ts +2 -2
  62. package/lib/base/common/NoData.js +34 -74
  63. package/lib/base/common/NoData.js.map +1 -0
  64. package/lib/base/common/NoMessage.d.ts +2 -2
  65. package/lib/base/common/NoMessage.js +30 -70
  66. package/lib/base/common/NoMessage.js.map +1 -0
  67. package/lib/base/common/NoNetWork.d.ts +2 -2
  68. package/lib/base/common/NoNetWork.js +30 -70
  69. package/lib/base/common/NoNetWork.js.map +1 -0
  70. package/lib/base/common/Page404.d.ts +2 -2
  71. package/lib/base/common/Page404.js +30 -70
  72. package/lib/base/common/Page404.js.map +1 -0
  73. package/lib/base/common/PageRequest.js +91 -154
  74. package/lib/base/common/PageRequest.js.map +1 -0
  75. package/lib/base/common/TreePanel.d.ts +1 -1
  76. package/lib/base/common/TreePanel.js +133 -212
  77. package/lib/base/common/TreePanel.js.map +1 -0
  78. package/lib/base/common/iconfontalibaba.js +15 -22
  79. package/lib/base/common/iconfontalibaba.js.map +1 -0
  80. package/lib/base/common/withZhLocale.d.ts +1 -1
  81. package/lib/base/common/withZhLocale.js +3 -7
  82. package/lib/base/common/withZhLocale.js.map +1 -0
  83. package/lib/base/configProvider/index.js +8 -49
  84. package/lib/base/configProvider/index.js.map +1 -0
  85. package/lib/base/datepick/Rangepicker.d.ts +3 -3
  86. package/lib/base/datepick/Rangepicker.js +229 -325
  87. package/lib/base/datepick/Rangepicker.js.map +1 -0
  88. package/lib/base/datepick/index.d.ts +2 -2
  89. package/lib/base/datepick/index.js +56 -113
  90. package/lib/base/datepick/index.js.map +1 -0
  91. package/lib/base/descriptions/index.js +8 -49
  92. package/lib/base/descriptions/index.js.map +1 -0
  93. package/lib/base/divider/index.js +5 -46
  94. package/lib/base/divider/index.js.map +1 -0
  95. package/lib/base/download/index.js +42 -84
  96. package/lib/base/download/index.js.map +1 -0
  97. package/lib/base/drawer/index.js +14 -57
  98. package/lib/base/drawer/index.js.map +1 -0
  99. package/lib/base/dropdown/index.js +19 -65
  100. package/lib/base/dropdown/index.js.map +1 -0
  101. package/lib/base/editor/index.d.ts +1 -1
  102. package/lib/base/editor/index.js +83 -128
  103. package/lib/base/editor/index.js.map +1 -0
  104. package/lib/base/errorboundary/index.js +19 -63
  105. package/lib/base/errorboundary/index.js.map +1 -0
  106. package/lib/base/form/Form.d.ts +2 -2
  107. package/lib/base/form/Form.js +314 -427
  108. package/lib/base/form/Form.js.map +1 -0
  109. package/lib/base/form/filed/Cascader.d.ts +2 -2
  110. package/lib/base/form/filed/Cascader.js +6 -45
  111. package/lib/base/form/filed/Cascader.js.map +1 -0
  112. package/lib/base/form/filed/Checkbox.d.ts +2 -2
  113. package/lib/base/form/filed/Checkbox.js +6 -45
  114. package/lib/base/form/filed/Checkbox.js.map +1 -0
  115. package/lib/base/form/filed/DatePicker.d.ts +2 -2
  116. package/lib/base/form/filed/DatePicker.js +6 -45
  117. package/lib/base/form/filed/DatePicker.js.map +1 -0
  118. package/lib/base/form/filed/FormItem.d.ts +2 -2
  119. package/lib/base/form/filed/FormItem.js +65 -127
  120. package/lib/base/form/filed/FormItem.js.map +1 -0
  121. package/lib/base/form/filed/Input.d.ts +2 -2
  122. package/lib/base/form/filed/Input.js +14 -51
  123. package/lib/base/form/filed/Input.js.map +1 -0
  124. package/lib/base/form/filed/InputEamil.d.ts +2 -2
  125. package/lib/base/form/filed/InputEamil.js +5 -44
  126. package/lib/base/form/filed/InputEamil.js.map +1 -0
  127. package/lib/base/form/filed/InputNumber.d.ts +2 -2
  128. package/lib/base/form/filed/InputNumber.js +5 -44
  129. package/lib/base/form/filed/InputNumber.js.map +1 -0
  130. package/lib/base/form/filed/InputPassword.d.ts +2 -2
  131. package/lib/base/form/filed/InputPassword.js +5 -44
  132. package/lib/base/form/filed/InputPassword.js.map +1 -0
  133. package/lib/base/form/filed/Item.d.ts +3 -3
  134. package/lib/base/form/filed/Item.js +91 -163
  135. package/lib/base/form/filed/Item.js.map +1 -0
  136. package/lib/base/form/filed/Radio.d.ts +2 -2
  137. package/lib/base/form/filed/Radio.js +7 -45
  138. package/lib/base/form/filed/Radio.js.map +1 -0
  139. package/lib/base/form/filed/RangerPicker.d.ts +2 -2
  140. package/lib/base/form/filed/RangerPicker.js +6 -45
  141. package/lib/base/form/filed/RangerPicker.js.map +1 -0
  142. package/lib/base/form/filed/Rate.d.ts +2 -2
  143. package/lib/base/form/filed/Rate.js +6 -46
  144. package/lib/base/form/filed/Rate.js.map +1 -0
  145. package/lib/base/form/filed/Select.d.ts +2 -2
  146. package/lib/base/form/filed/Select.js +9 -49
  147. package/lib/base/form/filed/Select.js.map +1 -0
  148. package/lib/base/form/filed/Slider.d.ts +2 -2
  149. package/lib/base/form/filed/Slider.js +6 -46
  150. package/lib/base/form/filed/Slider.js.map +1 -0
  151. package/lib/base/form/filed/Switch.d.ts +2 -2
  152. package/lib/base/form/filed/Switch.js +6 -46
  153. package/lib/base/form/filed/Switch.js.map +1 -0
  154. package/lib/base/form/filed/TagSelect.d.ts +2 -2
  155. package/lib/base/form/filed/TagSelect.js +6 -45
  156. package/lib/base/form/filed/TagSelect.js.map +1 -0
  157. package/lib/base/form/filed/TextArea.d.ts +2 -2
  158. package/lib/base/form/filed/TextArea.js +5 -44
  159. package/lib/base/form/filed/TextArea.js.map +1 -0
  160. package/lib/base/form/filed/Upload.d.ts +2 -2
  161. package/lib/base/form/filed/Upload.js +9 -45
  162. package/lib/base/form/filed/Upload.js.map +1 -0
  163. package/lib/base/form/index.js +17 -58
  164. package/lib/base/form/index.js.map +1 -0
  165. package/lib/base/grid/Col.js +5 -46
  166. package/lib/base/grid/Col.js.map +1 -0
  167. package/lib/base/grid/Row.js +5 -46
  168. package/lib/base/grid/Row.js.map +1 -0
  169. package/lib/base/grid/index.js +1 -1
  170. package/lib/base/grid/index.js.map +1 -0
  171. package/lib/base/iframe/index.d.ts +1 -1
  172. package/lib/base/iframe/index.js +44 -93
  173. package/lib/base/iframe/index.js.map +1 -0
  174. package/lib/base/image/index.js +163 -261
  175. package/lib/base/image/index.js.map +1 -0
  176. package/lib/base/input/Email.d.ts +2 -2
  177. package/lib/base/input/Email.js +55 -103
  178. package/lib/base/input/Email.js.map +1 -0
  179. package/lib/base/input/Number.d.ts +1 -1
  180. package/lib/base/input/Number.js +48 -104
  181. package/lib/base/input/Number.js.map +1 -0
  182. package/lib/base/input/Password.d.ts +1 -1
  183. package/lib/base/input/Password.js +48 -104
  184. package/lib/base/input/Password.js.map +1 -0
  185. package/lib/base/input/Search.d.ts +1 -1
  186. package/lib/base/input/Search.js +46 -102
  187. package/lib/base/input/Search.js.map +1 -0
  188. package/lib/base/input/TextArea.d.ts +1 -1
  189. package/lib/base/input/TextArea.js +64 -123
  190. package/lib/base/input/TextArea.js.map +1 -0
  191. package/lib/base/input/index.d.ts +2 -2
  192. package/lib/base/input/index.js +121 -195
  193. package/lib/base/input/index.js.map +1 -0
  194. package/lib/base/layout/index.js +14 -56
  195. package/lib/base/layout/index.js.map +1 -0
  196. package/lib/base/list/index.js +8 -49
  197. package/lib/base/list/index.js.map +1 -0
  198. package/lib/base/menu/index.d.ts +5 -5
  199. package/lib/base/menu/index.js +100 -164
  200. package/lib/base/menu/index.js.map +1 -0
  201. package/lib/base/message/index.js +5 -47
  202. package/lib/base/message/index.js.map +1 -0
  203. package/lib/base/modal/Confirm.js +14 -18
  204. package/lib/base/modal/Confirm.js.map +1 -0
  205. package/lib/base/modal/index.d.ts +1 -1
  206. package/lib/base/modal/index.js +274 -359
  207. package/lib/base/modal/index.js.map +1 -0
  208. package/lib/base/notification/index.js +5 -47
  209. package/lib/base/notification/index.js.map +1 -0
  210. package/lib/base/pageHeader/index.js +5 -46
  211. package/lib/base/pageHeader/index.js.map +1 -0
  212. package/lib/base/pagination/index.js +5 -46
  213. package/lib/base/pagination/index.js.map +1 -0
  214. package/lib/base/pdfviwer/index.d.ts +1 -1
  215. package/lib/base/pdfviwer/index.js +67 -92
  216. package/lib/base/pdfviwer/index.js.map +1 -0
  217. package/lib/base/popconfirm/index.js +5 -46
  218. package/lib/base/popconfirm/index.js.map +1 -0
  219. package/lib/base/popover/index.js +19 -65
  220. package/lib/base/popover/index.js.map +1 -0
  221. package/lib/base/progress/index.js +5 -46
  222. package/lib/base/progress/index.js.map +1 -0
  223. package/lib/base/radio/RadioGroup.d.ts +1 -1
  224. package/lib/base/radio/RadioGroup.js +198 -295
  225. package/lib/base/radio/RadioGroup.js.map +1 -0
  226. package/lib/base/radio/index.d.ts +1 -1
  227. package/lib/base/radio/index.js +8 -50
  228. package/lib/base/radio/index.js.map +1 -0
  229. package/lib/base/result/index.js +5 -46
  230. package/lib/base/result/index.js.map +1 -0
  231. package/lib/base/select/index.d.ts +4 -4
  232. package/lib/base/select/index.js +358 -475
  233. package/lib/base/select/index.js.map +1 -0
  234. package/lib/base/skeleton/index.js +5 -46
  235. package/lib/base/skeleton/index.js.map +1 -0
  236. package/lib/base/space/index.js +5 -46
  237. package/lib/base/space/index.js.map +1 -0
  238. package/lib/base/spin/index.js +5 -46
  239. package/lib/base/spin/index.js.map +1 -0
  240. package/lib/base/statistic/index.js +8 -49
  241. package/lib/base/statistic/index.js.map +1 -0
  242. package/lib/base/steps/index.js +8 -49
  243. package/lib/base/steps/index.js.map +1 -0
  244. package/lib/base/switch/index.js +5 -46
  245. package/lib/base/switch/index.js.map +1 -0
  246. package/lib/base/table/index.d.ts +8 -8
  247. package/lib/base/table/index.js +743 -927
  248. package/lib/base/table/index.js.map +1 -0
  249. package/lib/base/tabs/Tabpane.d.ts +1 -1
  250. package/lib/base/tabs/Tabpane.js +22 -58
  251. package/lib/base/tabs/Tabpane.js.map +1 -0
  252. package/lib/base/tabs/index.d.ts +1 -1
  253. package/lib/base/tabs/index.js +110 -156
  254. package/lib/base/tabs/index.js.map +1 -0
  255. package/lib/base/tagSelect/TagSelect.d.ts +3 -3
  256. package/lib/base/tagSelect/TagSelect.js +124 -213
  257. package/lib/base/tagSelect/TagSelect.js.map +1 -0
  258. package/lib/base/tagSelect/index.d.ts +3 -3
  259. package/lib/base/tagSelect/index.js +90 -145
  260. package/lib/base/tagSelect/index.js.map +1 -0
  261. package/lib/base/timeline/index.js +8 -49
  262. package/lib/base/timeline/index.js.map +1 -0
  263. package/lib/base/tooltip/index.js +19 -65
  264. package/lib/base/tooltip/index.js.map +1 -0
  265. package/lib/base/transfer/index.js +5 -46
  266. package/lib/base/transfer/index.js.map +1 -0
  267. package/lib/base/tree/TreeSearch.d.ts +3 -3
  268. package/lib/base/tree/TreeSearch.js +119 -186
  269. package/lib/base/tree/TreeSearch.js.map +1 -0
  270. package/lib/base/tree/index.d.ts +2 -2
  271. package/lib/base/tree/index.js +169 -241
  272. package/lib/base/tree/index.js.map +1 -0
  273. package/lib/base/treeselect/index.js +5 -46
  274. package/lib/base/treeselect/index.js.map +1 -0
  275. package/lib/base/typography/index.js +5 -46
  276. package/lib/base/typography/index.js.map +1 -0
  277. package/lib/base/upload/Dragger.js +370 -605
  278. package/lib/base/upload/Dragger.js.map +1 -0
  279. package/lib/base/upload/Upload.js +352 -529
  280. package/lib/base/upload/Upload.js.map +1 -0
  281. package/lib/base/upload/index copy.d.ts +1 -1
  282. package/lib/base/upload/index copy.js +315 -431
  283. package/lib/base/upload/index copy.js.map +1 -0
  284. package/lib/base/upload/index.js +366 -640
  285. package/lib/base/upload/index.js.map +1 -0
  286. package/lib/config.d.ts +2 -0
  287. package/lib/config.js +7 -9
  288. package/lib/config.js.map +1 -0
  289. package/lib/constants.js +2 -2
  290. package/lib/constants.js.map +1 -0
  291. package/lib/index.js +2 -1
  292. package/lib/index.js.map +1 -0
  293. package/lib/page/BasePage/Form.d.ts +1 -1
  294. package/lib/page/BasePage/Form.js +253 -360
  295. package/lib/page/BasePage/Form.js.map +1 -0
  296. package/lib/page/BasePage/index.d.ts +3 -3
  297. package/lib/page/BasePage/index.js +777 -959
  298. package/lib/page/BasePage/index.js.map +1 -0
  299. package/lib/page/BasePage/index.module.less +0 -6
  300. package/lib/page/HeaderSearch/index.d.ts +1 -1
  301. package/lib/page/HeaderSearch/index.js +196 -272
  302. package/lib/page/HeaderSearch/index.js.map +1 -0
  303. package/lib/page/PasswordCheck/index.d.ts +1 -1
  304. package/lib/page/PasswordCheck/index.js +53 -109
  305. package/lib/page/PasswordCheck/index.js.map +1 -0
  306. package/lib/treeUtils.js +45 -58
  307. package/lib/treeUtils.js.map +1 -0
  308. package/lib/utils.d.ts +2 -2
  309. package/lib/utils.js +48 -61
  310. package/lib/utils.js.map +1 -0
  311. package/package.json +1 -1
@@ -1,43 +1,16 @@
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
1
  import "antd/es/modal/style/css";
4
2
  import _Modal from "antd/es/modal";
5
3
  import "antd/es/drawer/style/css";
6
4
  import _Drawer from "antd/es/drawer";
7
- var _excluded = ["type", "closable", "okButtonProps", "cancelButtonProps", "formExpand"];
8
-
9
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
10
-
5
+ const _excluded = ["type", "closable", "okButtonProps", "cancelButtonProps", "formExpand"];
6
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
7
  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; }
12
-
13
8
  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; }
14
-
15
- 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; }
16
-
17
- 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; }
18
-
19
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
-
21
- 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); } }
22
-
23
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
24
-
25
- 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); }
26
-
27
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
-
29
- 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); }; }
30
-
31
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
32
-
33
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
34
-
35
- 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; } }
36
-
37
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
38
-
39
- 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; }
40
-
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ 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; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
+ 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); }
41
14
  import React, { createRef, PureComponent } from "react";
42
15
  import { utils } from "@bj-nsc/msn/lib/utils";
43
16
  import config from "../../config";
@@ -50,30 +23,16 @@ import Confirm from "./Confirm";
50
23
  import omit from "omit.js";
51
24
  import Draggable from "react-draggable";
52
25
  import cls from "classnames";
53
-
54
- var NscModal = /*#__PURE__*/function (_PureComponent) {
55
- _inherits(NscModal, _PureComponent);
56
-
57
- var _super = _createSuper(NscModal);
58
-
59
- // static confirm = Modal.confirm;
60
- //返回值
61
- function NscModal(props) {
26
+ export default class NscModal extends PureComponent {
27
+ constructor(props) {
62
28
  var _autoType;
63
-
64
- var _this2;
65
-
66
- _classCallCheck(this, NscModal);
67
-
68
- _this2 = _super.call(this, props);
69
-
70
- _defineProperty(_assertThisInitialized(_this2), "returnValue", null);
71
-
72
- _defineProperty(_assertThisInitialized(_this2), "draggleRef", /*#__PURE__*/createRef());
73
-
74
- _defineProperty(_assertThisInitialized(_this2), "option", {
29
+ super(props);
30
+ //返回值
31
+ _defineProperty(this, "returnValue", null);
32
+ _defineProperty(this, "draggleRef", /*#__PURE__*/createRef());
33
+ _defineProperty(this, "option", {
75
34
  //回调作用域
76
- scope: _assertThisInitialized(_this2),
35
+ scope: this,
77
36
  //open传递过来的页面参数
78
37
  params: {},
79
38
  //显示之前回调
@@ -85,15 +44,13 @@ var NscModal = /*#__PURE__*/function (_PureComponent) {
85
44
  //显示之后回调
86
45
  afterRender: null
87
46
  });
88
-
89
- _defineProperty(_assertThisInitialized(_this2), "listenMessage", function (ev) {
90
- var data = typeof ev.data === "string" ? JSON.parse(ev.data) : ev.data;
91
-
92
- var _this = _assertThisInitialized(_this2);
93
-
47
+ _defineProperty(this, "listenMessage", ev => {
48
+ const data = typeof ev.data === "string" ? JSON.parse(ev.data) : ev.data;
49
+ let _this = this;
94
50
  if (data.eventType == "changeFormType") {
95
- var payload = data.payload;
96
-
51
+ const {
52
+ payload
53
+ } = data;
97
54
  if (payload.type == "modal" || payload.type == "drawer") {
98
55
  _this.setState({
99
56
  modalType: payload.type
@@ -101,12 +58,11 @@ var NscModal = /*#__PURE__*/function (_PureComponent) {
101
58
  }
102
59
  }
103
60
  });
104
-
105
- var modal = props.type || "auto";
106
- var storePrefix = getStorage("store-pre-key");
107
- var autoType = getStorage(storePrefix ? storePrefix + "formType" : "formType");
61
+ let modal = props.type || "auto";
62
+ let storePrefix = getStorage("store-pre-key");
63
+ let autoType = getStorage(storePrefix ? storePrefix + "formType" : "formType");
108
64
  autoType = (_autoType = autoType) === null || _autoType === void 0 ? void 0 : _autoType.content;
109
- _this2.state = {
65
+ this.state = {
110
66
  visible: false,
111
67
  expand: false,
112
68
  modalType: modal == "auto" ? autoType : modal,
@@ -118,323 +74,282 @@ var NscModal = /*#__PURE__*/function (_PureComponent) {
118
74
  },
119
75
  dragger: true
120
76
  };
121
- return _this2;
77
+ }
78
+ /**
79
+ * 渲染完成
80
+ * @param {*} option 整改传递对象
81
+ */
82
+ componentDidMount() {
83
+ window.addEventListener("message", this.listenMessage);
84
+ }
85
+ componentWillUnmount() {
86
+ window.removeEventListener("message", this.listenMessage);
87
+ }
88
+ //显示
89
+ show() {
90
+ let option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
91
+ const {
92
+ scope
93
+ } = this.option;
94
+ const {
95
+ beforeRender,
96
+ afterRender
97
+ } = option;
98
+ this.option = _objectSpread(_objectSpread({}, this.option), option);
99
+ utils.callback(beforeRender, scope);
100
+ this.setState({
101
+ visible: true
102
+ }, () => {
103
+ utils.callback(afterRender, scope);
104
+ });
122
105
  }
123
106
 
124
- _createClass(NscModal, [{
125
- key: "componentDidMount",
126
- value:
127
- /**
128
- * 渲染完成
129
- * @param {*} option 整改传递对象
130
- */
131
- function componentDidMount() {
132
- window.addEventListener("message", this.listenMessage);
133
- }
134
- }, {
135
- key: "componentWillUnmount",
136
- value: function componentWillUnmount() {
137
- window.removeEventListener("message", this.listenMessage);
138
- }
139
- }, {
140
- key: "show",
141
- value: //显示
142
- function show() {
143
- var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
144
- var scope = this.option.scope;
145
- var beforeRender = option.beforeRender,
146
- afterRender = option.afterRender;
147
- this.option = _objectSpread(_objectSpread({}, this.option), option);
148
- utils.callback(beforeRender, scope);
149
- this.setState({
150
- visible: true
151
- }, function () {
152
- utils.callback(afterRender, scope);
153
- });
154
- } //隐藏
155
-
156
- }, {
157
- key: "hide",
158
- value: function hide() {
159
- var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
160
-
161
- var _this = this;
162
-
163
- _this.setState({
164
- visible: false
165
- });
166
- } //获取需要返回的值
167
-
168
- }, {
169
- key: "getReturnValue",
170
- value: function getReturnValue() {
171
- return this.returnValue;
172
- }
173
- /**
174
- * 关闭带回调
175
- */
176
-
177
- }, {
178
- key: "close",
179
- value: function close(result) {
180
- var buttonClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
181
-
182
- var _this = this; // const { callback, scope, callbackBeforeClose } = this.option;
183
-
184
-
185
- var _this$props = this.props,
186
- _this$props$formExpan = _this$props.formExpand,
187
- formExpand = _this$props$formExpan === void 0 ? {} : _this$props$formExpan,
188
- onCancel = _this$props.onCancel,
189
- onButtonCancel = _this$props.onButtonCancel,
190
- onClose = _this$props.onClose; // const r = utils.callback(callbackBeforeClose, scope, [this.returnValue]);
191
- // if (r !== false) {
107
+ //隐藏
108
+ hide() {
109
+ let option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
110
+ let _this = this;
111
+ _this.setState({
112
+ visible: false
113
+ });
114
+ }
192
115
 
193
- var _formExpand$expand = formExpand.expand,
194
- expand = _formExpand$expand === void 0 ? false : _formExpand$expand;
116
+ //获取需要返回的值
117
+ getReturnValue() {
118
+ return this.returnValue;
119
+ }
195
120
 
196
- if (expand && formExpand.valid && formExpand.change) {
197
- Confirm({
198
- content: "当前记录已修改尚未保存,确定要放弃修改吗?",
199
- onOk: function onOk() {
200
- if (onCancel || onClose) {
201
- if (buttonClose && onButtonCancel) {
202
- onButtonCancel(result);
203
- } else {
204
- onCancel && onCancel(result);
205
- onClose && onClose(result);
206
- }
121
+ /**
122
+ * 关闭带回调
123
+ */
124
+ close(result) {
125
+ let buttonClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
126
+ var _this = this;
127
+ // const { callback, scope, callbackBeforeClose } = this.option;
128
+ const {
129
+ formExpand = {},
130
+ onCancel,
131
+ onButtonCancel,
132
+ onClose
133
+ } = this.props;
134
+ // const r = utils.callback(callbackBeforeClose, scope, [this.returnValue]);
135
+ // if (r !== false) {
136
+ const {
137
+ expand = false
138
+ } = formExpand;
139
+ if (expand && formExpand.valid && formExpand.change) {
140
+ Confirm({
141
+ content: "当前记录已修改尚未保存,确定要放弃修改吗?",
142
+ onOk() {
143
+ if (onCancel || onClose) {
144
+ if (buttonClose && onButtonCancel) {
145
+ onButtonCancel(result);
207
146
  } else {
208
- _this.setState({
209
- visible: false
210
- });
147
+ onCancel && onCancel(result);
148
+ onClose && onClose(result);
211
149
  }
212
- }
213
- });
214
- } else {
215
- if (onCancel || onClose) {
216
- if (buttonClose && onButtonCancel) {
217
- onButtonCancel(result);
218
150
  } else {
219
- onCancel && onCancel(result);
220
- onClose && onClose(result);
151
+ _this.setState({
152
+ visible: false
153
+ });
221
154
  }
155
+ }
156
+ });
157
+ } else {
158
+ if (onCancel || onClose) {
159
+ if (buttonClose && onButtonCancel) {
160
+ onButtonCancel(result);
222
161
  } else {
223
- _this.setState({
224
- visible: false
225
- });
162
+ onCancel && onCancel(result);
163
+ onClose && onClose(result);
226
164
  }
227
- } // }
228
- // utils.callback(callback, scope, [_this.returnValue]);
229
-
165
+ } else {
166
+ _this.setState({
167
+ visible: false
168
+ });
169
+ }
230
170
  }
231
- /**
232
- * 获取参数,如果key不传递,且获取全部
233
- * @param {String} key
234
- */
171
+ // }
172
+ // utils.callback(callback, scope, [_this.returnValue]);
173
+ }
235
174
 
236
- }, {
237
- key: "getParams",
238
- value: function getParams(key) {
239
- if (key) return this.option.params[key];
240
- return this.option.params;
175
+ /**
176
+ * 获取参数,如果key不传递,且获取全部
177
+ * @param {String} key
178
+ */
179
+ getParams(key) {
180
+ if (key) return this.option.params[key];
181
+ return this.option.params;
182
+ }
183
+ onStart(_event, uiData) {
184
+ var _this$draggleRef$curr;
185
+ const {
186
+ clientWidth,
187
+ clientHeight
188
+ } = window.document.documentElement;
189
+ const targetRect = (_this$draggleRef$curr = this.draggleRef.current) === null || _this$draggleRef$curr === void 0 ? void 0 : _this$draggleRef$curr.getBoundingClientRect();
190
+ if (!targetRect) {
191
+ return;
241
192
  }
242
- }, {
243
- key: "onStart",
244
- value: function onStart(_event, uiData) {
245
- var _this$draggleRef$curr;
246
-
247
- var _window$document$docu = window.document.documentElement,
248
- clientWidth = _window$document$docu.clientWidth,
249
- clientHeight = _window$document$docu.clientHeight;
250
- var targetRect = (_this$draggleRef$curr = this.draggleRef.current) === null || _this$draggleRef$curr === void 0 ? void 0 : _this$draggleRef$curr.getBoundingClientRect();
251
-
252
- if (!targetRect) {
253
- return;
193
+ this.setState({
194
+ bounds: {
195
+ left: -targetRect.left + uiData.x,
196
+ right: clientWidth - (targetRect.right - uiData.x),
197
+ top: -targetRect.top + uiData.y,
198
+ bottom: clientHeight - (targetRect.bottom - uiData.y)
254
199
  }
255
-
256
- this.setState({
257
- bounds: {
258
- left: -targetRect.left + uiData.x,
259
- right: clientWidth - (targetRect.right - uiData.x),
260
- top: -targetRect.top + uiData.y,
261
- bottom: clientHeight - (targetRect.bottom - uiData.y)
200
+ });
201
+ }
202
+ render() {
203
+ const _this$props = this.props,
204
+ {
205
+ type = "modal",
206
+ closable,
207
+ // title: orgtitle,
208
+ okButtonProps = {},
209
+ cancelButtonProps = {},
210
+ formExpand = {}
211
+ } = _this$props,
212
+ params = _objectWithoutProperties(_this$props, _excluded);
213
+ let props = _objectSpread({}, params);
214
+ let {
215
+ mountElementId
216
+ } = config();
217
+ if (mountElementId) {
218
+ props = _objectSpread({
219
+ getContainer: () => document.getElementById(mountElementId)
220
+ }, props);
221
+ }
222
+ if (props.dragable || type == "modal") {
223
+ props = _objectSpread({
224
+ modalRender: modal => {
225
+ return /*#__PURE__*/React.createElement(Draggable, {
226
+ disabled: this.state.dragger,
227
+ bounds: this.state.bounds,
228
+ onStart: (event, uiData) => {
229
+ this.onStart(event, uiData);
230
+ }
231
+ }, /*#__PURE__*/React.createElement("div", {
232
+ ref: this.draggleRef
233
+ }, modal));
262
234
  }
263
- });
235
+ }, props);
264
236
  }
265
- }, {
266
- key: "render",
267
- value: function render() {
268
- var _this3 = this;
269
-
270
- var _this$props2 = this.props,
271
- _this$props2$type = _this$props2.type,
272
- type = _this$props2$type === void 0 ? "modal" : _this$props2$type,
273
- closable = _this$props2.closable,
274
- _this$props2$okButton = _this$props2.okButtonProps,
275
- okButtonProps = _this$props2$okButton === void 0 ? {} : _this$props2$okButton,
276
- _this$props2$cancelBu = _this$props2.cancelButtonProps,
277
- cancelButtonProps = _this$props2$cancelBu === void 0 ? {} : _this$props2$cancelBu,
278
- _this$props2$formExpa = _this$props2.formExpand,
279
- formExpand = _this$props2$formExpa === void 0 ? {} : _this$props2$formExpa,
280
- params = _objectWithoutProperties(_this$props2, _excluded);
281
-
282
- var props = _objectSpread({}, params);
283
-
284
- var _config = config(),
285
- mountElementId = _config.mountElementId;
286
-
287
- if (mountElementId) {
288
- props = _objectSpread({
289
- getContainer: function getContainer() {
290
- return document.getElementById(mountElementId);
291
- }
292
- }, props);
237
+ const title = /*#__PURE__*/React.createElement("div", {
238
+ className: cls(getLess(styles, "title"), {
239
+ [getLess(styles, "title-dragger")]: this.props.dragable && type == "modal"
240
+ }),
241
+ onMouseOver: () => {
242
+ if (this.state.dragger) {
243
+ this.setState({
244
+ dragger: false
245
+ });
246
+ }
247
+ },
248
+ onMouseOut: () => {
249
+ this.setState({
250
+ dragger: true
251
+ });
293
252
  }
294
-
295
- if (props.dragable || type == "modal") {
296
- props = _objectSpread({
297
- modalRender: function modalRender(modal) {
298
- return /*#__PURE__*/React.createElement(Draggable, {
299
- disabled: _this3.state.dragger,
300
- bounds: _this3.state.bounds,
301
- onStart: function onStart(event, uiData) {
302
- _this3.onStart(event, uiData);
303
- }
304
- }, /*#__PURE__*/React.createElement("div", {
305
- ref: _this3.draggleRef
306
- }, modal));
307
- }
308
- }, props);
253
+ }, /*#__PURE__*/React.createElement("div", {
254
+ className: getLess(styles, "icons")
255
+ }, !this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
256
+ onClick: () => {
257
+ this.setState({
258
+ expand: true
259
+ });
260
+ },
261
+ className: getLess(styles, "icon")
262
+ }, /*#__PURE__*/React.createElement(ExpandOutlined, null)), this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
263
+ onClick: () => {
264
+ this.setState({
265
+ expand: false
266
+ });
267
+ },
268
+ className: getLess(styles, "icon")
269
+ }, /*#__PURE__*/React.createElement(CompressOutlined, null)), closable !== false && /*#__PURE__*/React.createElement("div", {
270
+ onClick: () => {
271
+ this.close();
272
+ },
273
+ className: getLess(styles, "icon"),
274
+ style: {
275
+ marginRight: 0
309
276
  }
310
-
311
- var title = /*#__PURE__*/React.createElement("div", {
312
- className: cls(getLess(styles, "title"), _defineProperty({}, getLess(styles, "title-dragger"), this.props.dragable && type == "modal")),
313
- onMouseOver: function onMouseOver() {
314
- if (_this3.state.dragger) {
315
- _this3.setState({
316
- dragger: false
317
- });
318
- }
277
+ }, /*#__PURE__*/React.createElement(CloseOutlined, null))), /*#__PURE__*/React.createElement("div", {
278
+ className: getLess(styles, "title-content")
279
+ }, this.props.title));
280
+ const {
281
+ modalButton
282
+ } = config();
283
+ const footer = /*#__PURE__*/React.createElement("div", {
284
+ className: getLess(styles, "footer")
285
+ }, /*#__PURE__*/React.createElement(Button, _extends({
286
+ type: "primary",
287
+ onClick: () => {
288
+ props.onOk && props.onOk();
289
+ },
290
+ icon: /*#__PURE__*/React.createElement(PlusCircleOutlined, null)
291
+ }, modalButton.okButtonProps, okButtonProps), this.props.okText ? this.props.okText : "保存"), /*#__PURE__*/React.createElement(Button, _extends({
292
+ onClick: this.close.bind(this, {}, true),
293
+ className: getLess(styles, "button-margin"),
294
+ icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null)
295
+ }, modalButton.cancleButtonProps, cancelButtonProps), this.props.cancelText ? this.props.cancelText : "取消"));
296
+ if (formExpand.expand) {
297
+ props = _objectSpread(_objectSpread({
298
+ footer: footer
299
+ }, props), {}, {
300
+ title: title,
301
+ closable: false,
302
+ style: {
303
+ maxWidth: "100vw"
319
304
  },
320
- onMouseOut: function onMouseOut() {
321
- _this3.setState({
322
- dragger: true
323
- });
305
+ className: this.state.expand ? getLess(styles, "allsreen") : "",
306
+ width: this.state.expand ? "100vw" : props.width
307
+ });
308
+ } else {
309
+ props = _objectSpread(_objectSpread({
310
+ footer: footer
311
+ }, props), {}, {
312
+ title: title,
313
+ closable: false
314
+ });
315
+ }
316
+ if (this.state.modalType == "drawer") {
317
+ let oldProps = _objectSpread({}, props);
318
+ let newDrawerProps = omit(oldProps, ["onOk", "okButtonProps"]);
319
+ return /*#__PURE__*/React.createElement(_Drawer, _extends({
320
+ visible: this.state.visible,
321
+ onClose: () => {
322
+ this.close();
324
323
  }
325
- }, /*#__PURE__*/React.createElement("div", {
326
- className: getLess(styles, "icons")
327
- }, !this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
328
- onClick: function onClick() {
329
- _this3.setState({
330
- expand: true
331
- });
324
+ }, newDrawerProps));
325
+ } else {
326
+ return /*#__PURE__*/React.createElement(_Modal, _extends({
327
+ visible: this.state.visible,
328
+ onCancel: () => {
329
+ this.close();
330
+ },
331
+ onOk: () => {
332
+ this.close();
332
333
  },
333
- className: getLess(styles, "icon")
334
- }, /*#__PURE__*/React.createElement(ExpandOutlined, null)), this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
335
- onClick: function onClick() {
336
- _this3.setState({
334
+ okText: "确定",
335
+ cancelText: "取消",
336
+ centered: true
337
+ // title={formExpand ? title : this.props.title}
338
+ }, props, {
339
+ afterClose: () => {
340
+ this.setState({
337
341
  expand: false
338
342
  });
339
343
  },
340
- className: getLess(styles, "icon")
341
- }, /*#__PURE__*/React.createElement(CompressOutlined, null)), closable !== false && /*#__PURE__*/React.createElement("div", {
342
- onClick: function onClick() {
343
- _this3.close();
344
- },
345
- className: getLess(styles, "icon"),
346
- style: {
347
- marginRight: 0
348
- }
349
- }, /*#__PURE__*/React.createElement(CloseOutlined, null))), /*#__PURE__*/React.createElement("div", {
350
- className: getLess(styles, "title-content")
351
- }, this.props.title));
352
-
353
- var _config2 = config(),
354
- modalButton = _config2.modalButton;
355
-
356
- var footer = /*#__PURE__*/React.createElement("div", {
357
- className: getLess(styles, "footer")
358
- }, /*#__PURE__*/React.createElement(Button, _extends({
359
- type: "primary",
360
- onClick: function onClick() {
361
- props.onOk && props.onOk();
362
- },
363
- icon: /*#__PURE__*/React.createElement(PlusCircleOutlined, null)
364
- }, modalButton.okButtonProps, okButtonProps), this.props.okText ? this.props.okText : "保存"), /*#__PURE__*/React.createElement(Button, _extends({
365
- onClick: this.close.bind(this, {}, true),
366
- className: getLess(styles, "button-margin"),
367
- icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null)
368
- }, modalButton.cancleButtonProps, cancelButtonProps), this.props.cancelText ? this.props.cancelText : "取消"));
369
-
370
- if (formExpand.expand) {
371
- props = _objectSpread(_objectSpread({
372
- footer: footer
373
- }, props), {}, {
374
- title: title,
375
- closable: false,
376
- style: {
377
- maxWidth: "100vw"
378
- },
379
- className: this.state.expand ? getLess(styles, "allsreen") : "",
380
- width: this.state.expand ? "100vw" : props.width
381
- });
382
- } else {
383
- props = _objectSpread(_objectSpread({
384
- footer: footer
385
- }, props), {}, {
386
- title: title,
387
- closable: false
388
- });
389
- }
390
-
391
- if (this.state.modalType == "drawer") {
392
- var oldProps = _objectSpread({}, props);
393
-
394
- var newDrawerProps = omit(oldProps, ["onOk", "okButtonProps"]);
395
- return /*#__PURE__*/React.createElement(_Drawer, _extends({
396
- visible: this.state.visible,
397
- onClose: function onClose() {
398
- _this3.close();
399
- }
400
- }, newDrawerProps));
401
- } else {
402
- return /*#__PURE__*/React.createElement(_Modal, _extends({
403
- visible: this.state.visible,
404
- onCancel: function onCancel() {
405
- _this3.close();
406
- },
407
- onOk: function onOk() {
408
- _this3.close();
409
- },
410
- okText: "确定",
411
- cancelText: "取消",
412
- centered: true // title={formExpand ? title : this.props.title}
413
-
414
- }, props, {
415
- afterClose: function afterClose() {
416
- _this3.setState({
417
- expand: false
418
- });
419
- },
420
- className: getLess(styles, 'nsc-modal')
421
- }));
422
- }
344
+ className: getLess(styles, 'nsc-modal')
345
+ }));
423
346
  }
424
- }]);
425
-
426
- return NscModal;
427
- }(PureComponent);
428
-
347
+ }
348
+ }
429
349
  _defineProperty(NscModal, "confirm", Confirm);
430
-
350
+ // static confirm = Modal.confirm;
431
351
  _defineProperty(NscModal, "info", _Modal.info);
432
-
433
352
  _defineProperty(NscModal, "success", _Modal.success);
434
-
435
353
  _defineProperty(NscModal, "error", _Modal.error);
436
-
437
354
  _defineProperty(NscModal, "warning", _Modal.warning);
438
-
439
- export { NscModal as default };
440
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvbW9kYWwvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiY3JlYXRlUmVmIiwiUHVyZUNvbXBvbmVudCIsInV0aWxzIiwiY29uZmlnIiwiUGx1c0NpcmNsZU91dGxpbmVkIiwiQ2xvc2VDaXJjbGVPdXRsaW5lZCIsIkNsb3NlT3V0bGluZWQiLCJFeHBhbmRPdXRsaW5lZCIsIkNvbXByZXNzT3V0bGluZWQiLCJCdXR0b24iLCJnZXRMZXNzIiwic3R5bGVzIiwiZ2V0U3RvcmFnZSIsIkNvbmZpcm0iLCJvbWl0IiwiRHJhZ2dhYmxlIiwiY2xzIiwiTnNjTW9kYWwiLCJwcm9wcyIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJtb2RhbFR5cGUiLCJtb2RhbCIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50Iiwic3RhdGUiLCJ2aXNpYmxlIiwiZXhwYW5kIiwiYm91bmRzIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiZHJhZ2dlciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9wdGlvbiIsInJldHVyblZhbHVlIiwicmVzdWx0IiwiYnV0dG9uQ2xvc2UiLCJmb3JtRXhwYW5kIiwib25DYW5jZWwiLCJvbkJ1dHRvbkNhbmNlbCIsIm9uQ2xvc2UiLCJ2YWxpZCIsImNoYW5nZSIsIm9uT2siLCJrZXkiLCJfZXZlbnQiLCJ1aURhdGEiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwidGFyZ2V0UmVjdCIsImRyYWdnbGVSZWYiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsInkiLCJjbG9zYWJsZSIsIm9rQnV0dG9uUHJvcHMiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm1vdW50RWxlbWVudElkIiwiZ2V0Q29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJkcmFnYWJsZSIsIm1vZGFsUmVuZGVyIiwiZXZlbnQiLCJvblN0YXJ0IiwidGl0bGUiLCJjbG9zZSIsIm1hcmdpblJpZ2h0IiwibW9kYWxCdXR0b24iLCJmb290ZXIiLCJva1RleHQiLCJiaW5kIiwiY2FuY2xlQnV0dG9uUHJvcHMiLCJjYW5jZWxUZXh0Iiwic3R5bGUiLCJtYXhXaWR0aCIsImNsYXNzTmFtZSIsIndpZHRoIiwib2xkUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsImluZm8iLCJzdWNjZXNzIiwiZXJyb3IiLCJ3YXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsU0FBaEIsRUFBMkJDLGFBQTNCLFFBQTJELE9BQTNEO0FBRUEsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FDRUMsa0JBREYsRUFFRUMsbUJBRkYsRUFHRUMsYUFIRixFQUlFQyxjQUpGLEVBS0VDLGdCQUxGLFFBTU8sbUJBTlA7QUFPQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixpQkFBdEI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCOztJQWNxQkMsUTs7Ozs7QUFFbkI7QUFLQTtBQUdBLG9CQUFZQyxLQUFaLEVBQW1C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VUFBVSxFQUFFLElBVGQ7QUFVRSxVQUFBLFFBQVEsRUFBRSxJQVZaLENBV0U7O0FBWEYsV0FZTXJFLEtBWk47QUFhRSxVQUFBLFVBQVUsRUFBRSxzQkFBTTtBQUNoQixZQUFBLE1BQUksQ0FBQ2UsUUFBTCxDQUFjO0FBQ1pRLGNBQUFBLE1BQU0sRUFBRTtBQURJLGFBQWQ7QUFHRCxXQWpCSDtBQWtCRSxVQUFBLFNBQVMsRUFBRS9CLE9BQU8sQ0FBQ0MsTUFBRCxFQUFRLFdBQVI7QUFsQnBCLFdBREY7QUFzQkQ7QUFDRjs7OztFQXJVbUNWLGE7O2dCQUFqQmdCLFEsYUFDRkosTzs7Z0JBREVJLFEsVUFHTCxPQUFNb0YsSTs7Z0JBSERwRixRLGFBSUYsT0FBTXFGLE87O2dCQUpKckYsUSxXQUtKLE9BQU1zRixLOztnQkFMRnRGLFEsYUFNRixPQUFNdUYsTzs7U0FOSnZGLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlUmVmLCBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7XHJcbiAgUGx1c0NpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VPdXRsaW5lZCxcclxuICBFeHBhbmRPdXRsaW5lZCxcclxuICBDb21wcmVzc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgQ29uZmlybSBmcm9tIFwiLi9Db25maXJtXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlRGF0YSwgRHJhZ2dhYmxlRXZlbnQgfSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcblxyXG5pbnRlcmZhY2UgZm9ybUV4cGFuZCB7XHJcbiAgY2hhbmdlPzogYm9vbGVhbjtcclxuICB2YWxpZD86IGJvb2xlYW47XHJcbiAgZXhwYW5kPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5zY01vZGFsUG9ycHMgZXh0ZW5kcyBNb2RhbFByb3BzLCBEcmF3ZXJQcm9wcyB7XHJcbiAgdHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBmb3JtRXhwYW5kPzogZm9ybUV4cGFuZDtcclxuICBvbkJ1dHRvbkNhbmNlbD86IGFueTsgLy/lupXpg6jlj5bmtojmjInpkq7lm57osINcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8v5by55qGG5piv5ZCm55yL5ouW5YqoXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOc2NNb2RhbFBvcnBzLCBhbnk+IHtcclxuICBzdGF0aWMgY29uZmlybSA9IENvbmZpcm07XHJcbiAgLy8gc3RhdGljIGNvbmZpcm0gPSBNb2RhbC5jb25maXJtO1xyXG4gIHN0YXRpYyBpbmZvID0gTW9kYWwuaW5mbztcclxuICBzdGF0aWMgc3VjY2VzcyA9IE1vZGFsLnN1Y2Nlc3M7XHJcbiAgc3RhdGljIGVycm9yID0gTW9kYWwuZXJyb3I7XHJcbiAgc3RhdGljIHdhcm5pbmcgPSBNb2RhbC53YXJuaW5nO1xyXG4gIC8v6L+U5Zue5YC8XHJcbiAgcmV0dXJuVmFsdWUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IG1vZGFsID0gcHJvcHMudHlwZSB8fCBcImF1dG9cIjtcclxuICAgIGxldCBzdG9yZVByZWZpeCA9IGdldFN0b3JhZ2UoXCJzdG9yZS1wcmUta2V5XCIpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgbW9kYWxUeXBlOiBtb2RhbCA9PSBcImF1dG9cIiA/IGF1dG9UeXBlIDogbW9kYWwsXHJcbiAgICAgIGJvdW5kczogeyBsZWZ0OiAwLCB0b3A6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfSxcclxuICAgICAgZHJhZ2dlcjogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGRyYWdnbGVSZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcblxyXG4gIG9wdGlvbjogYW55ID0ge1xyXG4gICAgLy/lm57osIPkvZznlKjln59cclxuICAgIHNjb3BlOiB0aGlzLFxyXG4gICAgLy9vcGVu5Lyg6YCS6L+H5p2l55qE6aG16Z2i5Y+C5pWwXHJcbiAgICBwYXJhbXM6IHt9LFxyXG4gICAgLy/mmL7npLrkuYvliY3lm57osINcclxuICAgIGJlZm9yZVJlbmRlcjogbnVsbCxcclxuICAgIC8v5YWz6Zet5LmL5YmN5Zue6LCD77yM5aaC5p6ccmV0dXJuIGZhbHNl77yM5LiU56qX5Y+j5LiN5YWz6ZetXHJcbiAgICBjYWxsYmFja0JlZm9yZUNsb3NlOiBudWxsLFxyXG4gICAgLy/lhbPpl63lkI7lm57osIPvvIzlvILmraXmk43kvZxcclxuICAgIGNhbGxiYWNrOiBudWxsLFxyXG4gICAgLy/mmL7npLrkuYvlkI7lm57osINcclxuICAgIGFmdGVyUmVuZGVyOiBudWxsLFxyXG4gIH07XHJcbiAgLyoqXHJcbiAgICog5riy5p+T5a6M5oiQXHJcbiAgICogQHBhcmFtIHsqfSBvcHRpb24gIOaVtOaUueS8oOmAkuWvueixoVxyXG4gICAqL1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLmxpc3Rlbk1lc3NhZ2UpO1xyXG4gIH1cclxuICBsaXN0ZW5NZXNzYWdlID0gKGV2KSA9PiB7XHJcbiAgICBjb25zdCBkYXRhID0gdHlwZW9mIGV2LmRhdGEgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKGV2LmRhdGEpIDogZXYuZGF0YTtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT0gXCJjaGFuZ2VGb3JtVHlwZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKHBheWxvYWQudHlwZSA9PSBcIm1vZGFsXCIgfHwgcGF5bG9hZC50eXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1vZGFsVHlwZTogcGF5bG9hZC50eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICAvL+aYvuekulxyXG4gIHNob3cob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgY29uc3QgeyBzY29wZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGJlZm9yZVJlbmRlciwgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiwgLi4ub3B0aW9uIH07XHJcbiAgICB1dGlscy5jYWxsYmFjayhiZWZvcmVSZW5kZXIsIHNjb3BlKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiB0cnVlIH0sICgpID0+IHtcclxuICAgICAgdXRpbHMuY2FsbGJhY2soYWZ0ZXJSZW5kZXIsIHNjb3BlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/pmpDol49cclxuICBoaWRlKG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bpnIDopoHov5Tlm57nmoTlgLxcclxuICBnZXRSZXR1cm5WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YWz6Zet5bim5Zue6LCDXHJcbiAgICovXHJcbiAgY2xvc2UocmVzdWx0PzogYW55LCBidXR0b25DbG9zZSA9IGZhbHNlKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgLy8gY29uc3QgeyBjYWxsYmFjaywgc2NvcGUsIGNhbGxiYWNrQmVmb3JlQ2xvc2UgfSA9IHRoaXMub3B0aW9uO1xyXG4gICAgY29uc3QgeyBmb3JtRXhwYW5kID0ge30sIG9uQ2FuY2VsLCBvbkJ1dHRvbkNhbmNlbCwgb25DbG9zZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIGNvbnN0IHIgPSB1dGlscy5jYWxsYmFjayhjYWxsYmFja0JlZm9yZUNsb3NlLCBzY29wZSwgW3RoaXMucmV0dXJuVmFsdWVdKTtcclxuICAgIC8vIGlmIChyICE9PSBmYWxzZSkge1xyXG4gICAgY29uc3QgeyBleHBhbmQgPSBmYWxzZSB9ID0gZm9ybUV4cGFuZDtcclxuICAgIGlmIChleHBhbmQgJiYgZm9ybUV4cGFuZC52YWxpZCAmJiBmb3JtRXhwYW5kLmNoYW5nZSkge1xyXG4gICAgICBDb25maXJtKHtcclxuICAgICAgICBjb250ZW50OiBcIuW9k+WJjeiusOW9leW3suS/ruaUueWwmuacquS/neWtmO+8jOehruWumuimgeaUvuW8g+S/ruaUueWQl++8n1wiLFxyXG4gICAgICAgIG9uT2soKSB7XHJcbiAgICAgICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uQ2xvc2UgJiYgb25CdXR0b25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9uQ2FuY2VsICYmIG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgb25CdXR0b25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgIG9uQ2xvc2UgJiYgb25DbG9zZShyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyB1dGlscy5jYWxsYmFjayhjYWxsYmFjaywgc2NvcGUsIFtfdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5Y+C5pWw77yM5aaC5p6ca2V55LiN5Lyg6YCS77yM5LiU6I635Y+W5YWo6YOoXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleVxyXG4gICAqL1xyXG4gIGdldFBhcmFtcyhrZXkpIHtcclxuICAgIGlmIChrZXkpIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXM7XHJcbiAgfVxyXG4gIG9uU3RhcnQoX2V2ZW50OiBEcmFnZ2FibGVFdmVudCwgdWlEYXRhOiBEcmFnZ2FibGVEYXRhKSB7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGhpcy5kcmFnZ2xlUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCF0YXJnZXRSZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBib3VuZHM6IHtcclxuICAgICAgICBsZWZ0OiAtdGFyZ2V0UmVjdC5sZWZ0ICsgdWlEYXRhLngsXHJcbiAgICAgICAgcmlnaHQ6IGNsaWVudFdpZHRoIC0gKHRhcmdldFJlY3QucmlnaHQgLSB1aURhdGEueCksXHJcbiAgICAgICAgdG9wOiAtdGFyZ2V0UmVjdC50b3AgKyB1aURhdGEueSxcclxuICAgICAgICBib3R0b206IGNsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0LmJvdHRvbSAtIHVpRGF0YS55KSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB0eXBlID0gXCJtb2RhbFwiLFxyXG4gICAgICBjbG9zYWJsZSxcclxuICAgICAgLy8gdGl0bGU6IG9yZ3RpdGxlLFxyXG4gICAgICBva0J1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGNhbmNlbEJ1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGZvcm1FeHBhbmQgPSB7fSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBwcm9wczogYW55ID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGxldCB7IG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5kcmFnYWJsZSB8fCB0eXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0aXRsZVwiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRpdGxlLWRyYWdnZXJcIildOlxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uc1wiKX0+XHJcbiAgICAgICAgICB7IXRoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8RXhwYW5kT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxDbG9zZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGl0bGUtY29udGVudFwiKX0+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgY29uc3QgeyBtb2RhbEJ1dHRvbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBmb290ZXIgPSAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJmb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5va0J1dHRvblByb3BzfVxyXG4gICAgICAgICAgey4uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMub2tUZXh0ID8gdGhpcy5wcm9wcy5va1RleHQgOiBcIuS/neWtmFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG5cclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNsb3NlLmJpbmQodGhpcywge30sIHRydWUpfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJidXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgaWNvbj17PENsb3NlQ2lyY2xlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICB7Li4ubW9kYWxCdXR0b24uY2FuY2xlQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4uY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMuY2FuY2VsVGV4dCA/IHRoaXMucHJvcHMuY2FuY2VsVGV4dCA6IFwi5Y+W5raIXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGlmIChmb3JtRXhwYW5kLmV4cGFuZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHN0eWxlOiB7IG1heFdpZHRoOiBcIjEwMHZ3XCIgfSxcclxuICAgICAgICBjbGFzc05hbWU6IHRoaXMuc3RhdGUuZXhwYW5kID8gZ2V0TGVzcyhzdHlsZXMsIFwiYWxsc3JlZW5cIikgOiBcIlwiLFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLnN0YXRlLmV4cGFuZCA/IFwiMTAwdndcIiA6IHByb3BzLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZm9vdGVyOiBmb290ZXIsXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN0YXRlLm1vZGFsVHlwZSA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGxldCBvbGRQcm9wcyA9IHsgLi4ucHJvcHMgfTtcclxuICAgICAgbGV0IG5ld0RyYXdlclByb3BzID0gb21pdChvbGRQcm9wcywgW1wib25Pa1wiLCBcIm9rQnV0dG9uUHJvcHNcIl0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEcmF3ZXJcclxuICAgICAgICAgIHZpc2libGU9e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHsuLi5uZXdEcmF3ZXJQcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWxcclxuICAgICAgICAgIHZpc2libGU9e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBvbk9rPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBva1RleHQ9e1wi56Gu5a6aXCJ9XHJcbiAgICAgICAgICBjYW5jZWxUZXh0PXtcIuWPlua2iFwifVxyXG4gICAgICAgICAgY2VudGVyZWQ9e3RydWV9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywnbnNjLW1vZGFsJyl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
355
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldFN0b3JhZ2UiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9hdXRvVHlwZSIsIl9kZWZpbmVQcm9wZXJ0eSIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJtb2RhbFR5cGUiLCJtb2RhbCIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50Iiwic3RhdGUiLCJ2aXNpYmxlIiwiZXhwYW5kIiwiYm91bmRzIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiZHJhZ2dlciIsImNvbXBvbmVudERpZE1vdW50Iiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImxpc3Rlbk1lc3NhZ2UiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzaG93Iiwib3B0aW9uIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX29iamVjdFNwcmVhZCIsImhpZGUiLCJnZXRSZXR1cm5WYWx1ZSIsInJldHVyblZhbHVlIiwiY2xvc2UiLCJyZXN1bHQiLCJidXR0b25DbG9zZSIsImZvcm1FeHBhbmQiLCJvbkNhbmNlbCIsIm9uQnV0dG9uQ2FuY2VsIiwib25DbG9zZSIsInZhbGlkIiwiY2hhbmdlIiwib25PayIsImdldFBhcmFtcyIsImtleSIsIm9uU3RhcnQiLCJfZXZlbnQiLCJ1aURhdGEiLCJfdGhpcyRkcmFnZ2xlUmVmJGN1cnIiLCJjbGllbnRXaWR0aCIsImNsaWVudEhlaWdodCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwidGFyZ2V0UmVjdCIsImRyYWdnbGVSZWYiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsInkiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNsb3NhYmxlIiwib2tCdXR0b25Qcm9wcyIsImNhbmNlbEJ1dHRvblByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibW91bnRFbGVtZW50SWQiLCJnZXRDb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsImRyYWdhYmxlIiwibW9kYWxSZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiZGlzYWJsZWQiLCJldmVudCIsInJlZiIsInRpdGxlIiwiY2xhc3NOYW1lIiwib25Nb3VzZU92ZXIiLCJvbk1vdXNlT3V0Iiwib25DbGljayIsInN0eWxlIiwibWFyZ2luUmlnaHQiLCJtb2RhbEJ1dHRvbiIsImZvb3RlciIsIl9leHRlbmRzIiwiaWNvbiIsIm9rVGV4dCIsImJpbmQiLCJjYW5jbGVCdXR0b25Qcm9wcyIsImNhbmNlbFRleHQiLCJtYXhXaWR0aCIsIndpZHRoIiwib2xkUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsIl9EcmF3ZXIiLCJfTW9kYWwiLCJjZW50ZXJlZCIsImFmdGVyQ2xvc2UiLCJpbmZvIiwic3VjY2VzcyIsImVycm9yIiwid2FybmluZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvbW9kYWwvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVSZWYsIFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBNb2RhbCwgTW9kYWxQcm9wcywgRHJhd2VyLCBEcmF3ZXJQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHtcclxuICBQbHVzQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VDaXJjbGVPdXRsaW5lZCxcclxuICBDbG9zZU91dGxpbmVkLFxyXG4gIEV4cGFuZE91dGxpbmVkLFxyXG4gIENvbXByZXNzT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBDb25maXJtIGZyb20gXCIuL0NvbmZpcm1cIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHR5cGUgeyBEcmFnZ2FibGVEYXRhLCBEcmFnZ2FibGVFdmVudCB9IGZyb20gXCJyZWFjdC1kcmFnZ2FibGVcIjtcclxuaW1wb3J0IERyYWdnYWJsZSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuXHJcbmludGVyZmFjZSBmb3JtRXhwYW5kIHtcclxuICBjaGFuZ2U/OiBib29sZWFuO1xyXG4gIHZhbGlkPzogYm9vbGVhbjtcclxuICBleHBhbmQ/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTnNjTW9kYWxQb3JwcyBleHRlbmRzIE1vZGFsUHJvcHMsIERyYXdlclByb3BzIHtcclxuICB0eXBlPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIiB8IFwiYXV0b1wiO1xyXG4gIGZvcm1FeHBhbmQ/OiBmb3JtRXhwYW5kO1xyXG4gIG9uQnV0dG9uQ2FuY2VsPzogYW55OyAvL+W6lemDqOWPlua2iOaMiemSruWbnuiwg1xyXG4gIGRyYWdhYmxlPzogYm9vbGVhbjsgLy/lvLnmoYbmmK/lkKbnnIvmi5bliqhcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjTW9kYWwgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5zY01vZGFsUG9ycHMsIGFueT4ge1xyXG4gIHN0YXRpYyBjb25maXJtID0gQ29uZmlybTtcclxuICAvLyBzdGF0aWMgY29uZmlybSA9IE1vZGFsLmNvbmZpcm07XHJcbiAgc3RhdGljIGluZm8gPSBNb2RhbC5pbmZvO1xyXG4gIHN0YXRpYyBzdWNjZXNzID0gTW9kYWwuc3VjY2VzcztcclxuICBzdGF0aWMgZXJyb3IgPSBNb2RhbC5lcnJvcjtcclxuICBzdGF0aWMgd2FybmluZyA9IE1vZGFsLndhcm5pbmc7XHJcbiAgLy/ov5Tlm57lgLxcclxuICByZXR1cm5WYWx1ZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgbGV0IHN0b3JlUHJlZml4ID0gZ2V0U3RvcmFnZShcInN0b3JlLXByZS1rZXlcIik7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgYXV0b1R5cGUgPSBhdXRvVHlwZT8uY29udGVudDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBtb2RhbFR5cGU6IG1vZGFsID09IFwiYXV0b1wiID8gYXV0b1R5cGUgOiBtb2RhbCxcclxuICAgICAgYm91bmRzOiB7IGxlZnQ6IDAsIHRvcDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9LFxyXG4gICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZHJhZ2dsZVJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgb3B0aW9uOiBhbnkgPSB7XHJcbiAgICAvL+Wbnuiwg+S9nOeUqOWfn1xyXG4gICAgc2NvcGU6IHRoaXMsXHJcbiAgICAvL29wZW7kvKDpgJLov4fmnaXnmoTpobXpnaLlj4LmlbBcclxuICAgIHBhcmFtczoge30sXHJcbiAgICAvL+aYvuekuuS5i+WJjeWbnuiwg1xyXG4gICAgYmVmb3JlUmVuZGVyOiBudWxsLFxyXG4gICAgLy/lhbPpl63kuYvliY3lm57osIPvvIzlpoLmnpxyZXR1cm4gZmFsc2XvvIzkuJTnqpflj6PkuI3lhbPpl61cclxuICAgIGNhbGxiYWNrQmVmb3JlQ2xvc2U6IG51bGwsXHJcbiAgICAvL+WFs+mXreWQjuWbnuiwg++8jOW8guatpeaTjeS9nFxyXG4gICAgY2FsbGJhY2s6IG51bGwsXHJcbiAgICAvL+aYvuekuuS5i+WQjuWbnuiwg1xyXG4gICAgYWZ0ZXJSZW5kZXI6IG51bGwsXHJcbiAgfTtcclxuICAvKipcclxuICAgKiDmuLLmn5PlrozmiJBcclxuICAgKiBAcGFyYW0geyp9IG9wdGlvbiAg5pW05pS55Lyg6YCS5a+56LGhXHJcbiAgICovXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXYuZGF0YSkgOiBldi5kYXRhO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZUZvcm1UeXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC50eXBlID09IFwibW9kYWxcIiB8fCBwYXlsb2FkLnR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgbW9kYWxUeXBlOiBwYXlsb2FkLnR5cGUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIC8v5pi+56S6XHJcbiAgc2hvdyhvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICBjb25zdCB7IHNjb3BlIH0gPSB0aGlzLm9wdGlvbjtcclxuICAgIGNvbnN0IHsgYmVmb3JlUmVuZGVyLCBhZnRlclJlbmRlciB9ID0gb3B0aW9uO1xyXG4gICAgdGhpcy5vcHRpb24gPSB7IC4uLnRoaXMub3B0aW9uLCAuLi5vcHRpb24gfTtcclxuICAgIHV0aWxzLmNhbGxiYWNrKGJlZm9yZVJlbmRlciwgc2NvcGUpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IHRydWUgfSwgKCkgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgc2NvcGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL+makOiXj1xyXG4gIGhpZGUob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPlumcgOimgei/lOWbnueahOWAvFxyXG4gIGdldFJldHVyblZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmV0dXJuVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlhbPpl63luKblm57osINcclxuICAgKi9cclxuICBjbG9zZShyZXN1bHQ/OiBhbnksIGJ1dHRvbkNsb3NlID0gZmFsc2UpIHtcclxuICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAvLyBjb25zdCB7IGNhbGxiYWNrLCBzY29wZSwgY2FsbGJhY2tCZWZvcmVDbG9zZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGZvcm1FeHBhbmQgPSB7fSwgb25DYW5jZWwsIG9uQnV0dG9uQ2FuY2VsLCBvbkNsb3NlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgLy8gY29uc3QgciA9IHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrQmVmb3JlQ2xvc2UsIHNjb3BlLCBbdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gICAgLy8gaWYgKHIgIT09IGZhbHNlKSB7XHJcbiAgICBjb25zdCB7IGV4cGFuZCA9IGZhbHNlIH0gPSBmb3JtRXhwYW5kO1xyXG4gICAgaWYgKGV4cGFuZCAmJiBmb3JtRXhwYW5kLnZhbGlkICYmIGZvcm1FeHBhbmQuY2hhbmdlKSB7XHJcbiAgICAgIENvbmZpcm0oe1xyXG4gICAgICAgIGNvbnRlbnQ6IFwi5b2T5YmN6K6w5b2V5bey5L+u5pS55bCa5pyq5L+d5a2Y77yM56Gu5a6a6KaB5pS+5byD5L+u5pS55ZCX77yfXCIsXHJcbiAgICAgICAgb25PaygpIHtcclxuICAgICAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgICAgIG9uQnV0dG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgICAgICBvbkNsb3NlICYmIG9uQ2xvc2UocmVzdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgaWYgKGJ1dHRvbkNsb3NlICYmIG9uQnV0dG9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvbkNhbmNlbCAmJiBvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrLCBzY29wZSwgW190aGlzLnJldHVyblZhbHVlXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blj4LmlbDvvIzlpoLmnpxrZXnkuI3kvKDpgJLvvIzkuJTojrflj5blhajpg6hcclxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5XHJcbiAgICovXHJcbiAgZ2V0UGFyYW1zKGtleSkge1xyXG4gICAgaWYgKGtleSkgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtc1trZXldO1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtcztcclxuICB9XHJcbiAgb25TdGFydChfZXZlbnQ6IERyYWdnYWJsZUV2ZW50LCB1aURhdGE6IERyYWdnYWJsZURhdGEpIHtcclxuICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0aGlzLmRyYWdnbGVSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBpZiAoIXRhcmdldFJlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGJvdW5kczoge1xyXG4gICAgICAgIGxlZnQ6IC10YXJnZXRSZWN0LmxlZnQgKyB1aURhdGEueCxcclxuICAgICAgICByaWdodDogY2xpZW50V2lkdGggLSAodGFyZ2V0UmVjdC5yaWdodCAtIHVpRGF0YS54KSxcclxuICAgICAgICB0b3A6IC10YXJnZXRSZWN0LnRvcCArIHVpRGF0YS55LFxyXG4gICAgICAgIGJvdHRvbTogY2xpZW50SGVpZ2h0IC0gKHRhcmdldFJlY3QuYm90dG9tIC0gdWlEYXRhLnkpLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHR5cGUgPSBcIm1vZGFsXCIsXHJcbiAgICAgIGNsb3NhYmxlLFxyXG4gICAgICAvLyB0aXRsZTogb3JndGl0bGUsXHJcbiAgICAgIG9rQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgY2FuY2VsQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybUV4cGFuZCA9IHt9LFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzOiBhbnkgPSB7IC4uLnBhcmFtcyB9O1xyXG4gICAgbGV0IHsgbW91bnRFbGVtZW50SWQgfSA9IGNvbmZpZygpO1xyXG4gICAgaWYgKG1vdW50RWxlbWVudElkKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGdldENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmRyYWdhYmxlIHx8IHR5cGUgPT0gXCJtb2RhbFwiKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIG1vZGFsUmVuZGVyOiAobW9kYWwpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxEcmFnZ2FibGVcclxuICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5kcmFnZ2VyfVxyXG4gICAgICAgICAgICAgIGJvdW5kcz17dGhpcy5zdGF0ZS5ib3VuZHN9XHJcbiAgICAgICAgICAgICAgb25TdGFydD17KGV2ZW50LCB1aURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdGFydChldmVudCwgdWlEYXRhKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiByZWY9e3RoaXMuZHJhZ2dsZVJlZn0+e21vZGFsfTwvZGl2PlxyXG4gICAgICAgICAgICA8L0RyYWdnYWJsZT5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0aXRsZSA9IChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRpdGxlXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGl0bGUtZHJhZ2dlclwiKV06XHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZHJhZ2FibGUgJiYgdHlwZSA9PSBcIm1vZGFsXCIsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmRyYWdnZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZHJhZ2dlcjogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH19XHJcbiAgICAgICAgb25Nb3VzZU91dD17KCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRyYWdnZXI6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25zXCIpfT5cclxuICAgICAgICAgIHshdGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeHBhbmRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q29tcHJlc3NPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7Y2xvc2FibGUgIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5SaWdodDogMCB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENsb3NlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0aXRsZS1jb250ZW50XCIpfT5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCB7IG1vZGFsQnV0dG9uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZvb3RlclwiKX0+XHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBwcm9wcy5vbk9rICYmIHByb3BzLm9uT2soKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c0NpcmNsZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgey4uLm1vZGFsQnV0dG9uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4ub2tCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5va1RleHQgPyB0aGlzLnByb3BzLm9rVGV4dCA6IFwi5L+d5a2YXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcblxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2UuYmluZCh0aGlzLCB7fSwgdHJ1ZSl9XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICBpY29uPXs8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5jYW5jbGVCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5jYW5jZWxUZXh0ID8gdGhpcy5wcm9wcy5jYW5jZWxUZXh0IDogXCLlj5bmtohcIn1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgaWYgKGZvcm1FeHBhbmQuZXhwYW5kKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgICAgc3R5bGU6IHsgbWF4V2lkdGg6IFwiMTAwdndcIiB9LFxyXG4gICAgICAgIGNsYXNzTmFtZTogdGhpcy5zdGF0ZS5leHBhbmQgPyBnZXRMZXNzKHN0eWxlcywgXCJhbGxzcmVlblwiKSA6IFwiXCIsXHJcbiAgICAgICAgd2lkdGg6IHRoaXMuc3RhdGUuZXhwYW5kID8gXCIxMDB2d1wiIDogcHJvcHMud2lkdGgsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kYWxUeXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgbGV0IG9sZFByb3BzID0geyAuLi5wcm9wcyB9O1xyXG4gICAgICBsZXQgbmV3RHJhd2VyUHJvcHMgPSBvbWl0KG9sZFByb3BzLCBbXCJvbk9rXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPERyYXdlclxyXG4gICAgICAgICAgdmlzaWJsZT17dGhpcy5zdGF0ZS52aXNpYmxlfVxyXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgey4uLm5ld0RyYXdlclByb3BzfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxNb2RhbFxyXG4gICAgICAgICAgdmlzaWJsZT17dGhpcy5zdGF0ZS52aXNpYmxlfVxyXG4gICAgICAgICAgb25DYW5jZWw9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9uT2s9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9rVGV4dD17XCLnoa7lrppcIn1cclxuICAgICAgICAgIGNhbmNlbFRleHQ9e1wi5Y+W5raIXCJ9XHJcbiAgICAgICAgICBjZW50ZXJlZD17dHJ1ZX1cclxuICAgICAgICAgIC8vIHRpdGxlPXtmb3JtRXhwYW5kID8gdGl0bGUgOiB0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgYWZ0ZXJDbG9zZT17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCduc2MtbW9kYWwnKX1cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNBQVMsRUFBRUMsYUFBYSxRQUFtQixPQUFPO0FBRWxFLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FDRUMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxnQkFBZ0IsUUFDWCxtQkFBbUI7QUFDMUIsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sV0FBVztBQUMvQixPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUUxQixPQUFPQyxTQUFTLE1BQU0saUJBQWlCO0FBQ3ZDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBYzVCLGVBQWUsTUFBTUMsUUFBUSxTQUFTaEIsYUFBYSxDQUFxQjtFQVV0RWlCLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUFBLElBQUFDLFNBQUE7SUFDakIsS0FBSyxDQUFDRCxLQUFLLENBQUM7SUFKZDtJQUFBRSxlQUFBLHNCQUNjLElBQUk7SUFBQUEsZUFBQSxrQ0FrQkxyQixTQUFTLENBQWlCLENBQUM7SUFBQXFCLGVBQUEsaUJBRTFCO01BQ1o7TUFDQUMsS0FBSyxFQUFFLElBQUk7TUFDWDtNQUNBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO01BQ1Y7TUFDQUMsWUFB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