nsc-react-component 2.10.30 → 3.0.0

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 (355) hide show
  1. package/.babelrc +2 -2
  2. package/lib/Interface.js +1 -1
  3. package/lib/Interface.js.map +1 -0
  4. package/lib/base/affix/index.js +5 -47
  5. package/lib/base/affix/index.js.map +1 -0
  6. package/lib/base/alert/index.js +5 -47
  7. package/lib/base/alert/index.js.map +1 -0
  8. package/lib/base/anchor/index.d.ts +1 -1
  9. package/lib/base/anchor/index.js +8 -50
  10. package/lib/base/anchor/index.js.map +1 -0
  11. package/lib/base/avatar/index.d.ts +1 -1
  12. package/lib/base/avatar/index.js +8 -50
  13. package/lib/base/avatar/index.js.map +1 -0
  14. package/lib/base/backTop/index.js +5 -47
  15. package/lib/base/backTop/index.js.map +1 -0
  16. package/lib/base/badge/index.d.ts +1 -1
  17. package/lib/base/badge/index.js +8 -50
  18. package/lib/base/badge/index.js.map +1 -0
  19. package/lib/base/breadcrumb/index.js +5 -47
  20. package/lib/base/breadcrumb/index.js.map +1 -0
  21. package/lib/base/button/index.d.ts +1 -1
  22. package/lib/base/button/index.js +93 -135
  23. package/lib/base/button/index.js.map +1 -0
  24. package/lib/base/calendar/index.js +5 -47
  25. package/lib/base/calendar/index.js.map +1 -0
  26. package/lib/base/card/index.d.ts +2 -2
  27. package/lib/base/card/index.js +8 -51
  28. package/lib/base/card/index.js.map +1 -0
  29. package/lib/base/carousel/index.js +5 -47
  30. package/lib/base/carousel/index.js.map +1 -0
  31. package/lib/base/cascader/index.d.ts +3 -3
  32. package/lib/base/cascader/index.js +156 -224
  33. package/lib/base/cascader/index.js.map +1 -0
  34. package/lib/base/chart/index.d.ts +2 -2
  35. package/lib/base/chart/index.js +177 -287
  36. package/lib/base/chart/index.js.map +1 -0
  37. package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
  38. package/lib/base/checkbox/CheckboxGroup.js +165 -259
  39. package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
  40. package/lib/base/checkbox/index.d.ts +2 -2
  41. package/lib/base/checkbox/index.js +8 -49
  42. package/lib/base/checkbox/index.js.map +1 -0
  43. package/lib/base/collapse/index.d.ts +1 -1
  44. package/lib/base/collapse/index.js +8 -50
  45. package/lib/base/collapse/index.js.map +1 -0
  46. package/lib/base/colorpicker/index.d.ts +5 -0
  47. package/lib/base/colorpicker/index.js +8 -0
  48. package/lib/base/colorpicker/index.js.map +1 -0
  49. package/lib/base/common/BodyRow/index.js +48 -102
  50. package/lib/base/common/BodyRow/index.js.map +1 -0
  51. package/lib/base/common/EllipseCell/index.d.ts +1 -1
  52. package/lib/base/common/EllipseCell/index.js +16 -58
  53. package/lib/base/common/EllipseCell/index.js.map +1 -0
  54. package/lib/base/common/FileIcon.d.ts +2 -2
  55. package/lib/base/common/FileIcon.js +86 -132
  56. package/lib/base/common/FileIcon.js.map +1 -0
  57. package/lib/base/common/Icon.d.ts +2 -2
  58. package/lib/base/common/Icon.js +42 -96
  59. package/lib/base/common/Icon.js.map +1 -0
  60. package/lib/base/common/IconData.js +2 -2
  61. package/lib/base/common/IconData.js.map +1 -0
  62. package/lib/base/common/IconFont.d.ts +2 -2
  63. package/lib/base/common/IconFont.js +7 -8
  64. package/lib/base/common/IconFont.js.map +1 -0
  65. package/lib/base/common/NoAuthority.d.ts +2 -2
  66. package/lib/base/common/NoAuthority.js +13 -53
  67. package/lib/base/common/NoAuthority.js.map +1 -0
  68. package/lib/base/common/NoData.d.ts +2 -2
  69. package/lib/base/common/NoData.js +29 -74
  70. package/lib/base/common/NoData.js.map +1 -0
  71. package/lib/base/common/NoData.less +8 -2
  72. package/lib/base/common/NoMessage.d.ts +2 -2
  73. package/lib/base/common/NoMessage.js +30 -70
  74. package/lib/base/common/NoMessage.js.map +1 -0
  75. package/lib/base/common/NoNetWork.d.ts +2 -2
  76. package/lib/base/common/NoNetWork.js +30 -70
  77. package/lib/base/common/NoNetWork.js.map +1 -0
  78. package/lib/base/common/Page404.d.ts +2 -2
  79. package/lib/base/common/Page404.js +30 -70
  80. package/lib/base/common/Page404.js.map +1 -0
  81. package/lib/base/common/PageRequest.js +91 -154
  82. package/lib/base/common/PageRequest.js.map +1 -0
  83. package/lib/base/common/TreePanel.d.ts +1 -1
  84. package/lib/base/common/TreePanel.js +133 -212
  85. package/lib/base/common/TreePanel.js.map +1 -0
  86. package/lib/base/common/iconfontalibaba.js +15 -22
  87. package/lib/base/common/iconfontalibaba.js.map +1 -0
  88. package/lib/base/common/withZhLocale.d.ts +1 -1
  89. package/lib/base/common/withZhLocale.js +3 -8
  90. package/lib/base/common/withZhLocale.js.map +1 -0
  91. package/lib/base/configProvider/index.js +8 -50
  92. package/lib/base/configProvider/index.js.map +1 -0
  93. package/lib/base/datepick/Rangepicker.d.ts +4 -4
  94. package/lib/base/datepick/Rangepicker.js +231 -330
  95. package/lib/base/datepick/Rangepicker.js.map +1 -0
  96. package/lib/base/datepick/index.d.ts +2 -2
  97. package/lib/base/datepick/index.js +56 -115
  98. package/lib/base/datepick/index.js.map +1 -0
  99. package/lib/base/datepick/index.less +5 -5
  100. package/lib/base/descriptions/index.d.ts +1 -1
  101. package/lib/base/descriptions/index.js +8 -50
  102. package/lib/base/descriptions/index.js.map +1 -0
  103. package/lib/base/divider/index.js +5 -47
  104. package/lib/base/divider/index.js.map +1 -0
  105. package/lib/base/download/index.js +42 -84
  106. package/lib/base/download/index.js.map +1 -0
  107. package/lib/base/drawer/index.d.ts +2 -11
  108. package/lib/base/drawer/index.js +8 -57
  109. package/lib/base/drawer/index.js.map +1 -0
  110. package/lib/base/dropdown/index.js +19 -66
  111. package/lib/base/dropdown/index.js.map +1 -0
  112. package/lib/base/editor/index.d.ts +1 -1
  113. package/lib/base/editor/index.js +83 -128
  114. package/lib/base/editor/index.js.map +1 -0
  115. package/lib/base/errorboundary/index.js +19 -63
  116. package/lib/base/errorboundary/index.js.map +1 -0
  117. package/lib/base/form/Form.d.ts +2 -2
  118. package/lib/base/form/Form.js +302 -429
  119. package/lib/base/form/Form.js.map +1 -0
  120. package/lib/base/form/filed/Cascader.d.ts +2 -2
  121. package/lib/base/form/filed/Cascader.js +6 -45
  122. package/lib/base/form/filed/Cascader.js.map +1 -0
  123. package/lib/base/form/filed/Checkbox.d.ts +2 -2
  124. package/lib/base/form/filed/Checkbox.js +6 -45
  125. package/lib/base/form/filed/Checkbox.js.map +1 -0
  126. package/lib/base/form/filed/DatePicker.d.ts +2 -2
  127. package/lib/base/form/filed/DatePicker.js +6 -45
  128. package/lib/base/form/filed/DatePicker.js.map +1 -0
  129. package/lib/base/form/filed/FormItem.d.ts +2 -2
  130. package/lib/base/form/filed/FormItem.js +64 -128
  131. package/lib/base/form/filed/FormItem.js.map +1 -0
  132. package/lib/base/form/filed/Input.d.ts +2 -2
  133. package/lib/base/form/filed/Input.js +14 -51
  134. package/lib/base/form/filed/Input.js.map +1 -0
  135. package/lib/base/form/filed/InputEamil.d.ts +2 -2
  136. package/lib/base/form/filed/InputEamil.js +5 -44
  137. package/lib/base/form/filed/InputEamil.js.map +1 -0
  138. package/lib/base/form/filed/InputNumber.d.ts +2 -2
  139. package/lib/base/form/filed/InputNumber.js +5 -44
  140. package/lib/base/form/filed/InputNumber.js.map +1 -0
  141. package/lib/base/form/filed/InputPassword.d.ts +2 -2
  142. package/lib/base/form/filed/InputPassword.js +5 -44
  143. package/lib/base/form/filed/InputPassword.js.map +1 -0
  144. package/lib/base/form/filed/Item.d.ts +3 -3
  145. package/lib/base/form/filed/Item.js +90 -164
  146. package/lib/base/form/filed/Item.js.map +1 -0
  147. package/lib/base/form/filed/Radio.d.ts +2 -2
  148. package/lib/base/form/filed/Radio.js +7 -45
  149. package/lib/base/form/filed/Radio.js.map +1 -0
  150. package/lib/base/form/filed/RangerPicker.d.ts +2 -2
  151. package/lib/base/form/filed/RangerPicker.js +6 -45
  152. package/lib/base/form/filed/RangerPicker.js.map +1 -0
  153. package/lib/base/form/filed/Rate.d.ts +2 -2
  154. package/lib/base/form/filed/Rate.js +6 -47
  155. package/lib/base/form/filed/Rate.js.map +1 -0
  156. package/lib/base/form/filed/Select.d.ts +2 -2
  157. package/lib/base/form/filed/Select.js +9 -49
  158. package/lib/base/form/filed/Select.js.map +1 -0
  159. package/lib/base/form/filed/Slider.d.ts +2 -2
  160. package/lib/base/form/filed/Slider.js +6 -47
  161. package/lib/base/form/filed/Slider.js.map +1 -0
  162. package/lib/base/form/filed/Switch.d.ts +2 -2
  163. package/lib/base/form/filed/Switch.js +6 -47
  164. package/lib/base/form/filed/Switch.js.map +1 -0
  165. package/lib/base/form/filed/TagSelect.d.ts +2 -2
  166. package/lib/base/form/filed/TagSelect.js +6 -45
  167. package/lib/base/form/filed/TagSelect.js.map +1 -0
  168. package/lib/base/form/filed/TextArea.d.ts +2 -2
  169. package/lib/base/form/filed/TextArea.js +5 -44
  170. package/lib/base/form/filed/TextArea.js.map +1 -0
  171. package/lib/base/form/filed/Upload.d.ts +2 -2
  172. package/lib/base/form/filed/Upload.js +9 -45
  173. package/lib/base/form/filed/Upload.js.map +1 -0
  174. package/lib/base/form/index.d.ts +2 -2
  175. package/lib/base/form/index.js +17 -59
  176. package/lib/base/form/index.js.map +1 -0
  177. package/lib/base/grid/Col.js +5 -47
  178. package/lib/base/grid/Col.js.map +1 -0
  179. package/lib/base/grid/Row.js +5 -47
  180. package/lib/base/grid/Row.js.map +1 -0
  181. package/lib/base/grid/index.js +1 -1
  182. package/lib/base/grid/index.js.map +1 -0
  183. package/lib/base/iframe/index.d.ts +1 -1
  184. package/lib/base/iframe/index.js +44 -94
  185. package/lib/base/iframe/index.js.map +1 -0
  186. package/lib/base/image/index.js +159 -260
  187. package/lib/base/image/index.js.map +1 -0
  188. package/lib/base/input/Email.d.ts +2 -2
  189. package/lib/base/input/Email.js +55 -104
  190. package/lib/base/input/Email.js.map +1 -0
  191. package/lib/base/input/Number.d.ts +1 -1
  192. package/lib/base/input/Number.js +46 -105
  193. package/lib/base/input/Number.js.map +1 -0
  194. package/lib/base/input/Password.d.ts +1 -1
  195. package/lib/base/input/Password.js +46 -105
  196. package/lib/base/input/Password.js.map +1 -0
  197. package/lib/base/input/Search.d.ts +1 -1
  198. package/lib/base/input/Search.js +44 -103
  199. package/lib/base/input/Search.js.map +1 -0
  200. package/lib/base/input/TextArea.d.ts +1 -1
  201. package/lib/base/input/TextArea.js +62 -124
  202. package/lib/base/input/TextArea.js.map +1 -0
  203. package/lib/base/input/index.d.ts +3 -3
  204. package/lib/base/input/index.js +119 -196
  205. package/lib/base/input/index.js.map +1 -0
  206. package/lib/base/layout/index.d.ts +3 -3
  207. package/lib/base/layout/index.js +14 -57
  208. package/lib/base/layout/index.js.map +1 -0
  209. package/lib/base/list/index.d.ts +1 -1
  210. package/lib/base/list/index.js +8 -50
  211. package/lib/base/list/index.js.map +1 -0
  212. package/lib/base/menu/index.d.ts +7 -7
  213. package/lib/base/menu/index.js +100 -166
  214. package/lib/base/menu/index.js.map +1 -0
  215. package/lib/base/message/index.d.ts +8 -9
  216. package/lib/base/message/index.js +5 -49
  217. package/lib/base/message/index.js.map +1 -0
  218. package/lib/base/modal/Confirm.d.ts +1 -1
  219. package/lib/base/modal/Confirm.js +15 -23
  220. package/lib/base/modal/Confirm.js.map +1 -0
  221. package/lib/base/modal/index.d.ts +8 -8
  222. package/lib/base/modal/index.js +275 -363
  223. package/lib/base/modal/index.js.map +1 -0
  224. package/lib/base/modal/index.less +8 -8
  225. package/lib/base/notification/index.d.ts +8 -10
  226. package/lib/base/notification/index.js +12 -57
  227. package/lib/base/notification/index.js.map +1 -0
  228. package/lib/base/pagination/index.js +5 -47
  229. package/lib/base/pagination/index.js.map +1 -0
  230. package/lib/base/pdfviwer/index.d.ts +1 -1
  231. package/lib/base/pdfviwer/index.js +68 -93
  232. package/lib/base/pdfviwer/index.js.map +1 -0
  233. package/lib/base/popconfirm/index.js +5 -47
  234. package/lib/base/popconfirm/index.js.map +1 -0
  235. package/lib/base/popover/index.js +19 -66
  236. package/lib/base/popover/index.js.map +1 -0
  237. package/lib/base/progress/index.js +5 -47
  238. package/lib/base/progress/index.js.map +1 -0
  239. package/lib/base/qecode/index.d.ts +5 -0
  240. package/lib/base/qecode/index.js +8 -0
  241. package/lib/base/qecode/index.js.map +1 -0
  242. package/lib/base/radio/RadioGroup.d.ts +1 -1
  243. package/lib/base/radio/RadioGroup.js +198 -296
  244. package/lib/base/radio/RadioGroup.js.map +1 -0
  245. package/lib/base/radio/index.d.ts +2 -2
  246. package/lib/base/radio/index.js +8 -51
  247. package/lib/base/radio/index.js.map +1 -0
  248. package/lib/base/result/index.js +5 -47
  249. package/lib/base/result/index.js.map +1 -0
  250. package/lib/base/select/index.d.ts +4 -4
  251. package/lib/base/select/index.js +351 -468
  252. package/lib/base/select/index.js.map +1 -0
  253. package/lib/base/skeleton/index.js +5 -47
  254. package/lib/base/skeleton/index.js.map +1 -0
  255. package/lib/base/space/index.js +5 -47
  256. package/lib/base/space/index.js.map +1 -0
  257. package/lib/base/spin/index.js +5 -47
  258. package/lib/base/spin/index.js.map +1 -0
  259. package/lib/base/statistic/index.d.ts +1 -1
  260. package/lib/base/statistic/index.js +8 -50
  261. package/lib/base/statistic/index.js.map +1 -0
  262. package/lib/base/steps/index.d.ts +1 -1
  263. package/lib/base/steps/index.js +8 -50
  264. package/lib/base/steps/index.js.map +1 -0
  265. package/lib/base/switch/index.js +5 -47
  266. package/lib/base/switch/index.js.map +1 -0
  267. package/lib/base/table/index.d.ts +9 -8
  268. package/lib/base/table/index.js +747 -934
  269. package/lib/base/table/index.js.map +1 -0
  270. package/lib/base/table/index.module.less +14 -12
  271. package/lib/base/tabs/Tabpane.d.ts +1 -1
  272. package/lib/base/tabs/Tabpane.js +22 -59
  273. package/lib/base/tabs/Tabpane.js.map +1 -0
  274. package/lib/base/tabs/index.d.ts +1 -1
  275. package/lib/base/tabs/index.js +110 -158
  276. package/lib/base/tabs/index.js.map +1 -0
  277. package/lib/base/tabs/index.less +4 -4
  278. package/lib/base/tagSelect/TagSelect.d.ts +3 -3
  279. package/lib/base/tagSelect/TagSelect.js +124 -214
  280. package/lib/base/tagSelect/TagSelect.js.map +1 -0
  281. package/lib/base/tagSelect/index.d.ts +3 -3
  282. package/lib/base/tagSelect/index.js +90 -145
  283. package/lib/base/tagSelect/index.js.map +1 -0
  284. package/lib/base/tagSelect/index.less +4 -4
  285. package/lib/base/timeline/index.js +8 -50
  286. package/lib/base/timeline/index.js.map +1 -0
  287. package/lib/base/tooltip/index.js +19 -66
  288. package/lib/base/tooltip/index.js.map +1 -0
  289. package/lib/base/tour/index.d.ts +5 -0
  290. package/lib/base/tour/index.js +8 -0
  291. package/lib/base/tour/index.js.map +1 -0
  292. package/lib/base/transfer/index.js +5 -47
  293. package/lib/base/transfer/index.js.map +1 -0
  294. package/lib/base/tree/TreeSearch.d.ts +3 -3
  295. package/lib/base/tree/TreeSearch.js +121 -194
  296. package/lib/base/tree/TreeSearch.js.map +1 -0
  297. package/lib/base/tree/index.d.ts +7 -7
  298. package/lib/base/tree/index.js +169 -243
  299. package/lib/base/tree/index.js.map +1 -0
  300. package/lib/base/treeselect/index.js +5 -47
  301. package/lib/base/treeselect/index.js.map +1 -0
  302. package/lib/base/typography/index.js +5 -47
  303. package/lib/base/typography/index.js.map +1 -0
  304. package/lib/base/upload/Dragger.js +363 -542
  305. package/lib/base/upload/Dragger.js.map +1 -0
  306. package/lib/base/upload/Upload.d.ts +3 -1
  307. package/lib/base/upload/Upload.js +352 -530
  308. package/lib/base/upload/Upload.js.map +1 -0
  309. package/lib/base/upload/index copy.d.ts +1 -1
  310. package/lib/base/upload/index copy.js +315 -432
  311. package/lib/base/upload/index copy.js.map +1 -0
  312. package/lib/base/upload/index.js +365 -591
  313. package/lib/base/upload/index.js.map +1 -0
  314. package/lib/base/upload/index.less +12 -12
  315. package/lib/base/watermark/index.d.ts +5 -0
  316. package/lib/base/watermark/index.js +8 -0
  317. package/lib/base/watermark/index.js.map +1 -0
  318. package/lib/config.js +5 -8
  319. package/lib/config.js.map +1 -0
  320. package/lib/constants.js +2 -2
  321. package/lib/constants.js.map +1 -0
  322. package/lib/index.d.ts +4 -2
  323. package/lib/index.js +6 -3
  324. package/lib/index.js.map +1 -0
  325. package/lib/page/BasePage/Form.d.ts +1 -1
  326. package/lib/page/BasePage/Form.js +253 -360
  327. package/lib/page/BasePage/Form.js.map +1 -0
  328. package/lib/page/BasePage/index copy.d.ts +107 -0
  329. package/lib/page/BasePage/index copy.js +857 -0
  330. package/lib/page/BasePage/index copy.js.map +1 -0
  331. package/lib/page/BasePage/index.d.ts +4 -3
  332. package/lib/page/BasePage/index.js +767 -935
  333. package/lib/page/BasePage/index.js.map +1 -0
  334. package/lib/page/BasePage/index.module copy.less +143 -0
  335. package/lib/page/BasePage/index.module.less +55 -45
  336. package/lib/page/HeaderSearch/index.d.ts +2 -1
  337. package/lib/page/HeaderSearch/index.js +198 -273
  338. package/lib/page/HeaderSearch/index.js.map +1 -0
  339. package/lib/page/HeaderSearch/index.less +7 -7
  340. package/lib/page/PasswordCheck/index.d.ts +1 -1
  341. package/lib/page/PasswordCheck/index.js +50 -109
  342. package/lib/page/PasswordCheck/index.js.map +1 -0
  343. package/lib/page/PasswordCheck/index.less +2 -2
  344. package/lib/treeUtils.js +45 -58
  345. package/lib/treeUtils.js.map +1 -0
  346. package/lib/utils.d.ts +2 -2
  347. package/lib/utils.js +48 -61
  348. package/lib/utils.js.map +1 -0
  349. package/package.json +102 -98
  350. package/.vscode/settings.json +0 -3
  351. package/lib/base/comment/index.d.ts +0 -5
  352. package/lib/base/comment/index.js +0 -50
  353. package/lib/base/form/index.less +0 -41
  354. package/lib/base/pageHeader/index.d.ts +0 -5
  355. package/lib/base/pageHeader/index.js +0 -50
