nsc-react-component 2.12.1 → 2.13.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 (312) hide show
  1. package/lib/Interface.js +1 -1
  2. package/lib/Interface.js.map +1 -0
  3. package/lib/base/affix/index.js +5 -46
  4. package/lib/base/affix/index.js.map +1 -0
  5. package/lib/base/alert/index.js +5 -46
  6. package/lib/base/alert/index.js.map +1 -0
  7. package/lib/base/anchor/index.js +8 -49
  8. package/lib/base/anchor/index.js.map +1 -0
  9. package/lib/base/avatar/index.js +8 -49
  10. package/lib/base/avatar/index.js.map +1 -0
  11. package/lib/base/backTop/index.js +5 -46
  12. package/lib/base/backTop/index.js.map +1 -0
  13. package/lib/base/badge/index.js +8 -49
  14. package/lib/base/badge/index.js.map +1 -0
  15. package/lib/base/breadcrumb/index.js +5 -46
  16. package/lib/base/breadcrumb/index.js.map +1 -0
  17. package/lib/base/button/index.d.ts +1 -1
  18. package/lib/base/button/index.js +93 -134
  19. package/lib/base/button/index.js.map +1 -0
  20. package/lib/base/calendar/index.js +5 -46
  21. package/lib/base/calendar/index.js.map +1 -0
  22. package/lib/base/card/index.js +8 -50
  23. package/lib/base/card/index.js.map +1 -0
  24. package/lib/base/carousel/index.js +5 -46
  25. package/lib/base/carousel/index.js.map +1 -0
  26. package/lib/base/cascader/index.d.ts +3 -3
  27. package/lib/base/cascader/index.js +150 -221
  28. package/lib/base/cascader/index.js.map +1 -0
  29. package/lib/base/chart/index.d.ts +2 -2
  30. package/lib/base/chart/index.js +178 -287
  31. package/lib/base/chart/index.js.map +1 -0
  32. package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
  33. package/lib/base/checkbox/CheckboxGroup.js +165 -258
  34. package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
  35. package/lib/base/checkbox/index.d.ts +2 -2
  36. package/lib/base/checkbox/index.js +8 -48
  37. package/lib/base/checkbox/index.js.map +1 -0
  38. package/lib/base/collapse/index.js +8 -49
  39. package/lib/base/collapse/index.js.map +1 -0
  40. package/lib/base/comment/index.js +5 -46
  41. package/lib/base/comment/index.js.map +1 -0
  42. package/lib/base/common/BodyRow/index.js +48 -102
  43. package/lib/base/common/BodyRow/index.js.map +1 -0
  44. package/lib/base/common/EllipseCell/index.d.ts +1 -1
  45. package/lib/base/common/EllipseCell/index.js +16 -57
  46. package/lib/base/common/EllipseCell/index.js.map +1 -0
  47. package/lib/base/common/FileIcon.d.ts +2 -2
  48. package/lib/base/common/FileIcon.js +86 -132
  49. package/lib/base/common/FileIcon.js.map +1 -0
  50. package/lib/base/common/Icon.d.ts +2 -2
  51. package/lib/base/common/Icon.js +42 -96
  52. package/lib/base/common/Icon.js.map +1 -0
  53. package/lib/base/common/IconData.js +2 -2
  54. package/lib/base/common/IconData.js.map +1 -0
  55. package/lib/base/common/IconFont.d.ts +2 -2
  56. package/lib/base/common/IconFont.js +6 -8
  57. package/lib/base/common/IconFont.js.map +1 -0
  58. package/lib/base/common/NoAuthority.d.ts +2 -2
  59. package/lib/base/common/NoAuthority.js +13 -53
  60. package/lib/base/common/NoAuthority.js.map +1 -0
  61. package/lib/base/common/NoData.d.ts +2 -2
  62. package/lib/base/common/NoData.js +34 -74
  63. package/lib/base/common/NoData.js.map +1 -0
  64. package/lib/base/common/NoMessage.d.ts +2 -2
  65. package/lib/base/common/NoMessage.js +30 -70
  66. package/lib/base/common/NoMessage.js.map +1 -0
  67. package/lib/base/common/NoNetWork.d.ts +2 -2
  68. package/lib/base/common/NoNetWork.js +30 -70
  69. package/lib/base/common/NoNetWork.js.map +1 -0
  70. package/lib/base/common/Page404.d.ts +2 -2
  71. package/lib/base/common/Page404.js +30 -70
  72. package/lib/base/common/Page404.js.map +1 -0
  73. package/lib/base/common/PageRequest.js +91 -154
  74. package/lib/base/common/PageRequest.js.map +1 -0
  75. package/lib/base/common/TreePanel.d.ts +1 -1
  76. package/lib/base/common/TreePanel.js +133 -212
  77. package/lib/base/common/TreePanel.js.map +1 -0
  78. package/lib/base/common/iconfontalibaba.js +15 -22
  79. package/lib/base/common/iconfontalibaba.js.map +1 -0
  80. package/lib/base/common/withZhLocale.d.ts +1 -1
  81. package/lib/base/common/withZhLocale.js +3 -7
  82. package/lib/base/common/withZhLocale.js.map +1 -0
  83. package/lib/base/configProvider/index.js +8 -49
  84. package/lib/base/configProvider/index.js.map +1 -0
  85. package/lib/base/datepick/Rangepicker.d.ts +3 -3
  86. package/lib/base/datepick/Rangepicker.js +229 -325
  87. package/lib/base/datepick/Rangepicker.js.map +1 -0
  88. package/lib/base/datepick/index.d.ts +2 -2
  89. package/lib/base/datepick/index.js +56 -113
  90. package/lib/base/datepick/index.js.map +1 -0
  91. package/lib/base/descriptions/index.js +8 -49
  92. package/lib/base/descriptions/index.js.map +1 -0
  93. package/lib/base/divider/index.js +5 -46
  94. package/lib/base/divider/index.js.map +1 -0
  95. package/lib/base/download/index.js +42 -84
  96. package/lib/base/download/index.js.map +1 -0
  97. package/lib/base/drawer/index.js +14 -57
  98. package/lib/base/drawer/index.js.map +1 -0
  99. package/lib/base/dropdown/index.js +19 -65
  100. package/lib/base/dropdown/index.js.map +1 -0
  101. package/lib/base/editor/index.d.ts +1 -1
  102. package/lib/base/editor/index.js +83 -128
  103. package/lib/base/editor/index.js.map +1 -0
  104. package/lib/base/errorboundary/index.js +19 -63
  105. package/lib/base/errorboundary/index.js.map +1 -0
  106. package/lib/base/form/Form.d.ts +2 -2
  107. package/lib/base/form/Form.js +314 -427
  108. package/lib/base/form/Form.js.map +1 -0
  109. package/lib/base/form/filed/Cascader.d.ts +2 -2
  110. package/lib/base/form/filed/Cascader.js +6 -45
  111. package/lib/base/form/filed/Cascader.js.map +1 -0
  112. package/lib/base/form/filed/Checkbox.d.ts +2 -2
  113. package/lib/base/form/filed/Checkbox.js +6 -45
  114. package/lib/base/form/filed/Checkbox.js.map +1 -0
  115. package/lib/base/form/filed/DatePicker.d.ts +2 -2
  116. package/lib/base/form/filed/DatePicker.js +6 -45
  117. package/lib/base/form/filed/DatePicker.js.map +1 -0
  118. package/lib/base/form/filed/FormItem.d.ts +2 -2
  119. package/lib/base/form/filed/FormItem.js +65 -127
  120. package/lib/base/form/filed/FormItem.js.map +1 -0
  121. package/lib/base/form/filed/Input.d.ts +2 -2
  122. package/lib/base/form/filed/Input.js +14 -51
  123. package/lib/base/form/filed/Input.js.map +1 -0
  124. package/lib/base/form/filed/InputEamil.d.ts +2 -2
  125. package/lib/base/form/filed/InputEamil.js +5 -44
  126. package/lib/base/form/filed/InputEamil.js.map +1 -0
  127. package/lib/base/form/filed/InputNumber.d.ts +2 -2
  128. package/lib/base/form/filed/InputNumber.js +5 -44
  129. package/lib/base/form/filed/InputNumber.js.map +1 -0
  130. package/lib/base/form/filed/InputPassword.d.ts +2 -2
  131. package/lib/base/form/filed/InputPassword.js +5 -44
  132. package/lib/base/form/filed/InputPassword.js.map +1 -0
  133. package/lib/base/form/filed/Item.d.ts +3 -3
  134. package/lib/base/form/filed/Item.js +91 -163
  135. package/lib/base/form/filed/Item.js.map +1 -0
  136. package/lib/base/form/filed/Radio.d.ts +2 -2
  137. package/lib/base/form/filed/Radio.js +7 -45
  138. package/lib/base/form/filed/Radio.js.map +1 -0
  139. package/lib/base/form/filed/RangerPicker.d.ts +2 -2
  140. package/lib/base/form/filed/RangerPicker.js +6 -45
  141. package/lib/base/form/filed/RangerPicker.js.map +1 -0
  142. package/lib/base/form/filed/Rate.d.ts +2 -2
  143. package/lib/base/form/filed/Rate.js +6 -46
  144. package/lib/base/form/filed/Rate.js.map +1 -0
  145. package/lib/base/form/filed/Select.d.ts +2 -2
  146. package/lib/base/form/filed/Select.js +9 -49
  147. package/lib/base/form/filed/Select.js.map +1 -0
  148. package/lib/base/form/filed/Slider.d.ts +2 -2
  149. package/lib/base/form/filed/Slider.js +6 -46
  150. package/lib/base/form/filed/Slider.js.map +1 -0
  151. package/lib/base/form/filed/Switch.d.ts +2 -2
  152. package/lib/base/form/filed/Switch.js +6 -46
  153. package/lib/base/form/filed/Switch.js.map +1 -0
  154. package/lib/base/form/filed/TagSelect.d.ts +2 -2
  155. package/lib/base/form/filed/TagSelect.js +6 -45
  156. package/lib/base/form/filed/TagSelect.js.map +1 -0
  157. package/lib/base/form/filed/TextArea.d.ts +2 -2
  158. package/lib/base/form/filed/TextArea.js +5 -44
  159. package/lib/base/form/filed/TextArea.js.map +1 -0
  160. package/lib/base/form/filed/Upload.d.ts +2 -2
  161. package/lib/base/form/filed/Upload.js +9 -45
  162. package/lib/base/form/filed/Upload.js.map +1 -0
  163. package/lib/base/form/index.js +17 -58
  164. package/lib/base/form/index.js.map +1 -0
  165. package/lib/base/grid/Col.js +5 -46
  166. package/lib/base/grid/Col.js.map +1 -0
  167. package/lib/base/grid/Row.js +5 -46
  168. package/lib/base/grid/Row.js.map +1 -0
  169. package/lib/base/grid/index.js +1 -1
  170. package/lib/base/grid/index.js.map +1 -0
  171. package/lib/base/iframe/index.d.ts +1 -1
  172. package/lib/base/iframe/index.js +44 -93
  173. package/lib/base/iframe/index.js.map +1 -0
  174. package/lib/base/image/index.js +163 -261
  175. package/lib/base/image/index.js.map +1 -0
  176. package/lib/base/input/Email.d.ts +2 -2
  177. package/lib/base/input/Email.js +55 -103
  178. package/lib/base/input/Email.js.map +1 -0
  179. package/lib/base/input/Number.d.ts +1 -1
  180. package/lib/base/input/Number.js +48 -104
  181. package/lib/base/input/Number.js.map +1 -0
  182. package/lib/base/input/Password.d.ts +1 -1
  183. package/lib/base/input/Password.js +48 -104
  184. package/lib/base/input/Password.js.map +1 -0
  185. package/lib/base/input/Search.d.ts +1 -1
  186. package/lib/base/input/Search.js +46 -102
  187. package/lib/base/input/Search.js.map +1 -0
  188. package/lib/base/input/TextArea.d.ts +1 -1
  189. package/lib/base/input/TextArea.js +64 -123
  190. package/lib/base/input/TextArea.js.map +1 -0
  191. package/lib/base/input/index.d.ts +2 -2
  192. package/lib/base/input/index.js +121 -195
  193. package/lib/base/input/index.js.map +1 -0
  194. package/lib/base/layout/index.js +14 -56
  195. package/lib/base/layout/index.js.map +1 -0
  196. package/lib/base/list/index.js +8 -49
  197. package/lib/base/list/index.js.map +1 -0
  198. package/lib/base/menu/index.d.ts +5 -5
  199. package/lib/base/menu/index.js +100 -164
  200. package/lib/base/menu/index.js.map +1 -0
  201. package/lib/base/message/index.js +5 -47
  202. package/lib/base/message/index.js.map +1 -0
  203. package/lib/base/modal/Confirm.js +14 -18
  204. package/lib/base/modal/Confirm.js.map +1 -0
  205. package/lib/base/modal/index.d.ts +1 -1
  206. package/lib/base/modal/index.js +274 -359
  207. package/lib/base/modal/index.js.map +1 -0
  208. package/lib/base/notification/index.js +5 -47
  209. package/lib/base/notification/index.js.map +1 -0
  210. package/lib/base/pageHeader/index.js +5 -46
  211. package/lib/base/pageHeader/index.js.map +1 -0
  212. package/lib/base/pagination/index.js +5 -46
  213. package/lib/base/pagination/index.js.map +1 -0
  214. package/lib/base/pdfviwer/index.d.ts +1 -1
  215. package/lib/base/pdfviwer/index.js +67 -92
  216. package/lib/base/pdfviwer/index.js.map +1 -0
  217. package/lib/base/popconfirm/index.js +5 -46
  218. package/lib/base/popconfirm/index.js.map +1 -0
  219. package/lib/base/popover/index.js +19 -65
  220. package/lib/base/popover/index.js.map +1 -0
  221. package/lib/base/progress/index.js +5 -46
  222. package/lib/base/progress/index.js.map +1 -0
  223. package/lib/base/radio/RadioGroup.d.ts +1 -1
  224. package/lib/base/radio/RadioGroup.js +198 -295
  225. package/lib/base/radio/RadioGroup.js.map +1 -0
  226. package/lib/base/radio/index.d.ts +1 -1
  227. package/lib/base/radio/index.js +8 -50
  228. package/lib/base/radio/index.js.map +1 -0
  229. package/lib/base/result/index.js +5 -46
  230. package/lib/base/result/index.js.map +1 -0
  231. package/lib/base/select/index.d.ts +4 -4
  232. package/lib/base/select/index.js +358 -475
  233. package/lib/base/select/index.js.map +1 -0
  234. package/lib/base/skeleton/index.js +5 -46
  235. package/lib/base/skeleton/index.js.map +1 -0
  236. package/lib/base/space/index.js +5 -46
  237. package/lib/base/space/index.js.map +1 -0
  238. package/lib/base/spin/index.js +5 -46
  239. package/lib/base/spin/index.js.map +1 -0
  240. package/lib/base/statistic/index.js +8 -49
  241. package/lib/base/statistic/index.js.map +1 -0
  242. package/lib/base/steps/index.js +8 -49
  243. package/lib/base/steps/index.js.map +1 -0
  244. package/lib/base/switch/index.js +5 -46
  245. package/lib/base/switch/index.js.map +1 -0
  246. package/lib/base/table/index.d.ts +8 -8
  247. package/lib/base/table/index.js +743 -927
  248. package/lib/base/table/index.js.map +1 -0
  249. package/lib/base/tabs/Tabpane.d.ts +1 -1
  250. package/lib/base/tabs/Tabpane.js +22 -58
  251. package/lib/base/tabs/Tabpane.js.map +1 -0
  252. package/lib/base/tabs/index.d.ts +1 -1
  253. package/lib/base/tabs/index.js +110 -156
  254. package/lib/base/tabs/index.js.map +1 -0
  255. package/lib/base/tagSelect/TagSelect.d.ts +3 -3
  256. package/lib/base/tagSelect/TagSelect.js +124 -213
  257. package/lib/base/tagSelect/TagSelect.js.map +1 -0
  258. package/lib/base/tagSelect/index.d.ts +3 -3
  259. package/lib/base/tagSelect/index.js +90 -145
  260. package/lib/base/tagSelect/index.js.map +1 -0
  261. package/lib/base/timeline/index.js +8 -49
  262. package/lib/base/timeline/index.js.map +1 -0
  263. package/lib/base/tooltip/index.js +19 -65
  264. package/lib/base/tooltip/index.js.map +1 -0
  265. package/lib/base/transfer/index.js +5 -46
  266. package/lib/base/transfer/index.js.map +1 -0
  267. package/lib/base/tree/TreeSearch.d.ts +3 -3
  268. package/lib/base/tree/TreeSearch.js +119 -186
  269. package/lib/base/tree/TreeSearch.js.map +1 -0
  270. package/lib/base/tree/index.d.ts +2 -2
  271. package/lib/base/tree/index.js +169 -241
  272. package/lib/base/tree/index.js.map +1 -0
  273. package/lib/base/treeselect/index.js +5 -46
  274. package/lib/base/treeselect/index.js.map +1 -0
  275. package/lib/base/typography/index.js +5 -46
  276. package/lib/base/typography/index.js.map +1 -0
  277. package/lib/base/upload/Dragger.js +370 -605
  278. package/lib/base/upload/Dragger.js.map +1 -0
  279. package/lib/base/upload/Upload.js +352 -529
  280. package/lib/base/upload/Upload.js.map +1 -0
  281. package/lib/base/upload/index copy.d.ts +1 -1
  282. package/lib/base/upload/index copy.js +315 -431
  283. package/lib/base/upload/index copy.js.map +1 -0
  284. package/lib/base/upload/index.js +367 -640
  285. package/lib/base/upload/index.js.map +1 -0
  286. package/lib/config.d.ts +2 -0
  287. package/lib/config.js +7 -9
  288. package/lib/config.js.map +1 -0
  289. package/lib/constants.js +2 -2
  290. package/lib/constants.js.map +1 -0
  291. package/lib/index.js +2 -1
  292. package/lib/index.js.map +1 -0
  293. package/lib/page/BasePage/Form.d.ts +1 -1
  294. package/lib/page/BasePage/Form.js +253 -360
  295. package/lib/page/BasePage/Form.js.map +1 -0
  296. package/lib/page/BasePage/index.d.ts +9 -4
  297. package/lib/page/BasePage/index.js +864 -962
  298. package/lib/page/BasePage/index.js.map +1 -0
  299. package/lib/page/BasePage/index.module copy.less +144 -0
  300. package/lib/page/BasePage/index.module.less +95 -55
  301. package/lib/page/HeaderSearch/index.d.ts +1 -1
  302. package/lib/page/HeaderSearch/index.js +196 -272
  303. package/lib/page/HeaderSearch/index.js.map +1 -0
  304. package/lib/page/PasswordCheck/index.d.ts +1 -1
  305. package/lib/page/PasswordCheck/index.js +53 -109
  306. package/lib/page/PasswordCheck/index.js.map +1 -0
  307. package/lib/treeUtils.js +45 -58
  308. package/lib/treeUtils.js.map +1 -0
  309. package/lib/utils.d.ts +2 -2
  310. package/lib/utils.js +48 -61
  311. package/lib/utils.js.map +1 -0
  312. package/package.json +1 -1
