nsc-react-component 2.0.4 → 2.0.5

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 (87) hide show
  1. package/lib/affix/index.d.ts +5 -0
  2. package/lib/affix/index.js +50 -0
  3. package/lib/alert/index.d.ts +5 -0
  4. package/lib/alert/index.js +50 -0
  5. package/lib/anchor/index.d.ts +6 -0
  6. package/lib/anchor/index.js +54 -0
  7. package/lib/avatar/index.d.ts +6 -0
  8. package/lib/avatar/index.js +54 -0
  9. package/lib/backTop/index.d.ts +5 -0
  10. package/lib/backTop/index.js +50 -0
  11. package/lib/badge/index.d.ts +6 -0
  12. package/lib/badge/index.js +54 -0
  13. package/lib/breadcrumb/index.d.ts +5 -0
  14. package/lib/breadcrumb/index.js +50 -0
  15. package/lib/calendar/index.d.ts +5 -0
  16. package/lib/calendar/index.js +50 -0
  17. package/lib/card/index.d.ts +7 -0
  18. package/lib/card/index.js +56 -0
  19. package/lib/carousel/index.d.ts +5 -0
  20. package/lib/carousel/index.js +50 -0
  21. package/lib/collapse/index.d.ts +6 -0
  22. package/lib/collapse/index.js +54 -0
  23. package/lib/comment/index.d.ts +5 -0
  24. package/lib/comment/index.js +50 -0
  25. package/lib/configProvider/index.d.ts +5 -0
  26. package/lib/configProvider/index.js +54 -0
  27. package/lib/descriptions/index.d.ts +6 -0
  28. package/lib/descriptions/index.js +54 -0
  29. package/lib/divider/index.d.ts +5 -0
  30. package/lib/divider/index.js +50 -0
  31. package/lib/drawer/index.d.ts +5 -0
  32. package/lib/drawer/index.js +50 -0
  33. package/lib/dropdown/index.d.ts +5 -0
  34. package/lib/dropdown/index.js +50 -0
  35. package/lib/grid/Col.d.ts +5 -0
  36. package/lib/grid/Col.js +50 -0
  37. package/lib/grid/Row.d.ts +5 -0
  38. package/lib/grid/Row.js +50 -0
  39. package/lib/grid/index.d.ts +1 -0
  40. package/lib/grid/index.js +2 -0
  41. package/lib/image/index.d.ts +9 -0
  42. package/lib/image/index.js +73 -0
  43. package/lib/index.d.ts +36 -1
  44. package/lib/index.js +36 -1
  45. package/lib/layout/index.d.ts +9 -0
  46. package/lib/layout/index.js +64 -0
  47. package/lib/list/index.d.ts +6 -0
  48. package/lib/list/index.js +54 -0
  49. package/lib/message/index.d.ts +13 -0
  50. package/lib/message/index.js +59 -0
  51. package/lib/modal/index.d.ts +5 -0
  52. package/lib/modal/index.js +13 -3
  53. package/lib/notification/index.d.ts +12 -0
  54. package/lib/notification/index.js +59 -0
  55. package/lib/pageComponents/BasePage/Form.js +11 -12
  56. package/lib/pageComponents/BasePage/index.d.ts +5 -0
  57. package/lib/pageComponents/BasePage/index.js +86 -16
  58. package/lib/pageComponents/BasePage/index.less +2 -2
  59. package/lib/pageHeader/index.d.ts +5 -0
  60. package/lib/pageHeader/index.js +50 -0
  61. package/lib/pagination/index.d.ts +5 -0
  62. package/lib/pagination/index.js +50 -0
  63. package/lib/popconfirm/index.d.ts +5 -0
  64. package/lib/popconfirm/index.js +50 -0
  65. package/lib/popover/index.d.ts +5 -0
  66. package/lib/popover/index.js +50 -0
  67. package/lib/progress/index.d.ts +5 -0
  68. package/lib/progress/index.js +50 -0
  69. package/lib/result/index.d.ts +5 -0
  70. package/lib/result/index.js +50 -0
  71. package/lib/skeleton/index.d.ts +5 -0
  72. package/lib/skeleton/index.js +50 -0
  73. package/lib/space/index.d.ts +5 -0
  74. package/lib/space/index.js +50 -0
  75. package/lib/spin/index.d.ts +5 -0
  76. package/lib/spin/index.js +50 -0
  77. package/lib/statistic/index.d.ts +6 -0
  78. package/lib/statistic/index.js +54 -0
  79. package/lib/steps/index.d.ts +5 -0
  80. package/lib/steps/index.js +50 -0
  81. package/lib/timeline/index.d.ts +6 -0
  82. package/lib/timeline/index.js +54 -0
  83. package/lib/tooltip/index.d.ts +5 -0
  84. package/lib/tooltip/index.js +50 -0
  85. package/lib/typography/index.d.ts +5 -0
  86. package/lib/typography/index.js +50 -0
  87. package/package.json +1 -1
@@ -1,12 +1,5 @@
1
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
2
 
3
- import "antd/es/row/style/css";
4
- import _Row from "antd/es/row";
5
- import "antd/es/col/style/css";
6
- import _Col from "antd/es/col";
7
- import "antd/es/message/style/css";
8
- import _message from "antd/es/message";
9
-
10
3
  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
4
 
12
5
  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; }
@@ -36,6 +29,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
36
29
  import React, { PureComponent } from "react";
37
30
  import Form from "../../form";
38
31
  import { getNode } from "../../utils";
32
+ import message from "../../message";
33
+ import Col from "../../grid/Col";
34
+ import Row from "../../grid/Row";
39
35
 
40
36
  var EditorForm = /*#__PURE__*/function (_PureComponent) {
41
37
  _inherits(EditorForm, _PureComponent);
@@ -130,6 +126,10 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
130
126
  });
131
127
  }
132
128
 
129
+ if (!submitUrl) {
130
+ throw new Error("url不能为空!");
131
+ }
132
+
133
133
  (_this2$formRef$curren = _this2.formRef.current) === null || _this2$formRef$curren === void 0 ? void 0 : _this2$formRef$curren.onSubmit(submitUrl, {
134
134
  data: _objectSpread({}, formValue),
135
135
  noUndefined: label == "编辑",
@@ -142,8 +142,7 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
142
142
  });
143
143
 
144
144
  if (code === 200) {
145
- _message.success(label + "成功");
146
-
145
+ message.success(label + "成功");
147
146
  callBack && callBack();
148
147
  }
149
148
  });
@@ -183,7 +182,7 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
183
182
  wrapperCol: {
184
183
  flex: "15vw"
185
184
  }
