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,43 +1,14 @@
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/modal/style/css";
4
1
  import _Modal from "antd/es/modal";
5
- import "antd/es/drawer/style/css";
6
2
  import _Drawer from "antd/es/drawer";
7
- var _excluded = ["type", "closable", "okButtonProps", "cancelButtonProps", "formExpand"];
8
-
9
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
10
-
3
+ const _excluded = ["type", "closable", "okButtonProps", "cancelButtonProps", "formExpand"];
4
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
5
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
12
-
13
6
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
14
-
15
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
-
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
-
19
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
-
21
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
22
-
23
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
24
-
25
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
26
-
27
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
-
29
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
30
-
31
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
32
-
33
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
34
-
35
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
36
-
37
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
38
-
39
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
40
-
7
+ 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; }
8
+ 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; }
9
+ 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; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
41
12
  import React, { createRef, PureComponent } from "react";
42
13
  import { utils } from "@bj-nsc/msn/lib/utils";
43
14
  import config from "../../config";
@@ -50,30 +21,15 @@ import Confirm from "./Confirm";
50
21
  import omit from "omit.js";
51
22
  import Draggable from "react-draggable";
52
23
  import cls from "classnames";
53
-
54
- var NscModal = /*#__PURE__*/function (_PureComponent) {
55
- _inherits(NscModal, _PureComponent);
56
-
57
- var _super = _createSuper(NscModal);
58
-
59
- // static confirm = Modal.confirm;
60
- //返回值
61
- function NscModal(props) {
62
- var _autoType;
63
-
64
- var _this2;
65
-
66
- _classCallCheck(this, NscModal);
67
-
68
- _this2 = _super.call(this, props);
69
-
70
- _defineProperty(_assertThisInitialized(_this2), "returnValue", null);
71
-
72
- _defineProperty(_assertThisInitialized(_this2), "draggleRef", /*#__PURE__*/createRef());
73
-
74
- _defineProperty(_assertThisInitialized(_this2), "option", {
24
+ export default class NscModal extends PureComponent {
25
+ constructor(props) {
26
+ super(props);
27
+ //返回值
28
+ _defineProperty(this, "returnValue", null);
29
+ _defineProperty(this, "draggleRef", /*#__PURE__*/createRef());
30
+ _defineProperty(this, "option", {
75
31
  //回调作用域
76
- scope: _assertThisInitialized(_this2),
32
+ scope: this,
77
33
  //open传递过来的页面参数
78
34
  params: {},
79
35
  //显示之前回调
@@ -85,15 +41,13 @@ var NscModal = /*#__PURE__*/function (_PureComponent) {
85
41
  //显示之后回调
86
42
  afterRender: null
87
43
  });
88
-
89
- _defineProperty(_assertThisInitialized(_this2), "listenMessage", function (ev) {
90
- var data = typeof ev.data === "string" ? JSON.parse(ev.data) : ev.data;
91
-
92
- var _this = _assertThisInitialized(_this2);
93
-
44
+ _defineProperty(this, "listenMessage", ev => {
45
+ const data = typeof ev.data === "string" ? JSON.parse(ev.data) : ev.data;
46
+ let _this = this;
94
47
  if (data.eventType == "changeFormType") {
95
- var payload = data.payload;
96
-
48
+ const {
49
+ payload
50
+ } = data;
97
51
  if (payload.type == "modal" || payload.type == "drawer") {
98
52
  _this.setState({
99
53
  modalType: payload.type
@@ -101,12 +55,11 @@ var NscModal = /*#__PURE__*/function (_PureComponent) {
101
55
  }
102
56
  }
103
57
  });
104
-
105
- var modal = props.type || "auto";
106
- var storePrefix = getStorage("store-pre-key");
107
- var autoType = getStorage(storePrefix ? storePrefix + "formType" : "formType");
108
- autoType = (_autoType = autoType) === null || _autoType === void 0 ? void 0 : _autoType.content;
109
- _this2.state = {
58
+ let modal = props.type || "auto";
59
+ let storePrefix = getStorage("store-pre-key");
60
+ let autoType = getStorage(storePrefix ? storePrefix + "formType" : "formType");
61
+ autoType = autoType ? autoType.content : null;
62
+ this.state = {
110
63
  visible: false,
111
64
  expand: false,
112
65
  modalType: modal == "auto" ? autoType : modal,
@@ -118,323 +71,282 @@ var NscModal = /*#__PURE__*/function (_PureComponent) {
118
71
  },
119
72
  dragger: true
120
73
  };
121
- return _this2;
74
+ }
75
+ /**
76
+ * 渲染完成
77
+ * @param {*} option 整改传递对象
78
+ */
79
+ componentDidMount() {
80
+ window.addEventListener("message", this.listenMessage);
81
+ }
82
+ componentWillUnmount() {
83
+ window.removeEventListener("message", this.listenMessage);
84
+ }
85
+ //显示
86
+ show() {
87
+ let option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
88
+ const {
89
+ scope
90
+ } = this.option;
91
+ const {
92
+ beforeRender,
93
+ afterRender
94
+ } = option;
95
+ this.option = _objectSpread(_objectSpread({}, this.option), option);
96
+ utils.callback(beforeRender, scope);
97
+ this.setState({
98
+ visible: true
99
+ }, () => {
100
+ utils.callback(afterRender, scope);
101
+ });
122
102
  }
123
103
 
124
- _createClass(NscModal, [{
125
- key: "componentDidMount",
126
- value:
127
- /**
128
- * 渲染完成
129
- * @param {*} option 整改传递对象
130
- */
131
- function componentDidMount() {
132
- window.addEventListener("message", this.listenMessage);
133
- }
134
- }, {
135
- key: "componentWillUnmount",
136
- value: function componentWillUnmount() {
137
- window.removeEventListener("message", this.listenMessage);
138
- }
139
- }, {
140
- key: "show",
141
- value: //显示
142
- function show() {
143
- var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
144
- var scope = this.option.scope;
145
- var beforeRender = option.beforeRender,
146
- afterRender = option.afterRender;
147
- this.option = _objectSpread(_objectSpread({}, this.option), option);
148
- utils.callback(beforeRender, scope);
149
- this.setState({
150
- visible: true
151
- }, function () {
152
- utils.callback(afterRender, scope);
153
- });
154
- } //隐藏
155
-
156
- }, {
157
- key: "hide",
158
- value: function hide() {
159
- var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
160
-
161
- var _this = this;
162
-
163
- _this.setState({
164
- visible: false
165
- });
166
- } //获取需要返回的值
167
-
168
- }, {
169
- key: "getReturnValue",
170
- value: function getReturnValue() {
171
- return this.returnValue;
172
- }
173
- /**
174
- * 关闭带回调
175
- */
176
-
177
- }, {
178
- key: "close",
179
- value: function close(result) {
180
- var buttonClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
181
-
182
- var _this = this; // const { callback, scope, callbackBeforeClose } = this.option;
183
-
184
-
185
- var _this$props = this.props,
186
- _this$props$formExpan = _this$props.formExpand,
187
- formExpand = _this$props$formExpan === void 0 ? {} : _this$props$formExpan,
188
- onCancel = _this$props.onCancel,
189
- onButtonCancel = _this$props.onButtonCancel,
190
- onClose = _this$props.onClose; // const r = utils.callback(callbackBeforeClose, scope, [this.returnValue]);
191
- // if (r !== false) {
104
+ //隐藏
105
+ hide() {
106
+ let option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
107
+ let _this = this;
108
+ _this.setState({
109
+ visible: false
110
+ });
111
+ }
192
112
 
193
- var _formExpand$expand = formExpand.expand,
194
- expand = _formExpand$expand === void 0 ? false : _formExpand$expand;
113
+ //获取需要返回的值
114
+ getReturnValue() {
115
+ return this.returnValue;
116
+ }
195
117
 
196
- if (expand && formExpand.valid && formExpand.change) {
197
- Confirm({
198
- content: "当前记录已修改尚未保存,确定要放弃修改吗?",
199
- onOk: function onOk() {
200
- if (onCancel || onClose) {
201
- if (buttonClose && onButtonCancel) {
202
- onButtonCancel(result);
203
- } else {
204
- onCancel && onCancel(result);
205
- onClose && onClose(result);
206
- }
118
+ /**
119
+ * 关闭带回调
120
+ */
121
+ close(result) {
122
+ let buttonClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
123
+ var _this = this;
124
+ // const { callback, scope, callbackBeforeClose } = this.option;
125
+ const {
126
+ formExpand = {},
127
+ onCancel,
128
+ onButtonCancel,
129
+ onClose
130
+ } = this.props;
131
+ // const r = utils.callback(callbackBeforeClose, scope, [this.returnValue]);
132
+ // if (r !== false) {
133
+ const {
134
+ expand = false
135
+ } = formExpand;
136
+ if (expand && formExpand.valid && formExpand.change) {
137
+ Confirm({
138
+ content: "当前记录已修改尚未保存,确定要放弃修改吗?",
139
+ onOk() {
140
+ if (onCancel || onClose) {
141
+ if (buttonClose && onButtonCancel) {
142
+ onButtonCancel(result);
207
143
  } else {
208
- _this.setState({
209
- visible: false
210
- });
144
+ onCancel && onCancel(result);
145
+ onClose && onClose(result);
211
146
  }
212
- }
213
- });
214
- } else {
215
- if (onCancel || onClose) {
216
- if (buttonClose && onButtonCancel) {
217
- onButtonCancel(result);
218
147
  } else {
219
- onCancel && onCancel(result);
220
- onClose && onClose(result);
148
+ _this.setState({
149
+ visible: false
150
+ });
221
151
  }
152
+ }
153
+ });
154
+ } else {
155
+ if (onCancel || onClose) {
156
+ if (buttonClose && onButtonCancel) {
157
+ onButtonCancel(result);
222
158
  } else {
223
- _this.setState({
224
- visible: false
225
- });
159
+ onCancel && onCancel(result);
160
+ onClose && onClose(result);
226
161
  }
227
- } // }
228
- // utils.callback(callback, scope, [_this.returnValue]);
229
-
162
+ } else {
163
+ _this.setState({
164
+ visible: false
165
+ });
166
+ }
230
167
  }
231
- /**
232
- * 获取参数,如果key不传递,且获取全部
233
- * @param {String} key
234
- */
168
+ // }
169
+ // utils.callback(callback, scope, [_this.returnValue]);
170
+ }
235
171
 
236
- }, {
237
- key: "getParams",
238
- value: function getParams(key) {
239
- if (key) return this.option.params[key];
240
- return this.option.params;
172
+ /**
173
+ * 获取参数,如果key不传递,且获取全部
174
+ * @param {String} key
175
+ */
176
+ getParams(key) {
177
+ if (key) return this.option.params[key];
178
+ return this.option.params;
179
+ }
180
+ onStart(_event, uiData) {
181
+ var _this$draggleRef$curr;
182
+ const {
183
+ clientWidth,
184
+ clientHeight
185
+ } = window.document.documentElement;
186
+ const targetRect = (_this$draggleRef$curr = this.draggleRef.current) === null || _this$draggleRef$curr === void 0 ? void 0 : _this$draggleRef$curr.getBoundingClientRect();
187
+ if (!targetRect) {
188
+ return;
241
189
  }
242
- }, {
243
- key: "onStart",
244
- value: function onStart(_event, uiData) {
245
- var _this$draggleRef$curr;
246
-
247
- var _window$document$docu = window.document.documentElement,
248
- clientWidth = _window$document$docu.clientWidth,
249
- clientHeight = _window$document$docu.clientHeight;
250
- var targetRect = (_this$draggleRef$curr = this.draggleRef.current) === null || _this$draggleRef$curr === void 0 ? void 0 : _this$draggleRef$curr.getBoundingClientRect();
251
-
252
- if (!targetRect) {
253
- return;
190
+ this.setState({
191
+ bounds: {
192
+ left: -targetRect.left + uiData.x,
193
+ right: clientWidth - (targetRect.right - uiData.x),
194
+ top: -targetRect.top + uiData.y,
195
+ bottom: clientHeight - (targetRect.bottom - uiData.y)
254
196
  }
255
-
256
- this.setState({
257
- bounds: {
258
- left: -targetRect.left + uiData.x,
259
- right: clientWidth - (targetRect.right - uiData.x),
260
- top: -targetRect.top + uiData.y,
261
- bottom: clientHeight - (targetRect.bottom - uiData.y)
197
+ });
198
+ }
199
+ render() {
200
+ const _this$props = this.props,
201
+ {
202
+ type = "modal",
203
+ closable,
204
+ // title: orgtitle,
205
+ okButtonProps = {},
206
+ cancelButtonProps = {},
207
+ formExpand = {}
208
+ } = _this$props,
209
+ params = _objectWithoutProperties(_this$props, _excluded);
210
+ let props = _objectSpread({}, params);
211
+ let {
212
+ mountElementId
213
+ } = config();
214
+ if (mountElementId) {
215
+ props = _objectSpread({
216
+ getContainer: () => document.getElementById(mountElementId)
217
+ }, props);
218
+ }
219
+ if (props.dragable || type == "modal") {
220
+ props = _objectSpread({
221
+ modalRender: modal => {
222
+ return /*#__PURE__*/React.createElement(Draggable, {
223
+ disabled: this.state.dragger,
224
+ bounds: this.state.bounds,
225
+ onStart: (event, uiData) => {
226
+ this.onStart(event, uiData);
227
+ }
228
+ }, /*#__PURE__*/React.createElement("div", {
229
+ ref: this.draggleRef
230
+ }, modal));
262
231
  }
263
- });
232
+ }, props);
264
233
  }
265
- }, {
266
- key: "render",
267
- value: function render() {
268
- var _this3 = this;
269
-
270
- var _this$props2 = this.props,
271
- _this$props2$type = _this$props2.type,
272
- type = _this$props2$type === void 0 ? "modal" : _this$props2$type,
273
- closable = _this$props2.closable,
274
- _this$props2$okButton = _this$props2.okButtonProps,
275
- okButtonProps = _this$props2$okButton === void 0 ? {} : _this$props2$okButton,
276
- _this$props2$cancelBu = _this$props2.cancelButtonProps,
277
- cancelButtonProps = _this$props2$cancelBu === void 0 ? {} : _this$props2$cancelBu,
278
- _this$props2$formExpa = _this$props2.formExpand,
279
- formExpand = _this$props2$formExpa === void 0 ? {} : _this$props2$formExpa,
280
- params = _objectWithoutProperties(_this$props2, _excluded);
281
-
282
- var props = _objectSpread({}, params);
283
-
284
- var _config = config(),
285
- mountElementId = _config.mountElementId;
286
-
287
- if (mountElementId) {
288
- props = _objectSpread({
289
- getContainer: function getContainer() {
290
- return document.getElementById(mountElementId);
291
- }
292
- }, props);
234
+ const title = /*#__PURE__*/React.createElement("div", {
235
+ className: cls(getLess(styles, "nsc-modal-title"), {
236
+ [getLess(styles, "nsc-modal-title-dragger")]: this.props.dragable && type == "modal"
237
+ }),
238
+ onMouseOver: () => {
239
+ if (this.state.dragger) {
240
+ this.setState({
241
+ dragger: false
242
+ });
243
+ }
244
+ },
245
+ onMouseOut: () => {
246
+ this.setState({
247
+ dragger: true
248
+ });
293
249
  }
294
-
295
- if (props.dragable || type == "modal") {
296
- props = _objectSpread({
297
- modalRender: function modalRender(modal) {
298
- return /*#__PURE__*/React.createElement(Draggable, {
299
- disabled: _this3.state.dragger,
300
- bounds: _this3.state.bounds,
301
- onStart: function onStart(event, uiData) {
302
- _this3.onStart(event, uiData);
303
- }
304
- }, /*#__PURE__*/React.createElement("div", {
305
- ref: _this3.draggleRef
306
- }, modal));
307
- }
308
- }, props);
250
+ }, /*#__PURE__*/React.createElement("div", {
251
+ className: getLess(styles, "nsc-modal-title-icons")
252
+ }, !this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
253
+ onClick: () => {
254
+ this.setState({
255
+ expand: true
256
+ });
257
+ },
258
+ className: getLess(styles, "nsc-modal-title-icon")
259
+ }, /*#__PURE__*/React.createElement(ExpandOutlined, null)), this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
260
+ onClick: () => {
261
+ this.setState({
262
+ expand: false
263
+ });
264
+ },
265
+ className: getLess(styles, "nsc-modal-title-icon")
266
+ }, /*#__PURE__*/React.createElement(CompressOutlined, null)), closable !== false && /*#__PURE__*/React.createElement("div", {
267
+ onClick: () => {
268
+ this.close();
269
+ },
270
+ className: getLess(styles, "nsc-modal-title-icon"),
271
+ style: {
272
+ marginRight: 0
309
273
  }
310
-
311
- var title = /*#__PURE__*/React.createElement("div", {
312
- className: cls(getLess(styles, "title"), _defineProperty({}, getLess(styles, "title-dragger"), this.props.dragable && type == "modal")),
313
- onMouseOver: function onMouseOver() {
314
- if (_this3.state.dragger) {
315
- _this3.setState({
316
- dragger: false
317
- });
318
- }
274
+ }, /*#__PURE__*/React.createElement(CloseOutlined, null))), /*#__PURE__*/React.createElement("div", {
275
+ className: getLess(styles, "nsc-modal-title-content")
276
+ }, this.props.title));
277
+ const {
278
+ modalButton
279
+ } = config();
280
+ const footer = /*#__PURE__*/React.createElement("div", {
281
+ className: getLess(styles, "nsc-modal-footer")
282
+ }, /*#__PURE__*/React.createElement(Button, _extends({
283
+ type: "primary",
284
+ onClick: () => {
285
+ props.onOk && props.onOk();
286
+ },
287
+ icon: /*#__PURE__*/React.createElement(PlusCircleOutlined, null)
288
+ }, modalButton.okButtonProps, okButtonProps), this.props.okText ? this.props.okText : "保存"), /*#__PURE__*/React.createElement(Button, _extends({
289
+ onClick: this.close.bind(this, {}, true),
290
+ className: getLess(styles, "nsc-modal-footer-button-margin"),
291
+ icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null)
292
+ }, modalButton.cancleButtonProps, cancelButtonProps), this.props.cancelText ? this.props.cancelText : "取消"));
293
+ if (formExpand.expand) {
294
+ props = _objectSpread(_objectSpread({
295
+ footer: footer
296
+ }, props), {}, {
297
+ title: title,
298
+ closable: false,
299
+ style: {
300
+ maxWidth: "100vw"
319
301
  },
320
- onMouseOut: function onMouseOut() {
321
- _this3.setState({
322
- dragger: true
323
- });
302
+ className: this.state.expand ? getLess(styles, "nsc-modal-allsreen") : "",
303
+ width: this.state.expand ? "100vw" : props.width
304
+ });
305
+ } else {
306
+ props = _objectSpread(_objectSpread({
307
+ footer: footer
308
+ }, props), {}, {
309
+ title: title,
310
+ closable: false
311
+ });
312
+ }
313
+ if (this.state.modalType == "drawer") {
314
+ let oldProps = _objectSpread({}, props);
315
+ let newDrawerProps = omit(oldProps, ["onOk", "okButtonProps"]);
316
+ return /*#__PURE__*/React.createElement(_Drawer, _extends({
317
+ open: this.state.visible,
318
+ onClose: () => {
319
+ this.close();
324
320
  }
325
- }, /*#__PURE__*/React.createElement("div", {
326
- className: getLess(styles, "icons")
327
- }, !this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
328
- onClick: function onClick() {
329
- _this3.setState({
330
- expand: true
331
- });
321
+ }, newDrawerProps));
322
+ } else {
323
+ return /*#__PURE__*/React.createElement(_Modal, _extends({
324
+ open: this.state.visible,
325
+ onCancel: () => {
326
+ this.close();
327
+ },
328
+ onOk: () => {
329
+ this.close();
332
330
  },
333
- className: getLess(styles, "icon")
334
- }, /*#__PURE__*/React.createElement(ExpandOutlined, null)), this.state.expand && formExpand.expand && /*#__PURE__*/React.createElement("div", {
335
- onClick: function onClick() {
336
- _this3.setState({
331
+ okText: "确定",
332
+ cancelText: "取消",
333
+ centered: true
334
+ // title={formExpand ? title : this.props.title}
335
+ }, props, {
336
+ afterClose: () => {
337
+ this.setState({
337
338
  expand: false
338
339
  });
339
340
  },
340
- className: getLess(styles, "icon")
341
- }, /*#__PURE__*/React.createElement(CompressOutlined, null)), closable !== false && /*#__PURE__*/React.createElement("div", {
342
- onClick: function onClick() {
343
- _this3.close();
344
- },
345
- className: getLess(styles, "icon"),
346
- style: {
347
- marginRight: 0
348
- }
349
- }, /*#__PURE__*/React.createElement(CloseOutlined, null))), /*#__PURE__*/React.createElement("div", {
350
- className: getLess(styles, "title-content")
351
- }, this.props.title));
352
-
353
- var _config2 = config(),
354
- modalButton = _config2.modalButton;
355
-
356
- var footer = /*#__PURE__*/React.createElement("div", {
357
- className: getLess(styles, "footer")
358
- }, /*#__PURE__*/React.createElement(Button, _extends({
359
- type: "primary",
360
- onClick: function onClick() {
361
- props.onOk && props.onOk();
362
- },
363
- icon: /*#__PURE__*/React.createElement(PlusCircleOutlined, null)
364
- }, modalButton.okButtonProps, okButtonProps), this.props.okText ? this.props.okText : "保存"), /*#__PURE__*/React.createElement(Button, _extends({
365
- onClick: this.close.bind(this, {}, true),
366
- className: getLess(styles, "button-margin"),
367
- icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null)
368
- }, modalButton.cancleButtonProps, cancelButtonProps), this.props.cancelText ? this.props.cancelText : "取消"));
369
-
370
- if (formExpand.expand) {
371
- props = _objectSpread(_objectSpread({
372
- footer: footer
373
- }, props), {}, {
374
- title: title,
375
- closable: false,
376
- style: {
377
- maxWidth: "100vw"
378
- },
379
- className: this.state.expand ? getLess(styles, "allsreen") : "",
380
- width: this.state.expand ? "100vw" : props.width
381
- });
382
- } else {
383
- props = _objectSpread(_objectSpread({
384
- footer: footer
385
- }, props), {}, {
386
- title: title,
387
- closable: false
388
- });
389
- }
390
-
391
- if (this.state.modalType == "drawer") {
392
- var oldProps = _objectSpread({}, props);
393
-
394
- var newDrawerProps = omit(oldProps, ["onOk", "okButtonProps"]);
395
- return /*#__PURE__*/React.createElement(_Drawer, _extends({
396
- visible: this.state.visible,
397
- onClose: function onClose() {
398
- _this3.close();
399
- }
400
- }, newDrawerProps));
401
- } else {
402
- return /*#__PURE__*/React.createElement(_Modal, _extends({
403
- visible: this.state.visible,
404
- onCancel: function onCancel() {
405
- _this3.close();
406
- },
407
- onOk: function onOk() {
408
- _this3.close();
409
- },
410
- okText: "确定",
411
- cancelText: "取消",
412
- centered: true // title={formExpand ? title : this.props.title}
413
-
414
- }, props, {
415
- afterClose: function afterClose() {
416
- _this3.setState({
417
- expand: false
418
- });
419
- },
420
- className: getLess(styles, 'nsc-modal')
421
- }));
422
- }
341
+ className: getLess(styles, 'nsc-modal')
342
+ }));
423
343
  }
424
- }]);
425
-
426
- return NscModal;
427
- }(PureComponent);
428
-
344
+ }
345
+ }
429
346
  _defineProperty(NscModal, "confirm", Confirm);
430
-
347
+ // static confirm = Modal.confirm;
431
348
  _defineProperty(NscModal, "info", _Modal.info);
432
-
433
349
  _defineProperty(NscModal, "success", _Modal.success);
434
-
435
350
  _defineProperty(NscModal, "error", _Modal.error);
436
-
437
351
  _defineProperty(NscModal, "warning", _Modal.warning);
438
-
439
- export { NscModal as default };
440
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvbW9kYWwvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiY3JlYXRlUmVmIiwiUHVyZUNvbXBvbmVudCIsInV0aWxzIiwiY29uZmlnIiwiUGx1c0NpcmNsZU91dGxpbmVkIiwiQ2xvc2VDaXJjbGVPdXRsaW5lZCIsIkNsb3NlT3V0bGluZWQiLCJFeHBhbmRPdXRsaW5lZCIsIkNvbXByZXNzT3V0bGluZWQiLCJCdXR0b24iLCJnZXRMZXNzIiwic3R5bGVzIiwiZ2V0U3RvcmFnZSIsIkNvbmZpcm0iLCJvbWl0IiwiRHJhZ2dhYmxlIiwiY2xzIiwiTnNjTW9kYWwiLCJwcm9wcyIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJtb2RhbFR5cGUiLCJtb2RhbCIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50Iiwic3RhdGUiLCJ2aXNpYmxlIiwiZXhwYW5kIiwiYm91bmRzIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiZHJhZ2dlciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9wdGlvbiIsInJldHVyblZhbHVlIiwicmVzdWx0IiwiYnV0dG9uQ2xvc2UiLCJmb3JtRXhwYW5kIiwib25DYW5jZWwiLCJvbkJ1dHRvbkNhbmNlbCIsIm9uQ2xvc2UiLCJ2YWxpZCIsImNoYW5nZSIsIm9uT2siLCJrZXkiLCJfZXZlbnQiLCJ1aURhdGEiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwidGFyZ2V0UmVjdCIsImRyYWdnbGVSZWYiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsInkiLCJjbG9zYWJsZSIsIm9rQnV0dG9uUHJvcHMiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm1vdW50RWxlbWVudElkIiwiZ2V0Q29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJkcmFnYWJsZSIsIm1vZGFsUmVuZGVyIiwiZXZlbnQiLCJvblN0YXJ0IiwidGl0bGUiLCJjbG9zZSIsIm1hcmdpblJpZ2h0IiwibW9kYWxCdXR0b24iLCJmb290ZXIiLCJva1RleHQiLCJiaW5kIiwiY2FuY2xlQnV0dG9uUHJvcHMiLCJjYW5jZWxUZXh0Iiwic3R5bGUiLCJtYXhXaWR0aCIsImNsYXNzTmFtZSIsIndpZHRoIiwib2xkUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsImluZm8iLCJzdWNjZXNzIiwiZXJyb3IiLCJ3YXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsU0FBaEIsRUFBMkJDLGFBQTNCLFFBQTJELE9BQTNEO0FBRUEsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FDRUMsa0JBREYsRUFFRUMsbUJBRkYsRUFHRUMsYUFIRixFQUlFQyxjQUpGLEVBS0VDLGdCQUxGLFFBTU8sbUJBTlA7QUFPQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixpQkFBdEI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCOztJQWNxQkMsUTs7Ozs7QUFFbkI7QUFLQTtBQUdBLG9CQUFZQyxLQUFaLEVBQW1C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VUFBVSxFQUFFLElBVGQ7QUFVRSxVQUFBLFFBQVEsRUFBRSxJQVZaLENBV0U7O0FBWEYsV0FZTXJFLEtBWk47QUFhRSxVQUFBLFVBQVUsRUFBRSxzQkFBTTtBQUNoQixZQUFBLE1BQUksQ0FBQ2UsUUFBTCxDQUFjO0FBQ1pRLGNBQUFBLE1BQU0sRUFBRTtBQURJLGFBQWQ7QUFHRCxXQWpCSDtBQWtCRSxVQUFBLFNBQVMsRUFBRS9CLE9BQU8sQ0FBQ0MsTUFBRCxFQUFRLFdBQVI7QUFsQnBCLFdBREY7QUFzQkQ7QUFDRjs7OztFQXJVbUNWLGE7O2dCQUFqQmdCLFEsYUFDRkosTzs7Z0JBREVJLFEsVUFHTCxPQUFNb0YsSTs7Z0JBSERwRixRLGFBSUYsT0FBTXFGLE87O2dCQUpKckYsUSxXQUtKLE9BQU1zRixLOztnQkFMRnRGLFEsYUFNRixPQUFNdUYsTzs7U0FOSnZGLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlUmVmLCBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7XHJcbiAgUGx1c0NpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VPdXRsaW5lZCxcclxuICBFeHBhbmRPdXRsaW5lZCxcclxuICBDb21wcmVzc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgQ29uZmlybSBmcm9tIFwiLi9Db25maXJtXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlRGF0YSwgRHJhZ2dhYmxlRXZlbnQgfSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcblxyXG5pbnRlcmZhY2UgZm9ybUV4cGFuZCB7XHJcbiAgY2hhbmdlPzogYm9vbGVhbjtcclxuICB2YWxpZD86IGJvb2xlYW47XHJcbiAgZXhwYW5kPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5zY01vZGFsUG9ycHMgZXh0ZW5kcyBNb2RhbFByb3BzLCBEcmF3ZXJQcm9wcyB7XHJcbiAgdHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBmb3JtRXhwYW5kPzogZm9ybUV4cGFuZDtcclxuICBvbkJ1dHRvbkNhbmNlbD86IGFueTsgLy/lupXpg6jlj5bmtojmjInpkq7lm57osINcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8v5by55qGG5piv5ZCm55yL5ouW5YqoXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOc2NNb2RhbFBvcnBzLCBhbnk+IHtcclxuICBzdGF0aWMgY29uZmlybSA9IENvbmZpcm07XHJcbiAgLy8gc3RhdGljIGNvbmZpcm0gPSBNb2RhbC5jb25maXJtO1xyXG4gIHN0YXRpYyBpbmZvID0gTW9kYWwuaW5mbztcclxuICBzdGF0aWMgc3VjY2VzcyA9IE1vZGFsLnN1Y2Nlc3M7XHJcbiAgc3RhdGljIGVycm9yID0gTW9kYWwuZXJyb3I7XHJcbiAgc3RhdGljIHdhcm5pbmcgPSBNb2RhbC53YXJuaW5nO1xyXG4gIC8v6L+U5Zue5YC8XHJcbiAgcmV0dXJuVmFsdWUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IG1vZGFsID0gcHJvcHMudHlwZSB8fCBcImF1dG9cIjtcclxuICAgIGxldCBzdG9yZVByZWZpeCA9IGdldFN0b3JhZ2UoXCJzdG9yZS1wcmUta2V5XCIpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgbW9kYWxUeXBlOiBtb2RhbCA9PSBcImF1dG9cIiA/IGF1dG9UeXBlIDogbW9kYWwsXHJcbiAgICAgIGJvdW5kczogeyBsZWZ0OiAwLCB0b3A6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfSxcclxuICAgICAgZHJhZ2dlcjogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGRyYWdnbGVSZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcblxyXG4gIG9wdGlvbjogYW55ID0ge1xyXG4gICAgLy/lm57osIPkvZznlKjln59cclxuICAgIHNjb3BlOiB0aGlzLFxyXG4gICAgLy9vcGVu5Lyg6YCS6L+H5p2l55qE6aG16Z2i5Y+C5pWwXHJcbiAgICBwYXJhbXM6IHt9LFxyXG4gICAgLy/mmL7npLrkuYvliY3lm57osINcclxuICAgIGJlZm9yZVJlbmRlcjogbnVsbCxcclxuICAgIC8v5YWz6Zet5LmL5YmN5Zue6LCD77yM5aaC5p6ccmV0dXJuIGZhbHNl77yM5LiU56qX5Y+j5LiN5YWz6ZetXHJcbiAgICBjYWxsYmFja0JlZm9yZUNsb3NlOiBudWxsLFxyXG4gICAgLy/lhbPpl63lkI7lm57osIPvvIzlvILmraXmk43kvZxcclxuICAgIGNhbGxiYWNrOiBudWxsLFxyXG4gICAgLy/mmL7npLrkuYvlkI7lm57osINcclxuICAgIGFmdGVyUmVuZGVyOiBudWxsLFxyXG4gIH07XHJcbiAgLyoqXHJcbiAgICog5riy5p+T5a6M5oiQXHJcbiAgICogQHBhcmFtIHsqfSBvcHRpb24gIOaVtOaUueS8oOmAkuWvueixoVxyXG4gICAqL1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLmxpc3Rlbk1lc3NhZ2UpO1xyXG4gIH1cclxuICBsaXN0ZW5NZXNzYWdlID0gKGV2KSA9PiB7XHJcbiAgICBjb25zdCBkYXRhID0gdHlwZW9mIGV2LmRhdGEgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKGV2LmRhdGEpIDogZXYuZGF0YTtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT0gXCJjaGFuZ2VGb3JtVHlwZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKHBheWxvYWQudHlwZSA9PSBcIm1vZGFsXCIgfHwgcGF5bG9hZC50eXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1vZGFsVHlwZTogcGF5bG9hZC50eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICAvL+aYvuekulxyXG4gIHNob3cob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgY29uc3QgeyBzY29wZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGJlZm9yZVJlbmRlciwgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiwgLi4ub3B0aW9uIH07XHJcbiAgICB1dGlscy5jYWxsYmFjayhiZWZvcmVSZW5kZXIsIHNjb3BlKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiB0cnVlIH0sICgpID0+IHtcclxuICAgICAgdXRpbHMuY2FsbGJhY2soYWZ0ZXJSZW5kZXIsIHNjb3BlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/pmpDol49cclxuICBoaWRlKG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bpnIDopoHov5Tlm57nmoTlgLxcclxuICBnZXRSZXR1cm5WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YWz6Zet5bim5Zue6LCDXHJcbiAgICovXHJcbiAgY2xvc2UocmVzdWx0PzogYW55LCBidXR0b25DbG9zZSA9IGZhbHNlKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgLy8gY29uc3QgeyBjYWxsYmFjaywgc2NvcGUsIGNhbGxiYWNrQmVmb3JlQ2xvc2UgfSA9IHRoaXMub3B0aW9uO1xyXG4gICAgY29uc3QgeyBmb3JtRXhwYW5kID0ge30sIG9uQ2FuY2VsLCBvbkJ1dHRvbkNhbmNlbCwgb25DbG9zZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIGNvbnN0IHIgPSB1dGlscy5jYWxsYmFjayhjYWxsYmFja0JlZm9yZUNsb3NlLCBzY29wZSwgW3RoaXMucmV0dXJuVmFsdWVdKTtcclxuICAgIC8vIGlmIChyICE9PSBmYWxzZSkge1xyXG4gICAgY29uc3QgeyBleHBhbmQgPSBmYWxzZSB9ID0gZm9ybUV4cGFuZDtcclxuICAgIGlmIChleHBhbmQgJiYgZm9ybUV4cGFuZC52YWxpZCAmJiBmb3JtRXhwYW5kLmNoYW5nZSkge1xyXG4gICAgICBDb25maXJtKHtcclxuICAgICAgICBjb250ZW50OiBcIuW9k+WJjeiusOW9leW3suS/ruaUueWwmuacquS/neWtmO+8jOehruWumuimgeaUvuW8g+S/ruaUueWQl++8n1wiLFxyXG4gICAgICAgIG9uT2soKSB7XHJcbiAgICAgICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uQ2xvc2UgJiYgb25CdXR0b25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9uQ2FuY2VsICYmIG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgb25CdXR0b25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgIG9uQ2xvc2UgJiYgb25DbG9zZShyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyB1dGlscy5jYWxsYmFjayhjYWxsYmFjaywgc2NvcGUsIFtfdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5Y+C5pWw77yM5aaC5p6ca2V55LiN5Lyg6YCS77yM5LiU6I635Y+W5YWo6YOoXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleVxyXG4gICAqL1xyXG4gIGdldFBhcmFtcyhrZXkpIHtcclxuICAgIGlmIChrZXkpIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXM7XHJcbiAgfVxyXG4gIG9uU3RhcnQoX2V2ZW50OiBEcmFnZ2FibGVFdmVudCwgdWlEYXRhOiBEcmFnZ2FibGVEYXRhKSB7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGhpcy5kcmFnZ2xlUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCF0YXJnZXRSZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBib3VuZHM6IHtcclxuICAgICAgICBsZWZ0OiAtdGFyZ2V0UmVjdC5sZWZ0ICsgdWlEYXRhLngsXHJcbiAgICAgICAgcmlnaHQ6IGNsaWVudFdpZHRoIC0gKHRhcmdldFJlY3QucmlnaHQgLSB1aURhdGEueCksXHJcbiAgICAgICAgdG9wOiAtdGFyZ2V0UmVjdC50b3AgKyB1aURhdGEueSxcclxuICAgICAgICBib3R0b206IGNsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0LmJvdHRvbSAtIHVpRGF0YS55KSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB0eXBlID0gXCJtb2RhbFwiLFxyXG4gICAgICBjbG9zYWJsZSxcclxuICAgICAgLy8gdGl0bGU6IG9yZ3RpdGxlLFxyXG4gICAgICBva0J1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGNhbmNlbEJ1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGZvcm1FeHBhbmQgPSB7fSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBwcm9wczogYW55ID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGxldCB7IG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5kcmFnYWJsZSB8fCB0eXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0aXRsZVwiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRpdGxlLWRyYWdnZXJcIildOlxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uc1wiKX0+XHJcbiAgICAgICAgICB7IXRoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8RXhwYW5kT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxDbG9zZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGl0bGUtY29udGVudFwiKX0+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgY29uc3QgeyBtb2RhbEJ1dHRvbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBmb290ZXIgPSAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJmb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5va0J1dHRvblByb3BzfVxyXG4gICAgICAgICAgey4uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMub2tUZXh0ID8gdGhpcy5wcm9wcy5va1RleHQgOiBcIuS/neWtmFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG5cclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNsb3NlLmJpbmQodGhpcywge30sIHRydWUpfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJidXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgaWNvbj17PENsb3NlQ2lyY2xlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICB7Li4ubW9kYWxCdXR0b24uY2FuY2xlQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4uY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMuY2FuY2VsVGV4dCA/IHRoaXMucHJvcHMuY2FuY2VsVGV4dCA6IFwi5Y+W5raIXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGlmIChmb3JtRXhwYW5kLmV4cGFuZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHN0eWxlOiB7IG1heFdpZHRoOiBcIjEwMHZ3XCIgfSxcclxuICAgICAgICBjbGFzc05hbWU6IHRoaXMuc3RhdGUuZXhwYW5kID8gZ2V0TGVzcyhzdHlsZXMsIFwiYWxsc3JlZW5cIikgOiBcIlwiLFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLnN0YXRlLmV4cGFuZCA/IFwiMTAwdndcIiA6IHByb3BzLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZm9vdGVyOiBmb290ZXIsXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN0YXRlLm1vZGFsVHlwZSA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGxldCBvbGRQcm9wcyA9IHsgLi4ucHJvcHMgfTtcclxuICAgICAgbGV0IG5ld0RyYXdlclByb3BzID0gb21pdChvbGRQcm9wcywgW1wib25Pa1wiLCBcIm9rQnV0dG9uUHJvcHNcIl0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEcmF3ZXJcclxuICAgICAgICAgIHZpc2libGU9e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHsuLi5uZXdEcmF3ZXJQcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWxcclxuICAgICAgICAgIHZpc2libGU9e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBvbk9rPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBva1RleHQ9e1wi56Gu5a6aXCJ9XHJcbiAgICAgICAgICBjYW5jZWxUZXh0PXtcIuWPlua2iFwifVxyXG4gICAgICAgICAgY2VudGVyZWQ9e3RydWV9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywnbnNjLW1vZGFsJyl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
352
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldFN0b3JhZ2UiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJtb2RhbFR5cGUiLCJtb2RhbCIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50Iiwic3RhdGUiLCJ2aXNpYmxlIiwiZXhwYW5kIiwiYm91bmRzIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiZHJhZ2dlciIsImNvbXBvbmVudERpZE1vdW50Iiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImxpc3Rlbk1lc3NhZ2UiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzaG93Iiwib3B0aW9uIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX29iamVjdFNwcmVhZCIsImhpZGUiLCJnZXRSZXR1cm5WYWx1ZSIsInJldHVyblZhbHVlIiwiY2xvc2UiLCJyZXN1bHQiLCJidXR0b25DbG9zZSIsImZvcm1FeHBhbmQiLCJvbkNhbmNlbCIsIm9uQnV0dG9uQ2FuY2VsIiwib25DbG9zZSIsInZhbGlkIiwiY2hhbmdlIiwib25PayIsImdldFBhcmFtcyIsImtleSIsIm9uU3RhcnQiLCJfZXZlbnQiLCJ1aURhdGEiLCJfdGhpcyRkcmFnZ2xlUmVmJGN1cnIiLCJjbGllbnRXaWR0aCIsImNsaWVudEhlaWdodCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwidGFyZ2V0UmVjdCIsImRyYWdnbGVSZWYiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsInkiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNsb3NhYmxlIiwib2tCdXR0b25Qcm9wcyIsImNhbmNlbEJ1dHRvblByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibW91bnRFbGVtZW50SWQiLCJnZXRDb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsImRyYWdhYmxlIiwibW9kYWxSZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiZGlzYWJsZWQiLCJldmVudCIsInJlZiIsInRpdGxlIiwiY2xhc3NOYW1lIiwib25Nb3VzZU92ZXIiLCJvbk1vdXNlT3V0Iiwib25DbGljayIsInN0eWxlIiwibWFyZ2luUmlnaHQiLCJtb2RhbEJ1dHRvbiIsImZvb3RlciIsIl9leHRlbmRzIiwiaWNvbiIsIm9rVGV4dCIsImJpbmQiLCJjYW5jbGVCdXR0b25Qcm9wcyIsImNhbmNlbFRleHQiLCJtYXhXaWR0aCIsIndpZHRoIiwib2xkUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsIl9EcmF3ZXIiLCJvcGVuIiwiX01vZGFsIiwiY2VudGVyZWQiLCJhZnRlckNsb3NlIiwiaW5mbyIsInN1Y2Nlc3MiLCJlcnJvciIsIndhcm5pbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL21vZGFsL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlUmVmLCBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7XHJcbiAgUGx1c0NpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VPdXRsaW5lZCxcclxuICBFeHBhbmRPdXRsaW5lZCxcclxuICBDb21wcmVzc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgQ29uZmlybSBmcm9tIFwiLi9Db25maXJtXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlRGF0YSwgRHJhZ2dhYmxlRXZlbnQgfSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcblxyXG5pbnRlcmZhY2UgZm9ybUV4cGFuZCB7XHJcbiAgY2hhbmdlPzogYm9vbGVhbjtcclxuICB2YWxpZD86IGJvb2xlYW47XHJcbiAgZXhwYW5kPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOc2NNb2RhbFBvcnBzIGV4dGVuZHMgTW9kYWxQcm9wcyB7XHJcbiAgdHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBmb3JtRXhwYW5kPzogZm9ybUV4cGFuZDtcclxuICBvbkJ1dHRvbkNhbmNlbD86IGFueTsgLy/lupXpg6jlj5bmtojmjInpkq7lm57osINcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8v5by55qGG5piv5ZCm55yL5ouW5YqoXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxcclxuICBOc2NNb2RhbFBvcnBzICYgRHJhd2VyUHJvcHMsXHJcbiAgYW55XHJcbj4ge1xyXG4gIHN0YXRpYyBjb25maXJtID0gQ29uZmlybTtcclxuICAvLyBzdGF0aWMgY29uZmlybSA9IE1vZGFsLmNvbmZpcm07XHJcbiAgc3RhdGljIGluZm8gPSBNb2RhbC5pbmZvO1xyXG4gIHN0YXRpYyBzdWNjZXNzID0gTW9kYWwuc3VjY2VzcztcclxuICBzdGF0aWMgZXJyb3IgPSBNb2RhbC5lcnJvcjtcclxuICBzdGF0aWMgd2FybmluZyA9IE1vZGFsLndhcm5pbmc7XHJcbiAgLy/ov5Tlm57lgLxcclxuICByZXR1cm5WYWx1ZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgbGV0IHN0b3JlUHJlZml4ID0gZ2V0U3RvcmFnZShcInN0b3JlLXByZS1rZXlcIik7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgYXV0b1R5cGUgPSBhdXRvVHlwZSA/IGF1dG9UeXBlLmNvbnRlbnQgOiBudWxsO1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgIG1vZGFsVHlwZTogbW9kYWwgPT0gXCJhdXRvXCIgPyBhdXRvVHlwZSA6IG1vZGFsLFxyXG4gICAgICBib3VuZHM6IHsgbGVmdDogMCwgdG9wOiAwLCBib3R0b206IDAsIHJpZ2h0OiAwIH0sXHJcbiAgICAgIGRyYWdnZXI6IHRydWUsXHJcbiAgICB9O1xyXG4gIH1cclxuICBkcmFnZ2xlUmVmID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xyXG5cclxuICBvcHRpb246IGFueSA9IHtcclxuICAgIC8v5Zue6LCD5L2c55So5Z+fXHJcbiAgICBzY29wZTogdGhpcyxcclxuICAgIC8vb3BlbuS8oOmAkui/h+adpeeahOmhtemdouWPguaVsFxyXG4gICAgcGFyYW1zOiB7fSxcclxuICAgIC8v5pi+56S65LmL5YmN5Zue6LCDXHJcbiAgICBiZWZvcmVSZW5kZXI6IG51bGwsXHJcbiAgICAvL+WFs+mXreS5i+WJjeWbnuiwg++8jOWmguaenHJldHVybiBmYWxzZe+8jOS4lOeql+WPo+S4jeWFs+mXrVxyXG4gICAgY2FsbGJhY2tCZWZvcmVDbG9zZTogbnVsbCxcclxuICAgIC8v5YWz6Zet5ZCO5Zue6LCD77yM5byC5q2l5pON5L2cXHJcbiAgICBjYWxsYmFjazogbnVsbCxcclxuICAgIC8v5pi+56S65LmL5ZCO5Zue6LCDXHJcbiAgICBhZnRlclJlbmRlcjogbnVsbCxcclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIOa4suafk+WujOaIkFxyXG4gICAqIEBwYXJhbSB7Kn0gb3B0aW9uICDmlbTmlLnkvKDpgJLlr7nosaFcclxuICAgKi9cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLmxpc3Rlbk1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwiY2hhbmdlRm9ybVR5cGVcIikge1xyXG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IGRhdGE7XHJcbiAgICAgIGlmIChwYXlsb2FkLnR5cGUgPT0gXCJtb2RhbFwiIHx8IHBheWxvYWQudHlwZSA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBtb2RhbFR5cGU6IHBheWxvYWQudHlwZSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgLy/mmL7npLpcclxuICBzaG93KG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIGNvbnN0IHsgc2NvcGUgfSA9IHRoaXMub3B0aW9uO1xyXG4gICAgY29uc3QgeyBiZWZvcmVSZW5kZXIsIGFmdGVyUmVuZGVyIH0gPSBvcHRpb247XHJcbiAgICB0aGlzLm9wdGlvbiA9IHsgLi4udGhpcy5vcHRpb24sIC4uLm9wdGlvbiB9O1xyXG4gICAgdXRpbHMuY2FsbGJhY2soYmVmb3JlUmVuZGVyLCBzY29wZSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogdHJ1ZSB9LCAoKSA9PiB7XHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKGFmdGVyUmVuZGVyLCBzY29wZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8v6ZqQ6JePXHJcbiAgaGlkZShvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgX3RoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIC8v6I635Y+W6ZyA6KaB6L+U5Zue55qE5YC8XHJcbiAgZ2V0UmV0dXJuVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5WYWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWFs+mXreW4puWbnuiwg1xyXG4gICAqL1xyXG4gIGNsb3NlKHJlc3VsdD86IGFueSwgYnV0dG9uQ2xvc2UgPSBmYWxzZSkge1xyXG4gICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgIC8vIGNvbnN0IHsgY2FsbGJhY2ssIHNjb3BlLCBjYWxsYmFja0JlZm9yZUNsb3NlIH0gPSB0aGlzLm9wdGlvbjtcclxuICAgIGNvbnN0IHsgZm9ybUV4cGFuZCA9IHt9LCBvbkNhbmNlbCwgb25CdXR0b25DYW5jZWwsIG9uQ2xvc2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAvLyBjb25zdCByID0gdXRpbHMuY2FsbGJhY2soY2FsbGJhY2tCZWZvcmVDbG9zZSwgc2NvcGUsIFt0aGlzLnJldHVyblZhbHVlXSk7XHJcbiAgICAvLyBpZiAociAhPT0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHsgZXhwYW5kID0gZmFsc2UgfSA9IGZvcm1FeHBhbmQ7XHJcbiAgICBpZiAoZXhwYW5kICYmIGZvcm1FeHBhbmQudmFsaWQgJiYgZm9ybUV4cGFuZC5jaGFuZ2UpIHtcclxuICAgICAgQ29uZmlybSh7XHJcbiAgICAgICAgY29udGVudDogXCLlvZPliY3orrDlvZXlt7Lkv67mlLnlsJrmnKrkv53lrZjvvIznoa7lrpropoHmlL7lvIPkv67mlLnlkJfvvJ9cIixcclxuICAgICAgICBvbk9rKCkge1xyXG4gICAgICAgICAgaWYgKG9uQ2FuY2VsIHx8IG9uQ2xvc2UpIHtcclxuICAgICAgICAgICAgaWYgKGJ1dHRvbkNsb3NlICYmIG9uQnV0dG9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgb25CdXR0b25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBvbkNhbmNlbCAmJiBvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgICAgIG9uQ2xvc2UgJiYgb25DbG9zZShyZXN1bHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9uQ2FuY2VsIHx8IG9uQ2xvc2UpIHtcclxuICAgICAgICBpZiAoYnV0dG9uQ2xvc2UgJiYgb25CdXR0b25DYW5jZWwpIHtcclxuICAgICAgICAgIG9uQnV0dG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9uQ2FuY2VsICYmIG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICBvbkNsb3NlICYmIG9uQ2xvc2UocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gfVxyXG4gICAgLy8gdXRpbHMuY2FsbGJhY2soY2FsbGJhY2ssIHNjb3BlLCBbX3RoaXMucmV0dXJuVmFsdWVdKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWPguaVsO+8jOWmguaenGtleeS4jeS8oOmAku+8jOS4lOiOt+WPluWFqOmDqFxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXlcclxuICAgKi9cclxuICBnZXRQYXJhbXMoa2V5KSB7XHJcbiAgICBpZiAoa2V5KSByZXR1cm4gdGhpcy5vcHRpb24ucGFyYW1zW2tleV07XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb24ucGFyYW1zO1xyXG4gIH1cclxuICBvblN0YXJ0KF9ldmVudDogRHJhZ2dhYmxlRXZlbnQsIHVpRGF0YTogRHJhZ2dhYmxlRGF0YSkge1xyXG4gICAgY29uc3QgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0IH0gPSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgY29uc3QgdGFyZ2V0UmVjdCA9IHRoaXMuZHJhZ2dsZVJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGlmICghdGFyZ2V0UmVjdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgYm91bmRzOiB7XHJcbiAgICAgICAgbGVmdDogLXRhcmdldFJlY3QubGVmdCArIHVpRGF0YS54LFxyXG4gICAgICAgIHJpZ2h0OiBjbGllbnRXaWR0aCAtICh0YXJnZXRSZWN0LnJpZ2h0IC0gdWlEYXRhLngpLFxyXG4gICAgICAgIHRvcDogLXRhcmdldFJlY3QudG9wICsgdWlEYXRhLnksXHJcbiAgICAgICAgYm90dG9tOiBjbGllbnRIZWlnaHQgLSAodGFyZ2V0UmVjdC5ib3R0b20gLSB1aURhdGEueSksXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgdHlwZSA9IFwibW9kYWxcIixcclxuICAgICAgY2xvc2FibGUsXHJcbiAgICAgIC8vIHRpdGxlOiBvcmd0aXRsZSxcclxuICAgICAgb2tCdXR0b25Qcm9wcyA9IHt9LFxyXG4gICAgICBjYW5jZWxCdXR0b25Qcm9wcyA9IHt9LFxyXG4gICAgICBmb3JtRXhwYW5kID0ge30sXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgcHJvcHM6IGFueSA9IHsgLi4ucGFyYW1zIH07XHJcbiAgICBsZXQgeyBtb3VudEVsZW1lbnRJZCB9ID0gY29uZmlnKCk7XHJcbiAgICBpZiAobW91bnRFbGVtZW50SWQpIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZ2V0Q29udGFpbmVyOiAoKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb3VudEVsZW1lbnRJZCksXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMuZHJhZ2FibGUgfHwgdHlwZSA9PSBcIm1vZGFsXCIpIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgbW9kYWxSZW5kZXI6IChtb2RhbCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPERyYWdnYWJsZVxyXG4gICAgICAgICAgICAgIGRpc2FibGVkPXt0aGlzLnN0YXRlLmRyYWdnZXJ9XHJcbiAgICAgICAgICAgICAgYm91bmRzPXt0aGlzLnN0YXRlLmJvdW5kc31cclxuICAgICAgICAgICAgICBvblN0YXJ0PXsoZXZlbnQsIHVpRGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblN0YXJ0KGV2ZW50LCB1aURhdGEpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IHJlZj17dGhpcy5kcmFnZ2xlUmVmfT57bW9kYWx9PC9kaXY+XHJcbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRpdGxlID0gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLXRpdGxlXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLXRpdGxlLWRyYWdnZXJcIildOlxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvbnNcIil9PlxyXG4gICAgICAgICAgeyF0aGlzLnN0YXRlLmV4cGFuZCAmJiBmb3JtRXhwYW5kLmV4cGFuZCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXhwYW5kOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeHBhbmRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblJpZ2h0OiAwIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q2xvc2VPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1jb250ZW50XCIpfT5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCB7IG1vZGFsQnV0dG9uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5va0J1dHRvblByb3BzfVxyXG4gICAgICAgICAgey4uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMub2tUZXh0ID8gdGhpcy5wcm9wcy5va1RleHQgOiBcIuS/neWtmFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG5cclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNsb3NlLmJpbmQodGhpcywge30sIHRydWUpfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyLWJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICBpY29uPXs8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5jYW5jbGVCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5jYW5jZWxUZXh0ID8gdGhpcy5wcm9wcy5jYW5jZWxUZXh0IDogXCLlj5bmtohcIn1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgaWYgKGZvcm1FeHBhbmQuZXhwYW5kKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgICAgc3R5bGU6IHsgbWF4V2lkdGg6IFwiMTAwdndcIiB9LFxyXG4gICAgICAgIGNsYXNzTmFtZTogdGhpcy5zdGF0ZS5leHBhbmQgPyBnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtYWxsc3JlZW5cIikgOiBcIlwiLFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLnN0YXRlLmV4cGFuZCA/IFwiMTAwdndcIiA6IHByb3BzLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZm9vdGVyOiBmb290ZXIsXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN0YXRlLm1vZGFsVHlwZSA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGxldCBvbGRQcm9wcyA9IHsgLi4ucHJvcHMgfTtcclxuICAgICAgbGV0IG5ld0RyYXdlclByb3BzID0gb21pdChvbGRQcm9wcywgW1wib25Pa1wiLCBcIm9rQnV0dG9uUHJvcHNcIl0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEcmF3ZXJcclxuICAgICAgICAgIG9wZW49e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHsuLi5uZXdEcmF3ZXJQcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWxcclxuICAgICAgICAgIG9wZW49e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBvbk9rPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBva1RleHQ9e1wi56Gu5a6aXCJ9XHJcbiAgICAgICAgICBjYW5jZWxUZXh0PXtcIuWPlua2iFwifVxyXG4gICAgICAgICAgY2VudGVyZWQ9e3RydWV9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywnbnNjLW1vZGFsJyl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxhQUFhLFFBQW1CLE9BQU87QUFFbEUsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxTQUNFQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGdCQUFnQixRQUNYLG1CQUFtQjtBQUMxQixPQUFPQyxNQUFNLE1BQU0sV0FBVztBQUM5QixTQUFTQyxPQUFPLFFBQVEsYUFBYTtBQUNyQyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLE9BQU9DLE9BQU8sTUFBTSxXQUFXO0FBQy9CLE9BQU9DLElBQUksTUFBTSxTQUFTO0FBRTFCLE9BQU9DLFNBQVMsTUFBTSxpQkFBaUI7QUFDdkMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFlNUIsZUFBZSxNQUFNQyxRQUFRLFNBQVNoQixhQUFhLENBR2pEO0VBVUFpQixXQUFXQSxDQUFDQyxLQUFLLEVBQUU7SUFDakIsS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFKZDtJQUFBQyxlQUFB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