nsc-react-component 2.0.13 → 2.0.16
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.
- package/lib/{affix → base/affix}/index.d.ts +0 -0
- package/lib/{affix → base/affix}/index.js +1 -1
- package/lib/{alert → base/alert}/index.d.ts +0 -0
- package/lib/{alert → base/alert}/index.js +1 -1
- package/lib/{anchor → base/anchor}/index.d.ts +0 -0
- package/lib/{anchor → base/anchor}/index.js +1 -1
- package/lib/{avatar → base/avatar}/index.d.ts +0 -0
- package/lib/{avatar → base/avatar}/index.js +1 -1
- package/lib/{backTop → base/backTop}/index.d.ts +0 -0
- package/lib/{backTop → base/backTop}/index.js +1 -1
- package/lib/{badge → base/badge}/index.d.ts +0 -0
- package/lib/{badge → base/badge}/index.js +1 -1
- package/lib/{breadcrumb → base/breadcrumb}/index.d.ts +0 -0
- package/lib/{breadcrumb → base/breadcrumb}/index.js +1 -1
- package/lib/{button → base/button}/index.d.ts +0 -0
- package/lib/{button → base/button}/index.js +2 -2
- package/lib/{button → base/button}/index.less +0 -0
- package/lib/{calendar → base/calendar}/index.d.ts +0 -0
- package/lib/{calendar → base/calendar}/index.js +1 -1
- package/lib/{card → base/card}/index.d.ts +0 -0
- package/lib/{card → base/card}/index.js +1 -1
- package/lib/{carousel → base/carousel}/index.d.ts +0 -0
- package/lib/{carousel → base/carousel}/index.js +1 -1
- package/lib/{cascader → base/cascader}/index.d.ts +0 -0
- package/lib/base/cascader/index.js +268 -0
- package/lib/{chart → base/chart}/index.d.ts +0 -0
- package/lib/base/chart/index.js +353 -0
- package/lib/{checkbox → base/checkbox}/CheckboxGroup.d.ts +0 -0
- package/lib/base/checkbox/CheckboxGroup.js +340 -0
- package/lib/{checkbox → base/checkbox}/index.d.ts +0 -0
- package/lib/{checkbox → base/checkbox}/index.js +1 -1
- package/lib/{collapse → base/collapse}/index.d.ts +0 -0
- package/lib/{collapse → base/collapse}/index.js +1 -1
- package/lib/{comment → base/comment}/index.d.ts +0 -0
- package/lib/{comment → base/comment}/index.js +1 -1
- package/lib/{common → base/common}/BodyRow/index.d.ts +0 -0
- package/lib/{common → base/common}/BodyRow/index.js +1 -1
- package/lib/{common → base/common}/BodyRow/index.less +0 -0
- package/lib/{common → base/common}/Icon.d.ts +0 -0
- package/lib/{common → base/common}/Icon.js +1 -1
- package/lib/{common → base/common}/IconFont.d.ts +0 -0
- package/lib/base/common/IconFont.js +17 -0
- package/lib/{common → base/common}/NoAuthority.d.ts +0 -0
- package/lib/{common → base/common}/NoAuthority.js +1 -1
- package/lib/{common → base/common}/NoData.d.ts +0 -0
- package/lib/{common → base/common}/NoData.js +1 -1
- package/lib/{common → base/common}/NoData.less +0 -0
- package/lib/{common → base/common}/NoMessage.d.ts +0 -0
- package/lib/{common → base/common}/NoMessage.js +1 -1
- package/lib/{common → base/common}/NoNetWork.d.ts +0 -0
- package/lib/{common → base/common}/NoNetWork.js +1 -1
- package/lib/{common → base/common}/Page404.d.ts +0 -0
- package/lib/{common → base/common}/Page404.js +1 -1
- package/lib/{common → base/common}/PageRequest.d.ts +0 -0
- package/lib/{common → base/common}/PageRequest.js +1 -1
- package/lib/{common → base/common}/TreePanel.d.ts +2 -1
- package/lib/base/common/TreePanel.js +290 -0
- package/lib/{common → base/common}/img/NoAuthority.png +0 -0
- package/lib/{common → base/common}/img/NoData.png +0 -0
- package/lib/{common → base/common}/img/NoMessage.png +0 -0
- package/lib/{common → base/common}/img/NoNetWork.png +0 -0
- package/lib/{common → base/common}/img/Page404.png +0 -0
- package/lib/{common → base/common}/withZhLocale.d.ts +0 -0
- package/lib/base/common/withZhLocale.js +20 -0
- package/lib/{configProvider → base/configProvider}/index.d.ts +0 -0
- package/lib/{configProvider → base/configProvider}/index.js +1 -1
- package/lib/{datepick → base/datepick}/Rangepicker.d.ts +0 -0
- package/lib/base/datepick/Rangepicker.js +553 -0
- package/lib/{datepick → base/datepick}/index.d.ts +0 -0
- package/lib/{datepick → base/datepick}/index.js +1 -1
- package/lib/{datepick → base/datepick}/index.less +0 -0
- package/lib/{descriptions → base/descriptions}/index.d.ts +0 -0
- package/lib/{descriptions → base/descriptions}/index.js +1 -1
- package/lib/{divider → base/divider}/index.d.ts +0 -0
- package/lib/{divider → base/divider}/index.js +1 -1
- package/lib/{drawer → base/drawer}/index.d.ts +0 -0
- package/lib/{drawer → base/drawer}/index.js +1 -1
- package/lib/{dropdown → base/dropdown}/index.d.ts +0 -0
- package/lib/{dropdown → base/dropdown}/index.js +1 -1
- package/lib/{form → base/form}/Form.d.ts +0 -0
- package/lib/base/form/Form.js +415 -0
- package/lib/{form → base/form}/filed/Cascader.d.ts +0 -0
- package/lib/{form → base/form}/filed/Cascader.js +1 -1
- package/lib/{form → base/form}/filed/Checkbox.d.ts +0 -0
- package/lib/{form → base/form}/filed/Checkbox.js +1 -1
- package/lib/{form → base/form}/filed/DatePicker.d.ts +0 -0
- package/lib/{form → base/form}/filed/DatePicker.js +1 -1
- package/lib/{form → base/form}/filed/FormItem.d.ts +0 -0
- package/lib/{form → base/form}/filed/FormItem.js +1 -1
- package/lib/{form → base/form}/filed/Input.d.ts +0 -0
- package/lib/{form → base/form}/filed/Input.js +1 -1
- package/lib/{form → base/form}/filed/InputEamil.d.ts +0 -0
- package/lib/{form → base/form}/filed/InputEamil.js +1 -1
- package/lib/{form → base/form}/filed/InputNumber.d.ts +0 -0
- package/lib/{form → base/form}/filed/InputNumber.js +1 -1
- package/lib/{form → base/form}/filed/InputPassword.d.ts +0 -0
- package/lib/{form → base/form}/filed/InputPassword.js +1 -1
- package/lib/{form → base/form}/filed/Item.d.ts +0 -0
- package/lib/base/form/filed/Item.js +161 -0
- package/lib/{form → base/form}/filed/Radio.d.ts +0 -0
- package/lib/{form → base/form}/filed/Radio.js +1 -1
- package/lib/{form → base/form}/filed/RangerPicker.d.ts +0 -0
- package/lib/{form → base/form}/filed/RangerPicker.js +1 -1
- package/lib/{form → base/form}/filed/Rate.d.ts +0 -0
- package/lib/{form → base/form}/filed/Rate.js +1 -1
- package/lib/{form → base/form}/filed/Select.d.ts +0 -0
- package/lib/{form → base/form}/filed/Select.js +1 -1
- package/lib/{form → base/form}/filed/Slider.d.ts +0 -0
- package/lib/{form → base/form}/filed/Slider.js +1 -1
- package/lib/{form → base/form}/filed/Switch.d.ts +0 -0
- package/lib/{form → base/form}/filed/Switch.js +1 -1
- package/lib/{form → base/form}/filed/TagSelect.d.ts +0 -0
- package/lib/{form → base/form}/filed/TagSelect.js +1 -1
- package/lib/{form → base/form}/filed/TextArea.d.ts +0 -0
- package/lib/{form → base/form}/filed/TextArea.js +1 -1
- package/lib/{form → base/form}/filed/Upload.d.ts +0 -0
- package/lib/{form → base/form}/filed/Upload.js +1 -1
- package/lib/{form → base/form}/index.d.ts +0 -0
- package/lib/{form → base/form}/index.js +1 -1
- package/lib/{grid → base/grid}/Col.d.ts +0 -0
- package/lib/{grid → base/grid}/Col.js +1 -1
- package/lib/{grid → base/grid}/Row.d.ts +0 -0
- package/lib/{grid → base/grid}/Row.js +1 -1
- package/lib/{grid → base/grid}/index.d.ts +0 -0
- package/lib/{grid → base/grid}/index.js +0 -0
- package/lib/{image → base/image}/index.d.ts +0 -0
- package/lib/{image → base/image}/index.js +1 -1
- package/lib/{input → base/input}/Email.d.ts +0 -0
- package/lib/{input → base/input}/Email.js +1 -1
- package/lib/{input → base/input}/Number.d.ts +0 -0
- package/lib/{input → base/input}/Number.js +1 -1
- package/lib/{input → base/input}/Password.d.ts +0 -3
- package/lib/{input → base/input}/Password.js +1 -1
- package/lib/{input → base/input}/Search.d.ts +0 -3
- package/lib/{input → base/input}/Search.js +1 -1
- package/lib/{input → base/input}/TextArea.d.ts +0 -3
- package/lib/{input → base/input}/TextArea.js +1 -1
- package/lib/{input → base/input}/index.d.ts +0 -0
- package/lib/base/input/index.js +242 -0
- package/lib/{input → base/input}/index.less +0 -0
- package/lib/{layout → base/layout}/index.d.ts +0 -0
- package/lib/{layout → base/layout}/index.js +1 -1
- package/lib/{list → base/list}/index.d.ts +0 -0
- package/lib/{list → base/list}/index.js +1 -1
- package/lib/{menu → base/menu}/index.d.ts +0 -0
- package/lib/base/menu/index.js +247 -0
- package/lib/{message → base/message}/index.d.ts +0 -0
- package/lib/{message → base/message}/index.js +1 -1
- package/lib/{modal → base/modal}/index.d.ts +0 -0
- package/lib/{modal → base/modal}/index.js +1 -1
- package/lib/{notification → base/notification}/index.d.ts +0 -0
- package/lib/{notification → base/notification}/index.js +1 -1
- package/lib/{pageHeader → base/pageHeader}/index.d.ts +0 -0
- package/lib/{pageHeader → base/pageHeader}/index.js +1 -1
- package/lib/{pagination → base/pagination}/index.d.ts +0 -0
- package/lib/{pagination → base/pagination}/index.js +1 -1
- package/lib/{popconfirm → base/popconfirm}/index.d.ts +0 -0
- package/lib/{popconfirm → base/popconfirm}/index.js +1 -1
- package/lib/{popover → base/popover}/index.d.ts +0 -0
- package/lib/{popover → base/popover}/index.js +1 -1
- package/lib/{progress → base/progress}/index.d.ts +0 -0
- package/lib/{progress → base/progress}/index.js +1 -1
- package/lib/{radio → base/radio}/RadioGroup.d.ts +0 -0
- package/lib/base/radio/RadioGroup.js +378 -0
- package/lib/{radio → base/radio}/index.d.ts +0 -0
- package/lib/{radio → base/radio}/index.js +1 -1
- package/lib/{result → base/result}/index.d.ts +0 -0
- package/lib/{result → base/result}/index.js +1 -1
- package/lib/{select → base/select}/index.d.ts +0 -0
- package/lib/base/select/index.js +529 -0
- package/lib/{select → base/select}/index.less +0 -0
- package/lib/{skeleton → base/skeleton}/index.d.ts +0 -0
- package/lib/{skeleton → base/skeleton}/index.js +1 -1
- package/lib/{space → base/space}/index.d.ts +0 -0
- package/lib/{space → base/space}/index.js +1 -1
- package/lib/{spin → base/spin}/index.d.ts +0 -0
- package/lib/{spin → base/spin}/index.js +1 -1
- package/lib/{statistic → base/statistic}/index.d.ts +0 -0
- package/lib/{statistic → base/statistic}/index.js +1 -1
- package/lib/{steps → base/steps}/index.d.ts +0 -0
- package/lib/{steps → base/steps}/index.js +1 -1
- package/lib/{table → base/table}/index.d.ts +10 -2
- package/lib/base/table/index.js +902 -0
- package/lib/{table → base/table}/index.module.less +22 -0
- package/lib/{table → base/table}/resize.module.less +0 -0
- package/lib/{tabs → base/tabs}/Tabpane.d.ts +0 -0
- package/lib/{tabs → base/tabs}/Tabpane.js +1 -1
- package/lib/{tabs → base/tabs}/index.d.ts +0 -0
- package/lib/{tabs → base/tabs}/index.js +1 -1
- package/lib/{tagSelect → base/tagSelect}/TagSelect.d.ts +0 -0
- package/lib/base/tagSelect/TagSelect.js +268 -0
- package/lib/{tagSelect → base/tagSelect}/index.d.ts +0 -0
- package/lib/base/tagSelect/index.js +188 -0
- package/lib/{tagSelect → base/tagSelect}/index.less +0 -0
- package/lib/{timeline → base/timeline}/index.d.ts +0 -0
- package/lib/{timeline → base/timeline}/index.js +1 -1
- package/lib/{tooltip → base/tooltip}/index.d.ts +0 -0
- package/lib/{tooltip → base/tooltip}/index.js +1 -1
- package/lib/{tree → base/tree}/TreeSearch.d.ts +0 -0
- package/lib/base/tree/TreeSearch.js +273 -0
- package/lib/{tree → base/tree}/index.d.ts +0 -0
- package/lib/base/tree/index.js +307 -0
- package/lib/{tree → base/tree}/index.less +0 -0
- package/lib/{typography → base/typography}/index.d.ts +0 -0
- package/lib/{typography → base/typography}/index.js +1 -1
- package/lib/index.d.ts +63 -63
- package/lib/index.js +63 -63
- package/lib/{pageComponents → page}/BasePage/Form.d.ts +0 -0
- package/lib/page/BasePage/Form.js +244 -0
- package/lib/{pageComponents → page}/BasePage/index.d.ts +4 -3
- package/lib/page/BasePage/index.js +639 -0
- package/lib/{pageComponents → page}/BasePage/index.module.less +0 -0
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +15 -8
- package/package.json +1 -1
- package/lib/cascader/index.js +0 -268
- package/lib/chart/index.js +0 -353
- package/lib/checkbox/CheckboxGroup.js +0 -338
- package/lib/common/IconFont.js +0 -17
- package/lib/common/TreePanel.js +0 -303
- package/lib/common/withZhLocale.js +0 -20
- package/lib/datepick/Rangepicker.js +0 -553
- package/lib/form/Form.js +0 -415
- package/lib/form/filed/Item.js +0 -161
- package/lib/input/index.js +0 -242
- package/lib/menu/index.js +0 -247
- package/lib/pageComponents/BasePage/Form.js +0 -251
- package/lib/pageComponents/BasePage/index.js +0 -620
- package/lib/radio/RadioGroup.js +0 -376
- package/lib/select/index.js +0 -524
- package/lib/table/index.js +0 -756
- package/lib/tagSelect/TagSelect.js +0 -268
- package/lib/tagSelect/index.js +0 -190
- package/lib/tree/TreeSearch.js +0 -274
- package/lib/tree/index.js +0 -293
|
@@ -1,620 +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
|
-
var _excluded = ["children", "pageType", "onClick"],
|
|
4
|
-
_excluded2 = ["children", "pageType", "onClick", "Icon"];
|
|
5
|
-
|
|
6
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
7
|
-
|
|
8
|
-
function _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; }
|
|
9
|
-
|
|
10
|
-
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; }
|
|
11
|
-
|
|
12
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
13
|
-
|
|
14
|
-
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."); }
|
|
15
|
-
|
|
16
|
-
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); }
|
|
17
|
-
|
|
18
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
19
|
-
|
|
20
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
21
|
-
|
|
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; }
|
|
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
|
-
|
|
28
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
29
|
-
|
|
30
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
31
|
-
|
|
32
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
33
|
-
|
|
34
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
35
|
-
|
|
36
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
37
|
-
|
|
38
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
39
|
-
|
|
40
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
41
|
-
|
|
42
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
43
|
-
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
45
|
-
|
|
46
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
47
|
-
|
|
48
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
49
|
-
|
|
50
|
-
import React, { PureComponent } from "react";
|
|
51
|
-
import Table from "../../table";
|
|
52
|
-
import Tree from "../../tree";
|
|
53
|
-
import Form from "../../form";
|
|
54
|
-
import Button from "../../button";
|
|
55
|
-
import Modal from "../../modal";
|
|
56
|
-
import Popover from "../../popover";
|
|
57
|
-
import message from "../../message";
|
|
58
|
-
import Icon from "../../common/IconFont";
|
|
59
|
-
import { iconType } from "../../constants";
|
|
60
|
-
import EditorForm from "./Form";
|
|
61
|
-
import cls from "classnames";
|
|
62
|
-
import styles from "./index.module.less";
|
|
63
|
-
import { DownOutlined, UpOutlined } from "@ant-design/icons";
|
|
64
|
-
import { getNode } from "../../utils";
|
|
65
|
-
import request from "nsc-request";
|
|
66
|
-
|
|
67
|
-
var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
68
|
-
_inherits(BasePage, _PureComponent);
|
|
69
|
-
|
|
70
|
-
var _super = _createSuper(BasePage);
|
|
71
|
-
|
|
72
|
-
function BasePage(props) {
|
|
73
|
-
var _this;
|
|
74
|
-
|
|
75
|
-
_classCallCheck(this, BasePage);
|
|
76
|
-
|
|
77
|
-
_this = _super.call(this, props);
|
|
78
|
-
|
|
79
|
-
_defineProperty(_assertThisInitialized(_this), "tableRef", /*#__PURE__*/React.createRef());
|
|
80
|
-
|
|
81
|
-
_defineProperty(_assertThisInitialized(_this), "treeRef", /*#__PURE__*/React.createRef());
|
|
82
|
-
|
|
83
|
-
_defineProperty(_assertThisInitialized(_this), "searchRef", /*#__PURE__*/React.createRef());
|
|
84
|
-
|
|
85
|
-
_defineProperty(_assertThisInitialized(_this), "editorRef", /*#__PURE__*/React.createRef());
|
|
86
|
-
|
|
87
|
-
_defineProperty(_assertThisInitialized(_this), "onSelect", function (checkedTreeKeys) {
|
|
88
|
-
var _this$state = _this.state,
|
|
89
|
-
name = _this$state.name,
|
|
90
|
-
userType = _this$state.userType,
|
|
91
|
-
account = _this$state.account;
|
|
92
|
-
var value = {
|
|
93
|
-
name: name,
|
|
94
|
-
userType: userType,
|
|
95
|
-
account: account,
|
|
96
|
-
deptId: checkedTreeKeys[0]
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
_this.tableLoad(value);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
_this.state = {
|
|
103
|
-
type: "add",
|
|
104
|
-
selectedRowKeys: [],
|
|
105
|
-
treeSelectedKey: "",
|
|
106
|
-
expand: false
|
|
107
|
-
};
|
|
108
|
-
return _this;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
_createClass(BasePage, [{
|
|
112
|
-
key: "showForm",
|
|
113
|
-
value: //显示表单
|
|
114
|
-
function showForm(value) {
|
|
115
|
-
var _this$editorRef$curre;
|
|
116
|
-
|
|
117
|
-
var flag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
118
|
-
(_this$editorRef$curre = this.editorRef.current) === null || _this$editorRef$curre === void 0 ? void 0 : _this$editorRef$curre.show(value, flag);
|
|
119
|
-
} //批量删除
|
|
120
|
-
|
|
121
|
-
}, {
|
|
122
|
-
key: "onDelete",
|
|
123
|
-
value: function onDelete() {
|
|
124
|
-
var _this$props = this.props,
|
|
125
|
-
deleteUrl = _this$props.deleteUrl,
|
|
126
|
-
onDelete = _this$props.onDelete,
|
|
127
|
-
deleteParams = _this$props.deleteParams;
|
|
128
|
-
var selectedRowKeys = this.state.selectedRowKeys;
|
|
129
|
-
|
|
130
|
-
if (selectedRowKeys.length == 0) {
|
|
131
|
-
message.warning("请选择要删除的数据!");
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
if (onDelete) {
|
|
136
|
-
onDelete && onDelete(selectedRowKeys);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
if (!deleteUrl) {
|
|
141
|
-
throw new Error("url不能为空!");
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
Modal.confirm({
|
|
145
|
-
title: "是否确认删除所选项?",
|
|
146
|
-
// icon: <Icon type={'icontishi-3'} />,
|
|
147
|
-
okText: "确认",
|
|
148
|
-
cancelText: "取消",
|
|
149
|
-
onOk: function onOk() {
|
|
150
|
-
var defaultParams = {
|
|
151
|
-
method: "post",
|
|
152
|
-
params: {
|
|
153
|
-
ids: selectedRowKeys.join()
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
var requestParams = {};
|
|
157
|
-
|
|
158
|
-
if (defaultParams) {
|
|
159
|
-
requestParams = _objectSpread({}, deleteParams);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
requestParams = _objectSpread({}, defaultParams);
|
|
163
|
-
request(deleteUrl, _objectSpread({}, requestParams)).then(function (res) {
|
|
164
|
-
var code = res.code;
|
|
165
|
-
|
|
166
|
-
if (code === 200) {
|
|
167
|
-
message.success("删除成功!");
|
|
168
|
-
} else {
|
|
169
|
-
message.error("删除失败!");
|
|
170
|
-
}
|
|
171
|
-
}).catch(function (error) {
|
|
172
|
-
console.log("error", error);
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}, {
|
|
178
|
-
key: "tableLoad",
|
|
179
|
-
value: function tableLoad(params) {
|
|
180
|
-
var _this$tableRef$curren;
|
|
181
|
-
|
|
182
|
-
(_this$tableRef$curren = this.tableRef.current) === null || _this$tableRef$curren === void 0 ? void 0 : _this$tableRef$curren.store.load({
|
|
183
|
-
params: params
|
|
184
|
-
});
|
|
185
|
-
} //查询
|
|
186
|
-
|
|
187
|
-
}, {
|
|
188
|
-
key: "onSearch",
|
|
189
|
-
value: function onSearch() {
|
|
190
|
-
var _this$searchRef$curre;
|
|
191
|
-
|
|
192
|
-
var onSearch = this.props.onSearch;
|
|
193
|
-
var fromValue = (_this$searchRef$curre = this.searchRef.current) === null || _this$searchRef$curre === void 0 ? void 0 : _this$searchRef$curre.getFieldsValue();
|
|
194
|
-
|
|
195
|
-
if (onSearch) {
|
|
196
|
-
onSearch(fromValue);
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
this.load(fromValue);
|
|
201
|
-
} //表格重新加载
|
|
202
|
-
|
|
203
|
-
}, {
|
|
204
|
-
key: "tableReload",
|
|
205
|
-
value: function tableReload() {
|
|
206
|
-
var _this$tableRef$curren2;
|
|
207
|
-
|
|
208
|
-
(_this$tableRef$curren2 = this.tableRef.current) === null || _this$tableRef$curren2 === void 0 ? void 0 : _this$tableRef$curren2.store.reload();
|
|
209
|
-
}
|
|
210
|
-
}, {
|
|
211
|
-
key: "getSelectedRowKeys",
|
|
212
|
-
value: function getSelectedRowKeys() {
|
|
213
|
-
return this.state.selectedRowKeys;
|
|
214
|
-
}
|
|
215
|
-
}, {
|
|
216
|
-
key: "getSearchValues",
|
|
217
|
-
value: function getSearchValues() {
|
|
218
|
-
var _this$searchRef$curre2;
|
|
219
|
-
|
|
220
|
-
var fromValue = (_this$searchRef$curre2 = this.searchRef.current) === null || _this$searchRef$curre2 === void 0 ? void 0 : _this$searchRef$curre2.getFieldsValue();
|
|
221
|
-
return fromValue;
|
|
222
|
-
}
|
|
223
|
-
}, {
|
|
224
|
-
key: "rowSelectionOnSelect",
|
|
225
|
-
value: function rowSelectionOnSelect(record, selected) {
|
|
226
|
-
var selectedRowKeys = this.state.selectedRowKeys;
|
|
227
|
-
|
|
228
|
-
var newSelectedRowKeys = _toConsumableArray(selectedRowKeys);
|
|
229
|
-
|
|
230
|
-
if (selected) {
|
|
231
|
-
newSelectedRowKeys = [].concat(_toConsumableArray(newSelectedRowKeys), [record.id]);
|
|
232
|
-
} else {
|
|
233
|
-
selectedRowKeys.map(function (item, index) {
|
|
234
|
-
if (item === record.id) {
|
|
235
|
-
newSelectedRowKeys.splice(index, 1);
|
|
236
|
-
}
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
this.setState({
|
|
241
|
-
selectedRowKeys: newSelectedRowKeys
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
}, {
|
|
245
|
-
key: "rowSelectionOnSelectAll",
|
|
246
|
-
value: function rowSelectionOnSelectAll(selected, selectedRows, changeRows) {
|
|
247
|
-
var selectedRowKeys = this.state.selectedRowKeys;
|
|
248
|
-
var newids = [];
|
|
249
|
-
|
|
250
|
-
if (changeRows.length > 0) {
|
|
251
|
-
var changeIds = changeRows.map(function (item) {
|
|
252
|
-
return item.id;
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
if (selected) {
|
|
256
|
-
newids = [].concat(_toConsumableArray(selectedRowKeys), _toConsumableArray(changeIds));
|
|
257
|
-
} else {
|
|
258
|
-
selectedRowKeys.map(function (item, index) {
|
|
259
|
-
if (changeIds.indexOf(item) == -1) {
|
|
260
|
-
newids.push(item);
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
} else {
|
|
265
|
-
newids = _toConsumableArray(selectedRowKeys);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
this.setState({
|
|
269
|
-
selectedRowKeys: _toConsumableArray(newids)
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
}, {
|
|
273
|
-
key: "load",
|
|
274
|
-
value: function load(params) {
|
|
275
|
-
var _this$tableRef$curren3;
|
|
276
|
-
|
|
277
|
-
(_this$tableRef$curren3 = this.tableRef.current) === null || _this$tableRef$curren3 === void 0 ? void 0 : _this$tableRef$curren3.store.load({
|
|
278
|
-
params: params
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
}, {
|
|
282
|
-
key: "renderCloumnButton",
|
|
283
|
-
value: function renderCloumnButton(columnButtons, record, actionButton) {
|
|
284
|
-
var _this$props$editorFor = this.props.editorForm,
|
|
285
|
-
editorForm = _this$props$editorFor === void 0 ? true : _this$props$editorFor;
|
|
286
|
-
var content = columnButtons.map(function (item, index) {
|
|
287
|
-
var _item$props = item.props,
|
|
288
|
-
children = _item$props.children,
|
|
289
|
-
pageType = _item$props.pageType,
|
|
290
|
-
_onClick = _item$props.onClick,
|
|
291
|
-
params = _objectWithoutProperties(_item$props, _excluded);
|
|
292
|
-
|
|
293
|
-
return /*#__PURE__*/React.createElement("div", _extends({
|
|
294
|
-
className: cls(styles["editor"], styles["content-item"]),
|
|
295
|
-
key: index,
|
|
296
|
-
onClick: function onClick() {
|
|
297
|
-
_onClick && _onClick(record);
|
|
298
|
-
}
|
|
299
|
-
}, params), children);
|
|
300
|
-
});
|
|
301
|
-
var num = 1;
|
|
302
|
-
if (!actionButton || !editorForm) num = 3;
|
|
303
|
-
|
|
304
|
-
if (columnButtons.length > num) {
|
|
305
|
-
return /*#__PURE__*/React.createElement(Popover, {
|
|
306
|
-
placement: "bottom",
|
|
307
|
-
title: null,
|
|
308
|
-
content: content,
|
|
309
|
-
trigger: "click" // overlayClassName={styles['pop']}
|
|
310
|
-
|
|
311
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
312
|
-
className: styles["editor"]
|
|
313
|
-
}, "\u66F4\u591A", /*#__PURE__*/React.createElement("span", {
|
|
314
|
-
className: styles["icon"]
|
|
315
|
-
}, /*#__PURE__*/React.createElement(DownOutlined, null))));
|
|
316
|
-
} else {
|
|
317
|
-
return columnButtons.map(function (item, index) {
|
|
318
|
-
var _item$props2 = item.props,
|
|
319
|
-
children = _item$props2.children,
|
|
320
|
-
pageType = _item$props2.pageType,
|
|
321
|
-
_onClick2 = _item$props2.onClick,
|
|
322
|
-
Icon = _item$props2.Icon,
|
|
323
|
-
params = _objectWithoutProperties(_item$props2, _excluded2);
|
|
324
|
-
|
|
325
|
-
return /*#__PURE__*/React.createElement("div", _extends({
|
|
326
|
-
className: styles["editor"],
|
|
327
|
-
key: index,
|
|
328
|
-
onClick: function onClick() {
|
|
329
|
-
_onClick2 && _onClick2(record);
|
|
330
|
-
}
|
|
331
|
-
}, params), Icon, " ", children);
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
} //树点击事件
|
|
335
|
-
|
|
336
|
-
}, {
|
|
337
|
-
key: "treeSelect",
|
|
338
|
-
value: function treeSelect(selectedKeys, _ref) {
|
|
339
|
-
var _this$searchRef$curre3;
|
|
340
|
-
|
|
341
|
-
var selected = _ref.selected,
|
|
342
|
-
selectedNodes = _ref.selectedNodes;
|
|
343
|
-
var keyword = "";
|
|
344
|
-
var _this$props$treeProps = this.props.treeProps,
|
|
345
|
-
_this$props$treeProps2 = _this$props$treeProps.searchKey,
|
|
346
|
-
searchKey = _this$props$treeProps2 === void 0 ? "key" : _this$props$treeProps2,
|
|
347
|
-
_this$props$treeProps3 = _this$props$treeProps.searchField,
|
|
348
|
-
searchField = _this$props$treeProps3 === void 0 ? "" : _this$props$treeProps3;
|
|
349
|
-
var treeSelectedKey = this.state.treeSelectedKey;
|
|
350
|
-
|
|
351
|
-
if (selected) {
|
|
352
|
-
if (selectedNodes[0].isLeaf || !selectedNodes[0].children) {
|
|
353
|
-
if (selectedKeys[0] !== treeSelectedKey) {
|
|
354
|
-
// let mapData = this.treeRef.current?.store.getFlattenData();
|
|
355
|
-
keyword = selectedNodes[0].dataref.attribute[searchKey];
|
|
356
|
-
this.setState({
|
|
357
|
-
treeSelectedKey: selectedKeys[0]
|
|
358
|
-
});
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
} else {
|
|
362
|
-
this.setState({
|
|
363
|
-
treeSelectedKey: keyword
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
var fromValue = (_this$searchRef$curre3 = this.searchRef.current) === null || _this$searchRef$curre3 === void 0 ? void 0 : _this$searchRef$curre3.getFieldsValue();
|
|
368
|
-
searchField && this.load(_objectSpread(_objectSpread({}, fromValue), {}, _defineProperty({}, searchField, keyword)));
|
|
369
|
-
}
|
|
370
|
-
}, {
|
|
371
|
-
key: "render",
|
|
372
|
-
value: function render() {
|
|
373
|
-
var _this2 = this;
|
|
374
|
-
|
|
375
|
-
console.log("styles", styles);
|
|
376
|
-
var selectedRowKeys = this.state.selectedRowKeys;
|
|
377
|
-
var _this$props2 = this.props,
|
|
378
|
-
_this$props2$columns = _this$props2.columns,
|
|
379
|
-
columns = _this$props2$columns === void 0 ? [] : _this$props2$columns,
|
|
380
|
-
_this$props2$showSear = _this$props2.showSearch,
|
|
381
|
-
showSearch = _this$props2$showSear === void 0 ? true : _this$props2$showSear,
|
|
382
|
-
children = _this$props2.children,
|
|
383
|
-
_this$props2$submitUr = _this$props2.submitUrl,
|
|
384
|
-
submitUrl = _this$props2$submitUr === void 0 ? "" : _this$props2$submitUr,
|
|
385
|
-
_this$props2$tablePro = _this$props2.tableProps,
|
|
386
|
-
tableProps = _this$props2$tablePro === void 0 ? {} : _this$props2$tablePro,
|
|
387
|
-
_this$props2$treeProp = _this$props2.treeProps,
|
|
388
|
-
treeProps = _this$props2$treeProp === void 0 ? {} : _this$props2$treeProp,
|
|
389
|
-
_this$props2$showLeft = _this$props2.showLeft,
|
|
390
|
-
showLeft = _this$props2$showLeft === void 0 ? false : _this$props2$showLeft,
|
|
391
|
-
_this$props2$submitPa = _this$props2.submitParams,
|
|
392
|
-
submitParams = _this$props2$submitPa === void 0 ? {} : _this$props2$submitPa,
|
|
393
|
-
_this$props2$showTool = _this$props2.showToolButton,
|
|
394
|
-
showToolButton = _this$props2$showTool === void 0 ? true : _this$props2$showTool,
|
|
395
|
-
_this$props2$showAddB = _this$props2.showAddButton,
|
|
396
|
-
showAddButton = _this$props2$showAddB === void 0 ? true : _this$props2$showAddB,
|
|
397
|
-
_this$props2$showDele = _this$props2.showDeleteButton,
|
|
398
|
-
showDeleteButton = _this$props2$showDele === void 0 ? true : _this$props2$showDele,
|
|
399
|
-
_this$props2$editorFo = _this$props2.editorForm,
|
|
400
|
-
editorForm = _this$props2$editorFo === void 0 ? true : _this$props2$editorFo;
|
|
401
|
-
var _tableProps$store = tableProps.store,
|
|
402
|
-
store = _tableProps$store === void 0 ? {} : _tableProps$store,
|
|
403
|
-
_tableProps$filterCol = tableProps.filterColumn,
|
|
404
|
-
filterColumn = _tableProps$filterCol === void 0 ? true : _tableProps$filterCol,
|
|
405
|
-
_tableProps$actionBut = tableProps.actionButton,
|
|
406
|
-
actionButton = _tableProps$actionBut === void 0 ? true : _tableProps$actionBut,
|
|
407
|
-
_tableProps$actionCol = tableProps.actionColumn,
|
|
408
|
-
actionColumn = _tableProps$actionCol === void 0 ? true : _tableProps$actionCol,
|
|
409
|
-
_tableProps$showRowSe = tableProps.showRowSelection,
|
|
410
|
-
showRowSelection = _tableProps$showRowSe === void 0 ? true : _tableProps$showRowSe;
|
|
411
|
-
var _treeProps$store = treeProps.store,
|
|
412
|
-
treeStore = _treeProps$store === void 0 ? {} : _treeProps$store,
|
|
413
|
-
_treeProps$showSearch = treeProps.showSearch,
|
|
414
|
-
treeSearch = _treeProps$showSearch === void 0 ? true : _treeProps$showSearch,
|
|
415
|
-
_treeProps$titleAlias = treeProps.titleAlias,
|
|
416
|
-
titleAlias = _treeProps$titleAlias === void 0 ? "title" : _treeProps$titleAlias;
|
|
417
|
-
var tableParams = {
|
|
418
|
-
filterColumn: filterColumn,
|
|
419
|
-
store: store
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
if (showRowSelection) {
|
|
423
|
-
tableParams = _objectSpread(_objectSpread({}, tableParams), {}, {
|
|
424
|
-
rowSelection: {
|
|
425
|
-
selectedRowKeys: selectedRowKeys,
|
|
426
|
-
onSelect: this.rowSelectionOnSelect.bind(this),
|
|
427
|
-
onSelectAll: this.rowSelectionOnSelectAll.bind(this),
|
|
428
|
-
columnWidth: 40
|
|
429
|
-
}
|
|
430
|
-
});
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
var tableColumn = [];
|
|
434
|
-
var searchForms = [];
|
|
435
|
-
var editorForms = [];
|
|
436
|
-
columns.map(function (item) {
|
|
437
|
-
var temp = _objectSpread({}, item);
|
|
438
|
-
|
|
439
|
-
if (temp.search) {
|
|
440
|
-
searchForms.push({
|
|
441
|
-
name: temp.field || temp.dataIndex,
|
|
442
|
-
label: temp.title,
|
|
443
|
-
type: temp.type,
|
|
444
|
-
props: temp.props
|
|
445
|
-
});
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
delete temp.search;
|
|
449
|
-
temp.editor !== false && editorForms.push({
|
|
450
|
-
name: temp.field || temp.dataIndex,
|
|
451
|
-
label: temp.title,
|
|
452
|
-
rules: temp.rules,
|
|
453
|
-
type: temp.type,
|
|
454
|
-
props: temp.props,
|
|
455
|
-
span: temp.span,
|
|
456
|
-
dictName: temp.dictName
|
|
457
|
-
});
|
|
458
|
-
delete temp.rules;
|
|
459
|
-
delete temp.span;
|
|
460
|
-
|
|
461
|
-
if (temp.columnSearch) {
|
|
462
|
-
temp.filterProps = {
|
|
463
|
-
type: temp.type,
|
|
464
|
-
props: temp.props
|
|
465
|
-
};
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
delete temp.type;
|
|
469
|
-
delete temp.props;
|
|
470
|
-
tableColumn.push(temp);
|
|
471
|
-
});
|
|
472
|
-
var Buttons = [];
|
|
473
|
-
var columnButtons = [];
|
|
474
|
-
|
|
475
|
-
if (Array.isArray(children)) {
|
|
476
|
-
children.map(function (item) {
|
|
477
|
-
if (item.props.pageType == "toolButton") {
|
|
478
|
-
Buttons.push(item);
|
|
479
|
-
} else if (item.props.pageType == "cloumnButton") {
|
|
480
|
-
columnButtons.push(item);
|
|
481
|
-
}
|
|
482
|
-
});
|
|
483
|
-
} else if (children) {
|
|
484
|
-
var props = children.props;
|
|
485
|
-
|
|
486
|
-
if (props.pageType == "toolButton") {
|
|
487
|
-
Buttons.push(children);
|
|
488
|
-
} else if (props.pageType == "cloumnButton") {
|
|
489
|
-
columnButtons.push(children);
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
actionColumn && tableColumn.push({
|
|
494
|
-
title: "操作",
|
|
495
|
-
dataIndex: "action",
|
|
496
|
-
align: "center",
|
|
497
|
-
width: 150,
|
|
498
|
-
render: function render(text, record) {
|
|
499
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
500
|
-
className: styles["action"]
|
|
501
|
-
}, actionButton && editorForm == true && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
502
|
-
className: styles["editor"],
|
|
503
|
-
onClick: _this2.showForm.bind(_this2, record, false)
|
|
504
|
-
}, "\u67E5\u770B"), /*#__PURE__*/React.createElement("div", {
|
|
505
|
-
className: styles["editor"],
|
|
506
|
-
onClick: _this2.showForm.bind(_this2, record, true)
|
|
507
|
-
}, "\u7F16\u8F91")), _this2.renderCloumnButton(columnButtons, record, actionButton));
|
|
508
|
-
}
|
|
509
|
-
});
|
|
510
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
511
|
-
className: styles["page"],
|
|
512
|
-
style: {
|
|
513
|
-
display: "flex"
|
|
514
|
-
}
|
|
515
|
-
}, showLeft && /*#__PURE__*/React.createElement("div", {
|
|
516
|
-
className: styles["left"]
|
|
517
|
-
}, /*#__PURE__*/React.createElement(Tree, {
|
|
518
|
-
store: _objectSpread({}, treeStore),
|
|
519
|
-
showIcon: false,
|
|
520
|
-
checkable: false,
|
|
521
|
-
searchable: treeSearch,
|
|
522
|
-
onSelect: this.treeSelect.bind(this),
|
|
523
|
-
selectedKeys: [this.state.treeSelectedKey],
|
|
524
|
-
titleAlias: titleAlias
|
|
525
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
526
|
-
className: styles["right"]
|
|
527
|
-
}, showSearch && /*#__PURE__*/React.createElement("div", {
|
|
528
|
-
className: styles["header"]
|
|
529
|
-
}, /*#__PURE__*/React.createElement(Form, {
|
|
530
|
-
ref: this.searchRef,
|
|
531
|
-
labelCol: {},
|
|
532
|
-
wrapperCol: {},
|
|
533
|
-
layout: "inline"
|
|
534
|
-
}, searchForms.map(function (item, index) {
|
|
535
|
-
if (index > 2 && !_this2.state.expand) {
|
|
536
|
-
return;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
return /*#__PURE__*/React.createElement(Form.Item, {
|
|
540
|
-
label: item.label,
|
|
541
|
-
name: item.name // rules={item.rules}
|
|
542
|
-
,
|
|
543
|
-
key: index
|
|
544
|
-
}, getNode(item.type, _objectSpread(_objectSpread({}, item.props), {}, {
|
|
545
|
-
placeholder: "\u8BF7\u8F93\u5165".concat(item.label)
|
|
546
|
-
})));
|
|
547
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
548
|
-
className: styles["buttons"],
|
|
549
|
-
style: {
|
|
550
|
-
marginTop: 0
|
|
551
|
-
}
|
|
552
|
-
}, /*#__PURE__*/React.createElement(Button, {
|
|
553
|
-
type: "primary",
|
|
554
|
-
onClick: this.onSearch.bind(this),
|
|
555
|
-
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
556
|
-
type: iconType.search
|
|
557
|
-
})
|
|
558
|
-
}, "\u67E5\u8BE2"), /*#__PURE__*/React.createElement(Button, {
|
|
559
|
-
type: "primary",
|
|
560
|
-
onClick: function onClick() {
|
|
561
|
-
var _this2$searchRef$curr;
|
|
562
|
-
|
|
563
|
-
(_this2$searchRef$curr = _this2.searchRef.current) === null || _this2$searchRef$curr === void 0 ? void 0 : _this2$searchRef$curr.resetFields();
|
|
564
|
-
},
|
|
565
|
-
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
566
|
-
type: iconType.refresh
|
|
567
|
-
})
|
|
568
|
-
}, "\u91CD\u7F6E"), searchForms.length > 3 && /*#__PURE__*/React.createElement("a", {
|
|
569
|
-
className: styles.a_style,
|
|
570
|
-
onClick: function onClick() {
|
|
571
|
-
var expand = _this2.state.expand;
|
|
572
|
-
|
|
573
|
-
_this2.setState({
|
|
574
|
-
expand: !expand
|
|
575
|
-
});
|
|
576
|
-
}
|
|
577
|
-
}, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null)))), showToolButton && /*#__PURE__*/React.createElement("div", {
|
|
578
|
-
className: styles["buttons"],
|
|
579
|
-
style: {
|
|
580
|
-
marginLeft: 0
|
|
581
|
-
}
|
|
582
|
-
}, showAddButton && editorForm == true && /*#__PURE__*/React.createElement(Button, {
|
|
583
|
-
type: "primary",
|
|
584
|
-
onClick: this.showForm.bind(this),
|
|
585
|
-
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
586
|
-
type: iconType.add
|
|
587
|
-
})
|
|
588
|
-
}, "\u6DFB\u52A0"), showDeleteButton && editorForm == true && /*#__PURE__*/React.createElement(Button // type={"primary"}
|
|
589
|
-
, {
|
|
590
|
-
onClick: this.onDelete.bind(this),
|
|
591
|
-
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
592
|
-
type: iconType.delete3
|
|
593
|
-
}),
|
|
594
|
-
danger: true
|
|
595
|
-
}, "\u5220\u9664"), Buttons.map(function (item, index) {
|
|
596
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
597
|
-
key: index
|
|
598
|
-
}, item);
|
|
599
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
600
|
-
className: styles["table"]
|
|
601
|
-
}, /*#__PURE__*/React.createElement(Table, _extends({
|
|
602
|
-
ref: this.tableRef,
|
|
603
|
-
columns: tableColumn
|
|
604
|
-
}, tableParams)))), editorForm && /*#__PURE__*/React.createElement(EditorForm, {
|
|
605
|
-
ref: this.editorRef,
|
|
606
|
-
onCancel: this.showForm.bind(this),
|
|
607
|
-
callBack: this.tableReload.bind(this),
|
|
608
|
-
formProps: editorForms,
|
|
609
|
-
submitUrl: submitUrl,
|
|
610
|
-
submitParams: submitParams,
|
|
611
|
-
onSubmit: this.props.onSubmit
|
|
612
|
-
}));
|
|
613
|
-
}
|
|
614
|
-
}]);
|
|
615
|
-
|
|
616
|
-
return BasePage;
|
|
617
|
-
}(PureComponent);
|
|
618
|
-
|
|
619
|
-
export default BasePage;
|
|
620
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJGb3JtIiwiQnV0dG9uIiwiTW9kYWwiLCJQb3BvdmVyIiwibWVzc2FnZSIsIkljb24iLCJpY29uVHlwZSIsIkVkaXRvckZvcm0iLCJjbHMiLCJzdHlsZXMiLCJEb3duT3V0bGluZWQiLCJVcE91dGxpbmVkIiwiZ2V0Tm9kZSIsInJlcXVlc3QiLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJ0YWJsZUxvYWQiLCJ0eXBlIiwic2VsZWN0ZWRSb3dLZXlzIiwidHJlZVNlbGVjdGVkS2V5IiwiZXhwYW5kIiwiZmxhZyIsImVkaXRvclJlZiIsImN1cnJlbnQiLCJzaG93IiwiZGVsZXRlVXJsIiwib25EZWxldGUiLCJkZWxldGVQYXJhbXMiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwidGl0bGUiLCJva1RleHQiLCJjYW5jZWxUZXh0Iiwib25PayIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJwYXJhbXMiLCJpZHMiLCJqb2luIiwicmVxdWVzdFBhcmFtcyIsInRoZW4iLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwidGFibGVSZWYiLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaCIsImZyb21WYWx1ZSIsInNlYXJjaFJlZiIsImdldEZpZWxkc1ZhbHVlIiwicmVsb2FkIiwicmVjb3JkIiwic2VsZWN0ZWQiLCJuZXdTZWxlY3RlZFJvd0tleXMiLCJpZCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInNwbGljZSIsInNldFN0YXRlIiwic2VsZWN0ZWRSb3dzIiwiY2hhbmdlUm93cyIsIm5ld2lkcyIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwiY29sdW1uQnV0dG9ucyIsImFjdGlvbkJ1dHRvbiIsImVkaXRvckZvcm0iLCJjb250ZW50IiwiY2hpbGRyZW4iLCJwYWdlVHlwZSIsIm9uQ2xpY2siLCJudW0iLCJzZWxlY3RlZEtleXMiLCJzZWxlY3RlZE5vZGVzIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwiaXNMZWFmIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsImNvbHVtbnMiLCJzaG93U2VhcmNoIiwic3VibWl0VXJsIiwidGFibGVQcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJzaG93QWRkQnV0dG9uIiwic2hvd0RlbGV0ZUJ1dHRvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGl0bGVBbGlhcyIsInRhYmxlUGFyYW1zIiwicm93U2VsZWN0aW9uIiwib25TZWxlY3QiLCJyb3dTZWxlY3Rpb25PblNlbGVjdCIsImJpbmQiLCJvblNlbGVjdEFsbCIsInJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsIiwiY29sdW1uV2lkdGgiLCJ0YWJsZUNvbHVtbiIsInNlYXJjaEZvcm1zIiwiZWRpdG9yRm9ybXMiLCJ0ZW1wIiwic2VhcmNoIiwiZmllbGQiLCJkYXRhSW5kZXgiLCJsYWJlbCIsImVkaXRvciIsInJ1bGVzIiwic3BhbiIsImRpY3ROYW1lIiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJCdXR0b25zIiwiQXJyYXkiLCJpc0FycmF5IiwiYWxpZ24iLCJ3aWR0aCIsInJlbmRlciIsInRleHQiLCJzaG93Rm9ybSIsInJlbmRlckNsb3VtbkJ1dHRvbiIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0IiwicGxhY2Vob2xkZXIiLCJtYXJnaW5Ub3AiLCJyZXNldEZpZWxkcyIsInJlZnJlc2giLCJhX3N0eWxlIiwibWFyZ2luTGVmdCIsImFkZCIsImRlbGV0ZTMiLCJ0YWJsZVJlbG9hZCIsIm9uU3VibWl0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLGFBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixZQUFqQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsWUFBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixhQUFsQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsZUFBcEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGVBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQix1QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFFQSxTQUFTQyxZQUFULEVBQXVCQyxVQUF2QixRQUF5QyxtQkFBekM7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGFBQXhCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixhQUFwQjs7SUFxQ01DLFE7Ozs7O0FBTUosb0JBQVlDLEtBQVosRUFBd0I7QUFBQTs7QUFBQTs7QUFDdEIsOEJBQU1BLEtBQU47O0FBRHNCLDRFQUxibkIsS0FBSyxDQUFDb0IsU0FBTixFQUthOztBQUFBLDJFQUpkcEIsS0FBSyxDQUFDb0IsU0FBTixFQUljOztBQUFBLDZFQUhacEIsS0FBSyxDQUFDb0IsU0FBTixFQUdZOztBQUFBLDZFQUZacEIsS0FBSyxDQUFDb0IsU0FBTixFQUVZOztBQUFBLCtEQVNiLFVBQUNDLGVBQUQsRUFBMEI7QUFDbkMsd0JBQW9DLE1BQUtDLEtBQXpDO0FBQUEsVUFBUUMsSUFBUixlQUFRQSxJQUFS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QU0sVUFBQSxJQUFJLEVBQUUvRyxRQUFRLENBQUNtSjtBQUFyQixVQUhSO0FBSUUsUUFBQSxNQUFNO0FBSlIsd0JBWEosRUFvQkdsQixPQUFPLENBQUNqRSxHQUFSLENBQVksVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQ3RDLDRCQUFPO0FBQUssVUFBQSxHQUFHLEVBQUVBO0FBQVYsV0FBa0JELElBQWxCLENBQVA7QUFDRCxPQUZBLENBcEJILENBL0RKLGVBd0ZFO0FBQUssUUFBQSxTQUFTLEVBQUU5RCxNQUFNLENBQUMsT0FBRDtBQUF0QixzQkFDRSxvQkFBQyxLQUFEO0FBQU8sUUFBQSxHQUFHLEVBQUUsS0FBS2lELFFBQWpCO0FBQTJCLFFBQUEsT0FBTyxFQUFFK0Q7QUFBcEMsU0FBcURSLFdBQXJELEVBREYsQ0F4RkYsQ0FkRixFQTBHRzlCLFVBQVUsaUJBQ1Qsb0JBQUMsVUFBRDtBQUNFLFFBQUEsR0FBRyxFQUFFLEtBQUtyRCxTQURaO0FBRUUsUUFBQSxRQUFRLEVBQUUsS0FBS2dILFFBQUwsQ0FBY3pCLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWjtBQUdFLFFBQUEsUUFBUSxFQUFFLEtBQUtxQyxXQUFMLENBQWlCckMsSUFBakIsQ0FBc0IsSUFBdEIsQ0FIWjtBQUlFLFFBQUEsU0FBUyxFQUFFTSxXQUpiO0FBS0UsUUFBQSxTQUFTLEVBQUV2QixTQUxiO0FBTUUsUUFBQSxZQUFZLEVBQUVHLFlBTmhCO0FBT0UsUUFBQSxRQUFRLEVBQUUsS0FBS3hGLEtBQUwsQ0FBVzRJO0FBUHZCLFFBM0dKLENBREY7QUF3SEQ7Ozs7RUFoZG9COUosYTs7QUFrZHZCLGVBQWVpQixRQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9tb2RhbFwiO1xyXG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwiLi4vLi4vcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vY29tbW9uL0ljb25Gb250XCI7XHJcbmltcG9ydCB7IGljb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgRWRpdG9yRm9ybSBmcm9tIFwiLi9Gb3JtXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IERvd25PdXRsaW5lZCwgVXBPdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBCdXR0b25Qcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmludGVyZmFjZSBUYWJsZVByb3BzIHtcclxuICBhY3Rpb25Db2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm6buY6K6k5pi+56S65paw5aKe77yM57yW6L6R6buY6K6k5oyJ6ZKuXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbn1cclxuaW50ZXJmYWNlIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaQnOe0ouahhlxyXG4gIHNlYXJjaEtleT86IHN0cmluZzsgLy/mkJzntKJ2YWx1ZeWvueW6lOeahGtleVxyXG4gIHNlYXJjaEZpZWxkPzogc3RyaW5nOyAvL+afpeivouWvueW6lOeahGtleVxyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7IC8v5qCRdGl0bGXlr7nlupTnmoRrZXks6buY6K6kdGl0bGVcclxuICBub2RlUG9ycHM/OiBvYmplY3Q7XHJcbn1cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIHN1Ym1pdFVybD86IHN0cmluZztcclxuICBvblN1Ym1pdD86IGFueTtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgc2hvd0FkZEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65re75Yqg5oyJ6ZKuXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgc2hvd0RlbGV0ZUJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65Yig6Zmk5oyJ6ZKuXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogYW55OyAvL+WIoOmZpOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2lkc+aLvOaOpeS8oOmAkue7meWQjuWPsFxyXG4gIGRlbGV0ZVBhcmFtcz86IE9iamVjdDtcclxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBvblNlYXJjaD86IGFueTtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGZsYWcgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBmbGFnKTtcclxuICB9XHJcbiAgLy/mibnph4/liKDpmaRcclxuICBvbkRlbGV0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGVsZXRlVXJsLCBvbkRlbGV0ZSwgZGVsZXRlUGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIG1lc3NhZ2Uud2FybmluZyhcIuivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNru+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG9uRGVsZXRlKSB7XHJcbiAgICAgIG9uRGVsZXRlICYmIG9uRGVsZXRlKHNlbGVjdGVkUm93S2V5cyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgIH1cclxuICAgIE1vZGFsLmNvbmZpcm0oe1xyXG4gICAgICB0aXRsZTogXCLmmK/lkKbnoa7orqTliKDpmaTmiYDpgInpobnvvJ9cIixcclxuICAgICAgLy8gaWNvbjogPEljb24gdHlwZT17J2ljb250aXNoaS0zJ30gLz4sXHJcbiAgICAgIG9rVGV4dDogXCLnoa7orqRcIixcclxuICAgICAgY2FuY2VsVGV4dDogXCLlj5bmtohcIixcclxuICAgICAgb25PazogKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7XHJcbiAgICAgICAgICBtZXRob2Q6IFwicG9zdFwiLFxyXG4gICAgICAgICAgcGFyYW1zOiB7IGlkczogc2VsZWN0ZWRSb3dLZXlzLmpvaW4oKSB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHJlcXVlc3RQYXJhbXMgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbXMpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlbGV0ZVBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWZhdWx0UGFyYW1zIH07XHJcbiAgICAgICAgcmVxdWVzdChkZWxldGVVcmwsIHtcclxuICAgICAgICAgIC4uLnJlcXVlc3RQYXJhbXMsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn++8gVwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5Yig6Zmk5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdGFibGVMb2FkKHBhcmFtczogYW55KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoe1xyXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+afpeivolxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goZnJvbVZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2FkKGZyb21WYWx1ZSk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQoKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCgpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWxlY3RlZFJvd0tleXM7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdChyZWNvcmQ6IGFueSwgc2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLnNlbGVjdGVkUm93S2V5c107XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLm5ld1NlbGVjdGVkUm93S2V5cywgcmVjb3JkLmlkXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtID09PSByZWNvcmQuaWQpIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93S2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBuZXdTZWxlY3RlZFJvd0tleXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcm93U2VsZWN0aW9uT25TZWxlY3RBbGwoc2VsZWN0ZWQ6IGFueSwgc2VsZWN0ZWRSb3dzOiBhbnksIGNoYW5nZVJvd3M6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgbmV3aWRzOiBhbnkgPSBbXTtcclxuICAgIGlmIChjaGFuZ2VSb3dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGNoYW5nZUlkcyA9IGNoYW5nZVJvd3MubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzLCAuLi5jaGFuZ2VJZHNdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2lkcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFsuLi5uZXdpZHNdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnksIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IHsgZWRpdG9yRm9ybSA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBjb250ZW50ID0gY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcImVkaXRvclwiXSwgc3R5bGVzW1wiY29udGVudC1pdGVtXCJdKX1cclxuICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICBsZXQgbnVtID0gMTtcclxuICAgIGlmICghYWN0aW9uQnV0dG9uIHx8ICFlZGl0b3JGb3JtKSBudW0gPSAzO1xyXG4gICAgaWYgKGNvbHVtbkJ1dHRvbnMubGVuZ3RoID4gbnVtKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxyXG4gICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AnXX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfT5cclxuICAgICAgICAgICAg5pu05aSaXHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzW1wiaWNvblwiXX0+XHJcbiAgICAgICAgICAgICAgPERvd25PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBJY29uLCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0b3JcIl19XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge0ljb259IHtjaGlsZHJlbn1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL+agkeeCueWHu+S6i+S7tlxyXG4gIHRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzOiBhbnksIHsgc2VsZWN0ZWQsIHNlbGVjdGVkTm9kZXMgfTogYW55KSB7XHJcbiAgICBsZXQga2V5d29yZCA9IFwiXCI7XHJcbiAgICBjb25zdCB7IHNlYXJjaEtleSA9IFwia2V5XCIsIHNlYXJjaEZpZWxkID0gXCJcIiB9ID0gdGhpcy5wcm9wcy50cmVlUHJvcHM7XHJcbiAgICBjb25zdCB7IHRyZWVTZWxlY3RlZEtleSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBpZiAoc2VsZWN0ZWROb2Rlc1swXS5pc0xlYWYgfHwgIXNlbGVjdGVkTm9kZXNbMF0uY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRLZXlzWzBdICE9PSB0cmVlU2VsZWN0ZWRLZXkpIHtcclxuICAgICAgICAgIC8vIGxldCBtYXBEYXRhID0gdGhpcy50cmVlUmVmLmN1cnJlbnQ/LnN0b3JlLmdldEZsYXR0ZW5EYXRhKCk7XHJcbiAgICAgICAgICBrZXl3b3JkID0gc2VsZWN0ZWROb2Rlc1swXS5kYXRhcmVmLmF0dHJpYnV0ZVtzZWFyY2hLZXldO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IGtleXdvcmQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMubG9hZCh7IC4uLmZyb21WYWx1ZSwgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9KTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc29sZS5sb2coXCJzdHlsZXNcIiwgc3R5bGVzKTtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgc2hvd0xlZnQgPSBmYWxzZSxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIHNob3dUb29sQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgc2hvd0FkZEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIHNob3dEZWxldGVCdXR0b24gPSB0cnVlLFxyXG4gICAgICBlZGl0b3JGb3JtID0gdHJ1ZSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBmaWx0ZXJDb2x1bW4gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25CdXR0b24gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25Db2x1bW4gPSB0cnVlLFxyXG4gICAgICBzaG93Um93U2VsZWN0aW9uID0gdHJ1ZSxcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlIH0gYXMgYW55O1xyXG5cclxuICAgIGlmIChzaG93Um93U2VsZWN0aW9uKSB7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHJvd1NlbGVjdGlvbjoge1xyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3RlZFJvd0tleXMsXHJcbiAgICAgICAgICBvblNlbGVjdDogdGhpcy5yb3dTZWxlY3Rpb25PblNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgb25TZWxlY3RBbGw6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3RBbGwuYmluZCh0aGlzKSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoOiA0MCxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGFibGVDb2x1bW46IGFueVtdID0gW107XHJcbiAgICBjb25zdCBzZWFyY2hGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBlZGl0b3JGb3JtczogYW55ID0gW107XHJcbiAgICBjb2x1bW5zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICh0ZW1wLnNlYXJjaCkge1xyXG4gICAgICAgIHNlYXJjaEZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICB9KTtcclxuICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNwYW47XHJcbiAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnR5cGU7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnByb3BzO1xyXG4gICAgICB0YWJsZUNvbHVtbi5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBCdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGNvbHVtbkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0ucHJvcHMucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgIEJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ucHJvcHMucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgIEJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFjdGlvbkNvbHVtbiAmJlxyXG4gICAgICB0YWJsZUNvbHVtbi5wdXNoKHtcclxuICAgICAgICB0aXRsZTogXCLmk43kvZxcIixcclxuICAgICAgICBkYXRhSW5kZXg6IFwiYWN0aW9uXCIsXHJcbiAgICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnksIHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiYWN0aW9uXCJdfT5cclxuICAgICAgICAgICAgICB7YWN0aW9uQnV0dG9uICYmIGVkaXRvckZvcm0gPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0b3JcIl19XHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5zaG93Rm9ybS5iaW5kKHRoaXMsIHJlY29yZCwgZmFsc2UpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg5p+l55yLXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0b3JcIl19XHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5zaG93Rm9ybS5iaW5kKHRoaXMsIHJlY29yZCwgdHJ1ZSl9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICDnvJbovpFcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zLCByZWNvcmQsIGFjdGlvbkJ1dHRvbil9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wicGFnZVwiXX0gc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XHJcbiAgICAgICAge3Nob3dMZWZ0ICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJsZWZ0XCJdfT5cclxuICAgICAgICAgICAgPFRyZWVcclxuICAgICAgICAgICAgICBzdG9yZT17eyAuLi50cmVlU3RvcmUgfX1cclxuICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgY2hlY2thYmxlPXtmYWxzZX1cclxuICAgICAgICAgICAgICBzZWFyY2hhYmxlPXt0cmVlU2VhcmNofVxyXG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICBzZWxlY3RlZEtleXM9e1t0aGlzLnN0YXRlLnRyZWVTZWxlY3RlZEtleV19XHJcbiAgICAgICAgICAgICAgdGl0bGVBbGlhcz17dGl0bGVBbGlhc31cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInJpZ2h0XCJdfT5cclxuICAgICAgICAgIHtzaG93U2VhcmNoICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImhlYWRlclwiXX0+XHJcbiAgICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgICBsYWJlbENvbD17e319XHJcbiAgICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgIGxheW91dD1cImlubGluZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDIgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtpdGVtLm5hbWV9XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiYnV0dG9uc1wiXX0gc3R5bGU9e3sgbWFyZ2luVG9wOiAwIH19PlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5zZWFyY2h9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLnJlZnJlc2h9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmFfc3R5bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBleHBhbmQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kOiAhZXhwYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX0+XHJcbiAgICAgICAgICAgICAge3Nob3dBZGRCdXR0b24gJiYgZWRpdG9yRm9ybSA9PSB0cnVlICYmIChcclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuYWRkfSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5re75YqgXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIHtzaG93RGVsZXRlQnV0dG9uICYmIGVkaXRvckZvcm0gPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmRlbGV0ZTN9IC8+fVxyXG4gICAgICAgICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIHtCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ0YWJsZVwiXX0+XHJcbiAgICAgICAgICAgIDxUYWJsZSByZWY9e3RoaXMudGFibGVSZWZ9IGNvbHVtbnM9e3RhYmxlQ29sdW1ufSB7Li4udGFibGVQYXJhbXN9IC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICA8RWRpdG9yRm9ybVxyXG4gICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5zaG93Rm9ybS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBjYWxsQmFjaz17dGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBmb3JtUHJvcHM9e2VkaXRvckZvcm1zfVxyXG4gICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAgIG9uU3VibWl0PXt0aGlzLnByb3BzLm9uU3VibWl0fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
|