@@ -1,52 +1,10 @@
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
- import "antd/es/upload/style/css";
4
1
  import _Upload from "antd/es/upload";
5
-
6
- 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); }
7
-
8
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
-
10
- 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."); }
11
-
12
- 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); }
13
-
14
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
-
16
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
17
-
18
- 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; }
19
-
20
- 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; }
21
-
22
- 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; }
23
-
24
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
25
-
26
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
27
-
28
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
-
30
- 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); } }
31
-
32
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
33
-
34
- 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); }
35
-
36
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
37
-
38
- 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); }; }
39
-
40
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
41
-
42
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
43
-
44
- 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; } }
45
-
46
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
47
-
48
- 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; }
49
-
2
+ 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); }
3
+ 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; }
4
+ 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; }
5
+ 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; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
7
+ 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); }
50
8
  import * as React from "react";
51
9
  import file from "nsc-file";
52
10
  import message from "../message";
@@ -56,528 +14,391 @@ import styles from "./index.less";
56
14
  import cls from "classnames";
57
15
  import FileIcon from "../common/FileIcon";
58
16
  import { DeleteOutlined, DownloadOutlined, EyeOutlined } from "@ant-design/icons";
59
- var upload = file.upload,
60
- download = file.download,
61
- previewDocument = file.previewDocument;
62
- var Dragger = _Upload.Dragger;
63
-
64
- var NscUploadDragger = /*#__PURE__*/function (_React$PureComponent) {
65
- _inherits(NscUploadDragger, _React$PureComponent);
66
-
67
- var _super = _createSuper(NscUploadDragger);
68
-
69
- function NscUploadDragger() {
70
- var _this;
71
-
72
- _classCallCheck(this, NscUploadDragger);
73
-
74
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
75
- args[_key] = arguments[_key];
76
- }
77
-
78
- _this = _super.call.apply(_super, [this].concat(args));
79
-
80
- _defineProperty(_assertThisInitialized(_this), "state", {
17
+ const {
18
+ upload,
19
+ download,
20
+ previewDocument
21
+ } = file;
22
+ const {
23
+ Dragger
24
+ } = _Upload;
25
+ export default class NscUploadDragger extends React.PureComponent {
26
+ constructor() {
27
+ super(...arguments);
28
+ _defineProperty(this, "state", {
81
29
  fileList: [],
82
30
  viewId: "",
83
31
  fileListStore: [],
84
32
  fileNames: []
85
33
  });
86
-
87
- _defineProperty(_assertThisInitialized(_this), "customRequest", /*#__PURE__*/function () {
88
- var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(options) {
89
- var file, _this$props, onComplete, onProcess, sliceSize, onProgress, res, fileId;
90
-
91
- return regeneratorRuntime.wrap(function _callee$(_context) {
92
- while (1) {
93
- switch (_context.prev = _context.next) {
94
- case 0:
95
- file = options.file;
96
- _this$props = _this.props, onComplete = _this$props.onComplete, onProcess = _this$props.onProcess, sliceSize = _this$props.sliceSize;
97
-
98
- onProgress = function onProgress(totalProgress) {
99
- options.onProgress({
100
- percent: totalProgress
101
- }, file);
102
-
103
- _this.onProcess({
104
- percent: totalProgress,
105
- file: file
106
- });
107
-
108
- onProcess && onProcess({
109
- percent: totalProgress,
110
- file: file
111
- });
112
- };
113
-
114
- _context.prev = 3;
115
- _context.next = 6;
116
- return upload({
117
- file: file,
118
- onProgress: onProgress,
119
- partSize: sliceSize
120
- });
121
-
122
- case 6:
123
- res = _context.sent;
124
- fileId = null;
125
-
126
- if (res.code == 200) {
127
- fileId = res.data.attachId;
128
- options.onSuccess();
129
- } else {
130
- options.onError();
131
- }
132
-
133
- _this.onComplete({
134
- file: options.file,
135
- fileId: fileId,
136
- status: res.code == 200 ? "success" : "error"
137
- });
138
-
139
- onComplete && onComplete({
140
- file: options.file,
141
- fileId: fileId,
142
- status: res.code == 200 ? "success" : "error"
143
- });
144
- _context.next = 18;
145
- break;
146
-
147
- case 13:
148
- _context.prev = 13;
149
- _context.t0 = _context["catch"](3);
150
-
151
- _this.onComplete({
152
- file: options.file,
153
- fileId: "",
154
- status: "error"
155
- });
156
-
157
- onComplete && onComplete({
158
- file: options.file,
159
- fileId: "",
160
- status: "error"
161
- });
162
- options.onError();
163
-
164
- case 18:
165
- case "end":
166
- return _context.stop();
167
- }
168
- }
169
- }, _callee, null, [[3, 13]]);
170
- }));
171
-
172
- return function (_x) {
173
- return _ref.apply(this, arguments);
34
+ _defineProperty(this, "customRequest", async options => {
35
+ const file = options.file;
36
+ const {
37
+ onComplete,
38
+ onProcess,
39
+ sliceSize
40
+ } = this.props;
41
+ const onProgress = totalProgress => {
42
+ options.onProgress({
43
+ percent: totalProgress
44
+ }, file);
45
+ this.onProcess({
46
+ percent: totalProgress,
47
+ file: file
48
+ });
49
+ onProcess && onProcess({
50
+ percent: totalProgress,
51
+ file: file
52
+ });
174
53
  };
175
- }());
176
-
177
- return _this;
54
+ try {
55
+ const res = await upload({
56
+ file: file,
57
+ onProgress: onProgress,
58
+ partSize: sliceSize
59
+ });
60
+ let fileId = null;
61
+ if (res.code == 200) {
62
+ fileId = res.data.attachId;
63
+ options.onSuccess();
64
+ } else {
65
+ options.onError();
66
+ }
67
+ this.onComplete({
68
+ file: options.file,
69
+ fileId: fileId,
70
+ status: res.code == 200 ? "success" : "error"
71
+ });
72
+ onComplete && onComplete({
73
+ file: options.file,
74
+ fileId: fileId,
75
+ status: res.code == 200 ? "success" : "error"
76
+ });
77
+ } catch (e) {
78
+ this.onComplete({
79
+ file: options.file,
80
+ fileId: "",
81
+ status: "error"
82
+ });
83
+ onComplete && onComplete({
84
+ file: options.file,
85
+ fileId: "",
86
+ status: "error"
87
+ });
88
+ options.onError();
89
+ }
90
+ });
91
+ }
92
+ componentDidMount() {
93
+ if (this.props.fileList) {
94
+ this.convertFileList();
95
+ }
178
96
  }
179
-
180
- _createClass(NscUploadDragger, [{
181
- key: "componentDidMount",
182
- value: function componentDidMount() {
183
- if (this.props.fileList) {
97
+ convertFileList(list) {
98
+ const {
99
+ fileList
100
+ } = this.props;
101
+ const newFileList = [];
102
+ let oldList = list ? list : fileList;
103
+ oldList.map(item => {
104
+ let temp = _objectSpread(_objectSpread({}, item), {}, {
105
+ name: item.name || item.fileName,
106
+ type: item.type,
107
+ size: item.size
108
+ });
109
+ newFileList.push(temp);
110
+ });
111
+ this.setState({
112
+ fileList: newFileList,
113
+ fileListStore: fileList
114
+ });
115
+ }
116
+ componentDidUpdate(preProps, preState) {
117
+ if (this.props.fileList) {
118
+ if (JSON.stringify(this.props.fileList) !== JSON.stringify(this.state.fileListStore)) {
184
119
  this.convertFileList();
185
120
  }
186
121
  }
187
- }, {
188
- key: "convertFileList",
189
- value: function convertFileList(list) {
190
- var fileList = this.props.fileList;
191
- var newFileList = [];
192
- var oldList = list ? list : fileList;
193
- oldList.map(function (item) {
194
- var temp = _objectSpread(_objectSpread({}, item), {}, {
195
- name: item.name || item.fileName,
196
- type: item.type,
197
- size: item.size
198
- });
199
-
200
- newFileList.push(temp);
201
- });
202
- this.setState({
203
- fileList: newFileList,
204
- fileListStore: fileList
205
- });
122
+ }
123
+ getFileList() {
124
+ return this.state.fileList;
125
+ }
126
+ setFileList(fileList) {
127
+ this.convertFileList(fileList);
128
+ }
129
+ async beforeUpload(file, ofileList) {
130
+ let {
131
+ maxSize = 100,
132
+ allowFileSuffix,
133
+ checkSameFile = true,
134
+ maxCount,
135
+ showUploadList,
136
+ fileList: propsList,
137
+ onListChange
138
+ } = this.props;
139
+ let {
140
+ fileList,
141
+ fileListStore
142
+ } = this.state;
143
+ let size;
144
+ if (allowFileSuffix && !this.checkFileType(file)) {
145
+ message.error("".concat(file.name, "\u6587\u4EF6\u7C7B\u578B\u4E0D\u5141\u8BB8\u4E0A\u4F20\uFF0C\u8BF7\u4E0A\u4F20\u540E\u7F00\u4E3A").concat(allowFileSuffix, "\u7684\u7C7B\u578B\u6587\u4EF6\uFF01"));
146
+ return false;
206
147
  }
207
- }, {
208
- key: "componentDidUpdate",
209
- value: function componentDidUpdate(preProps, preState) {
210
- if (this.props.fileList) {
211
- if (JSON.stringify(this.props.fileList) !== JSON.stringify(this.state.fileListStore)) {
212
- this.convertFileList();
213
- }
148
+ if (maxSize !== false) {
149
+ if (maxSize === true) {
150
+ maxSize = 100;
151
+ }
152
+ size = maxSize * 1024 * 1024;
153
+ if (size < file.size) {
154
+ message.error("".concat(file.name, "\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7").concat(maxSize, "M\uFF0C\u8BF7\u91CD\u65B0\u4E0A\u4F20\uFF01"));
155
+ return false;
214
156
  }
215
157
  }
216
- }, {
217
- key: "getFileList",
218
- value: function getFileList() {
219
- return this.state.fileList;
158
+ let fileNames = [];
159
+ if (checkSameFile) {
160
+ const checkList = this.props.fileList ? fileListStore : fileList;
161
+ checkList.map(item => {
162
+ fileNames.push(item.name || item.fileName);
163
+ });
164
+ if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {
165
+ message.error("\u6587\u4EF6".concat(file.name, "\u5DF2\u5728\u4E0A\u4F20\u5217\u8868\u4E2D\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\uFF01"));
166
+ return false;
167
+ }
220
168
  }
221
- }, {
222
- key: "setFileList",
223
- value: function setFileList(fileList) {
224
- this.convertFileList(fileList);
169
+ if (this.props.beforeUpload) {
170
+ const res = await this.props.beforeUpload(file, ofileList);
171
+ if (res === false) {
172
+ return false;
173
+ }
225
174
  }
226
- }, {
227
- key: "beforeUpload",
228
- value: function () {
229
- var _beforeUpload = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(file, ofileList) {
230
- var _this2 = this;
231
-
232
- var _this$props2, _this$props2$maxSize, maxSize, allowFileSuffix, _this$props2$checkSam, checkSameFile, maxCount, showUploadList, propsList, onListChange, _this$state, fileList, fileListStore, size, fileNames, checkList, res, newList, length, i;
233
-
234
- return regeneratorRuntime.wrap(function _callee3$(_context3) {
235
- while (1) {
236
- switch (_context3.prev = _context3.next) {
237
- case 0:
238
- _this$props2 = this.props, _this$props2$maxSize = _this$props2.maxSize, maxSize = _this$props2$maxSize === void 0 ? 100 : _this$props2$maxSize, allowFileSuffix = _this$props2.allowFileSuffix, _this$props2$checkSam = _this$props2.checkSameFile, checkSameFile = _this$props2$checkSam === void 0 ? true : _this$props2$checkSam, maxCount = _this$props2.maxCount, showUploadList = _this$props2.showUploadList, propsList = _this$props2.fileList, onListChange = _this$props2.onListChange;
239
- _this$state = this.state, fileList = _this$state.fileList, fileListStore = _this$state.fileListStore;
240
-
241
- if (!(allowFileSuffix && !this.checkFileType(file))) {
242
- _context3.next = 5;
243
- break;
244
- }
245
-
246
- message.error("".concat(file.name, "\u6587\u4EF6\u7C7B\u578B\u4E0D\u5141\u8BB8\u4E0A\u4F20\uFF0C\u8BF7\u4E0A\u4F20\u540E\u7F00\u4E3A").concat(allowFileSuffix, "\u7684\u7C7B\u578B\u6587\u4EF6\uFF01"));
247
- return _context3.abrupt("return", false);
248
-
249
- case 5:
250
- if (!(maxSize !== false)) {
251
- _context3.next = 11;
252
- break;
253
- }
254
-
255
- if (maxSize === true) {
256
- maxSize = 100;
257
- }
258
-
259
- size = maxSize * 1024 * 1024;
260
-
261
- if (!(size < file.size)) {
262
- _context3.next = 11;
263
- break;
264
- }
265
-
266
- message.error("".concat(file.name, "\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7").concat(maxSize, "M\uFF0C\u8BF7\u91CD\u65B0\u4E0A\u4F20\uFF01"));
267
- return _context3.abrupt("return", false);
268
-
269
- case 11:
270
- fileNames = [];
271
-
272
- if (!checkSameFile) {
273
- _context3.next = 18;
274
- break;
275
- }
276
-
277
- checkList = this.props.fileList ? fileListStore : fileList;
278
- checkList.map(function (item) {
279
- fileNames.push(item.name || item.fileName);
280
- });
281
-
282
- if (!(fileNames.indexOf(file.name) > -1 && showUploadList !== false)) {
283
- _context3.next = 18;
284
- break;
285
- }
286
-
287
- message.error("\u6587\u4EF6".concat(file.name, "\u5DF2\u5728\u4E0A\u4F20\u5217\u8868\u4E2D\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u6587\u4EF6\uFF01"));
288
- return _context3.abrupt("return", false);
289
-
290
- case 18:
291
- if (!this.props.beforeUpload) {
292
- _context3.next = 24;
293
- break;
294
- }
295
-
296
- _context3.next = 21;
297
- return this.props.beforeUpload(file, ofileList);
298
-
299
- case 21:
300
- res = _context3.sent;
301
-
302
- if (!(res === false)) {
303
- _context3.next = 24;
304
- break;
305
- }
306
-
307
- return _context3.abrupt("return", false);
308
-
309
- case 24:
310
- newList = _toConsumableArray(fileList);
311
- ofileList.map( /*#__PURE__*/function () {
312
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(item) {
313
- var temp;
314
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
315
- while (1) {
316
- switch (_context2.prev = _context2.next) {
317
- case 0:
318
- if (!(allowFileSuffix && !_this2.checkFileType(item) || size < item.size || checkSameFile && fileNames.indexOf(item.name) > -1)) {
319
- temp = {
320
- fileName: item.name,
321
- percent: 0,
322
- status: "uploading",
323
- uid: item.uid,
324
- name: item.name,
325
- type: item.type,
326
- size: item.size
327
- };
328
- newList.push(temp);
329
- }
330
-
331
- case 1:
332
- case "end":
333
- return _context2.stop();
334
- }
335
- }
336
- }, _callee2);
337
- }));
338
-
339
- return function (_x4) {
340
- return _ref2.apply(this, arguments);
341
- };
342
- }());
343
-
344
- if (maxCount && newList.length > maxCount) {
345
- length = newList.length - maxCount;
346
-
347
- for (i = 0; i < length; i++) {
348
- newList.splice(0, 1);
349
- }
350
- }
351
-
352
- onListChange && onListChange(newList);
353
- this.setState({
354
- fileList: newList
355
- });
356
-
357
- case 29:
358
- case "end":
359
- return _context3.stop();
360
- }
361
- }
362
- }, _callee3, this);
363
- }));
364
-
365
- function beforeUpload(_x2, _x3) {
366
- return _beforeUpload.apply(this, arguments);
175
+ const newList = [...fileList];
176
+ ofileList.map(async item => {
177
+ if (!(allowFileSuffix && !this.checkFileType(item) || size < item.size || checkSameFile && fileNames.indexOf(item.name) > -1)) {
178
+ const temp = {
179
+ fileName: item.name,
180
+ percent: 0,
181
+ status: "uploading",
182
+ uid: item.uid,
183
+ name: item.name,
184
+ type: item.type,
185
+ size: item.size
186
+ };
187
+ newList.push(temp);
367
188
  }
368
-
369
- return beforeUpload;
370
- }()
371
- }, {
372
- key: "checkFileType",
373
- value: function checkFileType(file) {
374
- var allowFileSuffix = this.props.allowFileSuffix;
375
- var names = file.name.split(".");
376
- var suffix = names[names.length - 1];
377
-
378
- if (allowFileSuffix.indexOf(suffix) > -1) {
379
- return true;
189
+ });
190
+ if (maxCount && newList.length > maxCount) {
191
+ let length = newList.length - maxCount;
192
+ for (let i = 0; i < length; i++) {
193
+ newList.splice(0, 1);
380
194
  }
381
-
382
- return false;
383
195
  }
384
- }, {
385
- key: "onProcess",
386
- value: function onProcess(_ref3) {
387
- var percent = _ref3.percent,
388
- file = _ref3.file;
389
- var fileList = this.state.fileList;
390
- var onListChange = this.props.onListChange;
391
- var newList = [];
392
- fileList.map(function (item) {
393
- var newFile = _objectSpread({}, item);
394
-
395
- if (file.uid == item.uid) {
396
- newFile.percent = percent;
397
- }
398
-
399
- newList.push(newFile);
400
- });
401
- this.setState({
402
- fileList: newList
403
- });
404
- onListChange && onListChange(fileList);
405
- }
406
- }, {
407
- key: "onComplete",
408
- value: function onComplete(file) {
409
- var fileList = this.state.fileList;
410
- var _this$props3 = this.props,
411
- newVersion = _this$props3.newVersion,
412
- _this$props3$requestC = _this$props3.requestConfig,
413
- requestConfig = _this$props3$requestC === void 0 ? {} : _this$props3$requestC;
414
- var newList = [];
415
- var requestId;
416
- var fileIndex;
417
- fileList.map(function (item, index) {
418
- var newFile = _objectSpread({}, item);
419
-
420
- if (file.file.uid == item.uid) {
421
- newFile.status = file.status == "success" ? "done" : file.status;
422
- newFile.fileId = file.fileId;
423
-
424
- if (newVersion) {
425
- requestId = file.fileId;
426
- fileIndex = index;
427
- } else {
428
- var url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
429
- newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
430
- }
431
- }
432
-
433
- newList.push(newFile);
434
- });
435
- this.setState({
436
- fileList: newList
437
- });
438
- var onListChange = this.props.onListChange;
439
- onListChange && onListChange(newList);
196
+ onListChange && onListChange(newList);
197
+ this.setState({
198
+ fileList: newList
199
+ });
200
+ }
201
+ checkFileType(file) {
202
+ const {
203
+ allowFileSuffix
204
+ } = this.props;
205
+ const names = file.name.split(".");
206
+ const suffix = names[names.length - 1];
207
+ if (allowFileSuffix.indexOf(suffix) > -1) {
208
+ return true;
440
209
  }
441
- }, {
442
- key: "onDelete",
443
- value: function onDelete(file) {
444
- var fileList = this.state.fileList;
445
- var onListChange = this.props.onListChange;
446
- var newList = [];
447
- fileList.map(function (item) {
448
- //通过文件名判断,上传是文件名是唯一的
449
- if (item.name !== file.name || item.fileId !== file.fileId || item.uid !== file.uid) {
450
- newList.push(item);
210
+ return false;
211
+ }
212
+ onProcess(_ref) {
213
+ let {
214
+ percent,
215
+ file
216
+ } = _ref;
217
+ const {
218
+ fileList
219
+ } = this.state;
220
+ const {
221
+ onListChange
222
+ } = this.props;
223
+ const newList = [];
224
+ fileList.map(item => {
225
+ const newFile = _objectSpread({}, item);
226
+ if (file.uid == item.uid) {
227
+ newFile.percent = percent;
228
+ }
229
+ newList.push(newFile);
230
+ });
231
+ this.setState({
232
+ fileList: newList
233
+ });
234
+ onListChange && onListChange(fileList);
235
+ }
236
+ onComplete(file) {
237
+ const {
238
+ fileList
239
+ } = this.state;
240
+ const {
241
+ newVersion,
242
+ requestConfig = {}
243
+ } = this.props;
244
+ const newList = [];
245
+ let requestId;
246
+ let fileIndex;
247
+ fileList.map((item, index) => {
248
+ const newFile = _objectSpread({}, item);
249
+ if (file.file.uid == item.uid) {
250
+ newFile.status = file.status == "success" ? "done" : file.status;
251
+ newFile.fileId = file.fileId;
252
+ if (newVersion) {
253
+ requestId = file.fileId;
254
+ fileIndex = index;
255
+ } else {
256
+ let url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
257
+ newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
451
258
  }
452
- });
453
- this.setState({
454
- fileList: newList
455
- });
456
- onListChange && onListChange(newList);
457
- }
458
- }, {
459
- key: "render",
460
- value: function render() {
461
- var _this3 = this;
462
-
463
- var _this$props4 = this.props,
464
- fileList = _this$props4.fileList,
465
- fileCard = _this$props4.fileCard,
466
- _this$props4$showUplo = _this$props4.showUploadList,
467
- showUploadList = _this$props4$showUplo === void 0 ? {
259
+ }
260
+ newList.push(newFile);
261
+ });
262
+ this.setState({
263
+ fileList: newList
264
+ });
265
+ const {
266
+ onListChange
267
+ } = this.props;
268
+ onListChange && onListChange(newList);
269
+ }
270
+ onDelete(file) {
271
+ const {
272
+ fileList
273
+ } = this.state;
274
+ const {
275
+ onListChange
276
+ } = this.props;
277
+ const newList = [];
278
+ fileList.map(item => {
279
+ //通过文件名判断,上传是文件名是唯一的
280
+ if (item.name !== file.name || item.fileId !== file.fileId || item.uid !== file.uid) {
281
+ newList.push(item);
282
+ }
283
+ });
284
+ this.setState({
285
+ fileList: newList
286
+ });
287
+ onListChange && onListChange(newList);
288
+ }
289
+ render() {
290
+ let {
291
+ fileList,
292
+ fileCard,
293
+ showUploadList = {
468
294
  showDownloadIcon: true,
469
295
  showPreviewIcon: false,
470
296
  showRemoveIcon: true,
471
297
  downloadIcon: null,
472
298
  removeIcon: null,
473
299
  previewIcon: null
474
- } : _this$props4$showUplo,
475
- _this$props4$requestC = _this$props4.requestConfig,
476
- requestConfig = _this$props4$requestC === void 0 ? {} : _this$props4$requestC;
477
- var newprops = omit(this.props, ["sliceSize", "maxSize", "onComplete", "onProcess", "allowFileSuffix", "useDefaultList", "fileCard", "onListChange", "newVersion", "requestConfig"]);
478
- var defaultProps = {
479
- customRequest: this.customRequest.bind(this),
480
- multiple: true
481
- };
482
-
483
- if (fileCard) {
484
- defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
485
- itemRender: function itemRender(originNode, file, currFileList) {
486
- var name = file.name || file.fileName;
487
- var names = name === null || name === void 0 ? void 0 : name.split(".");
488
- var suffix = names ? names[names.length - 1] : "";
489
- return /*#__PURE__*/React.createElement("div", {
490
- className: getLess(styles, "file-item")
491
- }, /*#__PURE__*/React.createElement("div", {
492
- className: cls(getLess(styles, "content"), _defineProperty({}, getLess(styles, "content_error"), file.status == "error"))
493
- }, /*#__PURE__*/React.createElement("div", {
494
- className: getLess(styles, "mark-picture")
495
- }, /*#__PURE__*/React.createElement(FileIcon, {
496
- suffix: suffix,
497
- fileId: file.fileId
498
- })), /*#__PURE__*/React.createElement("div", {
499
- className: getLess(styles, "name")
500
- }, file.name || file.fileName), /*#__PURE__*/React.createElement("div", {
501
- className: getLess(styles, "icon")
502
- }, showUploadList.showPreviewIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
503
- onClick: function onClick() {
504
- if (_this3.props.onPreview) {
505
- _this3.props.onPreview(file);
506
- } else {
507
- previewDocument(file.fileId, _this3.props.requestConfig || {});
508
- }
509
- },
510
- style: {
511
- cursor: "pointer"
512
- }
513
- }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(EyeOutlined, null)), showUploadList.showDownloadIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
514
- onClick: function onClick() {
515
- if (_this3.props.onDownload) {
516
- _this3.props.onDownload(file);
517
- } else {
518
- download(file.fileId, true, requestConfig);
519
- }
520
- },
521
- style: {
522
- cursor: "pointer"
300
+ },
301
+ requestConfig = {}
302
+ } = this.props;
303
+ const newprops = omit(this.props, ["sliceSize", "maxSize", "onComplete", "onProcess", "allowFileSuffix", "useDefaultList", "fileCard", "onListChange", "newVersion", "requestConfig"]);
304
+ let defaultProps = {
305
+ customRequest: this.customRequest.bind(this),
306
+ multiple: true
307
+ };
308
+ if (fileCard) {
309
+ defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
310
+ itemRender: (originNode, file, currFileList) => {
311
+ const name = file.name || file.fileName;
312
+ const names = name === null || name === void 0 ? void 0 : name.split(".");
313
+ const suffix = names ? names[names.length - 1] : "";
314
+ return /*#__PURE__*/React.createElement("div", {
315
+ className: getLess(styles, "nsc-upload-file-item")
316
+ }, /*#__PURE__*/React.createElement("div", {
317
+ className: cls(getLess(styles, "nsc-upload-content"), {
318
+ [getLess(styles, "nsc-upload-content-error")]: file.status == "error"
319
+ })
320
+ }, /*#__PURE__*/React.createElement("div", {
321
+ className: getLess(styles, "nsc-upload-mark-picture")
322
+ }, /*#__PURE__*/React.createElement(FileIcon, {
323
+ suffix: suffix,
324
+ fileId: file.fileId
325
+ })), /*#__PURE__*/React.createElement("div", {
326
+ className: getLess(styles, "nsc-upload-content-name")
327
+ }, file.name || file.fileName), /*#__PURE__*/React.createElement("div", {
328
+ className: getLess(styles, "nsc-upload-icon")
329
+ }, showUploadList.showPreviewIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
330
+ onClick: () => {
331
+ if (this.props.onPreview) {
332
+ this.props.onPreview(file);
333
+ } else {
334
+ previewDocument(file.fileId, this.props.requestConfig || {});
523
335
  }
524
- }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DownloadOutlined, null)), showUploadList.showRemoveIcon && /*#__PURE__*/React.createElement("div", {
525
- onClick: function onClick() {
526
- if (_this3.props.onRemove) {
527
- _this3.props.onRemove(file);
528
- } else {
529
- _this3.onDelete(file);
530
- }
531
- },
532
- style: {
533
- cursor: "pointer"
336
+ },
337
+ style: {
338
+ cursor: "pointer"
339
+ }
340
+ }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(EyeOutlined, null)), showUploadList.showDownloadIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
341
+ onClick: () => {
342
+ if (this.props.onDownload) {
343
+ this.props.onDownload(file);
344
+ } else {
345
+ download(file.fileId, true, requestConfig);
534
346
  }
535
- }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DeleteOutlined, null)))), file.status == "uploading" && /*#__PURE__*/React.createElement("div", {
536
- className: getLess(styles, "process")
537
- }, /*#__PURE__*/React.createElement("div", {
538
- className: getLess(styles, "percent"),
539
- style: {
540
- width: file.percent + "%"
347
+ },
348
+ style: {
349
+ cursor: "pointer"
350
+ }
351
+ }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DownloadOutlined, null)), showUploadList.showRemoveIcon && /*#__PURE__*/React.createElement("div", {
352
+ onClick: () => {
353
+ if (this.props.onRemove) {
354
+ this.props.onRemove(file);
355
+ } else {
356
+ this.onDelete(file);
541
357
  }
542
- })));
543
- }
544
- });
545
- } else {
546
- defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
547
- onDownload: function onDownload(file) {
548
- download(file.fileId, true, requestConfig);
549
- },
550
- onRemove: function onRemove(file) {
551
- _this3.onDelete(file);
552
- },
553
- onPreview: function onPreview(file) {
554
- if (file !== null && file !== void 0 && file.fileId) {
555
- previewDocument(file.fileId, requestConfig);
358
+ },
359
+ style: {
360
+ cursor: "pointer"
556
361
  }
557
- },
558
- showUploadList: _objectSpread({}, showUploadList)
559
- });
560
- }
561
-
562
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dragger, _extends({}, defaultProps, newprops, {
563
- beforeUpload: this.beforeUpload.bind(this),
564
- fileList: this.state.fileList // onChange={({ file, fileList, event }) => {
565
- // console.log("onChangefile", file);
566
- // console.log("onChangefileList", fileList);
567
- // const { onChange, onListChange } = this.props;
568
- // this.setState({
569
- // fileList: fileList,
570
- // });
571
- // onListChange && onListChange(fileList);
572
- // onChange && onChange({ file, fileList, event });
573
- // }}
574
-
575
- })));
362
+ }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DeleteOutlined, null)))), file.status == "uploading" && /*#__PURE__*/React.createElement("div", {
363
+ className: getLess(styles, "nsc-upload-process")
364
+ }, /*#__PURE__*/React.createElement("div", {
365
+ className: getLess(styles, "nsc-upload-percent"),
366
+ style: {
367
+ width: file.percent + "%"
368
+ }
369
+ })));
370
+ }
371
+ });
372
+ } else {
373
+ defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
374
+ onDownload: file => {
375
+ download(file.fileId, true, requestConfig);
376
+ },
377
+ onRemove: file => {
378
+ this.onDelete(file);
379
+ },
380
+ onPreview: file => {
381
+ if (file !== null && file !== void 0 && file.fileId) {
382
+ previewDocument(file.fileId, requestConfig);
383
+ }
384
+ },
385
+ showUploadList: _objectSpread({}, showUploadList)
386
+ });
576
387
  }