@@ -1,54 +1,15 @@
1
1
  import "antd/es/checkbox/style/css";
2
2
  import _Checkbox from "antd/es/checkbox";
3
- var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey"],
4
- _excluded2 = ["data", "options"];
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 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; }
9
-
10
- 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; }
11
-
12
- 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); }
13
-
14
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
-
16
- 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."); }
17
-
18
- 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); }
19
-
20
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
-
22
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
-
24
- 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; }
25
-
3
+ const _excluded = ["url", "listeners", "viewname", "cached", "cacheKey"],
4
+ _excluded2 = ["data", "options"];
5
+ 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); }
6
+ 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; }
7
+ 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; }
26
8
  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; }
27
-
28
9
  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; }
29
-
30
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
-
32
- 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); } }
33
-
34
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
35
-
36
- 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); }
37
-
38
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
39
-
40
- 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); }; }
41
-
42
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
43
-
44
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
45
-
46
- 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; } }
47
-
48
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
49
-
50
- 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; }
51
-
10
+ 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; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
+ 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); }
52
13
  /*
53
14
  * @Descripttion:
54
15
  * @version:
@@ -62,81 +23,63 @@ import Store from "@bj-nsc/msn";
62
23
  import { utils } from "@bj-nsc/msn/lib/utils";
63
24
  import omit from "omit.js";
64
25
  import config from "../../config";
65
-
66
- var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
67
- _inherits(NSCCheckboxGroup, _PureComponent);
68
-
69
- var _super = _createSuper(NSCCheckboxGroup);
70
-
71
- function NSCCheckboxGroup(props) {
72
- var _this2;
73
-
74
- _classCallCheck(this, NSCCheckboxGroup);
75
-
76
- _this2 = _super.call(this, props);
77
-
78
- _defineProperty(_assertThisInitialized(_this2), "state", {
26
+ class NSCCheckboxGroup extends PureComponent {
27
+ constructor(props) {
28
+ super(props);
29
+ _defineProperty(this, "state", {
79
30
  dataSource: [],
80
31
  dataStore: [],
81
32
  value: []
82
33
  });
83
-
84
- _defineProperty(_assertThisInitialized(_this2), "store", {});
85
-
86
- var _this = _assertThisInitialized(_this2);
87
-
88
- var _props$store = props.store,
89
- store = _props$store === void 0 ? {} : _props$store,
90
- options = props.options,
91
- data = props.data,
92
- children = props.children,
93
- _props$addData = props.addData,
94
- addData = _props$addData === void 0 ? [] : _props$addData,
95
- _props$deleteData = props.deleteData,
96
- deleteData = _props$deleteData === void 0 ? [] : _props$deleteData,
97
- _props$viewtype = props.viewtype,
98
- viewtype = _props$viewtype === void 0 ? "sys" : _props$viewtype;
99
- var viewname = store.viewname;
100
- var valueField = props.valueField;
34
+ _defineProperty(this, "store", {});
35
+ const _this = this;
36
+ const {
37
+ store = {},
38
+ options,
39
+ data,
40
+ children,
41
+ addData = [],
42
+ deleteData = [],
43
+ viewtype = "sys"
44
+ } = props;
45
+ const {
46
+ viewname
47
+ } = store;
48
+ let {
49
+ valueField
50
+ } = props;
101
51
  valueField = valueField ? valueField : viewname ? "dictKey" : "value";
102
-
103
- var _config = config(),
104
- viewUrl = _config.viewUrl,
105
- viewBizUrl = _config.viewBizUrl;
106
-
107
- var requestViewUrl = viewtype == "sys" ? viewUrl : viewBizUrl;
108
-
52
+ let {
53
+ viewUrl,
54
+ viewBizUrl
55
+ } = config();
56
+ let requestViewUrl = viewtype == "sys" ? viewUrl : viewBizUrl;
109
57
  if (!children) {
110
- var url = store.url,
111
- _store$listeners = store.listeners,
112
- listenersPops = _store$listeners === void 0 ? {} : _store$listeners,
113
- _viewname = store.viewname,
114
- cached = store.cached,
115
- cacheKey = store.cacheKey,
116
- stores = _objectWithoutProperties(store, _excluded);
117
-
118
- if (!url && !options && !data && !_viewname) throw new Error("url、viewname、data和options不能都为空!");
119
-
120
- var getAllData = function getAllData(data) {
58
+ const {
59
+ url,
60
+ listeners: listenersPops = {},
61
+ viewname,
62
+ cached,
63
+ cacheKey
64
+ } = store,
65
+ stores = _objectWithoutProperties(store, _excluded);
66
+ if (!url && !options && !data && !viewname) throw new Error("url、viewname、data和options不能都为空!");
67
+ const getAllData = data => {
121
68
  if (!Array.isArray(data)) {
122
69
  return [];
123
70
  }
124
-
125
- var newData = _toConsumableArray(data);
126
-
71
+ let newData = [...data];
127
72
  if (addData.length > 0) {
128
- newData = [].concat(_toConsumableArray(addData), _toConsumableArray(newData));
73
+ newData = [...addData, ...newData];
129
74
  }
130
-
131
75
  if (deleteData.length > 0) {
132
- var valueFields = valueField.split(",");
133
- newData.map(function (item, i) {
134
- if (_typeof(item) === "object") {
135
- var value = "";
136
- valueFields.map(function (v, index) {
76
+ const valueFields = valueField.split(",");
77
+ newData.map((item, i) => {
78
+ if (typeof item === "object") {
79
+ let value = "";
80
+ valueFields.map((v, index) => {
137
81
  value = index == 0 ? value + item[v] : value + "," + item[v];
138
82
  });
139
-
140
83
  if (deleteData.indexOf(value) > -1) {
141
84
  newData.splice(i, 1);
142
85
  }
@@ -147,198 +90,162 @@ var NSCCheckboxGroup = /*#__PURE__*/function (_PureComponent) {
147
90
  }
