nsc-react-component 2.0.14 → 2.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/lib/{affix → base/affix}/index.d.ts +0 -0
  2. package/lib/{affix → base/affix}/index.js +1 -1
  3. package/lib/{alert → base/alert}/index.d.ts +0 -0
  4. package/lib/{alert → base/alert}/index.js +1 -1
  5. package/lib/{anchor → base/anchor}/index.d.ts +0 -0
  6. package/lib/{anchor → base/anchor}/index.js +1 -1
  7. package/lib/{avatar → base/avatar}/index.d.ts +0 -0
  8. package/lib/{avatar → base/avatar}/index.js +1 -1
  9. package/lib/{backTop → base/backTop}/index.d.ts +0 -0
  10. package/lib/{backTop → base/backTop}/index.js +1 -1
  11. package/lib/{badge → base/badge}/index.d.ts +0 -0
  12. package/lib/{badge → base/badge}/index.js +1 -1
  13. package/lib/{breadcrumb → base/breadcrumb}/index.d.ts +0 -0
  14. package/lib/{breadcrumb → base/breadcrumb}/index.js +1 -1
  15. package/lib/{button → base/button}/index.d.ts +0 -0
  16. package/lib/{button → base/button}/index.js +2 -2
  17. package/lib/{button → base/button}/index.less +0 -0
  18. package/lib/{calendar → base/calendar}/index.d.ts +0 -0
  19. package/lib/{calendar → base/calendar}/index.js +1 -1
  20. package/lib/{card → base/card}/index.d.ts +0 -0
  21. package/lib/{card → base/card}/index.js +1 -1
  22. package/lib/{carousel → base/carousel}/index.d.ts +0 -0
  23. package/lib/{carousel → base/carousel}/index.js +1 -1
  24. package/lib/{cascader → base/cascader}/index.d.ts +0 -0
  25. package/lib/base/cascader/index.js +268 -0
  26. package/lib/{chart → base/chart}/index.d.ts +0 -0
  27. package/lib/base/chart/index.js +353 -0
  28. package/lib/{checkbox → base/checkbox}/CheckboxGroup.d.ts +0 -0
  29. package/lib/base/checkbox/CheckboxGroup.js +340 -0
  30. package/lib/{checkbox → base/checkbox}/index.d.ts +0 -0
  31. package/lib/{checkbox → base/checkbox}/index.js +1 -1
  32. package/lib/{collapse → base/collapse}/index.d.ts +0 -0
  33. package/lib/{collapse → base/collapse}/index.js +1 -1
  34. package/lib/{comment → base/comment}/index.d.ts +0 -0
  35. package/lib/{comment → base/comment}/index.js +1 -1
  36. package/lib/{common → base/common}/BodyRow/index.d.ts +0 -0
  37. package/lib/{common → base/common}/BodyRow/index.js +1 -1
  38. package/lib/{common → base/common}/BodyRow/index.less +0 -0
  39. package/lib/{common → base/common}/Icon.d.ts +0 -0
  40. package/lib/{common → base/common}/Icon.js +1 -1
  41. package/lib/{common → base/common}/IconFont.d.ts +0 -0
  42. package/lib/base/common/IconFont.js +17 -0
  43. package/lib/{common → base/common}/NoAuthority.d.ts +0 -0
  44. package/lib/{common → base/common}/NoAuthority.js +1 -1
  45. package/lib/{common → base/common}/NoData.d.ts +0 -0
  46. package/lib/{common → base/common}/NoData.js +1 -1
  47. package/lib/{common → base/common}/NoData.less +0 -0
  48. package/lib/{common → base/common}/NoMessage.d.ts +0 -0
  49. package/lib/{common → base/common}/NoMessage.js +1 -1
  50. package/lib/{common → base/common}/NoNetWork.d.ts +0 -0
  51. package/lib/{common → base/common}/NoNetWork.js +1 -1
  52. package/lib/{common → base/common}/Page404.d.ts +0 -0
  53. package/lib/{common → base/common}/Page404.js +1 -1
  54. package/lib/{common → base/common}/PageRequest.d.ts +0 -0
  55. package/lib/{common → base/common}/PageRequest.js +1 -1
  56. package/lib/{common → base/common}/TreePanel.d.ts +2 -1
  57. package/lib/base/common/TreePanel.js +290 -0
  58. package/lib/{common → base/common}/img/NoAuthority.png +0 -0
  59. package/lib/{common → base/common}/img/NoData.png +0 -0
  60. package/lib/{common → base/common}/img/NoMessage.png +0 -0
  61. package/lib/{common → base/common}/img/NoNetWork.png +0 -0
  62. package/lib/{common → base/common}/img/Page404.png +0 -0
  63. package/lib/{common → base/common}/withZhLocale.d.ts +0 -0
  64. package/lib/base/common/withZhLocale.js +20 -0
  65. package/lib/{configProvider → base/configProvider}/index.d.ts +0 -0
  66. package/lib/{configProvider → base/configProvider}/index.js +1 -1
  67. package/lib/{datepick → base/datepick}/Rangepicker.d.ts +0 -0
  68. package/lib/base/datepick/Rangepicker.js +553 -0
  69. package/lib/{datepick → base/datepick}/index.d.ts +0 -0
  70. package/lib/{datepick → base/datepick}/index.js +1 -1
  71. package/lib/{datepick → base/datepick}/index.less +0 -0
  72. package/lib/{descriptions → base/descriptions}/index.d.ts +0 -0
  73. package/lib/{descriptions → base/descriptions}/index.js +1 -1
  74. package/lib/{divider → base/divider}/index.d.ts +0 -0
  75. package/lib/{divider → base/divider}/index.js +1 -1
  76. package/lib/{drawer → base/drawer}/index.d.ts +0 -0
  77. package/lib/{drawer → base/drawer}/index.js +1 -1
  78. package/lib/{dropdown → base/dropdown}/index.d.ts +0 -0
  79. package/lib/{dropdown → base/dropdown}/index.js +1 -1
  80. package/lib/{form → base/form}/Form.d.ts +0 -0
  81. package/lib/base/form/Form.js +415 -0
  82. package/lib/{form → base/form}/filed/Cascader.d.ts +0 -0
  83. package/lib/{form → base/form}/filed/Cascader.js +1 -1
  84. package/lib/{form → base/form}/filed/Checkbox.d.ts +0 -0
  85. package/lib/{form → base/form}/filed/Checkbox.js +1 -1
  86. package/lib/{form → base/form}/filed/DatePicker.d.ts +0 -0
  87. package/lib/{form → base/form}/filed/DatePicker.js +1 -1
  88. package/lib/{form → base/form}/filed/FormItem.d.ts +0 -0
  89. package/lib/{form → base/form}/filed/FormItem.js +1 -1
  90. package/lib/{form → base/form}/filed/Input.d.ts +0 -0
  91. package/lib/{form → base/form}/filed/Input.js +1 -1
  92. package/lib/{form → base/form}/filed/InputEamil.d.ts +0 -0
  93. package/lib/{form → base/form}/filed/InputEamil.js +1 -1
  94. package/lib/{form → base/form}/filed/InputNumber.d.ts +0 -0
  95. package/lib/{form → base/form}/filed/InputNumber.js +1 -1
  96. package/lib/{form → base/form}/filed/InputPassword.d.ts +0 -0
  97. package/lib/{form → base/form}/filed/InputPassword.js +1 -1
  98. package/lib/{form → base/form}/filed/Item.d.ts +0 -0
  99. package/lib/base/form/filed/Item.js +161 -0
  100. package/lib/{form → base/form}/filed/Radio.d.ts +0 -0
  101. package/lib/{form → base/form}/filed/Radio.js +1 -1
  102. package/lib/{form → base/form}/filed/RangerPicker.d.ts +0 -0
  103. package/lib/{form → base/form}/filed/RangerPicker.js +1 -1
  104. package/lib/{form → base/form}/filed/Rate.d.ts +0 -0
  105. package/lib/{form → base/form}/filed/Rate.js +1 -1
  106. package/lib/{form → base/form}/filed/Select.d.ts +0 -0
  107. package/lib/{form → base/form}/filed/Select.js +1 -1
  108. package/lib/{form → base/form}/filed/Slider.d.ts +0 -0
  109. package/lib/{form → base/form}/filed/Slider.js +1 -1
  110. package/lib/{form → base/form}/filed/Switch.d.ts +0 -0
  111. package/lib/{form → base/form}/filed/Switch.js +1 -1
  112. package/lib/{form → base/form}/filed/TagSelect.d.ts +0 -0
  113. package/lib/{form → base/form}/filed/TagSelect.js +1 -1
  114. package/lib/{form → base/form}/filed/TextArea.d.ts +0 -0
  115. package/lib/{form → base/form}/filed/TextArea.js +1 -1
  116. package/lib/{form → base/form}/filed/Upload.d.ts +0 -0
  117. package/lib/{form → base/form}/filed/Upload.js +1 -1
  118. package/lib/{form → base/form}/index.d.ts +0 -0
  119. package/lib/{form → base/form}/index.js +1 -1
  120. package/lib/{grid → base/grid}/Col.d.ts +0 -0
  121. package/lib/{grid → base/grid}/Col.js +1 -1
  122. package/lib/{grid → base/grid}/Row.d.ts +0 -0
  123. package/lib/{grid → base/grid}/Row.js +1 -1
  124. package/lib/{grid → base/grid}/index.d.ts +0 -0
  125. package/lib/{grid → base/grid}/index.js +0 -0
  126. package/lib/{image → base/image}/index.d.ts +0 -0
  127. package/lib/{image → base/image}/index.js +1 -1
  128. package/lib/{input → base/input}/Email.d.ts +0 -0
  129. package/lib/{input → base/input}/Email.js +1 -1
  130. package/lib/{input → base/input}/Number.d.ts +0 -0
  131. package/lib/{input → base/input}/Number.js +1 -1
  132. package/lib/{input → base/input}/Password.d.ts +0 -3
  133. package/lib/{input → base/input}/Password.js +1 -1
  134. package/lib/{input → base/input}/Search.d.ts +0 -3
  135. package/lib/{input → base/input}/Search.js +1 -1
  136. package/lib/{input → base/input}/TextArea.d.ts +0 -3
  137. package/lib/{input → base/input}/TextArea.js +1 -1
  138. package/lib/{input → base/input}/index.d.ts +0 -0
  139. package/lib/base/input/index.js +242 -0
  140. package/lib/{input → base/input}/index.less +0 -0
  141. package/lib/{layout → base/layout}/index.d.ts +0 -0
  142. package/lib/{layout → base/layout}/index.js +1 -1
  143. package/lib/{list → base/list}/index.d.ts +0 -0
  144. package/lib/{list → base/list}/index.js +1 -1
  145. package/lib/{menu → base/menu}/index.d.ts +0 -0
  146. package/lib/base/menu/index.js +247 -0
  147. package/lib/{message → base/message}/index.d.ts +0 -0
  148. package/lib/{message → base/message}/index.js +1 -1
  149. package/lib/{modal → base/modal}/index.d.ts +0 -0
  150. package/lib/{modal → base/modal}/index.js +1 -1
  151. package/lib/{notification → base/notification}/index.d.ts +0 -0
  152. package/lib/{notification → base/notification}/index.js +1 -1
  153. package/lib/{pageHeader → base/pageHeader}/index.d.ts +0 -0
  154. package/lib/{pageHeader → base/pageHeader}/index.js +1 -1
  155. package/lib/{pagination → base/pagination}/index.d.ts +0 -0
  156. package/lib/{pagination → base/pagination}/index.js +1 -1
  157. package/lib/{popconfirm → base/popconfirm}/index.d.ts +0 -0
  158. package/lib/{popconfirm → base/popconfirm}/index.js +1 -1
  159. package/lib/{popover → base/popover}/index.d.ts +0 -0
  160. package/lib/{popover → base/popover}/index.js +1 -1
  161. package/lib/{progress → base/progress}/index.d.ts +0 -0
  162. package/lib/{progress → base/progress}/index.js +1 -1
  163. package/lib/{radio → base/radio}/RadioGroup.d.ts +0 -0
  164. package/lib/base/radio/RadioGroup.js +378 -0
  165. package/lib/{radio → base/radio}/index.d.ts +0 -0
  166. package/lib/{radio → base/radio}/index.js +1 -1
  167. package/lib/{result → base/result}/index.d.ts +0 -0
  168. package/lib/{result → base/result}/index.js +1 -1
  169. package/lib/{select → base/select}/index.d.ts +0 -0
  170. package/lib/base/select/index.js +529 -0
  171. package/lib/{select → base/select}/index.less +0 -0
  172. package/lib/{skeleton → base/skeleton}/index.d.ts +0 -0
  173. package/lib/{skeleton → base/skeleton}/index.js +1 -1
  174. package/lib/{space → base/space}/index.d.ts +0 -0
  175. package/lib/{space → base/space}/index.js +1 -1
  176. package/lib/{spin → base/spin}/index.d.ts +0 -0
  177. package/lib/{spin → base/spin}/index.js +1 -1
  178. package/lib/{statistic → base/statistic}/index.d.ts +0 -0
  179. package/lib/{statistic → base/statistic}/index.js +1 -1
  180. package/lib/{steps → base/steps}/index.d.ts +0 -0
  181. package/lib/{steps → base/steps}/index.js +1 -1
  182. package/lib/{table → base/table}/index.d.ts +10 -2
  183. package/lib/base/table/index.js +902 -0
  184. package/lib/{table → base/table}/index.module.less +22 -0
  185. package/lib/{table → base/table}/resize.module.less +0 -0
  186. package/lib/{tabs → base/tabs}/Tabpane.d.ts +0 -0
  187. package/lib/{tabs → base/tabs}/Tabpane.js +1 -1
  188. package/lib/{tabs → base/tabs}/index.d.ts +0 -0
  189. package/lib/{tabs → base/tabs}/index.js +1 -1
  190. package/lib/{tagSelect → base/tagSelect}/TagSelect.d.ts +0 -0
  191. package/lib/base/tagSelect/TagSelect.js +268 -0
  192. package/lib/{tagSelect → base/tagSelect}/index.d.ts +0 -0
  193. package/lib/base/tagSelect/index.js +188 -0
  194. package/lib/{tagSelect → base/tagSelect}/index.less +0 -0
  195. package/lib/{timeline → base/timeline}/index.d.ts +0 -0
  196. package/lib/{timeline → base/timeline}/index.js +1 -1
  197. package/lib/{tooltip → base/tooltip}/index.d.ts +0 -0
  198. package/lib/{tooltip → base/tooltip}/index.js +1 -1
  199. package/lib/{tree → base/tree}/TreeSearch.d.ts +0 -0
  200. package/lib/base/tree/TreeSearch.js +273 -0
  201. package/lib/{tree → base/tree}/index.d.ts +0 -0
  202. package/lib/base/tree/index.js +307 -0
  203. package/lib/{tree → base/tree}/index.less +0 -0
  204. package/lib/{typography → base/typography}/index.d.ts +0 -0
  205. package/lib/{typography → base/typography}/index.js +1 -1
  206. package/lib/index.d.ts +63 -63
  207. package/lib/index.js +63 -63
  208. package/lib/{pageComponents → page}/BasePage/Form.d.ts +0 -0
  209. package/lib/page/BasePage/Form.js +244 -0
  210. package/lib/{pageComponents → page}/BasePage/index.d.ts +2 -3
  211. package/lib/page/BasePage/index.js +636 -0
  212. package/lib/{pageComponents → page}/BasePage/index.module.less +0 -0
  213. package/lib/utils.d.ts +1 -0
  214. package/lib/utils.js +16 -9
  215. package/package.json +1 -1
  216. package/lib/cascader/index.js +0 -268
  217. package/lib/chart/index.js +0 -353
  218. package/lib/checkbox/CheckboxGroup.js +0 -338
  219. package/lib/common/IconFont.js +0 -17
  220. package/lib/common/TreePanel.js +0 -303
  221. package/lib/common/withZhLocale.js +0 -20
  222. package/lib/datepick/Rangepicker.js +0 -553
  223. package/lib/form/Form.js +0 -415
  224. package/lib/form/filed/Item.js +0 -161
  225. package/lib/input/index.js +0 -242
  226. package/lib/menu/index.js +0 -247
  227. package/lib/pageComponents/BasePage/Form.js +0 -244
  228. package/lib/pageComponents/BasePage/index.js +0 -626
  229. package/lib/radio/RadioGroup.js +0 -376
  230. package/lib/select/index.js +0 -524
  231. package/lib/table/index.js +0 -756
  232. package/lib/tagSelect/TagSelect.js +0 -268
  233. package/lib/tagSelect/index.js +0 -190
  234. package/lib/tree/TreeSearch.js +0 -274
  235. package/lib/tree/index.js +0 -293