577
- }]);
578
-
579
- return NscUploadDragger;
580
- }(React.PureComponent);
581
-
582
- export { NscUploadDragger as default };
583
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL0RyYWdnZXIudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsIm1lc3NhZ2UiLCJvbWl0IiwiZ2V0TGVzcyIsInN0eWxlcyIsImNscyIsIkZpbGVJY29uIiwiRGVsZXRlT3V0bGluZWQiLCJEb3dubG9hZE91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJ1cGxvYWQiLCJkb3dubG9hZCIsInByZXZpZXdEb2N1bWVudCIsIkRyYWdnZXIiLCJOc2NVcGxvYWREcmFnZ2VyIiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsInByb3BzIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInBhcnRTaXplIiwicmVzIiwiZmlsZUlkIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsIm9uRXJyb3IiLCJzdGF0dXMiLCJjb252ZXJ0RmlsZUxpc3QiLCJsaXN0IiwibmV3RmlsZUxpc3QiLCJvbGRMaXN0IiwibWFwIiwiaXRlbSIsInRlbXAiLCJuYW1lIiwiZmlsZU5hbWUiLCJ0eXBlIiwic2l6ZSIsInB1c2giLCJzZXRTdGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjaGVja0xpc3QiLCJpbmRleE9mIiwiYmVmb3JlVXBsb2FkIiwibmV3TGlzdCIsInVpZCIsImxlbmd0aCIsImkiLCJzcGxpY2UiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwibmV3RmlsZSIsIm5ld1ZlcnNpb24iLCJyZXF1ZXN0Q29uZmlnIiwicmVxdWVzdElkIiwiZmlsZUluZGV4IiwiaW5kZXgiLCJ1cmwiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwicHJlZml4IiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsIm9uUHJldmlldyIsImN1cnNvciIsIm9uRG93bmxvYWQiLCJvblJlbW92ZSIsIm9uRGVsZXRlIiwid2lkdGgiLCJQdXJlQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixVQUFqQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsWUFBcEI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixvQkFBckI7QUFDQSxTQUNFQyxjQURGLEVBRUVDLGdCQUZGLEVBR0VDLFdBSEYsUUFJTyxtQkFKUDtBQU1BLElBQVFDLE1BQVIsR0FBOENWLElBQTlDLENBQVFVLE1BQVI7QUFBQSxJQUFnQkMsUUFBaEIsR0FBOENYLElBQTlDLENBQWdCVyxRQUFoQjtBQUFBLElBQTBCQyxlQUExQixHQUE4Q1osSUFBOUMsQ0FBMEJZLGVBQTFCO0FBQ0EsSUFBUUMsT0FBUixXQUFRQSxPQUFS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b0JEOzs7O0VBL1kyQ2hCLEtBQUssQ0FBQzRHLGE7O1NBQS9CN0YsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVXBsb2FkLCBVcGxvYWRQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgUGRmVmlld2VyIGZyb20gXCIuLi9wZGZ2aXdlclwiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCB9ID0gZmlsZTtcclxuY29uc3QgeyBEcmFnZ2VyIH0gPSBVcGxvYWQ7XHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkRHJhZ2dlciBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8XHJcbiAgSVVwbG9hZFByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHsgZmlsZUxpc3Q6IFtdLCB2aWV3SWQ6IFwiXCIsIGZpbGVMaXN0U3RvcmU6IFtdLCBmaWxlTmFtZXM6IFtdIH07XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb252ZXJ0RmlsZUxpc3QobGlzdD86IEFycmF5PE9iamVjdD4pIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdGaWxlTGlzdCA9IFtdO1xyXG4gICAgbGV0IG9sZExpc3QgPSBsaXN0ID8gbGlzdCA6IGZpbGVMaXN0O1xyXG4gICAgb2xkTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgIH07XHJcbiAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3RmlsZUxpc3QsXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IGZpbGVMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmVQcm9wcywgcHJlU3RhdGUpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmZpbGVMaXN0KSAhPT1cclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICB9XHJcbiAgc2V0RmlsZUxpc3QoZmlsZUxpc3Q6IEFycmF5PE9iamVjdD4pIHtcclxuICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICB9XHJcbiAgYXN5bmMgYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgYWxsb3dGaWxlU3VmZml4LFxyXG4gICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgbWF4Q291bnQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0LFxyXG4gICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtYXhTaXplICE9PSBmYWxzZSkge1xyXG4gICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgIH1cclxuICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgY29uc3QgY2hlY2tMaXN0ID0gdGhpcy5wcm9wcy5maWxlTGlzdCA/IGZpbGVMaXN0U3RvcmUgOiBmaWxlTGlzdDtcclxuICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLmJlZm9yZVVwbG9hZCkge1xyXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3TGlzdCA9IFsuLi5maWxlTGlzdF07XHJcbiAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhKFxyXG4gICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgKGNoZWNrU2FtZUZpbGUgJiYgZmlsZU5hbWVzLmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgdGVtcCA9IHtcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIG5ld0xpc3QucHVzaCh0ZW1wKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG1heENvdW50ICYmIG5ld0xpc3QubGVuZ3RoID4gbWF4Q291bnQpIHtcclxuICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBuZXdMaXN0LnNwbGljZSgwLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICB9XHJcbiAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICB9XHJcbiAgb25Db21wbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBuZXdWZXJzaW9uLCByZXF1ZXN0Q29uZmlnID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGxldCByZXF1ZXN0SWQ7XHJcbiAgICBsZXQgZmlsZUluZGV4O1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnN0YXR1cyA9IGZpbGUuc3RhdHVzID09IFwic3VjY2Vzc1wiID8gXCJkb25lXCIgOiBmaWxlLnN0YXR1cztcclxuICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgIGlmIChuZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICByZXF1ZXN0SWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIGZpbGVJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgdXJsID0gYC9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7XHJcbiAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICB9Jl90cGs9JHt3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0b2tlblwiKX1gO1xyXG4gICAgICAgICAgbmV3RmlsZS51cmwgPSByZXF1ZXN0Q29uZmlnLnByZWZpeFxyXG4gICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgIDogXCIvYXBpXCIgKyB1cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgIGNvbnN0IHsgb25Db21wbGV0ZSwgb25Qcm9jZXNzLCBzbGljZVNpemUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKHtcclxuICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgXCJyZXF1ZXN0Q29uZmlnXCIsXHJcbiAgICBdKTtcclxuICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgIGN1c3RvbVJlcXVlc3Q6IHRoaXMuY3VzdG9tUmVxdWVzdC5iaW5kKHRoaXMpLFxyXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzID8gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV0gOiBcIlwiO1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAge2ZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcgfHwge31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxEcmFnZ2VyXHJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICAvLyBvbkNoYW5nZT17KHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVcIiwgZmlsZSk7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlTGlzdFwiLCBmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIC8vICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAvLyAgICAgZmlsZUxpc3Q6IGZpbGVMaXN0LFxyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pO1xyXG4gICAgICAgICAgLy8gfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
388
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dragger, _extends({}, defaultProps, newprops, {
389
+ beforeUpload: this.beforeUpload.bind(this),
390
+ fileList: this.state.fileList
391
+ // onChange={({ file, fileList, event }) => {
392
+ // console.log("onChangefile", file);
393
+ // console.log("onChangefileList", fileList);
394
+ // const { onChange, onListChange } = this.props;
395
+ // this.setState({
396
+ // fileList: fileList,
397
+ // });
398
+ // onListChange && onListChange(fileList);
399
+ // onChange && onChange({ file, fileList, event });
400
+ // }}
401
+ })));
402
+ }
403
+ }
404
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJEcmFnZ2VyIiwiX1VwbG9hZCIsIk5zY1VwbG9hZERyYWdnZXIiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJmaWxlTGlzdCIsInZpZXdJZCIsImZpbGVMaXN0U3RvcmUiLCJmaWxlTmFtZXMiLCJvcHRpb25zIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsInByb3BzIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicmVzIiwicGFydFNpemUiLCJmaWxlSWQiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwib25FcnJvciIsInN0YXR1cyIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwidGVtcCIsIl9vYmplY3RTcHJlYWQiLCJuYW1lIiwiZmlsZU5hbWUiLCJ0eXBlIiwic2l6ZSIsInB1c2giLCJzZXRTdGF0ZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJnZXRGaWxlTGlzdCIsInNldEZpbGVMaXN0IiwiYmVmb3JlVXBsb2FkIiwib2ZpbGVMaXN0IiwibWF4U2l6ZSIsImFsbG93RmlsZVN1ZmZpeCIsImNoZWNrU2FtZUZpbGUiLCJtYXhDb3VudCIsInNob3dVcGxvYWRMaXN0IiwicHJvcHNMaXN0Iiwib25MaXN0Q2hhbmdlIiwiY2hlY2tGaWxlVHlwZSIsImVycm9yIiwiY29uY2F0IiwiY2hlY2tMaXN0IiwiaW5kZXhPZiIsIm5ld0xpc3QiLCJ1aWQiLCJsZW5ndGgiLCJpIiwic3BsaWNlIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsIl9yZWYiLCJuZXdGaWxlIiwibmV3VmVyc2lvbiIsInJlcXVlc3RDb25maWciLCJyZXF1ZXN0SWQiLCJmaWxlSW5kZXgiLCJpbmRleCIsInVybCIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwcmVmaXgiLCJvbkRlbGV0ZSIsInJlbmRlciIsImZpbGVDYXJkIiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uUHJldmlldyIsInN0eWxlIiwiY3Vyc29yIiwib25Eb3dubG9hZCIsIm9uUmVtb3ZlIiwid2lkdGgiLCJGcmFnbWVudCIsIl9leHRlbmRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS91cGxvYWQvRHJhZ2dlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBGaWxlSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ZpbGVJY29uXCI7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbiAgRG93bmxvYWRPdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFBkZlZpZXdlciBmcm9tIFwiLi4vcGRmdml3ZXJcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQgfSA9IGZpbGU7XHJcbmNvbnN0IHsgRHJhZ2dlciB9ID0gVXBsb2FkO1xyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIG5ld1ZlcnNpb24/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY1VwbG9hZERyYWdnZXIgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PFxyXG4gIElVcGxvYWRQcm9wcyxcclxuICBhbnlcclxuPiB7XHJcbiAgc3RhdGUgPSB7IGZpbGVMaXN0OiBbXSwgdmlld0lkOiBcIlwiLCBmaWxlTGlzdFN0b3JlOiBbXSwgZmlsZU5hbWVzOiBbXSB9O1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0ZpbGVMaXN0LFxyXG4gICAgICBmaWxlTGlzdFN0b3JlOiBmaWxlTGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgb25MaXN0Q2hhbmdlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSk7XHJcbiAgfVxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIG9uQ29tcGxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgbmV3VmVyc2lvbiwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBsZXQgcmVxdWVzdElkO1xyXG4gICAgbGV0IGZpbGVJbmRleDtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLmZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5zdGF0dXMgPSBmaWxlLnN0YXR1cyA9PSBcInN1Y2Nlc3NcIiA/IFwiZG9uZVwiIDogZmlsZS5zdGF0dXM7XHJcbiAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICBpZiAobmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgcmVxdWVzdElkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgICBmaWxlSW5kZXggPSBpbmRleDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICBmaWxlLmZpbGVJZFxyXG4gICAgICAgICAgfSZfdHBrPSR7d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidG9rZW5cIil9YDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgPyByZXF1ZXN0Q29uZmlnLnByZWZpeCArIHVybFxyXG4gICAgICAgICAgICA6IFwiL2FwaVwiICsgdXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZCh7XHJcbiAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAvL+mAmui/h+aWh+S7tuWQjeWIpOaWre+8jOS4iuS8oOaYr+aWh+S7tuWQjeaYr+WUr+S4gOeahFxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXRlbS5uYW1lICE9PSBmaWxlLm5hbWUgfHxcclxuICAgICAgICBpdGVtLmZpbGVJZCAhPT0gZmlsZS5maWxlSWQgfHxcclxuICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBmaWxlTGlzdCxcclxuICAgICAgZmlsZUNhcmQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0ID0ge1xyXG4gICAgICAgIHNob3dEb3dubG9hZEljb246IHRydWUsXHJcbiAgICAgICAgc2hvd1ByZXZpZXdJY29uOiBmYWxzZSxcclxuICAgICAgICBzaG93UmVtb3ZlSWNvbjogdHJ1ZSxcclxuICAgICAgICBkb3dubG9hZEljb246IG51bGwsXHJcbiAgICAgICAgcmVtb3ZlSWNvbjogbnVsbCxcclxuICAgICAgICBwcmV2aWV3SWNvbjogbnVsbCxcclxuICAgICAgfSBhcyBhbnksXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3cHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgIFwib25Db21wbGV0ZVwiLFxyXG4gICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICBcInVzZURlZmF1bHRMaXN0XCIsXHJcbiAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgICAgXCJuZXdWZXJzaW9uXCIsXHJcbiAgICAgIFwicmVxdWVzdENvbmZpZ1wiLFxyXG4gICAgXSk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICB9IGFzIElVcGxvYWRQcm9wcztcclxuICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgY29uc3QgbmFtZXMgPSBuYW1lPy5zcGxpdChcIi5cIik7XHJcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1jb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtZXJyb3JcIildOiBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1tYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtbmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcgfHwge31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmlsZT8uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8RHJhZ2dlclxyXG4gICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAgIGJlZm9yZVVwbG9hZD17dGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgICAgLy8gb25DaGFuZ2U9eyh7IGZpbGUsIGZpbGVMaXN0LCBldmVudCB9KSA9PiB7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlXCIsIGZpbGUpO1xyXG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZyhcIm9uQ2hhbmdlZmlsZUxpc3RcIiwgZmlsZUxpc3QpO1xyXG4gICAgICAgICAgLy8gICBjb25zdCB7IG9uQ2hhbmdlLCBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgLy8gICAgIGZpbGVMaXN0OiBmaWxlTGlzdCxcclxuICAgICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgICAvLyAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gICAgICAgICAgLy8gICBvbkNoYW5nZSAmJiBvbkNoYW5nZSh7IGZpbGUsIGZpbGVMaXN0LCBldmVudCB9KTtcclxuICAgICAgICAgIC8vIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBRTlCLE9BQU9DLElBQUksTUFBTSxVQUFV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