148
91
  });
149
92
  }
150
-
151
93
  return newData;
152
94
  };
153
-
154
95
  var storeProps = _objectSpread({
155
96
  model: "model",
156
- component: _assertThisInitialized(_this2),
97
+ component: this,
157
98
  listeners: {
158
- onBeforeLoad: function onBeforeLoad(store, options) {
99
+ onBeforeLoad: function (store, options) {
159
100
  utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
160
101
  },
161
- load: function load(data, modelData, store) {
162
- var dataSource = _this.convertData(getAllData(data));
163
-
102
+ load: function (data, modelData, store) {
103
+ let dataSource = _this.convertData(getAllData(data));
164
104
  _this.setState({
165
105
  dataSource: dataSource
166
106
  });
167
-
168
107
  utils.callback(listenersPops.load, _this, [data, modelData, store]);
169
108
  },
170
- dataChanged: function dataChanged(data, modelData, store) {
109
+ dataChanged: function (data, modelData, store) {
171
110
  _this.setState({
172
111
  dataSource: _this.convertData(getAllData(data))
173
112
  });
174
-
175
113
  utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
176
114
  }
177
115
  }
178
116
  }, stores);
179
-
180
- _this2.store = new Store(storeProps);
181
-
182
- if ((_viewname || url) && data == null && options == null) {
183
- var isCached = cached;
184
- var isCacheKey = cacheKey;
185
-
186
- if (_viewname) {
117
+ this.store = new Store(storeProps);
118
+ if ((viewname || url) && data == null && options == null) {
119
+ let isCached = cached;
120
+ let isCacheKey = cacheKey;
121
+ if (viewname) {
187
122
  if (typeof cached !== "boolean") {
188
123
  isCached = true;
189
- isCacheKey = isCacheKey ? isCacheKey : _viewname;
124
+ isCacheKey = isCacheKey ? isCacheKey : viewname;
190
125
  }
191
126
  }
192
-
193
127
  storeProps = _objectSpread(_objectSpread({}, {
194
128
  autoLoad: true,
195
- url: url || requestViewUrl + _viewname,
129
+ url: url || requestViewUrl + viewname,
196
130
  //读字典,url固定,viewname
197
131
  cached: isCached,
198
132
  cacheKey: isCacheKey
199
133
  }), storeProps);
200
134
  }
201
-
202
- _this2.store = new Store(storeProps);
135
+ this.store = new Store(storeProps);
203
136
  }
204
-
205
- return _this2;
206
137
  }
207
-
208
- _createClass(NSCCheckboxGroup, [{
209
- key: "convertData",
210
- value: function convertData(data) {
211
- var _this$props = this.props,
212
- _this$props$store = _this$props.store,
213
- store = _this$props$store === void 0 ? {} : _this$props$store,
214
- valueField = _this$props.valueField,
215
- labelField = _this$props.labelField;
216
- var viewname = store.viewname;
217
- valueField = valueField ? valueField : viewname ? "dictKey" : "value";
218
- labelField = labelField ? labelField : viewname ? "dictValue" : "label";
219
- var dataSoure = [];
220
-
221
- var _loop = function _loop(i) {
222
- if (_typeof(data[i]) === "object") {
223
- var obj = _objectSpread({}, data[i]);
224
-
225
- var value = "";
226
-
227
- if (valueField.split(",").length == 1) {
228
- value = data[i][valueField];
229
- } else {
230
- var valueFields = valueField.split(",");
231
- valueFields.map(function (v, index) {
232
- value = index == 0 ? value + data[i][v] : value + "," + data[i][v];
233
- });
234
- }
235
-
236
- var label = "";
237
-
238
- if (labelField.split(",").length == 1) {
239
- label = data[i][labelField];
240
- } else {
241
- var labelFields = labelField.split(",");
242
- labelFields.map(function (l, index) {
243
- label = index == 0 ? label + data[i][l] : label + "-" + data[i][l];
244
- });
245
- }
246
-
247
- obj.label = label;
248
- obj.value = value;
249
- obj.disabled = data[i].disabled ? data[i].disabled : false;
250
- dataSoure.push(obj);
138
+ convertData(data) {
139
+ let {
140
+ store = {},
141
+ valueField,
142
+ labelField
143
+ } = this.props;
144
+ const {
145
+ viewname
146
+ } = store;
147
+ valueField = valueField ? valueField : viewname ? "dictKey" : "value";
148
+ labelField = labelField ? labelField : viewname ? "dictValue" : "label";
149
+ let dataSoure = [];
150
+ for (let i = 0; i < data.length; i++) {
151
+ if (typeof data[i] === "object") {
152
+ let obj = _objectSpread({}, data[i]);
153
+ let value = "";
154
+ if (valueField.split(",").length == 1) {
155
+ value = data[i][valueField];
251
156
  } else {
252
- var _obj = {};
253
- _obj.label = data[i];
254
- _obj.value = data[i];
255
- _obj.disabled = false;
256
- dataSoure.push(_obj);
157
+ const valueFields = valueField.split(",");
158
+ valueFields.map((v, index) => {
159
+ value = index == 0 ? value + data[i][v] : value + "," + data[i][v];
160
+ });
257
161
  }
258
- };
259
-
260
- for (var i = 0; i < data.length; i++) {
261
- _loop(i);
262
- }
263
-
264
- return dataSoure;
265
- }
266
- }, {
267
- key: "onChange",
268
- value: function onChange(checkedValue) {
269
- this.setState({
270
- value: checkedValue
271
- });
272
- var onChange = this.props.onChange;
273
-
274
- if (onChange) {
275
- onChange(checkedValue);
162
+ let label = "";
163
+ if (labelField.split(",").length == 1) {
164
+ label = data[i][labelField];
165
+ } else {
166
+ const labelFields = labelField.split(",");
167
+ labelFields.map((l, index) => {
168
+ label = index == 0 ? label + data[i][l] : label + "-" + data[i][l];
169
+ });
170
+ }
171
+ obj.label = label;
172
+ obj.value = value;
173
+ obj.disabled = data[i].disabled ? data[i].disabled : false;
174
+ dataSoure.push(obj);
175
+ } else {
176
+ let obj = {};
177
+ obj.label = data[i];
178
+ obj.value = data[i];
179
+ obj.disabled = false;
180
+ dataSoure.push(obj);
276
181
  }
277
182
  }
278
- }, {
279
- key: "getValue",
280
- value: function getValue() {
281
- return this.state.value;
183
+ return dataSoure;
184
+ }
185
+ onChange(checkedValue) {
186
+ this.setState({
187
+ value: checkedValue
188
+ });
189
+ const {
190
+ onChange
191
+ } = this.props;
192
+ if (onChange) {
193
+ onChange(checkedValue);
282
194
  }
283
- }, {
284
- key: "setValue",
285
- value: function setValue(value) {
195
+ }
196
+ getValue() {
197
+ return this.state.value;
198
+ }
199
+ setValue(value) {
200
+ this.setState({
201
+ value: value
202
+ });
203
+ }
204
+ componentDidMount() {
205
+ const {
206
+ data,
207
+ options,
208
+ children
209
+ } = this.props;
210
+ if (!children && (data || options)) {
286
211
  this.setState({
287
- value: value
212
+ dataSource: this.convertData(data ? data : options),
213
+ dataStore: data ? data : options
288
214
  });
289
215
  }
290
- }, {
291
- key: "componentDidMount",
292
- value: function componentDidMount() {
293
- var _this$props2 = this.props,
294
- data = _this$props2.data,
295
- options = _this$props2.options,
296
- children = _this$props2.children;
297
-
298
- if (!children && (data || options)) {
216
+ }
217
+ componentDidUpdate() {
218
+ const {
219
+ dataStore
220
+ } = this.state;
221
+ const {
222
+ data,
223
+ options
224
+ } = this.props;
225
+ const newData = data ? data : options;
226
+ if (data || options) {
227
+ if (JSON.stringify(dataStore) !== JSON.stringify(newData)) {
299
228
  this.setState({
300
- dataSource: this.convertData(data ? data : options),
301
- dataStore: data ? data : options
229
+ dataSource: this.convertData(newData),
230
+ dataStore: newData
302
231
  });
303
232
  }
304
233
  }
305
- }, {
306
- key: "componentDidUpdate",
307
- value: function componentDidUpdate() {
308
- var dataStore = this.state.dataStore;
309
- var _this$props3 = this.props,
310
- data = _this$props3.data,
311
- options = _this$props3.options;
312
- var newData = data ? data : options;
313
-
314
- if (data || options) {
315
- if (JSON.stringify(dataStore) !== JSON.stringify(newData)) {
316
- this.setState({
317
- dataSource: this.convertData(newData),
318
- dataStore: newData
319
- });
320
- }
321
- }
322
- }
323
- }, {
324
- key: "render",
325
- value: function render() {
326
- var _this$props4 = this.props,
327
- data = _this$props4.data,
328
- options = _this$props4.options,
329
- params = _objectWithoutProperties(_this$props4, _excluded2);
330
-
331
- var CheckBoxProps = omit(_objectSpread({}, params), ["store", "valueField", "labelField", "data", "onChange", "addData", "deleteData"]);
332
- return /*#__PURE__*/React.createElement(_Checkbox.Group, _extends({
333
- value: this.state.value,
334
- options: this.state.dataSource,
335
- onChange: this.onChange.bind(this)
336
- }, CheckBoxProps));
337
- }
338
- }]);
339
-
340
- return NSCCheckboxGroup;
341
- }(PureComponent);
342
-
234
+ }
235
+ render() {
236
+ const _this$props = this.props,
237
+ {
238
+ data,
239
+ options
240
+ } = _this$props,
241
+ params = _objectWithoutProperties(_this$props, _excluded2);
242
+ const CheckBoxProps = omit(_objectSpread({}, params), ["store", "valueField", "labelField", "data", "onChange", "addData", "deleteData"]);
243
+ return /*#__PURE__*/React.createElement(_Checkbox.Group, _extends({
244
+ value: this.state.value,
245
+ options: this.state.dataSource,
246
+ onChange: this.onChange.bind(this)
247
+ }, CheckBoxProps));
248
+ }
249
+ }
343
250
  export default NSCCheckboxGroup;
344
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvY2hlY2tib3gvQ2hlY2tib3hHcm91cC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsIm9taXQiLCJjb25maWciLCJOU0NDaGVja2JveEdyb3VwIiwicHJvcHMiLCJkYXRhU291cmNlIiwiZGF0YVN0b3JlIiwidmFsdWUiLCJfdGhpcyIsInN0b3JlIiwib3B0aW9ucyIsImRhdGEiLCJjaGlsZHJlbiIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmlld3R5cGUiLCJ2aWV3bmFtZSIsInZhbHVlRmllbGQiLCJ2aWV3VXJsIiwidmlld0JpelVybCIsInJlcXVlc3RWaWV3VXJsIiwidXJsIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUG9wcyIsImNhY2hlZCIsImNhY2hlS2V5Iiwic3RvcmVzIiwiRXJyb3IiLCJnZXRBbGxEYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3RGF0YSIsImxlbmd0aCIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInYiLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJtb2RlbERhdGEiLCJjb252ZXJ0RGF0YSIsInNldFN0YXRlIiwiZGF0YUNoYW5nZWQiLCJpc0NhY2hlZCIsImlzQ2FjaGVLZXkiLCJhdXRvTG9hZCIsImxhYmVsRmllbGQiLCJkYXRhU291cmUiLCJvYmoiLCJsYWJlbCIsImxhYmVsRmllbGRzIiwibCIsImRpc2FibGVkIiwicHVzaCIsImNoZWNrZWRWYWx1ZSIsIm9uQ2hhbmdlIiwic3RhdGUiLCJKU09OIiwic3RyaW5naWZ5IiwicGFyYW1zIiwiQ2hlY2tCb3hQcm9wcyIsImJpbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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VSxFQUFFLEtBQUs0QyxXQUFMLENBQWlCbEIsT0FBakIsQ0FEQTtBQUVaekIsWUFBQUEsU0FBUyxFQUFFeUI7QUFGQyxXQUFkO0FBSUQ7QUFDRjtBQUNGOzs7V0FFRCxrQkFBUztBQUNQLHlCQUFxQyxLQUFLM0IsS0FBMUM7QUFBQSxVQUFRTyxJQUFSLGdCQUFRQSxJQUFSO0FBQUEsVUFBY0QsT0FBZCxnQkFBY0EsT0FBZDtBQUFBLFVBQTBCMEQsTUFBMUI7O0FBQ0EsVUFBTUMsYUFBYSxHQUFHcEUsSUFBSSxtQkFBTW1FLE1BQU4sR0FBZ0IsQ0FDeEMsT0FEd0MsRUFFeEMsWUFGd0MsRUFHeEMsWUFId0MsRUFJeEMsTUFKd0MsRUFLeEMsVUFMd0MsRUFNeEMsU0FOd0MsRUFPeEMsWUFQd0MsQ0FBaEIsQ0FBMUI7QUFTQSwwQkFDRSw4QkFBVSxLQUFWO0FBQ0UsUUFBQSxLQUFLLEVBQUUsS0FBS0gsS0FBTCxDQUFXMUQsS0FEcEI7QUFFRSxRQUFBLE9BQU8sRUFBRSxLQUFLMEQsS0FBTCxDQUFXNUQsVUFGdEI7QUFHRSxRQUFBLFFBQVEsRUFBRSxLQUFLMkQsUUFBTCxDQUFjTSxJQUFkLENBQW1CLElBQW5CO0FBSFosU0FJTUQsYUFKTixFQURGO0FBUUQ7Ozs7RUFsTjRCdkUsYTs7QUFxTi9CLGVBQWVLLGdCQUFmIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTA0LTE0IDA4OjU5OjE5XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0yMyAxNjo0NjozM1xyXG4gKi9cclxuaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgQ2hlY2tib3gsIENoZWNrYm94UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5pbnRlcmZhY2UgSUNoZWNrYm94R3JvdXBQcm9wcyBleHRlbmRzIENoZWNrYm94UHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8c3RyaW5nIHwgT2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgYWRkRGF0YT86IEFycmF5PHN0cmluZyB8IE9iamVjdD47XHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PHN0cmluZz47XHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmNsYXNzIE5TQ0NoZWNrYm94R3JvdXAgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElDaGVja2JveEdyb3VwUHJvcHM+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgZGF0YVN0b3JlOiBbXSxcclxuICAgIHZhbHVlOiBbXSxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgbGV0IHsgdmFsdWVGaWVsZCB9ID0gcHJvcHM7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGV0IHsgdmlld1VybCwgdmlld0JpelVybCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgcmVxdWVzdFZpZXdVcmwgPSB2aWV3dHlwZSA9PSBcInN5c1wiID8gdmlld1VybCA6IHZpZXdCaXpVcmw7XHJcbiAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICB1cmwsXHJcbiAgICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgICAgdmlld25hbWUsXHJcbiAgICAgICAgY2FjaGVkLFxyXG4gICAgICAgIGNhY2hlS2V5LFxyXG5cclxuICAgICAgICAuLi5zdG9yZXNcclxuICAgICAgfSA9IHN0b3JlO1xyXG4gICAgICBpZiAoIXVybCAmJiAhb3B0aW9ucyAmJiAhZGF0YSAmJiAhdmlld25hbWUpXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs44CBdmlld25hbWXjgIFkYXRh5ZKMb3B0aW9uc+S4jeiDvemDveS4uuepuu+8gVwiKTtcclxuICAgICAgY29uc3QgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBuZXdEYXRhID0gWy4uLmRhdGFdO1xyXG4gICAgICAgIGlmIChhZGREYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIG5ld0RhdGEgPSBbLi4uYWRkRGF0YSwgLi4ubmV3RGF0YV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkZWxldGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgbmV3RGF0YS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZihpdGVtKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdEYXRhLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgICAgfTtcclxuICAgICAgdmFyIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhU291cmNlID0gX3RoaXMuY29udmVydERhdGEoZ2V0QWxsRGF0YShkYXRhKSk7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5sb2FkLCBfdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBfdGhpcy5jb252ZXJ0RGF0YShnZXRBbGxEYXRhKGRhdGEpKSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5kYXRhQ2hhbmdlZCwgX3RoaXMsIFtcclxuICAgICAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgICAgIG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBzdG9yZSxcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4uc3RvcmVzLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgICBpZiAoKHZpZXduYW1lIHx8IHVybCkgJiYgZGF0YSA9PSBudWxsICYmIG9wdGlvbnMgPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBpc0NhY2hlZCA9IGNhY2hlZDtcclxuICAgICAgICBsZXQgaXNDYWNoZUtleSA9IGNhY2hlS2V5O1xyXG4gICAgICAgIGlmICh2aWV3bmFtZSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWQgIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaXNDYWNoZUtleSA9IGlzQ2FjaGVLZXkgPyBpc0NhY2hlS2V5IDogdmlld25hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCByZXF1ZXN0Vmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb252ZXJ0RGF0YShkYXRhKSB7XHJcbiAgICBsZXQgeyBzdG9yZSA9IHt9LCB2YWx1ZUZpZWxkLCBsYWJlbEZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgbGV0IGRhdGFTb3VyZSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgZGF0YVtpXSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgIGxldCBvYmogPSB7IC4uLmRhdGFbaV0gfTtcclxuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIGlmICh2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBkYXRhW2ldW3ZhbHVlRmllbGRdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZUZpZWxkczogYW55ID0gdmFsdWVGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgZGF0YVtpXVt2XSA6IHZhbHVlICsgXCIsXCIgKyBkYXRhW2ldW3ZdO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICBsYWJlbCA9IGRhdGFbaV1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBkYXRhW2ldW2xdIDogbGFiZWwgKyBcIi1cIiArIGRhdGFbaV1bbF07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JqLmxhYmVsID0gbGFiZWw7XHJcbiAgICAgICAgb2JqLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgb2JqLmRpc2FibGVkID0gZGF0YVtpXS5kaXNhYmxlZCA/IGRhdGFbaV0uZGlzYWJsZWQgOiBmYWxzZTtcclxuICAgICAgICBkYXRhU291cmUucHVzaChvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBvYmogPSB7fSBhcyB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnk7IGRpc2FibGVkPzogYm9vbGVhbiB9O1xyXG4gICAgICAgIG9iai5sYWJlbCA9IGRhdGFbaV07XHJcbiAgICAgICAgb2JqLnZhbHVlID0gZGF0YVtpXTtcclxuICAgICAgICBvYmouZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICBkYXRhU291cmUucHVzaChvYmopO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YVNvdXJlO1xyXG4gIH1cclxuICBvbkNoYW5nZShjaGVja2VkVmFsdWUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICB2YWx1ZTogY2hlY2tlZFZhbHVlLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uQ2hhbmdlKSB7XHJcbiAgICAgIG9uQ2hhbmdlKGNoZWNrZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jb252ZXJ0RGF0YShkYXRhID8gZGF0YSA6IG9wdGlvbnMpLFxyXG4gICAgICAgIGRhdGFTdG9yZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xyXG4gICAgY29uc3QgeyBkYXRhU3RvcmUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgaWYgKGRhdGEgfHwgb3B0aW9ucykge1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZGF0YVN0b3JlKSAhPT0gSlNPTi5zdHJpbmdpZnkobmV3RGF0YSkpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRhdGFTb3VyY2U6IHRoaXMuY29udmVydERhdGEobmV3RGF0YSksXHJcbiAgICAgICAgICBkYXRhU3RvcmU6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgLi4ucGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgQ2hlY2tCb3hQcm9wcyA9IG9taXQoeyAuLi5wYXJhbXMgfSwgW1xyXG4gICAgICBcInN0b3JlXCIsXHJcbiAgICAgIFwidmFsdWVGaWVsZFwiLFxyXG4gICAgICBcImxhYmVsRmllbGRcIixcclxuICAgICAgXCJkYXRhXCIsXHJcbiAgICAgIFwib25DaGFuZ2VcIixcclxuICAgICAgXCJhZGREYXRhXCIsXHJcbiAgICAgIFwiZGVsZXRlRGF0YVwiLFxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Q2hlY2tib3guR3JvdXBcclxuICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS52YWx1ZX1cclxuICAgICAgICBvcHRpb25zPXt0aGlzLnN0YXRlLmRhdGFTb3VyY2V9XHJcbiAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICB7Li4uQ2hlY2tCb3hQcm9wc31cclxuICAgICAgLz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOU0NDaGVja2JveEdyb3VwO1xyXG4iXX0=
251
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwib21pdCIsImNvbmZpZyIsIk5TQ0NoZWNrYm94R3JvdXAiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5IiwiZGF0YVNvdXJjZSIsImRhdGFTdG9yZSIsInZhbHVlIiwiX3RoaXMiLCJzdG9yZSIsIm9wdGlvbnMiLCJkYXRhIiwiY2hpbGRyZW4iLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInZpZXd0eXBlIiwidmlld25hbWUiLCJ2YWx1ZUZpZWxkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJjYWNoZWQiLCJjYWNoZUtleSIsInN0b3JlcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkVycm9yIiwiZ2V0QWxsRGF0YSIsIkFycmF5IiwiaXNBcnJheSIsIm5ld0RhdGEiLCJsZW5ndGgiLCJ2YWx1ZUZpZWxkcyIsInNwbGl0IiwibWFwIiwiaXRlbSIsImkiLCJ2IiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwic3RvcmVQcm9wcyIsIl9vYmplY3RTcHJlYWQiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9uQmVmb3JlTG9hZCIsImNhbGxiYWNrIiwibG9hZCIsIm1vZGVsRGF0YSIsImNvbnZlcnREYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwibGFiZWxGaWVsZCIsImRhdGFTb3VyZSIsIm9iaiIsImxhYmVsIiwibGFiZWxGaWVsZHMiLCJsIiwiZGlzYWJsZWQiLCJwdXNoIiwib25DaGFuZ2UiLCJjaGVja2VkVmFsdWUiLCJnZXRWYWx1ZSIsInN0YXRlIiwic2V0VmFsdWUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsInBhcmFtcyIsIl9leGNsdWRlZDIiLCJDaGVja0JveFByb3BzIiwiY3JlYXRlRWxlbWVudCIsIl9DaGVja2JveCIsIkdyb3VwIiwiX2V4dGVuZHMiLCJiaW5kIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9jaGVja2JveC9DaGVja2JveEdyb3VwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDQtMTQgMDg6NTk6MTlcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTIzIDE2OjQ2OjMzXHJcbiAqL1xyXG5pbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBDaGVja2JveCwgQ2hlY2tib3hQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuXHJcbmludGVyZmFjZSBJQ2hlY2tib3hHcm91cFByb3BzIGV4dGVuZHMgQ2hlY2tib3hQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGRhdGE/OiBBcnJheTxzdHJpbmcgfCBPYmplY3Q+OyAvL+m7mOiupOaVsOaNrlxyXG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcclxuICBhZGREYXRhPzogQXJyYXk8c3RyaW5nIHwgT2JqZWN0PjtcclxuICBkZWxldGVEYXRhPzogQXJyYXk8c3RyaW5nPjtcclxuICBbcHJvcE5hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuY2xhc3MgTlNDQ2hlY2tib3hHcm91cCBleHRlbmRzIFB1cmVDb21wb25lbnQ8SUNoZWNrYm94R3JvdXBQcm9wcz4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBkYXRhU3RvcmU6IFtdLFxyXG4gICAgdmFsdWU6IFtdLFxyXG4gIH07XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBhZGREYXRhID0gW10sXHJcbiAgICAgIGRlbGV0ZURhdGEgPSBbXSxcclxuICAgICAgdmlld3R5cGUgPSBcInN5c1wiLFxyXG4gICAgfSA9IHByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICBsZXQgeyB2YWx1ZUZpZWxkIH0gPSBwcm9wcztcclxuICAgIHZhbHVlRmllbGQgPSB2YWx1ZUZpZWxkID8gdmFsdWVGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0S2V5XCIgOiBcInZhbHVlXCI7XHJcbiAgICBsZXQgeyB2aWV3VXJsLCB2aWV3Qml6VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGxldCByZXF1ZXN0Vmlld1VybCA9IHZpZXd0eXBlID09IFwic3lzXCIgPyB2aWV3VXJsIDogdmlld0JpelVybDtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3Qge1xyXG4gICAgICAgIHVybCxcclxuICAgICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgICB2aWV3bmFtZSxcclxuICAgICAgICBjYWNoZWQsXHJcbiAgICAgICAgY2FjaGVLZXksXHJcblxyXG4gICAgICAgIC4uLnN0b3Jlc1xyXG4gICAgICB9ID0gc3RvcmU7XHJcbiAgICAgIGlmICghdXJsICYmICFvcHRpb25zICYmICFkYXRhICYmICF2aWV3bmFtZSlcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHlkoxvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICBjb25zdCBnZXRBbGxEYXRhID0gKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG5ld0RhdGEgPSBbLi4uZGF0YV07XHJcbiAgICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5hZGREYXRhLCAuLi5uZXdEYXRhXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgbmV3RGF0YS5tYXAoKGl0ZW0sIGkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBpZiAoZGVsZXRlRGF0YS5pbmRleE9mKHZhbHVlKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdEYXRhLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgICBpZiAoZGVsZXRlRGF0YS5pbmRleE9mKGl0ZW0pID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIG5ld0RhdGEuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9O1xyXG4gICAgICB2YXIgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogZnVuY3Rpb24gKHN0b3JlLCBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMub25CZWZvcmVMb2FkLCBfdGhpcywgW3N0b3JlLCBvcHRpb25zXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgbGV0IGRhdGFTb3VyY2UgPSBfdGhpcy5jb252ZXJ0RGF0YShnZXRBbGxEYXRhKGRhdGEpKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBkYXRhU291cmNlIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IF90aGlzLmNvbnZlcnREYXRhKGdldEFsbERhdGEoZGF0YSkpIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHJlcXVlc3RWaWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnREYXRhKGRhdGEpIHtcclxuICAgIGxldCB7IHN0b3JlID0ge30sIHZhbHVlRmllbGQsIGxhYmVsRmllbGQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuICAgIHZhbHVlRmllbGQgPSB2YWx1ZUZpZWxkID8gdmFsdWVGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0S2V5XCIgOiBcInZhbHVlXCI7XHJcbiAgICBsYWJlbEZpZWxkID0gbGFiZWxGaWVsZCA/IGxhYmVsRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdFZhbHVlXCIgOiBcImxhYmVsXCI7XHJcbiAgICBsZXQgZGF0YVNvdXJlID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2ldID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHsgLi4uZGF0YVtpXSB9O1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgaWYgKHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGRhdGFbaV1bdmFsdWVGaWVsZF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBkYXRhW2ldW3ZdIDogdmFsdWUgKyBcIixcIiArIGRhdGFbaV1bdl07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgIGxhYmVsID0gZGF0YVtpXVtsYWJlbEZpZWxkXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGRhdGFbaV1bbF0gOiBsYWJlbCArIFwiLVwiICsgZGF0YVtpXVtsXTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvYmoubGFiZWwgPSBsYWJlbDtcclxuICAgICAgICBvYmoudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICBvYmouZGlzYWJsZWQgPSBkYXRhW2ldLmRpc2FibGVkID8gZGF0YVtpXS5kaXNhYmxlZCA6IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9IGFzIHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueTsgZGlzYWJsZWQ/OiBib29sZWFuIH07XHJcbiAgICAgICAgb2JqLmxhYmVsID0gZGF0YVtpXTtcclxuICAgICAgICBvYmoudmFsdWUgPSBkYXRhW2ldO1xyXG4gICAgICAgIG9iai5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGRhdGFTb3VyZS5wdXNoKG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhU291cmU7XHJcbiAgfVxyXG4gIG9uQ2hhbmdlKGNoZWNrZWRWYWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHZhbHVlOiBjaGVja2VkVmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgb25DaGFuZ2UoY2hlY2tlZFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS52YWx1ZTtcclxuICB9XHJcbiAgc2V0VmFsdWUodmFsdWUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiB0aGlzLmNvbnZlcnREYXRhKGRhdGEgPyBkYXRhIDogb3B0aW9ucyksXHJcbiAgICAgICAgZGF0YVN0b3JlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBkYXRhID8gZGF0YSA6IG9wdGlvbnM7XHJcbiAgICBpZiAoZGF0YSB8fCBvcHRpb25zKSB7XHJcbiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhU3RvcmUpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogdGhpcy5jb252ZXJ0RGF0YShuZXdEYXRhKSxcclxuICAgICAgICAgIGRhdGFTdG9yZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBkYXRhLCBvcHRpb25zLCAuLi5wYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBDaGVja0JveFByb3BzID0gb21pdCh7IC4uLnBhcmFtcyB9LCBbXHJcbiAgICAgIFwic3RvcmVcIixcclxuICAgICAgXCJ2YWx1ZUZpZWxkXCIsXHJcbiAgICAgIFwibGFiZWxGaWVsZFwiLFxyXG4gICAgICBcImRhdGFcIixcclxuICAgICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgICBcImFkZERhdGFcIixcclxuICAgICAgXCJkZWxldGVEYXRhXCIsXHJcbiAgICBdKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxDaGVja2JveC5Hcm91cFxyXG4gICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnZhbHVlfVxyXG4gICAgICAgIG9wdGlvbnM9e3RoaXMuc3RhdGUuZGF0YVNvdXJjZX1cclxuICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgIHsuLi5DaGVja0JveFByb3BzfVxyXG4gICAgICAvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5TQ0NoZWNrYm94R3JvdXA7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFRLE9BQU87QUFFNUMsT0FBT0MsS0FBSyxNQUFzQixhQUFhO0FBQy9DLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0Ms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