186
- }, /*#__PURE__*/React.createElement(_Row, {
185
+ }, /*#__PURE__*/React.createElement(Row, {
187
186
  gutter: 24
188
187
  }, formProps.map(function (item, index) {
189
188
  var props = _objectSpread({}, item.props);
@@ -196,7 +195,7 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
196
195
  _this3.valid = newValid;
197
196
  }
198
197
 
199
- return /*#__PURE__*/React.createElement(_Col, {
198
+ return /*#__PURE__*/React.createElement(Col, {
200
199
  span: item.span || 12,
201
200
  key: index
202
201
  }, /*#__PURE__*/React.createElement(Form.Item, {
@@ -214,4 +213,4 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
214
213
  }(PureComponent);
215
214
 
216
215
  export default EditorForm;
217
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL0Zvcm0udHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIkZvcm0iLCJnZXROb2RlIiwiRWRpdG9yRm9ybSIsImNyZWF0ZVJlZiIsImxvYWRpbmciLCJsYWJlbCIsImVkaXRvckZsYWciLCJ2YWx1ZSIsImZsYWciLCJzZXRTdGF0ZSIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2hvd0Zvcm0iLCJhdHRyaWJ1dGUiLCJwcm9wcyIsImF1dG9TdWJtaXQiLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJvblN1Ym1pdCIsImNhbGxCYWNrIiwic3RhdGUiLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJ0aGVuIiwiZGF0YSIsImlkIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImNhdGNoIiwiZXJyb3JJbmZvIiwiZm9ybVByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJiaW5kIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwid2lkdGgiLCJuZXdWYWxpZCIsImZsZXgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJydWxlcyIsImxlbmd0aCIsInB1c2giLCJuYW1lIiwic3BhbiIsInR5cGUiLCJwbGFjZWhvbGRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUNBLE9BQU9DLElBQVAsTUFBaUIsWUFBakI7QUFFQSxTQUFTQyxPQUFULFFBQXdCLGFBQXhCOztJQUNNQyxVOzs7Ozs7Ozs7Ozs7Ozs7OzJFQUNNSixLQUFLLENBQUNLLFNBQU4sRTs7NERBQ0Y7QUFDTkMsTUFBQUEsT0FBTyxFQUFFLEtBREg7QUFF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cUJBQVFpQyxJQUFJLENBQUNqQyxLQUFiLENBQVg7O0FBQ0EsWUFBSWlDLElBQUksQ0FBQ0UsS0FBTCxJQUFjRixJQUFJLENBQUNFLEtBQUwsQ0FBV0MsTUFBWCxHQUFvQixDQUF0QyxFQUF5QztBQUN2Q04sVUFBQUEsUUFBUSxDQUFDTyxJQUFULENBQWNKLElBQUksQ0FBQ0ssSUFBbkI7QUFDRDs7QUFDRCxZQUFJSixLQUFLLEdBQUcsQ0FBUixLQUFjZCxTQUFTLENBQUNnQixNQUE1QixFQUFvQztBQUNsQyxVQUFBLE1BQUksQ0FBQzNCLEtBQUwsR0FBYXFCLFFBQWI7QUFDRDs7QUFDRCw0QkFDRTtBQUFLLFVBQUEsSUFBSSxFQUFFRyxJQUFJLENBQUNNLElBQUwsSUFBYSxFQUF4QjtBQUE0QixVQUFBLEdBQUcsRUFBRUw7QUFBakMsd0JBQ0Usb0JBQUMsSUFBRCxDQUFNLElBQU47QUFBVyxVQUFBLEtBQUssRUFBRUQsSUFBSSxDQUFDMUMsS0FBdkI7QUFBOEIsVUFBQSxJQUFJLEVBQUUwQyxJQUFJLENBQUNLLElBQXpDO0FBQStDLFVBQUEsS0FBSyxFQUFFTCxJQUFJLENBQUNFO0FBQTNELFdBQ0doRCxPQUFPLENBQUM4QyxJQUFJLENBQUNPLElBQU4sa0NBQ0hQLElBQUksQ0FBQ2pDLEtBREY7QUFFTnlDLFVBQUFBLFdBQVcsOEJBQVFSLElBQUksQ0FBQzFDLEtBQWI7QUFGTCxXQURWLENBREYsQ0FERjtBQVVELE9BbEJBLENBREgsQ0FQRixDQURGO0FBK0JEOzs7O0VBL0dzQk4sYTs7QUFrSHpCLGVBQWVHLFVBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Zvcm1cIjtcbmltcG9ydCB7IENvbCwgbWVzc2FnZSwgUm93IH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB7IGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmNsYXNzIEVkaXRvckZvcm0gZXh0ZW5kcyBQdXJlQ29tcG9uZW50PGFueT4ge1xuICBmb3JtUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcbiAgc3RhdGUgPSB7XG4gICAgbG9hZGluZzogZmFsc2UsXG4gICAgbGFiZWw6IFwiXCIsXG4gICAgZWRpdG9yRmxhZzogdHJ1ZSxcbiAgICB2YWx1ZToge30gYXMgYW55LFxuICB9O1xuICB2YWxpZDogYW55ID0gW107XG4gIHNob3codmFsdWU/OiBhbnksIGZsYWcgPSB0cnVlKSB7XG4gICAgbGV0IGxhYmVsID0gXCLmlrDlop5cIjtcbiAgICBpZiAodmFsdWUgJiYgZmxhZykge1xuICAgICAgbGFiZWwgPSBcIue8lui+kVwiO1xuICAgIH0gZWxzZSBpZiAoIWZsYWcpIHtcbiAgICAgIGxhYmVsID0gXCLmn6XnnItcIjtcbiAgICB9XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICBlZGl0b3JGbGFnOiAhZmxhZyxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh2YWx1ZT8uYXR0cmlidXRlKTtcbiAgfVxuICBvblN1Ym1pdCgpIHtcbiAgICBjb25zdCB7XG4gICAgICBhdXRvU3VibWl0ID0gdHJ1ZSxcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcbiAgICAgIG9uU3VibWl0LFxuICAgICAgY2FsbEJhY2ssXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XG4gICAgbGV0IHZhbGlkID0gdGhpcy52YWxpZDtcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxuICAgICAgPy52YWxpZGF0ZUZpZWxkcyh2YWxpZClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQoZm9ybVZhbHVlKTtcbiAgICAgICAgaWYgKGF1dG9TdWJtaXQpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgICBsZXQgZGF0YSA9IHsgLi4uZm9ybVZhbHVlIH07XG4gICAgICAgICAgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcbiAgICAgICAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxuICAgICAgICAgICAgc3VibWl0VXJsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkYXRhOiB7IC4uLmZvcm1WYWx1ZSB9LFxuICAgICAgICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcbiAgICAgICAgICAgICAgc3VibWl0UGFyYW1zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XG4gICAgICAgICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7fSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBmb3JtUHJvcHMgPSBbXSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsLCBlZGl0b3JGbGFnIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IG1vZGFsUHJvcHMgPSB7XG4gICAgICB0aXRsZTogbGFiZWwsXG4gICAgICBva1RleHQ6IFwi56Gu5a6aXCIsXG4gICAgICBjYW5jZWxUZXh0OiBcIuWPlua2iFwiLFxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcbiAgICB9O1xuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xuICAgIHJldHVybiAoXG4gICAgICA8Rm9ybVxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cbiAgICAgICAgc2hvd01vZGVsPXtcIm1vZGFsXCJ9XG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxuICAgICAgICBsYWJlbENvbD17eyBmbGV4OiBcIjEwMHB4XCIgfX1cbiAgICAgICAgd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxuICAgICAgPlxuICAgICAgICA8Um93IGd1dHRlcj17MjR9PlxuICAgICAgICAgIHtmb3JtUHJvcHMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0geyAuLi5pdGVtLnByb3BzIH07XG4gICAgICAgICAgICBpZiAoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgbmV3VmFsaWQucHVzaChpdGVtLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybVByb3BzLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8Q29sIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn0ga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD17aXRlbS5sYWJlbH0gbmFtZT17aXRlbS5uYW1lfSBydWxlcz17aXRlbS5ydWxlc30+XG4gICAgICAgICAgICAgICAgICB7Z2V0Tm9kZShpdGVtLnR5cGUsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yRm9ybTtcbiJdfQ==
216
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL0Zvcm0udHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIkZvcm0iLCJnZXROb2RlIiwibWVzc2FnZSIsIkNvbCIsIlJvdyIsIkVkaXRvckZvcm0iLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJlZGl0b3JGbGFnIiwidmFsdWUiLCJmbGFnIiwic2V0U3RhdGUiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiYXR0cmlidXRlIiwicHJvcHMiLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwic3VibWl0UGFyYW1zIiwib25TdWJtaXQiLCJjYWxsQmFjayIsInN0YXRlIiwiZm9ybVZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImRhdGEiLCJpZCIsIkVycm9yIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImNhdGNoIiwiZXJyb3JJbmZvIiwiZm9ybVByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJiaW5kIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwid2lkdGgiLCJuZXdWYWxpZCIsImZsZXgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJydWxlcyIsImxlbmd0aCIsInB1c2giLCJuYW1lIiwic3BhbiIsInR5cGUiLCJwbGFjZWhvbGRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQXFDLE9BQXJDO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixZQUFqQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGVBQXBCO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixnQkFBaEI7QUFDQSxP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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9mb3JtXCI7XG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vbWVzc2FnZVwiO1xuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vZ3JpZC9Db2xcIjtcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2dyaWQvUm93XCI7XG5jbGFzcyBFZGl0b3JGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxhbnk+IHtcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XG4gIHN0YXRlID0ge1xuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGxhYmVsOiBcIlwiLFxuICAgIGVkaXRvckZsYWc6IHRydWUsXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcbiAgfTtcbiAgdmFsaWQ6IGFueSA9IFtdO1xuICBzaG93KHZhbHVlPzogYW55LCBmbGFnID0gdHJ1ZSkge1xuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XG4gICAgaWYgKHZhbHVlICYmIGZsYWcpIHtcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcbiAgICB9IGVsc2UgaWYgKCFmbGFnKSB7XG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XG4gICAgfVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgZWRpdG9yRmxhZzogIWZsYWcsXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWU/LmF0dHJpYnV0ZSk7XG4gIH1cbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3Qge1xuICAgICAgYXV0b1N1Ym1pdCA9IHRydWUsXG4gICAgICBzdWJtaXRVcmwgPSBcIlwiLFxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXG4gICAgICBvblN1Ym1pdCxcbiAgICAgIGNhbGxCYWNrLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcbiAgICAgID8udmFsaWRhdGVGaWVsZHModmFsaWQpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KGZvcm1WYWx1ZSk7XG4gICAgICAgIGlmIChhdXRvU3VibWl0KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XG4gICAgICAgICAgbGV0IGRhdGEgPSB7IC4uLmZvcm1WYWx1ZSB9O1xuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XG4gICAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc3VibWl0VXJsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcbiAgICAgICAgICAgIHN1Ym1pdFVybCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0YTogeyAuLi5mb3JtVmFsdWUgfSxcbiAgICAgICAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXG4gICAgICAgICAgICAgIHN1Ym1pdFBhcmFtcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xuICAgICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZm9ybVByb3BzID0gW10gfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCwgZWRpdG9yRmxhZyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBtb2RhbFByb3BzID0ge1xuICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgb2tUZXh0OiBcIuehruWumlwiLFxuICAgICAgY2FuY2VsVGV4dDogXCLlj5bmtohcIixcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxuICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXG4gICAgfTtcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcbiAgICByZXR1cm4gKFxuICAgICAgPEZvcm1cbiAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XG4gICAgICAgIHNob3dNb2RlbD17XCJtb2RhbFwifVxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cbiAgICAgICAgbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cbiAgICAgID5cbiAgICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cbiAgICAgICAgICB7Zm9ybVByb3BzLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHsgLi4uaXRlbS5wcm9wcyB9O1xuICAgICAgICAgICAgaWYgKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1Qcm9wcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvckZvcm07XG4iXX0=
@@ -12,6 +12,8 @@ interface TreeProps {
12
12
  showSearch?: boolean;
13
13
  searchKey?: string;
14
14
  searchField?: string;
15
+ titleAlias?: string;
16
+ nodePorps?: object;
15
17
  }
16
18
  interface NSCBaseBageProps {
17
19
  showSearch?: boolean;
@@ -25,6 +27,8 @@ interface NSCBaseBageProps {
25
27
  showToolButton?: boolean;
26
28
  showAddButton?: boolean;
27
29
  editorForm?: boolean;
30
+ showDeleteButton?: boolean;
31
+ deleteUrl?: string;
28
32
  }
29
33
  declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
30
34
  tableRef: React.RefObject<any>;
@@ -34,6 +38,7 @@ declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
34
38
  constructor(props: any);
35
39
  onSelect: (checkedTreeKeys: any) => void;
36
40
  showForm(value?: any, flag?: boolean): void;
41
+ onDelete(): void;
37
42
  tableLoad(params: any): void;
38
43
  onSearch(): void;
39
44
  tableReload(): void;
@@ -1,14 +1,8 @@
1
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
2
 
3
- import "antd/es/popover/style/css";
4
- import _Popover from "antd/es/popover";
5
3
  var _excluded = ["children", "pageType", "onClick"],
6
4
  _excluded2 = ["children", "pageType", "onClick", "Icon"];
7
5
 
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
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); }
13
7
 
14
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,6 +21,10 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
27
21
 
28
22
  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; }
29
23
 
24
+ 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; }
25
+
26
+ 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; }
27
+
30
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
29
 
32
30
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -54,12 +52,16 @@ import Table from "../../table";
54
52
  import Tree from "../../tree";
55
53
  import Form from "../../form";
56
54
  import Button from "../../button";
55
+ import Modal from "../../modal";
56
+ import Popover from "../../popover";
57
+ import message from "../../message";
57
58
  import Icon from "../../common/IconFont";
58
59
  import { iconType } from "../../constants";
59
60
  import EditorForm from "./Form";
60
61
  import cls from "classnames";
61
62
  import styles from "./index.less";
62
- import { DownOutlined } from "@ant-design/icons";
63
+ import { DownOutlined, UpOutlined } from "@ant-design/icons";
64
+ import request from "nsc-request";
63
65
 
64
66
  var BasePage = /*#__PURE__*/function (_PureComponent) {
65
67
  _inherits(BasePage, _PureComponent);
@@ -99,7 +101,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
99
101
  _this.state = {
100
102
  type: "add",
101
103
  selectedRowKeys: [],
102
- treeSelectedKey: ""
104
+ treeSelectedKey: "",
105
+ expand: false
103
106
  };
104
107
  return _this;
105
108
  }
@@ -112,6 +115,48 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
112
115
 
113
116
  var flag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
114
117
  (_this$editorRef$curre = this.editorRef.current) === null || _this$editorRef$curre === void 0 ? void 0 : _this$editorRef$curre.show(value, flag);
118
+ } //批量删除
119
+
120
+ }, {
121
+ key: "onDelete",
122
+ value: function onDelete() {
123
+ var deleteUrl = this.props.deleteUrl;
124
+ var selectedRowKeys = this.state.selectedRowKeys;
125
+
126
+ if (selectedRowKeys.length == 0) {
127
+ message.warning("请选择要删除的数据!");
128
+ return;
129
+ }
130
+
131
+ if (!deleteUrl) {
132
+ throw new Error("url不能为空!");
133
+ }
134
+
135
+ Modal.confirm({
136
+ title: "是否确认删除所选项?",
137
+ // icon: <Icon type={'icontishi-3'} />,
138
+ okText: "确认",
139
+ cancelText: "取消",
140
+ onOk: function onOk() {
141
+ var requestParam = {
142
+ method: "post",
143
+ data: {
144
+ ids: selectedRowKeys
145
+ }
146
+ };
147
+ request(deleteUrl, _objectSpread({}, requestParam)).then(function (res) {
148
+ var code = res.code;
149
+
150
+ if (code === 200) {
151
+ message.success("删除成功!");
152
+ } else {
153
+ message.error("删除失败!");
154
+ }
155
+ }).catch(function (error) {
156
+ console.log("error", error);
157
+ });
158
+ }
159
+ });
115
160
  }
116
161
  }, {
117
162
  key: "tableLoad",
@@ -232,7 +277,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
232
277
  if (!actionButton) num = 3;
233
278
 
234
279
  if (columnButtons.length > num) {
235
- return /*#__PURE__*/React.createElement(_Popover, {
280
+ return /*#__PURE__*/React.createElement(Popover, {
236
281
  placement: "bottom",
237
282
  title: null,
238
283
  content: content,
@@ -325,6 +370,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
325
370
  showToolButton = _this$props$showToolB === void 0 ? true : _this$props$showToolB,
326
371
  _this$props$showAddBu = _this$props.showAddButton,
327
372
  showAddButton = _this$props$showAddBu === void 0 ? true : _this$props$showAddBu,
373
+ _this$props$showDelet = _this$props.showDeleteButton,
374
+ showDeleteButton = _this$props$showDelet === void 0 ? true : _this$props$showDelet,
328
375
  _this$props$editorFor = _this$props.editorForm,
329
376
  editorForm = _this$props$editorFor === void 0 ? true : _this$props$editorFor;
330
377
  var _tableProps$store = tableProps.store,
@@ -340,7 +387,9 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
340
387
  var _treeProps$store = treeProps.store,
341
388
  treeStore = _treeProps$store === void 0 ? {} : _treeProps$store,
342
389
  _treeProps$showSearch = treeProps.showSearch,
343
- treeSearch = _treeProps$showSearch === void 0 ? true : _treeProps$showSearch;
390
+ treeSearch = _treeProps$showSearch === void 0 ? true : _treeProps$showSearch,
391
+ _treeProps$titleAlias = treeProps.titleAlias,
392
+ titleAlias = _treeProps$titleAlias === void 0 ? "title" : _treeProps$titleAlias;
344
393
  var tableParams = {
345
394
  filterColumn: filterColumn,
346
395
  store: store
@@ -424,7 +473,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
424
473
  render: function render(text, record) {
425
474
  return /*#__PURE__*/React.createElement("div", {
426
475
  className: styles["action"]
427
- }, actionButton && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
476
+ }, actionButton && editorForm == true && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
428
477
  className: styles["editor"],
429
478
  onClick: _this2.showForm.bind(_this2, record, false)
430
479
  }, "\u67E5\u770B"), /*#__PURE__*/React.createElement("div", {
@@ -446,7 +495,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
446
495
  checkable: false,
447
496
  searchable: treeSearch,
448
497
  onSelect: this.treeSelect.bind(this),
449
- selectedKeys: [this.state.treeSelectedKey]
498
+ selectedKeys: [this.state.treeSelectedKey],
499
+ titleAlias: titleAlias
450
500
  })), /*#__PURE__*/React.createElement("div", {
451
501
  className: styles["right"]
452
502
  }, showSearch && /*#__PURE__*/React.createElement("div", {
@@ -457,6 +507,10 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
457
507
  wrapperCol: {},
458
508
  layout: "inline"
459
509
  }, searchForms.map(function (item, index) {
510
+ if (index > 2 && !_this2.state.expand) {
511
+ return;
512
+ }
513
+
460
514
  if (!item.type) {
461
515
  return /*#__PURE__*/React.createElement(Form.Input, {
462
516
  label: item.label,
@@ -494,18 +548,34 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
494
548
  icon: /*#__PURE__*/React.createElement(Icon, {
495
549
  type: iconType.refresh
496
550
  })
497
- }, "\u91CD\u7F6E"))), showToolButton && /*#__PURE__*/React.createElement("div", {
551
+ }, "\u91CD\u7F6E"), searchForms.length > 3 && /*#__PURE__*/React.createElement("a", {
552
+ className: styles.trigger,
553
+ onClick: function onClick() {
554
+ var expand = _this2.state.expand;
555
+
556
+ _this2.setState({
557
+ expand: !expand
558
+ });
559
+ }
560
+ }, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null)))), showToolButton && /*#__PURE__*/React.createElement("div", {
498
561
  className: styles["buttons"],
499
562
  style: {
500
563
  marginLeft: 0
501
564
  }
502
- }, showAddButton && /*#__PURE__*/React.createElement(Button, {
565
+ }, showAddButton && editorForm == true && /*#__PURE__*/React.createElement(Button, {
503
566
  type: "primary",
504
567
  onClick: this.showForm.bind(this),
505
568
  icon: /*#__PURE__*/React.createElement(Icon, {
506
569
  type: iconType.add
507
570
  })
508
- }, "\u6DFB\u52A0"), Buttons.map(function (item, index) {
571
+ }, "\u6DFB\u52A0"), showDeleteButton && editorForm == true && /*#__PURE__*/React.createElement(Button // type={"primary"}
572
+ , {
573
+ onClick: this.onDelete.bind(this),
574
+ icon: /*#__PURE__*/React.createElement(Icon, {
575
+ type: iconType.delete3
576
+ }),
577
+ danger: true
578
+ }, "\u5220\u9664"), Buttons.map(function (item, index) {
509
579
  return /*#__PURE__*/React.createElement("div", {
510
580
  key: index
511
581
  }, item);
@@ -530,4 +600,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
530
600
  }(PureComponent);
531
601
 
532
602
  export default BasePage;
533
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJGb3JtIiwiQnV0dG9uIiwiSWNvbiIsImljb25UeXBlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsIkRvd25PdXRsaW5lZCIsIkJhc2VQYWdlIiwicHJvcHMiLCJjcmVhdGVSZWYiLCJjaGVja2VkVHJlZUtleXMiLCJzdGF0ZSIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJ2YWx1ZSIsImRlcHRJZCIsInRhYmxlTG9hZCIsInR5cGUiLCJzZWxlY3RlZFJvd0tleXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJmbGFnIiwiZWRpdG9yUmVmIiwiY3VycmVudCIsInNob3ciLCJwYXJhbXMiLCJ0YWJsZVJlZiIsInN0b3JlIiwibG9hZCIsImZyb21WYWx1ZSIsInNlYXJjaFJlZiIsImdldEZpZWxkc1ZhbHVlIiwicmVsb2FkIiwicmVjb3JkIiwic2VsZWN0ZWQiLCJuZXdTZWxlY3RlZFJvd0tleXMiLCJpZCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInNwbGljZSIsInNldFN0YXRlIiwic2VsZWN0ZWRSb3dzIiwiY2hhbmdlUm93cyIsIm5ld2lkcyIsImxlbmd0aCIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwiY29sdW1uQnV0dG9ucyIsImFjdGlvbkJ1dHRvbiIsImNvbnRlbnQiLCJjaGlsZHJlbiIsInBhZ2VUeXBlIiwib25DbGljayIsIm51bSIsInNlbGVjdGVkS2V5cyIsInNlbGVjdGVkTm9kZXMiLCJrZXl3b3JkIiwidHJlZVByb3BzIiwic2VhcmNoS2V5Iiwic2VhcmNoRmllbGQiLCJpc0xlYWYiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwiY29sdW1ucyIsInNob3dTZWFyY2giLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwidGFibGVQcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJzaG93QWRkQnV0dG9uIiwiZWRpdG9yRm9ybSIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGFibGVQYXJhbXMiLCJyb3dTZWxlY3Rpb24iLCJvblNlbGVjdCIsInJvd1NlbGVjdGlvbk9uU2VsZWN0IiwiYmluZCIsIm9uU2VsZWN0QWxsIiwicm93U2VsZWN0aW9uT25TZWxlY3RBbGwiLCJjb2x1bW5XaWR0aCIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsInRlbXAiLCJzZWFyY2giLCJmaWVsZCIsImRhdGFJbmRleCIsImxhYmVsIiwidGl0bGUiLCJlZGl0b3IiLCJydWxlcyIsInNwYW4iLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsIkJ1dHRvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGlnbiIsIndpZHRoIiwicmVuZGVyIiwidGV4dCIsInNob3dGb3JtIiwicmVuZGVyQ2xvdW1uQnV0dG9uIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJtYXJnaW5Ub3AiLCJvblNlYXJjaCIsInJlc2V0RmllbGRzIiwicmVmcmVzaCIsIm1hcmdpbkxlZnQiLCJhZGQiLCJ0YWJsZVJlbG9hZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFFQSxPQUFPQyxLQUFQLE1BQWtCLGFBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixZQUFqQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsWUFBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQix1QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVB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d0JBRkosRUFVR2hCLE9BQU8sQ0FBQ2pFLEdBQVIsQ0FBWSxVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDdEMsNEJBQU87QUFBSyxVQUFBLEdBQUcsRUFBRUE7QUFBVixXQUFrQkQsSUFBbEIsQ0FBUDtBQUNELE9BRkEsQ0FWSCxDQXBESixlQW1FRTtBQUFLLFFBQUEsU0FBUyxFQUFFakMsTUFBTSxDQUFDLE9BQUQ7QUFBdEIsc0JBQ0Usb0JBQUMsS0FBRDtBQUFPLFFBQUEsR0FBRyxFQUFFLEtBQUtxQixRQUFqQjtBQUEyQixRQUFBLE9BQU8sRUFBRThEO0FBQXBDLFNBQXFEUixXQUFyRCxFQURGLENBbkVGLENBYkYsRUFvRkdOLFVBQVUsaUJBQ1Qsb0JBQUMsVUFBRDtBQUNFLFFBQUEsR0FBRyxFQUFFLEtBQUtwRCxTQURaO0FBRUUsUUFBQSxRQUFRLEVBQUUsS0FBS3VGLFFBQUwsQ0FBY3pCLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWjtBQUdFLFFBQUEsUUFBUSxFQUFFLEtBQUttQyxXQUFMLENBQWlCbkMsSUFBakIsQ0FBc0IsSUFBdEIsQ0FIWjtBQUlFLFFBQUEsU0FBUyxFQUFFTSxXQUpiO0FBS0UsUUFBQSxVQUFVLEVBQUV2QixVQUxkO0FBTUUsUUFBQSxTQUFTLEVBQUVDLFNBTmI7QUFPRSxRQUFBLFlBQVksRUFBRUc7QUFQaEIsUUFyRkosQ0FERjtBQWtHRDs7OztFQTVYb0IzRSxhOztBQThYdkIsZUFBZVcsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFN3aXRjaCwgUG9wY29uZmlybSwgbWVzc2FnZSwgTW9kYWwsIFJvdywgQ29sLCBQb3BvdmVyIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9idXR0b25cIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IERvd25PdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBhY3Rpb25CdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpum7mOiupOaYvuekuuaWsOWinu+8jOe8lui+kem7mOiupOaMiemSrlxyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuui/h+a7pOaMiemSrlxyXG4gIHNob3dSb3dTZWxlY3Rpb24/OiBib29sZWFuOyAvL+aYr+WQpuihqOagvOWLvumAieWIl1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjtcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7XHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIGF1dG9TdWJtaXQ/OiBib29sZWFuO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBzaG93QWRkQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmt7vliqDmjInpkq5cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og71cclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgfTtcclxuICB9XHJcbiAgb25TZWxlY3QgPSAoY2hlY2tlZFRyZWVLZXlzOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQsIGRlcHRJZDogY2hlY2tlZFRyZWVLZXlzWzBdIH07XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZmxhZyA9IHRydWUpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGZsYWcpO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgdGhpcy5sb2FkKGZyb21WYWx1ZSk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQoKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCgpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWxlY3RlZFJvd0tleXM7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdChyZWNvcmQ6IGFueSwgc2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLnNlbGVjdGVkUm93S2V5c107XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLm5ld1NlbGVjdGVkUm93S2V5cywgcmVjb3JkLmlkXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtID09PSByZWNvcmQuaWQpIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93S2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBuZXdTZWxlY3RlZFJvd0tleXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcm93U2VsZWN0aW9uT25TZWxlY3RBbGwoc2VsZWN0ZWQ6IGFueSwgc2VsZWN0ZWRSb3dzOiBhbnksIGNoYW5nZVJvd3M6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbmV3aWRzOiBhbnkgPSBbXTtcclxuICAgIGlmIChjaGFuZ2VSb3dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGNoYW5nZUlkcyA9IGNoYW5nZVJvd3MubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzLCAuLi5jaGFuZ2VJZHNdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2lkcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFsuLi5uZXdpZHNdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnksIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoc3R5bGVzW1wiZWRpdG9yXCJdLCBzdHlsZXNbXCJjb250ZW50LWl0ZW1cIl0pfVxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIGxldCBudW0gPSAxO1xyXG4gICAgaWYgKCFhY3Rpb25CdXR0b24pIG51bSA9IDM7XHJcbiAgICBpZiAoY29sdW1uQnV0dG9ucy5sZW5ndGggPiBudW0pIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0b3JcIl19PlxyXG4gICAgICAgICAgICDmm7TlpJpcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXNbXCJpY29uXCJdfT5cclxuICAgICAgICAgICAgICA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIEljb24sIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7SWNvbn0ge2NoaWxkcmVufVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9OiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHsgc2VhcmNoS2V5ID0gXCJrZXlcIiwgc2VhcmNoRmllbGQgPSBcIlwiIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAgLy8gbGV0IG1hcERhdGEgPSB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUuZ2V0RmxhdHRlbkRhdGEoKTtcclxuICAgICAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgc2VhcmNoRmllbGQgJiYgdGhpcy5sb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIGF1dG9TdWJtaXQgPSB0cnVlLFxyXG4gICAgICBzdWJtaXRVcmwgPSBcIlwiLFxyXG4gICAgICB0YWJsZVByb3BzID0ge30sXHJcbiAgICAgIHRyZWVQcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBzaG93QWRkQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7IHN0b3JlOiB0cmVlU3RvcmUgPSB7fSwgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUgfSA9IHRyZWVQcm9wcztcclxuXHJcbiAgICBsZXQgdGFibGVQYXJhbXMgPSB7IGZpbHRlckNvbHVtbiwgc3RvcmUgfSBhcyBhbnk7XHJcbiAgICBpZiAoc2hvd1Jvd1NlbGVjdGlvbikge1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICByb3dTZWxlY3Rpb246IHtcclxuICAgICAgICAgIHNlbGVjdGVkUm93S2V5czogc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgb25TZWxlY3Q6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgIG9uU2VsZWN0QWxsOiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aDogNDAsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2gpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IEJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzLnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJhY3Rpb25cIl19PlxyXG4gICAgICAgICAgICAgIHthY3Rpb25CdXR0b24gJiYgKFxyXG4gICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIGZhbHNlKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIHRydWUpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkLCBhY3Rpb25CdXR0b24pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInBhZ2VcIl19IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxyXG4gICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibGVmdFwiXX0+XHJcbiAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wicmlnaHRcIl19PlxyXG4gICAgICAgICAge3Nob3dTZWFyY2ggJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiaGVhZGVyXCJdfT5cclxuICAgICAgICAgICAgICA8Rm9ybVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgIHdyYXBwZXJDb2w9e3t9fVxyXG4gICAgICAgICAgICAgICAgbGF5b3V0PVwiaW5saW5lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKCFpdGVtLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm0uSW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9wcyA9IHsgLi4uaXRlbS5wcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybS5TZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fT5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuc2VhcmNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5yZWZyZXNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg6YeN572uXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX0+XHJcbiAgICAgICAgICAgICAge3Nob3dBZGRCdXR0b24gJiYgKFxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5zaG93Rm9ybS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5hZGR9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDmt7vliqBcclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAge0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInRhYmxlXCJdfT5cclxuICAgICAgICAgICAgPFRhYmxlIHJlZj17dGhpcy50YWJsZVJlZn0gY29sdW1ucz17dGFibGVDb2x1bW59IHsuLi50YWJsZVBhcmFtc30gLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgIHJlZj17dGhpcy5lZGl0b3JSZWZ9XHJcbiAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgIGF1dG9TdWJtaXQ9e2F1dG9TdWJtaXR9XHJcbiAgICAgICAgICAgIHN1Ym1pdFVybD17c3VibWl0VXJsfVxyXG4gICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl19
603
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJGb3JtIiwiQnV0dG9uIiwiTW9kYWwiLCJQb3BvdmVyIiwibWVzc2FnZSIsIkljb24iLCJpY29uVHlwZSIsIkVkaXRvckZvcm0iLCJjbHMiLCJzdHlsZXMiLCJEb3duT3V0bGluZWQiLCJVcE91dGxpbmVkIiwicmVxdWVzdCIsIkJhc2VQYWdlIiwicHJvcHMiLCJjcmVhdGVSZWYiLCJjaGVja2VkVHJlZUtleXMiLCJzdGF0ZSIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJ2YWx1ZSIsImRlcHRJZCIsInRhYmxlTG9hZCIsInR5cGUiLCJzZWxlY3RlZFJvd0tleXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmbGFnIiwiZWRpdG9yUmVmIiwiY3VycmVudCIsInNob3ciLCJkZWxldGVVcmwiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwidGl0bGUiLCJva1RleHQiLCJjYW5jZWxUZXh0Iiwib25PayIsInJlcXVlc3RQYXJhbSIsIm1ldGhvZCIsImRhdGEiLCJpZHMiLCJ0aGVuIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInBhcmFtcyIsInRhYmxlUmVmIiwic3RvcmUiLCJsb2FkIiwiZnJvbVZhbHVlIiwic2VhcmNoUmVmIiwiZ2V0RmllbGRzVmFsdWUiLCJyZWxvYWQiLCJyZWNvcmQiLCJzZWxlY3RlZCIsIm5ld1NlbGVjdGVkUm93S2V5cyIsImlkIiwibWFwIiwiaXRlbSIsImluZGV4Iiwic3BsaWNlIiwic2V0U3RhdGUiLCJzZWxlY3RlZFJvd3MiLCJjaGFuZ2VSb3dzIiwibmV3aWRzIiwiY2hhbmdlSWRzIiwiaW5kZXhPZiIsInB1c2giLCJjb2x1bW5CdXR0b25zIiwiYWN0aW9uQnV0dG9uIiwiY29udGVudCIsImNoaWxkcmVuIiwicGFnZVR5cGUiLCJvbkNsaWNrIiwibnVtIiwic2VsZWN0ZWRLZXlzIiwic2VsZWN0ZWROb2RlcyIsImtleXdvcmQiLCJ0cmVlUHJvcHMiLCJzZWFyY2hLZXkiLCJzZWFyY2hGaWVsZCIsImlzTGVhZiIsImRhdGFyZWYiLCJhdHRyaWJ1dGUiLCJjb2x1bW5zIiwic2hvd1NlYXJjaCIsImF1dG9TdWJtaXQiLCJzdWJtaXRVcmwiLCJ0YWJsZVByb3BzIiwic2hvd0xlZnQiLCJzdWJtaXRQYXJhbXMiLCJzaG93VG9vbEJ1dHRvbiIsInNob3dBZGRCdXR0b24iLCJzaG93RGVsZXRlQnV0dG9uIiwiZWRpdG9yRm9ybSIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGl0bGVBbGlhcyIsInRhYmxlUGFyYW1zIiwicm93U2VsZWN0aW9uIiwib25TZWxlY3QiLCJyb3dTZWxlY3Rpb25PblNlbGVjdCIsImJpbmQiLCJvblNlbGVjdEFsbCIsInJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsIiwiY29sdW1uV2lkdGgiLCJ0YWJsZUNvbHVtbiIsInNlYXJjaEZvcm1zIiwiZWRpdG9yRm9ybXMiLCJ0ZW1wIiwic2VhcmNoIiwiZmllbGQiLCJkYXRhSW5kZXgiLCJsYWJlbCIsImVkaXRvciIsInJ1bGVzIiwic3BhbiIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwiQnV0dG9ucyIsIkFycmF5IiwiaXNBcnJheSIsImFsaWduIiwid2lkdGgiLCJyZW5kZXIiLCJ0ZXh0Iiwic2hvd0Zvcm0iLCJyZW5kZXJDbG91bW5CdXR0b24iLCJkaXNwbGF5IiwidHJlZVNlbGVjdCIsIm1hcmdpblRvcCIsIm9uU2VhcmNoIiwicmVzZXRGaWVsZHMiLCJyZWZyZXNoIiwidHJpZ2dlciIsIm1hcmdpbkxlZnQiLCJhZGQiLCJvbkRlbGV0ZSIsImRlbGV0ZTMiLCJ0YWJsZVJlbG9h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LEVBQUUsS0FBS3FDLFdBQUwsQ0FBaUJyQyxJQUFqQixDQUFzQixJQUF0QixDQUhaO0FBSUUsUUFBQSxTQUFTLEVBQUVNLFdBSmI7QUFLRSxRQUFBLFVBQVUsRUFBRXpCLFVBTGQ7QUFNRSxRQUFBLFNBQVMsRUFBRUMsU0FOYjtBQU9FLFFBQUEsWUFBWSxFQUFFRztBQVBoQixRQWpISixDQURGO0FBOEhEOzs7O0VBbGNvQnJHLGE7O0FBb2N2QixlQUFlZ0IsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi4vLi4vdGFibGVcIjtcclxuaW1wb3J0IFRyZWUgZnJvbSBcIi4uLy4uL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYnV0dG9uXCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL3BvcG92ZXJcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IERvd25PdXRsaW5lZCwgVXBPdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgYWN0aW9uQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbpu5jorqTmmL7npLrmlrDlop7vvIznvJbovpHpu5jorqTmjInpkq5cclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZmlsdGVyQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrov4fmu6TmjInpkq5cclxuICBzaG93Um93U2VsZWN0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbooajmoLzli77pgInliJdcclxufVxyXG5pbnRlcmZhY2UgVHJlZVByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pCc57Si5qGGXHJcbiAgc2VhcmNoS2V5Pzogc3RyaW5nOyAvL+aQnOe0onZhbHVl5a+55bqU55qEa2V5XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7IC8v5p+l6K+i5a+55bqU55qEa2V5XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZzsgLy/moJF0aXRsZeWvueW6lOeahGtleSzpu5jorqR0aXRsZVxyXG4gIG5vZGVQb3Jwcz86IG9iamVjdDtcclxufVxyXG5pbnRlcmZhY2UgTlNDQmFzZUJhZ2VQcm9wcyB7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65aS06YOo5pCc57Si5qCPXHJcbiAgdGFibGVQcm9wcz86IFRhYmxlUHJvcHM7IC8v6KGo5qC85Y+C5pWwXHJcbiAgdHJlZVByb3BzPzogVHJlZVByb3BzOyAvL+W3puS+p+agkeWPguaVsFxyXG4gIHN1Ym1pdFBhcmFtcz86IE9iamVjdDtcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgYXV0b1N1Ym1pdD86IGJvb2xlYW47XHJcbiAgY29sdW1uczogQXJyYXk8T2JqZWN0PjtcclxuICBzaG93TGVmdD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65bem5L6n55uu5b2V5qCRXHJcbiAgc2hvd1Rvb2xCdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaMiemSruagj1xyXG4gIHNob3dBZGRCdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuua3u+WKoOaMiemSrlxyXG4gIGVkaXRvckZvcm0/OiBib29sZWFuOyAvL+aYr+WQpumcgOimgeihqOWNleWKn+iDvSAsIOS4umZhbHNlIOe8lui+ke+8jOafpeeci++8jOaWsOWinuWKn+iDveWdh+S4jeWPr+eUqFxyXG4gIHNob3dEZWxldGVCdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIoOmZpOaMiemSrlxyXG4gIGRlbGV0ZVVybD86IHN0cmluZzsgLy/liKDpmaR1cmxcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgb25TZWxlY3QgPSAoY2hlY2tlZFRyZWVLZXlzOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQsIGRlcHRJZDogY2hlY2tlZFRyZWVLZXlzWzBdIH07XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZmxhZyA9IHRydWUpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGZsYWcpO1xyXG4gIH1cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKCkge1xyXG4gICAgY29uc3QgeyBkZWxldGVVcmwgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWRlbGV0ZVVybCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICB9XHJcbiAgICBNb2RhbC5jb25maXJtKHtcclxuICAgICAgdGl0bGU6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGljb246IDxJY29uIHR5cGU9eydpY29udGlzaGktMyd9IC8+LFxyXG4gICAgICBva1RleHQ6IFwi56Gu6K6kXCIsXHJcbiAgICAgIGNhbmNlbFRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBjb25zdCByZXF1ZXN0UGFyYW0gPSB7IG1ldGhvZDogXCJwb3N0XCIsIGRhdGE6IHsgaWRzOiBzZWxlY3RlZFJvd0tleXMgfSB9O1xyXG4gICAgICAgIHJlcXVlc3QoZGVsZXRlVXJsLCB7XHJcbiAgICAgICAgICAuLi5yZXF1ZXN0UGFyYW0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn++8gVwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5Yig6Zmk5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdGFibGVMb2FkKHBhcmFtczogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoe1xyXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+afpeivolxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHRoaXMubG9hZChmcm9tVmFsdWUpO1xyXG4gIH1cclxuICAvL+ihqOagvOmHjeaWsOWKoOi9vVxyXG4gIHRhYmxlUmVsb2FkKCkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5yZWxvYWQoKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dLZXlzO1xyXG4gIH1cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgcmV0dXJuIGZyb21WYWx1ZTtcclxuICB9XHJcbiAgcm93U2VsZWN0aW9uT25TZWxlY3QocmVjb3JkOiBhbnksIHNlbGVjdGVkOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5uZXdTZWxlY3RlZFJvd0tleXMsIHJlY29yZC5pZF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbSA9PT0gcmVjb3JkLmlkKSB7XHJcbiAgICAgICAgICBuZXdTZWxlY3RlZFJvd0tleXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogbmV3U2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsKHNlbGVjdGVkOiBhbnksIHNlbGVjdGVkUm93czogYW55LCBjaGFuZ2VSb3dzOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG5ld2lkczogYW55ID0gW107XHJcbiAgICBpZiAoY2hhbmdlUm93cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBjaGFuZ2VJZHMgPSBjaGFuZ2VSb3dzLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmlkKTtcclxuICAgICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgICAgbmV3aWRzID0gWy4uLnNlbGVjdGVkUm93S2V5cywgLi4uY2hhbmdlSWRzXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZWxlY3RlZFJvd0tleXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjaGFuZ2VJZHMuaW5kZXhPZihpdGVtKSA9PSAtMSkge1xyXG4gICAgICAgICAgICBuZXdpZHMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3aWRzID0gWy4uLnNlbGVjdGVkUm93S2V5c107XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbLi4ubmV3aWRzXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBsb2FkKHBhcmFtczogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIHJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zOiBhbnksIHJlY29yZDogYW55LCBhY3Rpb25CdXR0b24/OiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBjb250ZW50ID0gY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcImVkaXRvclwiXSwgc3R5bGVzW1wiY29udGVudC1pdGVtXCJdKX1cclxuICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICBsZXQgbnVtID0gMTtcclxuICAgIGlmICghYWN0aW9uQnV0dG9uKSBudW0gPSAzO1xyXG4gICAgaWYgKGNvbHVtbkJ1dHRvbnMubGVuZ3RoID4gbnVtKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxyXG4gICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AnXX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfT5cclxuICAgICAgICAgICAg5pu05aSaXHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzW1wiaWNvblwiXX0+XHJcbiAgICAgICAgICAgICAgPERvd25PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBJY29uLCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0b3JcIl19XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge0ljb259IHtjaGlsZHJlbn1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL+agkeeCueWHu+S6i+S7tlxyXG4gIHRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzOiBhbnksIHsgc2VsZWN0ZWQsIHNlbGVjdGVkTm9kZXMgfTogYW55KSB7XHJcbiAgICBsZXQga2V5d29yZCA9IFwiXCI7XHJcbiAgICBjb25zdCB7IHNlYXJjaEtleSA9IFwia2V5XCIsIHNlYXJjaEZpZWxkID0gXCJcIiB9ID0gdGhpcy5wcm9wcy50cmVlUHJvcHM7XHJcbiAgICBjb25zdCB7IHRyZWVTZWxlY3RlZEtleSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBpZiAoc2VsZWN0ZWROb2Rlc1swXS5pc0xlYWYgfHwgIXNlbGVjdGVkTm9kZXNbMF0uY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRLZXlzWzBdICE9PSB0cmVlU2VsZWN0ZWRLZXkpIHtcclxuICAgICAgICAgIC8vIGxldCBtYXBEYXRhID0gdGhpcy50cmVlUmVmLmN1cnJlbnQ/LnN0b3JlLmdldEZsYXR0ZW5EYXRhKCk7XHJcbiAgICAgICAgICBrZXl3b3JkID0gc2VsZWN0ZWROb2Rlc1swXS5kYXRhcmVmLmF0dHJpYnV0ZVtzZWFyY2hLZXldO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IGtleXdvcmQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMubG9hZCh7IC4uLmZyb21WYWx1ZSwgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9KTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNvbHVtbnMgPSBbXSxcclxuICAgICAgc2hvd1NlYXJjaCA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBhdXRvU3VibWl0ID0gdHJ1ZSxcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgc2hvd0xlZnQgPSBmYWxzZSxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIHNob3dUb29sQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgc2hvd0FkZEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIHNob3dEZWxldGVCdXR0b24gPSB0cnVlLFxyXG4gICAgICBlZGl0b3JGb3JtID0gdHJ1ZSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBmaWx0ZXJDb2x1bW4gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25CdXR0b24gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25Db2x1bW4gPSB0cnVlLFxyXG4gICAgICBzaG93Um93U2VsZWN0aW9uID0gdHJ1ZSxcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlIH0gYXMgYW55O1xyXG5cclxuICAgIGlmIChzaG93Um93U2VsZWN0aW9uKSB7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHJvd1NlbGVjdGlvbjoge1xyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3RlZFJvd0tleXMsXHJcbiAgICAgICAgICBvblNlbGVjdDogdGhpcy5yb3dTZWxlY3Rpb25PblNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgb25TZWxlY3RBbGw6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3RBbGwuYmluZCh0aGlzKSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoOiA0MCxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGFibGVDb2x1bW46IGFueVtdID0gW107XHJcbiAgICBjb25zdCBzZWFyY2hGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBlZGl0b3JGb3JtczogYW55ID0gW107XHJcbiAgICBjb2x1bW5zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICh0ZW1wLnNlYXJjaCkge1xyXG4gICAgICAgIHNlYXJjaEZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnJ1bGVzO1xyXG4gICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICB0ZW1wLmZpbHRlclByb3BzID0ge1xyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC50eXBlO1xyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BzLnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnByb3BzLnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHMucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpb25Db2x1bW4gJiZcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IFwi5pON5L2cXCIsXHJcbiAgICAgICAgZGF0YUluZGV4OiBcImFjdGlvblwiLFxyXG4gICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgICAgcmVuZGVyOiAodGV4dDogYW55LCByZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImFjdGlvblwiXX0+XHJcbiAgICAgICAgICAgICAge2FjdGlvbkJ1dHRvbiAmJiBlZGl0b3JGb3JtID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIGZhbHNlKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIHRydWUpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkLCBhY3Rpb25CdXR0b24pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInBhZ2VcIl19IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxyXG4gICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibGVmdFwiXX0+XHJcbiAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJyaWdodFwiXX0+XHJcbiAgICAgICAgICB7c2hvd1NlYXJjaCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJoZWFkZXJcIl19PlxyXG4gICAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgICAgbGFiZWxDb2w9e3t9fVxyXG4gICAgICAgICAgICAgICAgd3JhcHBlckNvbD17e319XHJcbiAgICAgICAgICAgICAgICBsYXlvdXQ9XCJpbmxpbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAyICYmICF0aGlzLnN0YXRlLmV4cGFuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybS5JbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3BzID0geyAuLi5pdGVtLnByb3BzIH07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtLlNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiYnV0dG9uc1wiXX0gc3R5bGU9e3sgbWFyZ2luVG9wOiAwIH19PlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5zZWFyY2h9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLnJlZnJlc2h9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRyaWdnZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBleHBhbmQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kOiAhZXhwYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX0+XHJcbiAgICAgICAgICAgICAge3Nob3dBZGRCdXR0b24gJiYgZWRpdG9yRm9ybSA9PSB0cnVlICYmIChcclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuYWRkfSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5re75YqgXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIHtzaG93RGVsZXRlQnV0dG9uICYmIGVkaXRvckZvcm0gPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmRlbGV0ZTN9IC8+fVxyXG4gICAgICAgICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIHtCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ0YWJsZVwiXX0+XHJcbiAgICAgICAgICAgIDxUYWJsZSByZWY9e3RoaXMudGFibGVSZWZ9IGNvbHVtbnM9e3RhYmxlQ29sdW1ufSB7Li4udGFibGVQYXJhbXN9IC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICA8RWRpdG9yRm9ybVxyXG4gICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5zaG93Rm9ybS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBjYWxsQmFjaz17dGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBmb3JtUHJvcHM9e2VkaXRvckZvcm1zfVxyXG4gICAgICAgICAgICBhdXRvU3VibWl0PXthdXRvU3VibWl0fVxyXG4gICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgQmFzZVBhZ2U7XHJcbiJdfQ==
@@ -57,8 +57,8 @@
57
57
  cursor: pointer;
58
58
  color: #4286ed;
59
59
  .icon {
60
- font-size: 10px;
61
- margin-left: -3px;
60
+ font-size: 12px;
61
+ // margin-left: -3px;
62
62
  }
63
63
  }
64
64
  .content-item {
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import { PageHeaderProps } from "antd";
3
+ export default class NscPageHeader extends React.PureComponent<PageHeaderProps, any> {
4
+ render(): React.ReactNode;
5
+ }
@@ -0,0 +1,50 @@
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/page-header/style/css";
4
+ import _PageHeader from "antd/es/page-header";
5
+
6
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7
+
8
+ 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); } }
9
+
10
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
11
+
12
+ 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); }
13
+
14
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
+
16
+ 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); }; }
17
+
18
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
19
+
20
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
21
+
22
+ 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; } }
23
+
24
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
25
+
26
+ import * as React from "react";
27
+
28
+ var NscPageHeader = /*#__PURE__*/function (_React$PureComponent) {
29
+ _inherits(NscPageHeader, _React$PureComponent);
30
+
31
+ var _super = _createSuper(NscPageHeader);
32
+
33
+ function NscPageHeader() {
34
+ _classCallCheck(this, NscPageHeader);
35
+
36
+ return _super.apply(this, arguments);
37
+ }
38
+
39
+ _createClass(NscPageHeader, [{
40
+ key: "render",
41
+ value: function render() {
42
+ return /*#__PURE__*/React.createElement(_PageHeader, this.props);
43
+ }
44
+ }]);
45
+
46
+ return NscPageHeader;
47
+ }(React.PureComponent);
48
+
49
+ export { NscPageHeader as default };
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VIZWFkZXIvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiTnNjUGFnZUhlYWRlciIsInByb3BzIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2Qjs7SUFHcUJDLGE7Ozs7Ozs7Ozs7Ozs7V0FJbkIsa0JBQTBCO0FBQ3hCLDBCQUFPLGlDQUFnQixLQUFLQyxLQUFyQixDQUFQO0FBQ0Q7Ozs7RUFOd0NGLEtBQUssQ0FBQ0csYTs7U0FBNUJGLGEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgUGFnZUhlYWRlciwgUGFnZUhlYWRlclByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY1BhZ2VIZWFkZXIgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PFxyXG5QYWdlSGVhZGVyUHJvcHMsXHJcbiAgYW55XHJcbj4ge1xyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgcmV0dXJuIDxQYWdlSGVhZGVyIHsuLi50aGlzLnByb3BzfSAvPjtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import { PaginationProps } from "antd";
3
+ export default class NscPagination extends React.PureComponent<PaginationProps, any> {
4
+ render(): React.ReactNode;
5
+ }