@@ -1,524 +0,0 @@
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/select/style/css";
4
- import _Select from "antd/es/select";
5
- var _excluded = ["url", "listeners", "viewname", "cached", "cacheKey", "viewtype"],
6
- _excluded2 = ["children", "store", "data", "onChange", "options", "labelField", "valueField", "defaultStyle", "showGroup", "addData", "deleteData", "valueType"];
7
-
8
- 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); }
9
-
10
- 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; }
11
-
12
- 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; }
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
-
26
- 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
- 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
-
52
- import React, { PureComponent } from "react";
53
- import Store from "@bj-nsc/msn";
54
- import { utils } from "@bj-nsc/msn/lib/utils";
55
- import config from "../config";
56
- import styles from "./index.less";
57
- import cls from "classnames";
58
- import PinyinMatch from "pinyin-match";
59
- var Option = _Select.Option,
60
- OptGroup = _Select.OptGroup;
61
-
62
- var NSCSelect = /*#__PURE__*/function (_PureComponent) {
63
- _inherits(NSCSelect, _PureComponent);
64
-
65
- var _super = _createSuper(NSCSelect);
66
-
67
- function NSCSelect(props) {
68
- var _this2;
69
-
70
- _classCallCheck(this, NSCSelect);
71
-
72
- _this2 = _super.call(this, props);
73
-
74
- _defineProperty(_assertThisInitialized(_this2), "state", {
75
- dataSource: [],
76
- selectValue: null,
77
- allDataSource: [],
78
- children: null,
79
- allChildren: null
80
- });
81
-
82
- _defineProperty(_assertThisInitialized(_this2), "store", {});
83
-
84
- var data = props.data,
85
- _props$store = props.store,
86
- store = _props$store === void 0 ? {} : _props$store,
87
- children = props.children,
88
- options = props.options,
89
- _props$addData = props.addData,
90
- addData = _props$addData === void 0 ? [] : _props$addData,
91
- _props$deleteData = props.deleteData,
92
- deleteData = _props$deleteData === void 0 ? [] : _props$deleteData,
93
- _props$valueField = props.valueField,
94
- valueField = _props$valueField === void 0 ? "dictKey" : _props$valueField;
95
-
96
- var url = store.url,
97
- _store$listeners = store.listeners,
98
- listenersPops = _store$listeners === void 0 ? {} : _store$listeners,
99
- viewname = store.viewname,
100
- cached = store.cached,
101
- cacheKey = store.cacheKey,
102
- _store$viewtype = store.viewtype,
103
- viewtype = _store$viewtype === void 0 ? "system" : _store$viewtype,
104
- stores = _objectWithoutProperties(store, _excluded);
105
-
106
- var _config = config(),
107
- viewUrl = _config.viewUrl,
108
- viewBizUrl = _config.viewBizUrl;
109
-
110
- var requestViewUrl = viewtype == "system" ? viewUrl : viewBizUrl;
111
-
112
- var getAllData = function getAllData(data) {
113
- var newData = _toConsumableArray(data);
114
-
115
- if (addData.length > 0) {
116
- newData = [].concat(_toConsumableArray(addData), _toConsumableArray(newData));
117
- }
118
-
119
- if (deleteData.length > 0) {
120
- var spliceData = [];
121
- var valueFields = valueField.split(",");
122
- newData.map(function (item, i) {
123
- var value = "";
124
- valueFields.map(function (v, index) {
125
- value = index == 0 ? value + item[v] : value + "," + item[v];
126
- });
127
-
128
- if (deleteData.indexOf(value) == -1) {
129
- spliceData.push(item);
130
- }
131
- });
132
- return spliceData;
133
- } else {
134
- return newData;
135
- }
136
- };
137
-
138
- if (!children) {
139
- if (!(data || viewname || url || options)) {
140
- throw new Error("url、viewname、data、options不能都为空!");
141
- }
142
-
143
- var _this = _assertThisInitialized(_this2);
144
-
145
- var storeProps = _objectSpread({
146
- model: "model",
147
- component: _assertThisInitialized(_this2),
148
- listeners: {
149
- onBeforeLoad: function onBeforeLoad(store, options) {
150
- utils.callback(listenersPops.onBeforeLoad, _this, [store, options]);
151
- },
152
- load: function load(data, modelData, store) {
153
- var newData = getAllData(data);
154
-
155
- _this.setState({
156
- dataSource: newData,
157
- allDataSource: newData
158
- });
159
-
160
- utils.callback(listenersPops.load, _this, [data, modelData, store]);
161
- },
162
- dataChanged: function dataChanged(data, modelData, store) {
163
- var newData = getAllData(data);
164
-
165
- _this.setState({
166
- dataSource: newData,
167
- allDataSource: newData
168
- });
169
-
170
- utils.callback(listenersPops.dataChanged, _this, [data, modelData, store]);
171
- }
172
- }
173
- }, stores);
174
-
175
- if ((viewname || url) && data == null && options == null) {
176
- var isCached = cached;
177
- var isCacheKey = cacheKey;
178
-
179
- if (viewname) {
180
- if (typeof cached !== "boolean") {
181
- isCached = true;
182
- isCacheKey = isCacheKey ? isCacheKey : viewname;
183
- }
184
- }
185
-
186
- storeProps = _objectSpread(_objectSpread({}, {
187
- autoLoad: true,
188
- url: url || requestViewUrl + viewname,
189
- //读字典,url固定,viewname
190
- cached: isCached,
191
- cacheKey: isCacheKey
192
- }), storeProps);
193
- }
194
-
195
- _this2.store = new Store(storeProps);
196
- }
197
-
198
- return _this2;
199
- }
200
-
201
- _createClass(NSCSelect, [{
202
- key: "resetData",
203
- value: function resetData() {
204
- var children = this.props.children;
205
- var _this$state = this.state,
206
- allDataSource = _this$state.allDataSource,
207
- allChildren = _this$state.allChildren;
208
-
209
- if (children) {
210
- this.setState({
211
- children: allChildren
212
- });
213
- } else {
214
- this.setState({
215
- dataSource: allDataSource
216
- });
217
- }
218
- }
219
- }, {
220
- key: "getData",
221
- value: function getData() {
222
- return this.state.allDataSource;
223
- }
224
- }, {
225
- key: "getValue",
226
- value: function getValue() {
227
- return this.state.selectValue;
228
- }
229
- }, {
230
- key: "setValue",
231
- value: function setValue(value) {
232
- this.setState({
233
- selectValue: value
234
- });
235
- }
236
- }, {
237
- key: "componentDidMount",
238
- value: function componentDidMount() {
239
- var _this$props = this.props,
240
- data = _this$props.data,
241
- options = _this$props.options,
242
- children = _this$props.children;
243
-
244
- if (!children && (data || options)) {
245
- this.setState({
246
- dataSource: data ? data : options,
247
- allDataSource: data ? data : options
248
- });
249
- } else if (children) {
250
- this.setState({
251
- children: children,
252
- allChildren: children
253
- });
254
- }
255
- }
256
- }, {
257
- key: "componentDidUpdate",
258
- value: function componentDidUpdate(newProps, newState, Snapshot) {
259
- var _this$props2 = this.props,
260
- data = _this$props2.data,
261
- options = _this$props2.options,
262
- children = _this$props2.children;
263
- var _this$state2 = this.state,
264
- allDataSource = _this$state2.allDataSource,
265
- allChildren = _this$state2.allChildren;
266
-
267
- if (!children && (data || options)) {
268
- var newData = data ? data : options;
269
-
270
- if (JSON.stringify(allDataSource) !== JSON.stringify(newData)) {
271
- this.setState({
272
- dataSource: newData,
273
- allDataSource: newData
274
- });
275
- }
276
- } else if (children && Array.isArray(children)) {
277
- var stateChildrenProps = [];
278
- allChildren.map(function (s) {
279
- stateChildrenProps.push(s.props);
280
- });
281
- var childrenProps = [];
282
- children.map(function (c) {
283
- childrenProps.push(c.props);
284
- });
285
-
286
- if (JSON.stringify(stateChildrenProps) !== JSON.stringify(childrenProps)) {
287
- this.setState({
288
- children: children,
289
- allChildren: children
290
- });
291
- }
292
- }
293
- }
294
- }, {
295
- key: "onSearch",
296
- value: function onSearch(value) {
297
- var _this$state3 = this.state,
298
- allDataSource = _this$state3.allDataSource,
299
- allChildren = _this$state3.allChildren;
300
- var _this$props3 = this.props,
301
- _this$props3$labelFie = _this$props3.labelField,
302
- labelField = _this$props3$labelFie === void 0 ? "dictValue" : _this$props3$labelFie,
303
- _this$props3$filterOp = _this$props3.filterOption,
304
- filterOption = _this$props3$filterOp === void 0 ? true : _this$props3$filterOp,
305
- onSearch = _this$props3.onSearch,
306
- children = _this$props3.children;
307
-
308
- if (filterOption) {
309
- var result = [];
310
-
311
- if (!children) {
312
- if (value) {
313
- allDataSource.forEach(function (item) {
314
- var label = "";
315
-
316
- if (labelField.split(",").length == 1) {
317
- label = item[labelField];
318
- } else {
319
- var labelFields = labelField.split(",");
320
- labelFields.map(function (l, index) {
321
- label = index == 0 ? label + item[l] : label + "-" + item[l];
322
- });
323
- }
324
-
325
- var flag = PinyinMatch.match(label, value);
326
-
327
- if (flag) {
328
- result.push(item);
329
- }
330
- });
331
- this.setState({
332
- dataSource: result
333
- });
334
- } else {
335
- this.setState({
336
- dataSource: allDataSource
337
- });
338
- }
339
- } else {
340
- if (value) {
341
- if (Array.isArray(allChildren)) {
342
- allChildren.map(function (child, index) {
343
- var _child$props;
344
-
345
- var label = child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.children;
346
- var flag = PinyinMatch.match(label, value);
347
-
348
- if (flag) {
349
- result.push(child);
350
- }
351
- });
352
- }
353
-
354
- this.setState({
355
- children: result
356
- });
357
- } else {
358
- this.setState({
359
- children: children
360
- });
361
- }
362
- }
363
- }
364
-
365
- onSearch && onSearch(value);
366
- }
367
- }, {
368
- key: "renderOption",
369
- value: function renderOption(optionData) {
370
- var _this$props4 = this.props,
371
- _this$props4$labelFie = _this$props4.labelField,
372
- labelField = _this$props4$labelFie === void 0 ? "dictValue" : _this$props4$labelFie,
373
- _this$props4$valueFie = _this$props4.valueField,
374
- valueField = _this$props4$valueFie === void 0 ? "dictKey" : _this$props4$valueFie,
375
- _this$props4$store = _this$props4.store,
376
- store = _this$props4$store === void 0 ? {} : _this$props4$store,
377
- _this$props4$valueTyp = _this$props4.valueType,
378
- valueType = _this$props4$valueTyp === void 0 ? "string" : _this$props4$valueTyp;
379
- return optionData.map(function (item) {
380
- var value;
381
-
382
- if (valueField.split(",").length == 1) {
383
- value = valueType === "number" ? Number(item[valueField]) : item[valueField] + "";
384
- } else {
385
- var valueFields = valueField.split(",");
386
- valueFields.map(function (v, index) {
387
- value = index == 0 ? value + item[v] : value + "," + item[v];
388
- });
389
- }
390
-
391
- var key = item.id ? item.id !== "undefined" ? item.id : value : value;
392
- var label = "";
393
-
394
- if (labelField.split(",").length == 1) {
395
- label = item[labelField];
396
- } else {
397
- var labelFields = labelField.split(",");
398
- labelFields.map(function (l, index) {
399
- label = index == 0 ? label + item[l] : label + "-" + item[l];
400
- });
401
- }
402
-
403
- return /*#__PURE__*/React.createElement(Option, {
404
- key: key,
405
- value: value,
406
- label: label,
407
- disabled: item.disabled ? true : false
408
- }, label);
409
- });
410
- }
411
- }, {
412
- key: "renderChildren",
413
- value: function renderChildren() {
414
- var _this3 = this;
415
-
416
- var _this$props$showGroup = this.props.showGroup,
417
- showGroup = _this$props$showGroup === void 0 ? true : _this$props$showGroup;
418
- var _this$state4 = this.state,
419
- dataSource = _this$state4.dataSource,
420
- children = _this$state4.children;
421
-
422
- if (children) {
423
- return /*#__PURE__*/React.createElement(React.Fragment, null, children);
424
- } else {
425
- var optGroupData = {},
426
- optionData = [];
427
- dataSource.forEach(function (item) {
428
- var label = item.groupName;
429
-
430
- if (label && showGroup) {
431
- if (!optGroupData[label]) optGroupData[label] = [];
432
- optGroupData[label].push(item);
433
- } else {
434
- optionData.push(item);
435
- }
436
- });
437
- var option = this.renderOption(optionData);
438
- var optGroup = Object.keys(optGroupData).map(function (key) {
439
- return /*#__PURE__*/React.createElement(OptGroup, {
440
- key: key,
441
- label: key
442
- }, _this3.renderOption(optGroupData[key]));
443
- });
444
- return /*#__PURE__*/React.createElement(React.Fragment, null, option, optGroup);
445
- }
446
- }
447
- }, {
448
- key: "onChange",
449
- value: function onChange(value, options) {
450
- var onChange = this.props.onChange;
451
- this.setState({
452
- selectValue: value
453
- });
454
-
455
- if (onChange) {
456
- onChange(value, options);
457
- }
458
- }
459
- }, {
460
- key: "onDropdownVisibleChange",
461
- value: function onDropdownVisibleChange(open) {
462
- if (!open) {
463
- this.resetData();
464
- }
465
- }
466
- }, {
467
- key: "render",
468
- value: function render() {
469
- var _this$props5 = this.props,
470
- children = _this$props5.children,
471
- store = _this$props5.store,
472
- data = _this$props5.data,
473
- onChange = _this$props5.onChange,
474
- options = _this$props5.options,
475
- labelField = _this$props5.labelField,
476
- valueField = _this$props5.valueField,
477
- defaultStyle = _this$props5.defaultStyle,
478
- _this$props5$showGrou = _this$props5.showGroup,
479
- showGroup = _this$props5$showGrou === void 0 ? true : _this$props5$showGrou,
480
- addData = _this$props5.addData,
481
- deleteData = _this$props5.deleteData,
482
- valueType = _this$props5.valueType,
483
- params = _objectWithoutProperties(_this$props5, _excluded2);
484
-
485
- var props = {
486
- filterOption: false,
487
- showSearch: true,
488
- optionFilterProp: "label",
489
- placeholder: "请选择",
490
- allowClear: true
491
- };
492
-
493
- var _config2 = config(),
494
- antdStyle = _config2.antdStyle;
495
-
496
- if ((defaultStyle || antdStyle) && defaultStyle === true) {
497
- return /*#__PURE__*/React.createElement("div", {
498
- className: cls(styles["nsc_select"], this.props.className)
499
- }, /*#__PURE__*/React.createElement(_Select, _extends({
500
- value: this.state.selectValue,
501
- onChange: this.onChange.bind(this),
502
- onSearch: this.onSearch.bind(this),
503
- onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
504
- }, props, params), this.renderChildren()));
505
- } else {
506
- return /*#__PURE__*/React.createElement(_Select, _extends({
507
- value: this.state.selectValue,
508
- onSearch: this.onSearch.bind(this),
509
- onChange: this.onChange.bind(this),
510
- onDropdownVisibleChange: this.onDropdownVisibleChange.bind(this)
511
- }, props, params), this.renderChildren());
512
- }
513
- }
514
- }]);
515
-
516
- return NSCSelect;
517
- }(PureComponent);
518
-
519
- _defineProperty(NSCSelect, "Option", Option);
520
-
521
- _defineProperty(NSCSelect, "OptGroup", OptGroup);
522
-
523
- export { NSCSelect as default };
524
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3NlbGVjdC9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQdXJlQ29tcG9uZW50IiwiU3RvcmUiLCJ1dGlscyIsImNvbmZpZyIsInN0eWxlcyIsImNscyIsIlBpbnlpbk1hdGNoIiwiT3B0aW9uIiwiT3B0R3JvdXAiLCJOU0NTZWxlY3QiLCJwcm9wcyIsImRhdGFTb3VyY2UiLCJzZWxlY3RWYWx1ZSIsImFsbERhdGFTb3VyY2UiLCJjaGlsZHJlbiIsImFsbENoaWxkcmVuIiwiZGF0YSIsInN0b3JlIiwib3B0aW9ucyIsImFkZERhdGEiLCJkZWxldGVEYXRhIiwidmFsdWVGaWVsZCIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwidmlld3R5cGUiLCJzdG9yZXMiLCJ2aWV3VXJsIiwidmlld0JpelVybCIsInJlcXVlc3RWaWV3VXJsIiwiZ2V0QWxsRGF0YSIsIm5ld0RhdGEiLCJsZW5ndGgiLCJzcGxpY2VEYXRhIiwidmFsdWVGaWVsZHMiLCJzcGxpdCIsIm1hcCIsIml0ZW0iLCJpIiwidmFsdWUiLCJ2IiwiaW5kZXgiLCJpbmRleE9mIiwicHVzaCIsIkVycm9yIiwiX3RoaXMiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvbkJlZm9yZUxvYWQiLCJjYWxsYmFjayIsImxvYWQiLCJtb2RlbERhdGEiLCJzZXRTdGF0ZSIsImRhdGFDaGFuZ2VkIiwiaXNDYWNoZWQiLCJpc0NhY2hlS2V5IiwiYXV0b0xvYWQiLCJzdGF0ZSIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJBcnJheSIsImlzQXJyYXkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJsYWJlbEZpZWxkIiwiZmlsdGVyT3B0aW9uIiwib25TZWFyY2giLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJ2YWx1ZVR5cGUiLCJOdW1iZXIiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJvcGVuIiwicmVzZXREYXRhIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJhbnRkU3R5bGUiLCJjbGFzc05hbWUiLCJiaW5kIiwib25Ecm9wZG93blZpc2libGVDaGFuZ2UiLCJyZW5kZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFFQSxPQUFPQyxLQUFQLE1BQWtDLGFBQWxDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLE9BQU9DLEdBQVAsTUFBZ0IsWUFBaEI7QUFFQSxPQUFPQyxXQUFQLE1BQXdCLGNBQXhCO0FBQ0EsSUFBUUMsTUFBUixXQUFRQSxNQUFSO0FBQUEsSUFBZ0JDLFFBQWhCLFdBQWdCQSxRQUFoQjs7SUFlcUJDLFM7Ozs7O0FBV25CLHFCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLCtCQUFNQSxLQUFOOztBQURpQiw2REFSWDtBQUNOQyxNQUFBQSxVQUFVLEVBQUUsRUFETjtBQUVOQyxNQUFBQSxXQUFXLEVBQUUsSUFGUDtBQUdOQyxNQUFBQSxhQUFhLEVBQUUsRUFIVDtBQUlOQyxNQUFBQSxRQUFRLEVBQUUs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LENBQVdqRCxXQURwQjtBQUVFLFVBQUEsUUFBUSxFQUFFLEtBQUtzRixRQUFMLENBQWNXLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWjtBQUdFLFVBQUEsUUFBUSxFQUFFLEtBQUtsQyxRQUFMLENBQWNrQyxJQUFkLENBQW1CLElBQW5CLENBSFo7QUFJRSxVQUFBLHVCQUF1QixFQUFFLEtBQUtDLHVCQUFMLENBQTZCRCxJQUE3QixDQUFrQyxJQUFsQztBQUozQixXQUtNbkcsS0FMTixFQU1NNEYsTUFOTixHQVFHLEtBQUtTLGNBQUwsRUFSSCxDQURGLENBREY7QUFjRCxPQWZELE1BZU87QUFDTCw0QkFDRTtBQUNFLFVBQUEsS0FBSyxFQUFFLEtBQUtsRCxLQUFMLENBQVdqRCxXQURwQjtBQUVFLFVBQUEsUUFBUSxFQUFFLEtBQUsrRCxRQUFMLENBQWNrQyxJQUFkLENBQW1CLElBQW5CLENBRlo7QUFHRSxVQUFBLFFBQVEsRUFBRSxLQUFLWCxRQUFMLENBQWNXLElBQWQsQ0FBbUIsSUFBbkIsQ0FIWjtBQUlFLFVBQUEsdUJBQXVCLEVBQUUsS0FBS0MsdUJBQUwsQ0FBNkJELElBQTdCLENBQWtDLElBQWxDO0FBSjNCLFdBS01uRyxLQUxOLEVBTU00RixNQU5OLEdBUUcsS0FBS1MsY0FBTCxFQVJILENBREY7QUFZRDtBQUNGOzs7O0VBelhvQy9HLGE7O2dCQUFsQlMsUyxZQUNIRixNOztnQkFER0UsUyxjQUVERCxROztTQUZDQyxTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgU2VsZWN0LCBTZWxlY3RQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi9jb25maWdcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IFBpbnlpbk1hdGNoIGZyb20gXCJwaW55aW4tbWF0Y2hcIjtcclxuY29uc3QgeyBPcHRpb24sIE9wdEdyb3VwIH0gPSBTZWxlY3Q7XHJcblxyXG5pbnRlcmZhY2UgSVNlbGVjdFByb3BzIGV4dGVuZHMgU2VsZWN0UHJvcHM8YW55PiB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGRhdGE/OiBBcnJheTxPYmplY3Q+OyAvL+m7mOiupOaVsOaNrlxyXG4gIGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcclxuICBkZWZhdWx0U3R5bGU/OiBib29sZWFuO1xyXG4gIHNob3dHcm91cD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65YiG57uEXHJcbiAgYWRkRGF0YT86IEFycmF5PE9iamVjdD47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzku47lop7liqDpop3lpJbnmoTmlbDmja5cclxuICBkZWxldGVEYXRhPzogQXJyYXk8U3RyaW5nPjsgLy/phY3lkIhzdG9yZeS9v+eUqO+8jOWIoOmZpOS7juaVsOaNruW6k+S4reiOt+WPluWIsOeahOaMh+WumuaVsOaNrlxyXG4gIHZhbHVlQnJlYWs/OiBzdHJpbmc7IC8v5aSa5LiqdmFsdWXkvb/nlKjnmoTliIbpmpTnrKZcclxuICB2YWx1ZVR5cGU/OiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIjtcclxuICBbcHJvTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5TQ1NlbGVjdCBleHRlbmRzIFB1cmVDb21wb25lbnQ8SVNlbGVjdFByb3BzPiB7XHJcbiAgc3RhdGljIE9wdGlvbiA9IE9wdGlvbjtcclxuICBzdGF0aWMgT3B0R3JvdXAgPSBPcHRHcm91cDtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgc2VsZWN0VmFsdWU6IG51bGwsXHJcbiAgICBhbGxEYXRhU291cmNlOiBbXSxcclxuICAgIGNoaWxkcmVuOiBudWxsLFxyXG4gICAgYWxsQ2hpbGRyZW46IG51bGwsXHJcbiAgfTtcclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGF0YSxcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGFkZERhdGEgPSBbXSxcclxuICAgICAgZGVsZXRlRGF0YSA9IFtdLFxyXG4gICAgICB2YWx1ZUZpZWxkID0gXCJkaWN0S2V5XCIsXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIHZpZXduYW1lLFxyXG4gICAgICBjYWNoZWQsXHJcbiAgICAgIGNhY2hlS2V5LFxyXG4gICAgICB2aWV3dHlwZSA9IFwic3lzdGVtXCIsXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG4gICAgbGV0IHsgdmlld1VybCwgdmlld0JpelVybCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgcmVxdWVzdFZpZXdVcmwgPSB2aWV3dHlwZSA9PSBcInN5c3RlbVwiID8gdmlld1VybCA6IHZpZXdCaXpVcmw7XHJcbiAgICBjb25zdCBnZXRBbGxEYXRhID0gKGRhdGEpID0+IHtcclxuICAgICAgbGV0IG5ld0RhdGEgPSBbLi4uZGF0YV07XHJcbiAgICAgIGlmIChhZGREYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdEYXRhID0gWy4uLmFkZERhdGEsIC4uLm5ld0RhdGFdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChkZWxldGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgc3BsaWNlRGF0YSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICBuZXdEYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChkZWxldGVEYXRhLmluZGV4T2YodmFsdWUpID09IC0xKSB7XHJcbiAgICAgICAgICAgIHNwbGljZURhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3BsaWNlRGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCEoZGF0YSB8fCB2aWV3bmFtZSB8fCB1cmwgfHwgb3B0aW9ucykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHjgIFvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgIGxldCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCByZXF1ZXN0Vmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiBhbGxDaGlsZHJlbiB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmFsbERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgICAgYWxsRGF0YVNvdXJjZTogZGF0YSA/IGRhdGEgOiBvcHRpb25zLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShuZXdQcm9wcywgbmV3U3RhdGUsIFNuYXBzaG90KSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIG9wdGlvbnMsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmICghY2hpbGRyZW4gJiYgKGRhdGEgfHwgb3B0aW9ucykpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IGRhdGEgPyBkYXRhIDogb3B0aW9ucztcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGFsbERhdGFTb3VyY2UpICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXRhKSkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY29uc3Qgc3RhdGVDaGlsZHJlblByb3BzOiBhbnkgPSBbXTtcclxuICAgICAgYWxsQ2hpbGRyZW4ubWFwKChzOiBhbnkpID0+IHtcclxuICAgICAgICBzdGF0ZUNoaWxkcmVuUHJvcHMucHVzaChzLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNoaWxkcmVuUHJvcHMucHVzaChjLnByb3BzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzdGF0ZUNoaWxkcmVuUHJvcHMpICE9PSBKU09OLnN0cmluZ2lmeShjaGlsZHJlblByb3BzKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIGFsbENoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvblNlYXJjaCh2YWx1ZSkge1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgbGFiZWxGaWVsZCA9IFwiZGljdFZhbHVlXCIsXHJcbiAgICAgIGZpbHRlck9wdGlvbiA9IHRydWUsXHJcbiAgICAgIG9uU2VhcmNoLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKGZpbHRlck9wdGlvbikge1xyXG4gICAgICBsZXQgcmVzdWx0ID0gW107XHJcbiAgICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGFsbERhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICAgICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICBsYWJlbCA9IGl0ZW1bbGFiZWxGaWVsZF07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgaXRlbVtsXSA6IGxhYmVsICsgXCItXCIgKyBpdGVtW2xdO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBmbGFnID0gUGlueWluTWF0Y2gubWF0Y2gobGFiZWwsIHZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogcmVzdWx0LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkYXRhU291cmNlOiBhbGxEYXRhU291cmNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWxsQ2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICAgIGFsbENoaWxkcmVuLm1hcCgoY2hpbGQ6IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICBsZXQgbGFiZWwgPSBjaGlsZD8ucHJvcHM/LmNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgIGxldCBmbGFnID0gUGlueWluTWF0Y2gubWF0Y2gobGFiZWwsIHZhbHVlKTtcclxuICAgICAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hpbGRyZW46IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvblNlYXJjaCAmJiBvblNlYXJjaCh2YWx1ZSk7XHJcbiAgfVxyXG4gIHJlbmRlck9wdGlvbihvcHRpb25EYXRhKSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBsYWJlbEZpZWxkID0gXCJkaWN0VmFsdWVcIixcclxuICAgICAgdmFsdWVGaWVsZCA9IFwiZGljdEtleVwiLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICB2YWx1ZVR5cGUgPSBcInN0cmluZ1wiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICByZXR1cm4gb3B0aW9uRGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICAgIGlmICh2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIHZhbHVlID1cclxuICAgICAgICAgIHZhbHVlVHlwZSA9PT0gXCJudW1iZXJcIlxyXG4gICAgICAgICAgICA/IE51bWJlcihpdGVtW3ZhbHVlRmllbGRdKVxyXG4gICAgICAgICAgICA6IGl0ZW1bdmFsdWVGaWVsZF0gKyBcIlwiO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICB2YWx1ZUZpZWxkcy5tYXAoKHYsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQga2V5ID0gaXRlbS5pZCA/IChpdGVtLmlkICE9PSBcInVuZGVmaW5lZFwiID8gaXRlbS5pZCA6IHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICBsZXQgbGFiZWwgPSBcIlwiO1xyXG4gICAgICBpZiAobGFiZWxGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBsYWJlbCA9IGl0ZW1bbGFiZWxGaWVsZF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbGFiZWxGaWVsZHM6IGFueSA9IGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIGxhYmVsRmllbGRzLm1hcCgobCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGxhYmVsID0gaW5kZXggPT0gMCA/IGxhYmVsICsgaXRlbVtsXSA6IGxhYmVsICsgXCItXCIgKyBpdGVtW2xdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE9wdGlvblxyXG4gICAgICAgICAga2V5PXtrZXl9XHJcbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XHJcbiAgICAgICAgICBsYWJlbD17bGFiZWx9XHJcbiAgICAgICAgICBkaXNhYmxlZD17aXRlbS5kaXNhYmxlZCA/IHRydWUgOiBmYWxzZX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7bGFiZWx9XHJcbiAgICAgICAgPC9PcHRpb24+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyQ2hpbGRyZW4oKSB7XHJcbiAgICBjb25zdCB7IHNob3dHcm91cCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UsIGNoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIHJldHVybiA8PntjaGlsZHJlbn08Lz47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgb3B0R3JvdXBEYXRhID0ge30sXHJcbiAgICAgICAgb3B0aW9uRGF0YSA9IFtdO1xyXG4gICAgICBkYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgbGFiZWwgPSBpdGVtLmdyb3VwTmFtZTtcclxuICAgICAgICBpZiAobGFiZWwgJiYgc2hvd0dyb3VwKSB7XHJcbiAgICAgICAgICBpZiAoIW9wdEdyb3VwRGF0YVtsYWJlbF0pIG9wdEdyb3VwRGF0YVtsYWJlbF0gPSBbXTtcclxuICAgICAgICAgIG9wdEdyb3VwRGF0YVtsYWJlbF0ucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9uRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBvcHRpb24gPSB0aGlzLnJlbmRlck9wdGlvbihvcHRpb25EYXRhKTtcclxuICAgICAgbGV0IG9wdEdyb3VwID0gT2JqZWN0LmtleXMob3B0R3JvdXBEYXRhKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8T3B0R3JvdXAga2V5PXtrZXl9IGxhYmVsPXtrZXl9PlxyXG4gICAgICAgICAgICB7dGhpcy5yZW5kZXJPcHRpb24ob3B0R3JvdXBEYXRhW2tleV0pfVxyXG4gICAgICAgICAgPC9PcHRHcm91cD5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8PlxyXG4gICAgICAgICAge29wdGlvbn1cclxuICAgICAgICAgIHtvcHRHcm91cH1cclxuICAgICAgICA8Lz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgICBpZiAob25DaGFuZ2UpIHtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZShvcGVuKSB7XHJcbiAgICBpZiAoIW9wZW4pIHtcclxuICAgICAgdGhpcy5yZXNldERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIG9uQ2hhbmdlLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBsYWJlbEZpZWxkLFxyXG4gICAgICB2YWx1ZUZpZWxkLFxyXG4gICAgICBkZWZhdWx0U3R5bGUsXHJcbiAgICAgIHNob3dHcm91cCA9IHRydWUsXHJcbiAgICAgIGFkZERhdGEsXHJcbiAgICAgIGRlbGV0ZURhdGEsXHJcbiAgICAgIHZhbHVlVHlwZSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGxldCB7IGFudGRTdHlsZSB9ID0gY29uZmlnKCk7XHJcbiAgICBpZiAoKGRlZmF1bHRTdHlsZSB8fCBhbnRkU3R5bGUpICYmIGRlZmF1bHRTdHlsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoc3R5bGVzW1wibnNjX3NlbGVjdFwiXSwgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cclxuICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPXt0aGlzLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cclxuICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZX1cclxuICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25Ecm9wZG93blZpc2libGVDaGFuZ2U9e3RoaXMub25Ecm9wZG93blZpc2libGVDaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cclxuICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19