nsc-react-component 2.0.15 → 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 +0 -0
- 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 -340
- 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 -244
- package/lib/pageComponents/BasePage/index.js +0 -658
- package/lib/radio/RadioGroup.js +0 -378
- package/lib/select/index.js +0 -529
- package/lib/table/index.js +0 -756
- package/lib/tagSelect/TagSelect.js +0 -268
- package/lib/tagSelect/index.js +0 -188
- package/lib/tree/TreeSearch.js +0 -274
- package/lib/tree/index.js +0 -293
package/lib/table/index.js
DELETED
|
@@ -1,756 +0,0 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
2
|
-
|
|
3
|
-
import "antd/es/table/style/css";
|
|
4
|
-
import _Table from "antd/es/table";
|
|
5
|
-
import "antd/es/space/style/css";
|
|
6
|
-
import _Space from "antd/es/space";
|
|
7
|
-
import "antd/es/button/style/css";
|
|
8
|
-
import _Button from "antd/es/button";
|
|
9
|
-
import "antd/es/popover/style/css";
|
|
10
|
-
import _Popover from "antd/es/popover";
|
|
11
|
-
import "antd/es/tooltip/style/css";
|
|
12
|
-
import _Tooltip from "antd/es/tooltip";
|
|
13
|
-
import "antd/es/checkbox/style/css";
|
|
14
|
-
import _Checkbox from "antd/es/checkbox";
|
|
15
|
-
var _excluded = ["onResize", "width"],
|
|
16
|
-
_excluded2 = ["listeners"];
|
|
17
|
-
|
|
18
|
-
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); }
|
|
19
|
-
|
|
20
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
-
|
|
22
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
-
|
|
24
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
25
|
-
|
|
26
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
|
-
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; }
|
|
31
|
-
|
|
32
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
33
|
-
|
|
34
|
-
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."); }
|
|
35
|
-
|
|
36
|
-
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); }
|
|
37
|
-
|
|
38
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
39
|
-
|
|
40
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
41
|
-
|
|
42
|
-
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; }
|
|
43
|
-
|
|
44
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
45
|
-
|
|
46
|
-
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); } }
|
|
47
|
-
|
|
48
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
49
|
-
|
|
50
|
-
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); }
|
|
51
|
-
|
|
52
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
53
|
-
|
|
54
|
-
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); }; }
|
|
55
|
-
|
|
56
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
57
|
-
|
|
58
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
59
|
-
|
|
60
|
-
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; } }
|
|
61
|
-
|
|
62
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
63
|
-
|
|
64
|
-
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; }
|
|
65
|
-
|
|
66
|
-
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; }
|
|
67
|
-
|
|
68
|
-
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; }
|
|
69
|
-
|
|
70
|
-
/*
|
|
71
|
-
* @Descripttion:
|
|
72
|
-
* @version:
|
|
73
|
-
* @Author: rxzhu
|
|
74
|
-
* @Date: 2021-03-23 08:46:20
|
|
75
|
-
* @LastEditors: rxzhu
|
|
76
|
-
* @LastEditTime: 2021-03-23 10:30:42
|
|
77
|
-
*/
|
|
78
|
-
import { AppstoreOutlined, CheckOutlined, SearchOutlined } from "@ant-design/icons";
|
|
79
|
-
import { isEmptyObj } from "@bj-nsc/functions";
|
|
80
|
-
import Store, { PageStore } from "@bj-nsc/msn";
|
|
81
|
-
import { utils } from "@bj-nsc/msn/lib/utils";
|
|
82
|
-
import * as React from "react";
|
|
83
|
-
import { DndProvider } from "react-dnd";
|
|
84
|
-
import BodyRow, { DndContextType, IBodyRowProps } from "../common/BodyRow";
|
|
85
|
-
import treeUtils from "../treeUtils";
|
|
86
|
-
import styles from "./index.module.less";
|
|
87
|
-
var BodyRowComponent = BodyRow.BodyRowComponent,
|
|
88
|
-
HTML5Backend = BodyRow.HTML5Backend;
|
|
89
|
-
import withZhLocale from "../common/withZhLocale";
|
|
90
|
-
import { NoData } from "..";
|
|
91
|
-
import { Resizable } from "react-resizable";
|
|
92
|
-
import "./resize.module.less";
|
|
93
|
-
import { getNode } from "../utils";
|
|
94
|
-
export { DndContextType, IBodyRowProps };
|
|
95
|
-
|
|
96
|
-
var ResizeableTitle = function ResizeableTitle(props) {
|
|
97
|
-
var onResize = props.onResize,
|
|
98
|
-
width = props.width,
|
|
99
|
-
restProps = _objectWithoutProperties(props, _excluded);
|
|
100
|
-
|
|
101
|
-
return /*#__PURE__*/React.createElement(Resizable, {
|
|
102
|
-
width: width || 150,
|
|
103
|
-
height: 0,
|
|
104
|
-
onResize: onResize,
|
|
105
|
-
draggableOpts: {
|
|
106
|
-
enableUserSelectHack: false
|
|
107
|
-
}
|
|
108
|
-
}, /*#__PURE__*/React.createElement("th", restProps));
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
var NSCTable = /*#__PURE__*/function (_React$Component) {
|
|
112
|
-
_inherits(NSCTable, _React$Component);
|
|
113
|
-
|
|
114
|
-
var _super = _createSuper(NSCTable);
|
|
115
|
-
|
|
116
|
-
function NSCTable(props) {
|
|
117
|
-
var _this2;
|
|
118
|
-
|
|
119
|
-
_classCallCheck(this, NSCTable);
|
|
120
|
-
|
|
121
|
-
_this2 = _super.call(this, props);
|
|
122
|
-
|
|
123
|
-
_defineProperty(_assertThisInitialized(_this2), "store", {});
|
|
124
|
-
|
|
125
|
-
_defineProperty(_assertThisInitialized(_this2), "thIconRef", /*#__PURE__*/React.createRef());
|
|
126
|
-
|
|
127
|
-
_defineProperty(_assertThisInitialized(_this2), "tableSearchRef", /*#__PURE__*/React.createRef());
|
|
128
|
-
|
|
129
|
-
_defineProperty(_assertThisInitialized(_this2), "state", {
|
|
130
|
-
dataSource: [],
|
|
131
|
-
columns: [],
|
|
132
|
-
loading: false,
|
|
133
|
-
pagination: {},
|
|
134
|
-
activeIndex: -1,
|
|
135
|
-
//搜索文本
|
|
136
|
-
searchText: null,
|
|
137
|
-
fieldOption: null,
|
|
138
|
-
searchColor: null,
|
|
139
|
-
cols: [],
|
|
140
|
-
sorts: [],
|
|
141
|
-
filterParams: {},
|
|
142
|
-
tableSize: "middle",
|
|
143
|
-
sortType: "sigle"
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
_defineProperty(_assertThisInitialized(_this2), "listeners", {
|
|
147
|
-
onBeforeLoad: null,
|
|
148
|
-
load: null
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
_defineProperty(_assertThisInitialized(_this2), "components", {
|
|
152
|
-
header: {
|
|
153
|
-
cell: ResizeableTitle
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
_defineProperty(_assertThisInitialized(_this2), "handleResize", function (index) {
|
|
158
|
-
return function (e, _ref) {
|
|
159
|
-
var size = _ref.size;
|
|
160
|
-
var cols = _this2.state.cols;
|
|
161
|
-
|
|
162
|
-
var nextColumns = _toConsumableArray(cols);
|
|
163
|
-
|
|
164
|
-
nextColumns[index] = _objectSpread(_objectSpread({}, nextColumns[index]), {}, {
|
|
165
|
-
width: size.width
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
_this2.setState({
|
|
169
|
-
cols: nextColumns
|
|
170
|
-
});
|
|
171
|
-
};
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
_defineProperty(_assertThisInitialized(_this2), "moveRow", function (dragIndex, hoverIndex, drag, target) {
|
|
175
|
-
var _this = _assertThisInitialized(_this2);
|
|
176
|
-
|
|
177
|
-
var dragNode = drag.record;
|
|
178
|
-
var targetNode = target.record;
|
|
179
|
-
dragNode.moveArray(dragNode, targetNode);
|
|
180
|
-
var ids = dragNode.parentNode.getChildNodeIds();
|
|
181
|
-
var params = {
|
|
182
|
-
id: dragNode.id,
|
|
183
|
-
parentId: dragNode.attribute.parentId,
|
|
184
|
-
ids: ids
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
if (_this2.props.moveRow) {
|
|
188
|
-
_this2.props.moveRow(params);
|
|
189
|
-
} else {
|
|
190
|
-
_this2.store.reload();
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
if (props.store instanceof Store) {
|
|
195
|
-
_this2.store = props.store;
|
|
196
|
-
} else {
|
|
197
|
-
var _ref2 = props.store || {},
|
|
198
|
-
_ref2$listeners = _ref2.listeners,
|
|
199
|
-
listenersProps = _ref2$listeners === void 0 ? {} : _ref2$listeners,
|
|
200
|
-
restStore = _objectWithoutProperties(_ref2, _excluded2);
|
|
201
|
-
|
|
202
|
-
var storeProps = _objectSpread(_objectSpread({
|
|
203
|
-
model: "model",
|
|
204
|
-
component: _assertThisInitialized(_this2),
|
|
205
|
-
listeners: {
|
|
206
|
-
onBeforeLoad: function onBeforeLoad(store, options) {
|
|
207
|
-
_this2.setState({
|
|
208
|
-
loading: true
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
utils.callback(listenersProps.onBeforeLoad, _assertThisInitialized(_this2), [store, options]);
|
|
212
|
-
},
|
|
213
|
-
dataChanged: function dataChanged(data, modelData, store) {
|
|
214
|
-
var paging = !(_this2.props.pagination === false);
|
|
215
|
-
|
|
216
|
-
if (paging && !_this2.props.dataSource) {
|
|
217
|
-
_this2.setState({
|
|
218
|
-
dataSource: modelData,
|
|
219
|
-
pagination: store.getPagination(),
|
|
220
|
-
loading: false,
|
|
221
|
-
activeIndex: -1
|
|
222
|
-
});
|
|
223
|
-
} else {
|
|
224
|
-
_this2.setState({
|
|
225
|
-
dataSource: modelData,
|
|
226
|
-
loading: false
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
utils.callback(listenersProps.dataChanged, _assertThisInitialized(_this2), [data, modelData, store, paging]);
|
|
231
|
-
},
|
|
232
|
-
load: function load(data, modelData, store) {
|
|
233
|
-
utils.callback(listenersProps.load, _assertThisInitialized(_this2), [data, modelData, store]);
|
|
234
|
-
},
|
|
235
|
-
onErrorLoad: function onErrorLoad(err, response) {
|
|
236
|
-
_this2.setState({
|
|
237
|
-
loading: false
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
utils.callback(listenersProps.onErrorLoad, _assertThisInitialized(_this2), [err, response]);
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
data: restStore.data ? restStore.data : props.dataSource ? props.dataSource : null
|
|
244
|
-
}, restStore), {}, {
|
|
245
|
-
autoLoad: restStore.autoLoad === false ? false : true
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
_this2.store = new PageStore(Object.assign({}, storeProps, {
|
|
249
|
-
pagination: _objectSpread({
|
|
250
|
-
current: 1
|
|
251
|
-
}, _this2.props.pagination)
|
|
252
|
-
}));
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
return _this2;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
_createClass(NSCTable, [{
|
|
259
|
-
key: "componentDidMount",
|
|
260
|
-
value: function componentDidMount() {
|
|
261
|
-
var resizeColumn = this.props.resizeColumn;
|
|
262
|
-
|
|
263
|
-
if (!resizeColumn) {
|
|
264
|
-
this.setState({
|
|
265
|
-
columns: _toConsumableArray(this.props.columns)
|
|
266
|
-
});
|
|
267
|
-
} else {
|
|
268
|
-
this.setState({
|
|
269
|
-
cols: _toConsumableArray(this.props.columns)
|
|
270
|
-
}); // this.resetColumn();
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
var store = this.props.store;
|
|
274
|
-
|
|
275
|
-
if (store && store.data) {
|
|
276
|
-
this.store.setData(store.data);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}, {
|
|
280
|
-
key: "componentDidUpdate",
|
|
281
|
-
value: function componentDidUpdate(prevProps, preState) {
|
|
282
|
-
var resizeColumn = this.props.resizeColumn;
|
|
283
|
-
|
|
284
|
-
if (!resizeColumn) {
|
|
285
|
-
if (this.props.columns !== prevProps.columns) {
|
|
286
|
-
this.setState({
|
|
287
|
-
columns: this.props.columns
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
} else {
|
|
291
|
-
if (preState.cols !== this.state.cols) {
|
|
292
|
-
this.resetColumn();
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}, {
|
|
297
|
-
key: "resetColumn",
|
|
298
|
-
value: function resetColumn() {
|
|
299
|
-
var _this3 = this;
|
|
300
|
-
|
|
301
|
-
var cols = this.state.cols;
|
|
302
|
-
var newCols = [];
|
|
303
|
-
var colss = cols || [];
|
|
304
|
-
colss.map(function (col, index) {
|
|
305
|
-
var temp = _objectSpread(_objectSpread({}, col), {}, {
|
|
306
|
-
onHeaderCell: function onHeaderCell(column) {
|
|
307
|
-
return {
|
|
308
|
-
width: column.width,
|
|
309
|
-
onResize: _this3.handleResize(index)
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
|
|
314
|
-
newCols.push(temp);
|
|
315
|
-
});
|
|
316
|
-
this.setState({
|
|
317
|
-
columns: newCols
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* 清除选中颜色
|
|
322
|
-
*/
|
|
323
|
-
|
|
324
|
-
}, {
|
|
325
|
-
key: "clearSelectColor",
|
|
326
|
-
value: function clearSelectColor() {
|
|
327
|
-
this.setState({
|
|
328
|
-
activeIndex: -1
|
|
329
|
-
});
|
|
330
|
-
return this;
|
|
331
|
-
}
|
|
332
|
-
}, {
|
|
333
|
-
key: "getPaginationByStore",
|
|
334
|
-
value: function getPaginationByStore() {
|
|
335
|
-
return this.store.getPagination();
|
|
336
|
-
}
|
|
337
|
-
}, {
|
|
338
|
-
key: "onChange",
|
|
339
|
-
value: function onChange(pagination, filters, sorter, extra) {
|
|
340
|
-
var _this4 = this;
|
|
341
|
-
|
|
342
|
-
console.log("sorter", sorter);
|
|
343
|
-
var _this$props = this.props,
|
|
344
|
-
autoOnChange = _this$props.autoOnChange,
|
|
345
|
-
autoSort = _this$props.autoSort,
|
|
346
|
-
autoPagination = _this$props.autoPagination,
|
|
347
|
-
onChange = _this$props.onChange;
|
|
348
|
-
console.log("autoSort", autoSort);
|
|
349
|
-
console.log("autoPagination", autoPagination);
|
|
350
|
-
var filterParams = this.state.filterParams;
|
|
351
|
-
|
|
352
|
-
if (autoOnChange === false) {
|
|
353
|
-
onChange && onChange(pagination, filters, sorter, extra);
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
var handlePagination = function handlePagination() {
|
|
358
|
-
var params = {};
|
|
359
|
-
var paging = _this4.getPaginationByStore() || {};
|
|
360
|
-
|
|
361
|
-
if (!isEmptyObj(pagination)) {
|
|
362
|
-
var _p;
|
|
363
|
-
|
|
364
|
-
var p = (_p = {}, _defineProperty(_p, paging.currentKey || "current", pagination.current), _defineProperty(_p, paging.pageSizeKey || "size", pagination.pageSize), _p);
|
|
365
|
-
Object.assign(params, p);
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (autoSort === true && !isEmptyObj(sorter)) {
|
|
369
|
-
if (sorter.order == "ascend") {
|
|
370
|
-
params.ascs = sorter.column.sortField || sorter.column.field || sorter.field;
|
|
371
|
-
params.descs = "";
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
if (sorter.order == "descend") {
|
|
375
|
-
params.descs = sorter.column.sortField || sorter.column.field || sorter.field;
|
|
376
|
-
params.ascs = "";
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
params = _objectSpread(_objectSpread({}, filterParams), params);
|
|
381
|
-
|
|
382
|
-
_this4.store.reload({
|
|
383
|
-
params: params
|
|
384
|
-
});
|
|
385
|
-
};
|
|
386
|
-
|
|
387
|
-
var onChangeFn = this.props.onChange; // 用户传了onChange保留用户自主处理表格变化的权力
|
|
388
|
-
|
|
389
|
-
if (onChangeFn) {
|
|
390
|
-
utils.callback(onChangeFn, this, [pagination, filters, sorter, extra]);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
if (this.props.autoPagination) {
|
|
394
|
-
handlePagination();
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}, {
|
|
398
|
-
key: "getStore",
|
|
399
|
-
value: function getStore() {
|
|
400
|
-
return this.store;
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* 获取数据模型对象
|
|
404
|
-
*/
|
|
405
|
-
|
|
406
|
-
}, {
|
|
407
|
-
key: "getModel",
|
|
408
|
-
value: function getModel() {
|
|
409
|
-
return this.store.getModel();
|
|
410
|
-
}
|
|
411
|
-
/**
|
|
412
|
-
* 菜单搜索过滤显示
|
|
413
|
-
* @param {String} val
|
|
414
|
-
*/
|
|
415
|
-
|
|
416
|
-
}, {
|
|
417
|
-
key: "handleSearch",
|
|
418
|
-
value: function handleSearch(val, fieldOption, searchColor) {
|
|
419
|
-
this.setState({
|
|
420
|
-
searchText: val,
|
|
421
|
-
fieldOption: fieldOption,
|
|
422
|
-
searchColor: searchColor
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* 模块列表移动排序
|
|
427
|
-
*/
|
|
428
|
-
|
|
429
|
-
}, {
|
|
430
|
-
key: "filterColumn",
|
|
431
|
-
value: function filterColumn(checkedValue) {
|
|
432
|
-
var filterColumns = this.props.columns.map(function (col) {
|
|
433
|
-
var newCol = _objectSpread({}, col);
|
|
434
|
-
|
|
435
|
-
if (checkedValue.includes(col.dataIndex)) {
|
|
436
|
-
newCol.initShow = true;
|
|
437
|
-
} else {
|
|
438
|
-
newCol.initShow = false;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
return newCol;
|
|
442
|
-
}); // this.setState({ columns: filterColumns });
|
|
443
|
-
|
|
444
|
-
var resizeColumn = this.props.resizeColumn;
|
|
445
|
-
|
|
446
|
-
if (!resizeColumn) {
|
|
447
|
-
this.setState({
|
|
448
|
-
columns: filterColumns
|
|
449
|
-
});
|
|
450
|
-
} else {
|
|
451
|
-
this.setState({
|
|
452
|
-
cols: filterColumns
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}, {
|
|
457
|
-
key: "getColumns",
|
|
458
|
-
value: function getColumns() {
|
|
459
|
-
var _this5 = this;
|
|
460
|
-
|
|
461
|
-
var _this = this;
|
|
462
|
-
|
|
463
|
-
var columns = this.state.columns;
|
|
464
|
-
var colLists = this.props.columns;
|
|
465
|
-
var defaultShowCols = columns.filter(function (cols) {
|
|
466
|
-
return cols.initShow !== false;
|
|
467
|
-
});
|
|
468
|
-
var content = /*#__PURE__*/React.createElement(_Checkbox.Group, {
|
|
469
|
-
onChange: this.filterColumn.bind(this),
|
|
470
|
-
options: colLists.map(function (col) {
|
|
471
|
-
return {
|
|
472
|
-
label: col.title,
|
|
473
|
-
value: col.dataIndex,
|
|
474
|
-
disabled: col.filterColumn === false
|
|
475
|
-
};
|
|
476
|
-
}),
|
|
477
|
-
defaultValue: defaultShowCols.map(function (col) {
|
|
478
|
-
return col.dataIndex;
|
|
479
|
-
})
|
|
480
|
-
});
|
|
481
|
-
var cols = defaultShowCols.map(function (col) {
|
|
482
|
-
if (col.ellipsis && !col.render) {
|
|
483
|
-
col.ellipsis = {
|
|
484
|
-
showTitle: false
|
|
485
|
-
};
|
|
486
|
-
|
|
487
|
-
col.render = function (text) {
|
|
488
|
-
return /*#__PURE__*/React.createElement(_Tooltip, {
|
|
489
|
-
placement: "topLeft",
|
|
490
|
-
title: text
|
|
491
|
-
}, text);
|
|
492
|
-
};
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
return col;
|
|
496
|
-
});
|
|
497
|
-
var IconAction = {
|
|
498
|
-
title: /*#__PURE__*/React.createElement("div", {
|
|
499
|
-
className: styles["th-icon"],
|
|
500
|
-
ref: this.thIconRef
|
|
501
|
-
}, /*#__PURE__*/React.createElement(_Popover, {
|
|
502
|
-
title: "\u9009\u62E9\u663E\u793A\u7684\u5217",
|
|
503
|
-
content: content,
|
|
504
|
-
placement: "bottomRight",
|
|
505
|
-
trigger: "click",
|
|
506
|
-
overlayStyle: {
|
|
507
|
-
minWidth: 410,
|
|
508
|
-
maxWidth: 450
|
|
509
|
-
},
|
|
510
|
-
getPopupContainer: function getPopupContainer() {
|
|
511
|
-
return _this5.thIconRef.current;
|
|
512
|
-
}
|
|
513
|
-
}, /*#__PURE__*/React.createElement(AppstoreOutlined, {
|
|
514
|
-
size: 24,
|
|
515
|
-
className: styles["app-store-icon"]
|
|
516
|
-
}))),
|
|
517
|
-
dataIndex: "icon-menu",
|
|
518
|
-
key: "icon-menu",
|
|
519
|
-
width: 50,
|
|
520
|
-
align: "center" // fixed: "right",
|
|
521
|
-
|
|
522
|
-
};
|
|
523
|
-
|
|
524
|
-
if (this.props.filterColumn) {
|
|
525
|
-
cols.push(IconAction);
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
cols.map(function (item, index) {
|
|
529
|
-
if (!isEmptyObj(item.filterProps)) {
|
|
530
|
-
var obj = _objectSpread({}, item);
|
|
531
|
-
|
|
532
|
-
var _item$filterProps = item.filterProps,
|
|
533
|
-
type = _item$filterProps.type,
|
|
534
|
-
props = _item$filterProps.props,
|
|
535
|
-
searchKey = _item$filterProps.searchKey;
|
|
536
|
-
var Div = null;
|
|
537
|
-
var text = item.title;
|
|
538
|
-
Div = getNode(type, _objectSpread(_objectSpread({}, props), {}, {
|
|
539
|
-
placeholder: "\u641C\u7D22".concat(text)
|
|
540
|
-
}));
|
|
541
|
-
obj = _objectSpread({
|
|
542
|
-
filterDropdown: function filterDropdown(_ref3) {
|
|
543
|
-
var setSelectedKeys = _ref3.setSelectedKeys,
|
|
544
|
-
selectedKeys = _ref3.selectedKeys,
|
|
545
|
-
confirm = _ref3.confirm,
|
|
546
|
-
clearFilters = _ref3.clearFilters;
|
|
547
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
548
|
-
className: styles["search"]
|
|
549
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
550
|
-
className: styles["space"]
|
|
551
|
-
}, Div), /*#__PURE__*/React.createElement(_Space, null, /*#__PURE__*/React.createElement(_Button, {
|
|
552
|
-
type: "primary",
|
|
553
|
-
onClick: function onClick() {
|
|
554
|
-
var _this5$tableSearchRef;
|
|
555
|
-
|
|
556
|
-
confirm();
|
|
557
|
-
var filterParams = _this5.state.filterParams;
|
|
558
|
-
|
|
559
|
-
var newFilterParams = _objectSpread({}, filterParams);
|
|
560
|
-
|
|
561
|
-
var key = item.field || item.dataIndex;
|
|
562
|
-
newFilterParams[key] = (_this5$tableSearchRef = _this5.tableSearchRef.current) === null || _this5$tableSearchRef === void 0 ? void 0 : _this5$tableSearchRef.getValue();
|
|
563
|
-
|
|
564
|
-
_this5.setState({
|
|
565
|
-
filterParams: _objectSpread({}, newFilterParams)
|
|
566
|
-
});
|
|
567
|
-
|
|
568
|
-
_this5.store.load({
|
|
569
|
-
params: _objectSpread({}, newFilterParams)
|
|
570
|
-
});
|
|
571
|
-
},
|
|
572
|
-
size: "small",
|
|
573
|
-
className: styles["button"]
|
|
574
|
-
}, "\u67E5\u8BE2")));
|
|
575
|
-
},
|
|
576
|
-
filterIcon: function filterIcon() {
|
|
577
|
-
return /*#__PURE__*/React.createElement(SearchOutlined, null);
|
|
578
|
-
}
|
|
579
|
-
}, obj);
|
|
580
|
-
cols[index] = obj;
|
|
581
|
-
}
|
|
582
|
-
});
|
|
583
|
-
return cols;
|
|
584
|
-
}
|
|
585
|
-
}, {
|
|
586
|
-
key: "render",
|
|
587
|
-
value: function render() {
|
|
588
|
-
var _this6 = this;
|
|
589
|
-
|
|
590
|
-
var _this = this,
|
|
591
|
-
_this$state = this.state,
|
|
592
|
-
loading = _this$state.loading,
|
|
593
|
-
dataSource = _this$state.dataSource,
|
|
594
|
-
_this$state$paginatio = _this$state.pagination,
|
|
595
|
-
pagination = _this$state$paginatio === void 0 ? {} : _this$state$paginatio,
|
|
596
|
-
searchText = _this$state.searchText,
|
|
597
|
-
fieldOption = _this$state.fieldOption,
|
|
598
|
-
searchColor = _this$state.searchColor,
|
|
599
|
-
tableSize = _this$state.tableSize,
|
|
600
|
-
props = utils.omit(this.props, ["store", "onChange", "columns", "resetColumn"], {
|
|
601
|
-
rowKey: "id",
|
|
602
|
-
clickChangeColor: false
|
|
603
|
-
});
|
|
604
|
-
|
|
605
|
-
if (props.pagination !== false) {
|
|
606
|
-
props.pagination = _objectSpread(_objectSpread({
|
|
607
|
-
position: ["bottomRight"],
|
|
608
|
-
showSizeChanger: true,
|
|
609
|
-
showQuickJumper: true
|
|
610
|
-
}, props.pagination), pagination);
|
|
611
|
-
|
|
612
|
-
if (props.showTotal == true) {
|
|
613
|
-
props.pagination.showTotal = function (total, _ref4) {
|
|
614
|
-
var _ref5 = _slicedToArray(_ref4, 2),
|
|
615
|
-
from = _ref5[0],
|
|
616
|
-
to = _ref5[1];
|
|
617
|
-
|
|
618
|
-
// return "显示 " + from + " - " + to + "条,共 " + total + " 条";
|
|
619
|
-
return "共 " + total + " 条";
|
|
620
|
-
};
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
props.onChange = function (pagination, filters, sorter, extra) {
|
|
625
|
-
_this.onChange(pagination, filters, sorter, extra);
|
|
626
|
-
};
|
|
627
|
-
|
|
628
|
-
if (props.clickChangeColor) {
|
|
629
|
-
var onRowFn = props.onRow;
|
|
630
|
-
|
|
631
|
-
props.onRow = function (record, index) {
|
|
632
|
-
var custom = onRowFn ? onRowFn(record, index) : {};
|
|
633
|
-
var onClickFn = custom.onClick;
|
|
634
|
-
|
|
635
|
-
custom.onClick = function (event) {
|
|
636
|
-
_this.setState({
|
|
637
|
-
activeIndex: index //获取点击行的索引
|
|
638
|
-
|
|
639
|
-
});
|
|
640
|
-
|
|
641
|
-
utils.callback(onClickFn, _this, [event]);
|
|
642
|
-
};
|
|
643
|
-
|
|
644
|
-
return custom;
|
|
645
|
-
};
|
|
646
|
-
|
|
647
|
-
props.rowClassName = function (record, index) {
|
|
648
|
-
return index === _this.state.activeIndex ? "".concat(styles.clickRowStyle) : "";
|
|
649
|
-
};
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
var newDataSource = [];
|
|
653
|
-
|
|
654
|
-
if (searchText) {
|
|
655
|
-
var data = treeUtils.getSearchMenuDatas(this, searchText, fieldOption, searchColor);
|
|
656
|
-
newDataSource = data.treeDatas;
|
|
657
|
-
props.expandedRowKeys = data.openKeys;
|
|
658
|
-
} else {
|
|
659
|
-
newDataSource = dataSource;
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
props.store = props.store || {};
|
|
663
|
-
props.store.autoLoad = props.store.autoLoad === false ? false : true;
|
|
664
|
-
var dragable = _this.props.dragable;
|
|
665
|
-
var dragableProps = dragable === true ? {
|
|
666
|
-
components: BodyRowComponent,
|
|
667
|
-
onRow: function onRow(record, index) {
|
|
668
|
-
return {
|
|
669
|
-
index: index,
|
|
670
|
-
record: record,
|
|
671
|
-
moveRow: _this6.moveRow
|
|
672
|
-
};
|
|
673
|
-
}
|
|
674
|
-
} : {};
|
|
675
|
-
var resizeColumn = this.props.resizeColumn;
|
|
676
|
-
var resizeProps = resizeColumn === true ? {
|
|
677
|
-
components: this.components
|
|
678
|
-
} : null;
|
|
679
|
-
var sizeItem = [{
|
|
680
|
-
title: "宽松",
|
|
681
|
-
key: "default"
|
|
682
|
-
}, {
|
|
683
|
-
title: "中等",
|
|
684
|
-
key: "middle"
|
|
685
|
-
}, {
|
|
686
|
-
title: "紧凑",
|
|
687
|
-
key: "small"
|
|
688
|
-
}];
|
|
689
|
-
var sortItem = [{
|
|
690
|
-
title: "单字段排序",
|
|
691
|
-
key: "sigle"
|
|
692
|
-
}, {
|
|
693
|
-
title: "多字段排序",
|
|
694
|
-
key: "multiple"
|
|
695
|
-
}];
|
|
696
|
-
var sortContent = /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, "\u5F53\u524D\u6392\u5E8F"), sortItem.map(function (item, index) {
|
|
697
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
698
|
-
key: item.key,
|
|
699
|
-
onClick: function onClick() {
|
|
700
|
-
console.log("item.key", item.key);
|
|
701
|
-
|
|
702
|
-
_this6.setState({
|
|
703
|
-
tableSize: item.key
|
|
704
|
-
});
|
|
705
|
-
}
|
|
706
|
-
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", null, tableSize == item.key && /*#__PURE__*/React.createElement(CheckOutlined, null)), item.title));
|
|
707
|
-
}));
|
|
708
|
-
var sizeContent = /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, "\u8868\u683C\u5BC6\u5EA6"), sizeItem.map(function (item, index) {
|
|
709
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
710
|
-
key: item.key,
|
|
711
|
-
onClick: function onClick() {
|
|
712
|
-
console.log("item.key", item.key);
|
|
713
|
-
|
|
714
|
-
_this6.setState({
|
|
715
|
-
tableSize: item.key
|
|
716
|
-
});
|
|
717
|
-
}
|
|
718
|
-
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", null, tableSize == item.key && /*#__PURE__*/React.createElement(CheckOutlined, null)), item.title));
|
|
719
|
-
}));
|
|
720
|
-
var DefaultTable = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Table, _extends({
|
|
721
|
-
childrenColumnName: "childNodes",
|
|
722
|
-
dataSource: newDataSource,
|
|
723
|
-
columns: this.getColumns(),
|
|
724
|
-
loading: loading // className={styles["nsc-table"]}
|
|
725
|
-
,
|
|
726
|
-
locale: {
|
|
727
|
-
emptyText: /*#__PURE__*/React.createElement(NoData, null)
|
|
728
|
-
},
|
|
729
|
-
scroll: {
|
|
730
|
-
x: true
|
|
731
|
-
},
|
|
732
|
-
size: tableSize
|
|
733
|
-
}, resizeProps, props, dragableProps)));
|
|
734
|
-
return dragable === true ? /*#__PURE__*/React.createElement(DndProvider, {
|
|
735
|
-
backend: HTML5Backend
|
|
736
|
-
}, DefaultTable) : DefaultTable;
|
|
737
|
-
}
|
|
738
|
-
}]);
|
|
739
|
-
|
|
740
|
-
return NSCTable;
|
|
741
|
-
}(React.Component);
|
|
742
|
-
|
|
743
|
-
_defineProperty(NSCTable, "defaultProps", {
|
|
744
|
-
disableColumns: [],
|
|
745
|
-
dragable: false,
|
|
746
|
-
showTotal: true,
|
|
747
|
-
filterColumn: false,
|
|
748
|
-
dragUrl: "",
|
|
749
|
-
autoPagination: true,
|
|
750
|
-
autoSort: true,
|
|
751
|
-
autoOnChange: true,
|
|
752
|
-
resizeColumn: true
|
|
753
|
-
});
|
|
754
|
-
|
|
755
|
-
export default withZhLocale(NSCTable);
|
|
756
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJBcHBzdG9yZU91dGxpbmVkIiwiQ2hlY2tPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiaXNFbXB0eU9iaiIsIlN0b3JlIiwiUGFnZVN0b3JlIiwidXRpbHMiLCJSZWFjdCIsIkRuZFByb3ZpZGVyIiwiQm9keVJvdyIsIkRuZENvbnRleHRUeXBlIiwiSUJvZHlSb3dQcm9wcyIsInRyZWVVdGlscyIsInN0eWxlcyIsIkJvZHlSb3dDb21wb25lbnQiLCJIVE1MNUJhY2tlbmQiLCJ3aXRoWmhMb2NhbGUiLCJOb0RhdGEiLCJSZXNpemFibGUiLCJnZXROb2RlIiwiUmVzaXplYWJsZVRpdGxlIiwicHJvcHMiLCJvblJlc2l6ZSIsIndpZHRoIiwicmVzdFByb3BzIiwiZW5hYmxlVXNlclNlbGVjdEhhY2siLCJOU0NUYWJsZSIsImNyZWF0ZVJlZiIsImRhdGFTb3VyY2UiLCJjb2x1bW5zIiwibG9hZGluZyIsInBhZ2luYXRpb24iLCJhY3RpdmVJbmRleCIsInNlYXJjaFRleHQiLCJmaWVsZE9wdGlvbiIsInNlYXJjaENvbG9yIiwiY29scyIsInNvcnRzIiwiZmlsdGVyUGFyYW1zIiwidGFibGVTaXplIiwic29ydFR5cGUiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiaGVhZGVyIiwiY2VsbCIsImluZGV4IiwiZSIsInNpemUiLCJzdGF0ZSIsIm5leHRDb2x1bW5zIiwic2V0U3RhdGUiLCJkcmFnSW5kZXgiLCJob3ZlckluZGV4IiwiZHJhZyIsInRhcmdldCIsIl90aGlzIiwiZHJhZ05vZGUiLCJyZWNvcmQiLCJ0YXJnZXROb2RlIiwibW92ZUFycmF5IiwiaWRzIiwicGFyZW50Tm9kZSIsImdldENoaWxkTm9kZUlkcyIsInBhcmFtcyIsImlkIiwicGFyZW50SWQiLCJhdHRyaWJ1dGUiLCJtb3ZlUm93Iiwic3RvcmUiLCJyZWxvYWQiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQcm9wcyIsInJlc3RTdG9yZSIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9wdGlvbnMiLCJjYWxsYmFjayIsImRhdGFDaGFuZ2VkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50IiwicmVzaXplQ29sdW1uIiwic2V0RGF0YSIsInByZXZQcm9wcyIsInByZVN0YXRlIiwicmVzZXRDb2x1bW4iLCJuZXdDb2xzIiwiY29sc3MiLCJtYXAiLCJjb2wiLCJ0ZW1wIiwib25IZWFkZXJDZWxsIiwiY29sdW1uIiwiaGFuZGxlUmVzaXplIiwicHVzaCIsImZpbHRlcnMiLCJzb3J0ZXIiLCJleHRyYSIsImNvbnNvbGUiLCJsb2ciLCJhdXRvT25DaGFuZ2UiLCJhdXRvU29ydCIsImF1dG9QYWdpbmF0aW9uIiwib25DaGFuZ2UiLCJoYW5kbGVQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvbkJ5U3RvcmUiLCJwIiwiY3VycmVudEtleSIsInBhZ2VTaXplS2V5IiwicGFnZVNpemUiLCJvcmRlciIsImFzY3MiLCJzb3J0RmllbGQiLCJmaWVsZCIsImRlc2NzIiwib25DaGFuZ2VGbiIsImdldE1vZGVsIiwidmFsIiwiY2hlY2tlZFZhbHVlIiwiZmlsdGVyQ29sdW1ucyIsIm5ld0NvbCIsImluY2x1ZGVzIiwiZGF0YUluZGV4IiwiaW5pdFNob3ciLCJjb2xMaXN0cyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImNvbnRlbnQiLCJmaWx0ZXJDb2x1bW4iLCJiaW5kIiwibGFiZWwiLCJ0aXRsZSIsInZhbHVlIiwiZGlzYWJsZWQiLCJlbGxpcHNpcyIsInJlbmRlciIsInNob3dUaXRsZSIsInRleHQiLCJJY29uQWN0aW9uIiwidGhJY29uUmVmIiwibWluV2lkdGgiLCJtYXhXaWR0aCIsImtleSIsImFsaWduIiwiaXRlbSIsImZpbHRlclByb3BzIiwib2JqIiwidHlwZSIsInNlYXJjaEtleSIsIkRpdiIsInBsYWNlaG9sZGVyIiwiZmlsdGVyRHJvcGRvd24iLCJzZXRTZWxlY3RlZEtleXMiLCJzZWxlY3RlZEtleXMiLCJjb25maXJtIiwiY2xlYXJGaWx0ZXJzIiwibmV3RmlsdGVyUGFyYW1zIiwidGFibGVTZWFyY2hSZWYiLCJnZXRWYWx1ZSIsImZpbHRlckljb24iLCJvbWl0Iiwicm93S2V5IiwiY2xpY2tDaGFuZ2VDb2xvciIsInBvc2l0aW9uIiwic2hvd1NpemVDaGFuZ2VyIiwic2hvd1F1aWNrSnVtcGVyIiwic2hvd1RvdGFsIiwidG90YWwiLCJmcm9tIiwidG8iLCJvblJvd0ZuIiwib25Sb3ciLCJjdXN0b20iLCJvbkNsaWNrRm4iLCJvbkNsaWNrIiwiZXZlbnQiLCJyb3dDbGFzc05hbWUiLCJjbGlja1Jvd1N0eWxlIiwibmV3RGF0YVNvdXJjZSIsImdldFNlYXJjaE1lbnVEYXRhcyIsInRyZWVEYXRhcyIsImV4cGFuZGVkUm93S2V5cyIsIm9wZW5LZXlzIiwiZHJhZ2FibGUiLCJkcmFnYWJsZVByb3BzIiwiY29tcG9uZW50cyIsInJlc2l6ZVByb3BzIiwic2l6ZUl0ZW0iLCJzb3J0SXRlbSIsInNvcnRDb250ZW50Iiwic2l6ZUNvbnRlbnQiLCJEZWZhdWx0VGFibGUiLCJnZXRDb2x1bW5zIiwiZW1wdHlUZXh0IiwieCIsIkNvbXBvbmVudCIsImRpc2FibGVDb2x1bW5zIiwiZHJhZ1VybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQ0VBLGdCQURGLEVBRUVDLGFBRkYsRUFJRUMsY0FKRixRQU1PLG1CQU5QO0FBT0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFDQSxPQUFPQyxLQUFQLElBQWdCQyxTQUFoQixRQUE2QyxhQUE3QztBQUNBLFNBQVNDLEtBQVQs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LEVBV000SyxhQVhOLEVBWEYsQ0FERjtBQTRCQSxhQUFPRCxRQUFRLEtBQUssSUFBYixnQkFDTCxvQkFBQyxXQUFEO0FBQWEsUUFBQSxPQUFPLEVBQUVqTDtBQUF0QixTQUFxQ3lMLFlBQXJDLENBREssR0FHTEEsWUFIRjtBQUtEOzs7O0VBemtCb0JqTSxLQUFLLENBQUNxTSxTOztnQkFBdkJsTCxRLGtCQUNrQjtBQUNwQm1MLEVBQUFBLGNBQWMsRUFBRSxFQURJO0FBRXBCYixFQUFBQSxRQUFRLEVBQUUsS0FGVTtBQUdwQmpCLEVBQUFBLFNBQVMsRUFBRSxJQUhTO0FBSXBCdEMsRUFBQUEsWUFBWSxFQUFFLEtBSk07QUFLcEJxRSxFQUFBQSxPQUFPLEVBQUUsRUFMVztBQU1wQi9GLEVBQUFBLGNBQWMsRUFBRSxJQU5JO0FBT3BCRCxFQUFBQSxRQUFRLEVBQUUsSUFQVTtBQVFwQkQsRUFBQUEsWUFBWSxFQUFFLElBUk07QUFTcEJuQixFQUFBQSxZQUFZLEVBQUU7QUFUTSxDOztBQTJrQnhCLGVBQWUxRSxZQUFZLENBQUNVLFFBQUQsQ0FBM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDMtMjMgMDg6NDY6MjBcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTAzLTIzIDEwOjMwOjQyXHJcbiAqL1xyXG5pbXBvcnQge1xyXG4gIEFwcHN0b3JlT3V0bGluZWQsXHJcbiAgQ2hlY2tPdXRsaW5lZCxcclxuICBDb2x1bW5IZWlnaHRPdXRsaW5lZCxcclxuICBTZWFyY2hPdXRsaW5lZCxcclxuICBTb3J0QXNjZW5kaW5nT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBCdXR0b24sXHJcbiAgQ2hlY2tib3gsXHJcbiAgQ2hlY2tib3hPcHRpb25UeXBlLFxyXG4gIE1lbnUsXHJcbiAgUG9wb3ZlcixcclxuICBTcGFjZSxcclxuICBUYWJsZSxcclxuICBUYWJsZVByb3BzLFxyXG4gIFRvb2x0aXAsXHJcbn0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgQ29sdW1uVHlwZSwgVGFibGVQYWdpbmF0aW9uQ29uZmlnIH0gZnJvbSBcImFudGQvbGliL3RhYmxlXCI7XHJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBEbmRQcm92aWRlciB9IGZyb20gXCJyZWFjdC1kbmRcIjtcclxuaW1wb3J0IEJvZHlSb3csIHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMgfSBmcm9tIFwiLi4vY29tbW9uL0JvZHlSb3dcIjtcclxuaW1wb3J0IHRyZWVVdGlscyBmcm9tIFwiLi4vdHJlZVV0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuY29uc3QgeyBCb2R5Um93Q29tcG9uZW50LCBIVE1MNUJhY2tlbmQgfSA9IEJvZHlSb3c7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IHsgSWNvbiwgTm9EYXRhLCBJbnB1dCwgU2VsZWN0IH0gZnJvbSBcIi4uXCI7XHJcbmltcG9ydCB7IFJlc2l6YWJsZSB9IGZyb20gXCJyZWFjdC1yZXNpemFibGVcIjtcclxuaW1wb3J0IFwiLi9yZXNpemUubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0Tm9kZSB9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5cclxuaW50ZXJmYWNlIElEcmFnUGFyYW1zIHtcclxuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGlkczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBwYXJlbnRJZDogc3RyaW5nIHwgbnVtYmVyO1xyXG59XHJcbi8vIGludGVyZmFjZSBTdG9yZVByb3BzIHt9XHJcblxyXG5leHBvcnQgdHlwZSBTdG9yZVR5cGUgPSBcIlBhZ2VTdG9yZVwiIHwgXCJUcmVlU3RvcmVcIiB8IFwiQmFzZVN0b3JlXCI7XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgVGFibGVQYWdpbmF0aW9uQ29uZmlnIHtcclxuICB0b3RhbEtleT86IHN0cmluZztcclxuICBwYWdlU2l6ZUtleT86IHN0cmluZztcclxuICBjdXJyZW50S2V5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQcm9wcyBleHRlbmRzIFRhYmxlUHJvcHM8YW55PiB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dUb3RhbD86IGJvb2xlYW47IC8vIOaYr+WQpuaYvuekuuaAu+adoeaVsOS/oeaBr++8jOm7mOiupHRydWVcclxuICBkaXNhYmxlQ29sdW1ucz86IHN0cmluZ1tdOyAvLyDkuI3lj6/pmpDol4/lv4XpobvmmL7npLrnmoTliJdcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8vIOaYr+WQpuWPr+aLluWKqCwg6buY6K6kZmFsc2VcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvLyDmmK/lkKbmlK/mjIHov4fmu6TmmL7npLrooajmoLzliJcsIOm7mOiupHRydWVcclxuICBtb3ZlUm93PzogKHBhcmFtczogSURyYWdQYXJhbXMpID0+IHZvaWQ7IC8vIOaLluaLveWujOaIkOWQjueahOWbnuiwg1xyXG4gIGRyYWdVcmw/OiBzdHJpbmc7IC8vIOS/neWtmOaLluaLveaOkuW6j+eahOaOpeWPo1xyXG4gIHBhZ2luYXRpb24/OiBmYWxzZSB8IE5TQ1RhYmxlUGFnaW5hdGlvbjtcclxuICBhdXRvUGFnaW5hdGlvbj86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuWIhumhtVxyXG4gIGF1dG9Tb3J0PzogYm9vbGVhbjsgLy/nu4Tku7bmmK/lkKboh6rliqjlpITnkIbmjpLluo9cclxuICBhdXRvT25DaGFuZ2U/OiBib29sZWFuOyAvLyDnu4Tku7bmmK/lkKboh6rliqhvbkNoYW5nZSwgZmFsc2XliJnkuI3lgZrku7vkvZXlpITnkIblhajpg6jkuqTnu5nosIPnlKjmlrlcclxuICByZXNpemVDb2x1bW4/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJTlNDVGFibGVQcm9wcyA9IHR5cGVvZiBOU0NUYWJsZS5kZWZhdWx0UHJvcHMgJiBOU0NUYWJsZVByb3BzO1xyXG5leHBvcnQgeyBEbmRDb250ZXh0VHlwZSwgSUJvZHlSb3dQcm9wcyB9O1xyXG5cclxuY29uc3QgUmVzaXplYWJsZVRpdGxlID0gKHByb3BzOiBhbnkpID0+IHtcclxuICBjb25zdCB7IG9uUmVzaXplLCB3aWR0aCwgLi4ucmVzdFByb3BzIH0gPSBwcm9wcztcclxuICByZXR1cm4gKFxyXG4gICAgPFJlc2l6YWJsZVxyXG4gICAgICB3aWR0aD17d2lkdGggfHwgMTUwfVxyXG4gICAgICBoZWlnaHQ9ezB9XHJcbiAgICAgIG9uUmVzaXplPXtvblJlc2l6ZX1cclxuICAgICAgZHJhZ2dhYmxlT3B0cz17eyBlbmFibGVVc2VyU2VsZWN0SGFjazogZmFsc2UgfX1cclxuICAgID5cclxuICAgICAgPHRoIHsuLi5yZXN0UHJvcHN9IC8+XHJcbiAgICA8L1Jlc2l6YWJsZT5cclxuICApO1xyXG59O1xyXG5jbGFzcyBOU0NUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJTlNDVGFibGVQcm9wcz4ge1xyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICBkaXNhYmxlQ29sdW1uczogW10sXHJcbiAgICBkcmFnYWJsZTogZmFsc2UsXHJcbiAgICBzaG93VG90YWw6IHRydWUsXHJcbiAgICBmaWx0ZXJDb2x1bW46IGZhbHNlLFxyXG4gICAgZHJhZ1VybDogXCJcIixcclxuICAgIGF1dG9QYWdpbmF0aW9uOiB0cnVlLFxyXG4gICAgYXV0b1NvcnQ6IHRydWUsXHJcbiAgICBhdXRvT25DaGFuZ2U6IHRydWUsXHJcbiAgICByZXNpemVDb2x1bW46IHRydWUsXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIHRoSWNvblJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICB0YWJsZVNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIGNvbHVtbnM6IFtdLFxyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBwYWdpbmF0aW9uOiB7fSxcclxuICAgIGFjdGl2ZUluZGV4OiAtMSxcclxuICAgIC8v5pCc57Si5paH5pysXHJcbiAgICBzZWFyY2hUZXh0OiBudWxsLFxyXG4gICAgZmllbGRPcHRpb246IG51bGwsXHJcbiAgICBzZWFyY2hDb2xvcjogbnVsbCxcclxuICAgIGNvbHM6IFtdLFxyXG4gICAgc29ydHM6IFtdLFxyXG4gICAgZmlsdGVyUGFyYW1zOiB7fSxcclxuICAgIHRhYmxlU2l6ZTogXCJtaWRkbGVcIixcclxuICAgIHNvcnRUeXBlOiBcInNpZ2xlXCIsXHJcbiAgfTtcclxuXHJcbiAgbGlzdGVuZXJzID0ge1xyXG4gICAgb25CZWZvcmVMb2FkOiBudWxsLFxyXG4gICAgbG9hZDogbnVsbCxcclxuICB9O1xyXG5cclxuICBjb21wb25lbnRzID0ge1xyXG4gICAgaGVhZGVyOiB7XHJcbiAgICAgIGNlbGw6IFJlc2l6ZWFibGVUaXRsZSxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFN0b3JlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBwcm9wcy5zdG9yZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQcm9wcyA9IHt9LCAuLi5yZXN0U3RvcmUgfSA9XHJcbiAgICAgICAgcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICAgIGNvbnN0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IChzdG9yZSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25CZWZvcmVMb2FkLCB0aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IHBhZ2luZyA9ICEodGhpcy5wcm9wcy5wYWdpbmF0aW9uID09PSBmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAocGFnaW5nICYmICF0aGlzLnByb3BzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICAgIHBhZ2luYXRpb246IHN0b3JlLmdldFBhZ2luYXRpb24oKSxcclxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlSW5kZXg6IC0xLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBtb2RlbERhdGEsIGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5kYXRhQ2hhbmdlZCwgdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICAgIHBhZ2luZyxcclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbG9hZDogKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpID0+IHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMubG9hZCwgdGhpcywgW2RhdGEsIG1vZGVsRGF0YSwgc3RvcmVdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvbkVycm9yTG9hZDogKGVyciwgcmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5vbkVycm9yTG9hZCwgdGhpcywgW2VyciwgcmVzcG9uc2VdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkYXRhOiByZXN0U3RvcmUuZGF0YVxyXG4gICAgICAgICAgPyByZXN0U3RvcmUuZGF0YVxyXG4gICAgICAgICAgOiBwcm9wcy5kYXRhU291cmNlXHJcbiAgICAgICAgICA/IHByb3BzLmRhdGFTb3VyY2VcclxuICAgICAgICAgIDogbnVsbCxcclxuICAgICAgICAuLi5yZXN0U3RvcmUsXHJcbiAgICAgICAgYXV0b0xvYWQ6IHJlc3RTdG9yZS5hdXRvTG9hZCA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgUGFnZVN0b3JlKFxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHN0b3JlUHJvcHMsIHtcclxuICAgICAgICAgIHBhZ2luYXRpb246IHsgY3VycmVudDogMSwgLi4udGhpcy5wcm9wcy5wYWdpbmF0aW9uIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVJlc2l6ZSA9XHJcbiAgICAoaW5kZXg6IGFueSkgPT5cclxuICAgIChlOiBhbnksIHsgc2l6ZSB9OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjb2xzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBjb25zdCBuZXh0Q29sdW1ucyA9IFsuLi5jb2xzXTtcclxuICAgICAgbmV4dENvbHVtbnNbaW5kZXhdID0ge1xyXG4gICAgICAgIC4uLm5leHRDb2x1bW5zW2luZGV4XSxcclxuICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgY29sczogbmV4dENvbHVtbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IHJlc2l6ZUNvbHVtbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghcmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiBbLi4udGhpcy5wcm9wcy5jb2x1bW5zXSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2xzOiBbLi4udGhpcy5wcm9wcy5jb2x1bW5zXSB9KTtcclxuICAgICAgLy8gdGhpcy5yZXNldENvbHVtbigpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnByb3BzLnN0b3JlO1xyXG4gICAgaWYgKHN0b3JlICYmIHN0b3JlLmRhdGEpIHtcclxuICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHN0b3JlLmRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJlU3RhdGUpIHtcclxuICAgIGNvbnN0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFyZXNpemVDb2x1bW4pIHtcclxuICAgICAgaWYgKHRoaXMucHJvcHMuY29sdW1ucyAhPT0gcHJldlByb3BzLmNvbHVtbnMpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY29sdW1uczogdGhpcy5wcm9wcy5jb2x1bW5zIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAocHJlU3RhdGUuY29scyAhPT0gdGhpcy5zdGF0ZS5jb2xzKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldENvbHVtbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldENvbHVtbigpIHtcclxuICAgIGNvbnN0IHsgY29scyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IG5ld0NvbHM6IGFueSA9IFtdO1xyXG4gICAgbGV0IGNvbHNzID0gY29scyB8fCBbXTtcclxuICAgIGNvbHNzLm1hcCgoY29sOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uY29sLFxyXG4gICAgICAgIG9uSGVhZGVyQ2VsbDogKGNvbHVtbjogeyB3aWR0aDogYW55IH0pID0+ICh7XHJcbiAgICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxyXG4gICAgICAgICAgb25SZXNpemU6IHRoaXMuaGFuZGxlUmVzaXplKGluZGV4KSxcclxuICAgICAgICB9KSxcclxuICAgICAgfTtcclxuICAgICAgbmV3Q29scy5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgY29sdW1uczogbmV3Q29scyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5riF6Zmk6YCJ5Lit6aKc6ImyXHJcbiAgICovXHJcbiAgY2xlYXJTZWxlY3RDb2xvcigpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBhY3RpdmVJbmRleDogLTEgfSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIGdldFBhZ2luYXRpb25CeVN0b3JlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0UGFnaW5hdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UocGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYSkge1xyXG4gICAgY29uc29sZS5sb2coXCJzb3J0ZXJcIiwgc29ydGVyKTtcclxuICAgIGNvbnN0IHsgYXV0b09uQ2hhbmdlLCBhdXRvU29ydCwgYXV0b1BhZ2luYXRpb24sIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc29sZS5sb2coXCJhdXRvU29ydFwiLCBhdXRvU29ydCk7XHJcbiAgICBjb25zb2xlLmxvZyhcImF1dG9QYWdpbmF0aW9uXCIsIGF1dG9QYWdpbmF0aW9uKTtcclxuICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1zIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKGF1dG9PbkNoYW5nZSA9PT0gZmFsc2UpIHtcclxuICAgICAgb25DaGFuZ2UgJiYgb25DaGFuZ2UocGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGhhbmRsZVBhZ2luYXRpb24gPSAoKSA9PiB7XHJcbiAgICAgIGxldCBwYXJhbXMgPSB7fSBhcyB7XHJcbiAgICAgICAgc2l6ZT86IHN0cmluZztcclxuICAgICAgICBwYWdlU2l6ZT86IHN0cmluZztcclxuICAgICAgICBhc2NzPzogc3RyaW5nO1xyXG4gICAgICAgIGRlc2NzPzogc3RyaW5nO1xyXG4gICAgICAgIFtwcm9wTmFtZTogc3RyaW5nXTogc3RyaW5nO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29uc3QgcGFnaW5nID0gdGhpcy5nZXRQYWdpbmF0aW9uQnlTdG9yZSgpIHx8IHt9O1xyXG5cclxuICAgICAgaWYgKCFpc0VtcHR5T2JqKHBhZ2luYXRpb24pKSB7XHJcbiAgICAgICAgY29uc3QgcCA9IHtcclxuICAgICAgICAgIFtwYWdpbmcuY3VycmVudEtleSB8fCBcImN1cnJlbnRcIl06IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgIFtwYWdpbmcucGFnZVNpemVLZXkgfHwgXCJzaXplXCJdOiBwYWdpbmF0aW9uLnBhZ2VTaXplLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIHApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYXV0b1NvcnQgPT09IHRydWUgJiYgIWlzRW1wdHlPYmooc29ydGVyKSkge1xyXG4gICAgICAgIGlmIChzb3J0ZXIub3JkZXIgPT0gXCJhc2NlbmRcIikge1xyXG4gICAgICAgICAgcGFyYW1zLmFzY3MgPVxyXG4gICAgICAgICAgICBzb3J0ZXIuY29sdW1uLnNvcnRGaWVsZCB8fCBzb3J0ZXIuY29sdW1uLmZpZWxkIHx8IHNvcnRlci5maWVsZDtcclxuICAgICAgICAgIHBhcmFtcy5kZXNjcyA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzb3J0ZXIub3JkZXIgPT0gXCJkZXNjZW5kXCIpIHtcclxuICAgICAgICAgIHBhcmFtcy5kZXNjcyA9XHJcbiAgICAgICAgICAgIHNvcnRlci5jb2x1bW4uc29ydEZpZWxkIHx8IHNvcnRlci5jb2x1bW4uZmllbGQgfHwgc29ydGVyLmZpZWxkO1xyXG4gICAgICAgICAgcGFyYW1zLmFzY3MgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBwYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcywgLi4ucGFyYW1zIH07XHJcbiAgICAgIHRoaXMuc3RvcmUucmVsb2FkKHsgcGFyYW1zIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBvbkNoYW5nZUZuID0gdGhpcy5wcm9wcy5vbkNoYW5nZTtcclxuICAgIC8vIOeUqOaIt+S8oOS6hm9uQ2hhbmdl5L+d55WZ55So5oi36Ieq5Li75aSE55CG6KGo5qC85Y+Y5YyW55qE5p2D5YqbXHJcbiAgICBpZiAob25DaGFuZ2VGbikge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoYW5nZUZuLCB0aGlzLCBbcGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYV0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b1BhZ2luYXRpb24pIHtcclxuICAgICAgaGFuZGxlUGFnaW5hdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruaooeWei+WvueixoVxyXG4gICAqL1xyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXh0OiB2YWwsXHJcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcclxuICAgICAgc2VhcmNoQ29sb3I6IHNlYXJjaENvbG9yLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmqKHlnZfliJfooajnp7vliqjmjpLluo9cclxuICAgKi9cclxuICBtb3ZlUm93ID0gKGRyYWdJbmRleCwgaG92ZXJJbmRleCwgZHJhZywgdGFyZ2V0KSA9PiB7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBsZXQgZHJhZ05vZGUgPSBkcmFnLnJlY29yZDtcclxuICAgIGxldCB0YXJnZXROb2RlID0gdGFyZ2V0LnJlY29yZDtcclxuICAgIGRyYWdOb2RlLm1vdmVBcnJheShkcmFnTm9kZSwgdGFyZ2V0Tm9kZSk7XHJcbiAgICBsZXQgaWRzID0gZHJhZ05vZGUucGFyZW50Tm9kZS5nZXRDaGlsZE5vZGVJZHMoKTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiBkcmFnTm9kZS5pZCxcclxuICAgICAgcGFyZW50SWQ6IGRyYWdOb2RlLmF0dHJpYnV0ZS5wYXJlbnRJZCxcclxuICAgICAgaWRzOiBpZHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLm1vdmVSb3cpIHtcclxuICAgICAgdGhpcy5wcm9wcy5tb3ZlUm93KHBhcmFtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGZpbHRlckNvbHVtbihjaGVja2VkVmFsdWUpIHtcclxuICAgIGNvbnN0IGZpbHRlckNvbHVtbnMgPSB0aGlzLnByb3BzLmNvbHVtbnMubWFwKChjb2w6IENvbHVtblR5cGU8e30+KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0NvbCA9IHsgLi4uY29sIH0gYXMgQ29sdW1uVHlwZTx7fT4gJiB7IGluaXRTaG93OiBib29sZWFuIH07XHJcbiAgICAgIGlmIChjaGVja2VkVmFsdWUuaW5jbHVkZXMoY29sLmRhdGFJbmRleCkpIHtcclxuICAgICAgICBuZXdDb2wuaW5pdFNob3cgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0NvbC5pbml0U2hvdyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBuZXdDb2w7XHJcbiAgICB9KTtcclxuICAgIC8vIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiBmaWx0ZXJDb2x1bW5zIH0pO1xyXG4gICAgY29uc3QgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXJlc2l6ZUNvbHVtbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY29sdW1uczogZmlsdGVyQ29sdW1ucyB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2xzOiBmaWx0ZXJDb2x1bW5zIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29sdW1ucygpIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBjb25zdCB7IGNvbHVtbnMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IGNvbHVtbnM6IGNvbExpc3RzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZGVmYXVsdFNob3dDb2xzID0gY29sdW1ucy5maWx0ZXIoKGNvbHMpID0+IGNvbHMuaW5pdFNob3cgIT09IGZhbHNlKTtcclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gKFxyXG4gICAgICA8Q2hlY2tib3guR3JvdXBcclxuICAgICAgICBvbkNoYW5nZT17dGhpcy5maWx0ZXJDb2x1bW4uYmluZCh0aGlzKX1cclxuICAgICAgICBvcHRpb25zPXtjb2xMaXN0cy5tYXAoXHJcbiAgICAgICAgICAoY29sOiBDb2x1bW5UeXBlPHt9PiAmIHsgZmlsdGVyQ29sdW1uOiBib29sZWFuIH0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBsYWJlbDogY29sLnRpdGxlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBjb2wuZGF0YUluZGV4LFxyXG4gICAgICAgICAgICAgIGRpc2FibGVkOiBjb2wuZmlsdGVyQ29sdW1uID09PSBmYWxzZSxcclxuICAgICAgICAgICAgfSBhcyBDaGVja2JveE9wdGlvblR5cGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKX1cclxuICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4gY29sLmRhdGFJbmRleCl9XHJcbiAgICAgID48L0NoZWNrYm94Lkdyb3VwPlxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNvbHMgPSBkZWZhdWx0U2hvd0NvbHMubWFwKChjb2wpID0+IHtcclxuICAgICAgaWYgKGNvbC5lbGxpcHNpcyAmJiAhY29sLnJlbmRlcikge1xyXG4gICAgICAgIGNvbC5lbGxpcHNpcyA9IHtcclxuICAgICAgICAgIHNob3dUaXRsZTogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2wucmVuZGVyID0gKHRleHQpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxUb29sdGlwIHBsYWNlbWVudD1cInRvcExlZnRcIiB0aXRsZT17dGV4dH0+XHJcbiAgICAgICAgICAgICAge3RleHR9XHJcbiAgICAgICAgICAgIDwvVG9vbHRpcD5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY29sO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgSWNvbkFjdGlvbjogQ29sdW1uVHlwZTx7fT4gPSB7XHJcbiAgICAgIHRpdGxlOiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInRoLWljb25cIl19IHJlZj17dGhpcy50aEljb25SZWZ9PlxyXG4gICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgdGl0bGU9XCLpgInmi6nmmL7npLrnmoTliJdcIlxyXG4gICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21SaWdodFwiXHJcbiAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgIG92ZXJsYXlTdHlsZT17eyBtaW5XaWR0aDogNDEwLCBtYXhXaWR0aDogNDUwIH19XHJcbiAgICAgICAgICAgIGdldFBvcHVwQ29udGFpbmVyPXsoKSA9PiB0aGlzLnRoSWNvblJlZi5jdXJyZW50fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8QXBwc3RvcmVPdXRsaW5lZCBzaXplPXsyNH0gY2xhc3NOYW1lPXtzdHlsZXNbXCJhcHAtc3RvcmUtaWNvblwiXX0gLz5cclxuICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgICAgZGF0YUluZGV4OiBcImljb24tbWVudVwiLFxyXG4gICAgICBrZXk6IFwiaWNvbi1tZW51XCIsXHJcbiAgICAgIHdpZHRoOiA1MCxcclxuICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgIC8vIGZpeGVkOiBcInJpZ2h0XCIsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsdGVyQ29sdW1uKSB7XHJcbiAgICAgIGNvbHMucHVzaChJY29uQWN0aW9uKTtcclxuICAgIH1cclxuICAgIGNvbHMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoIWlzRW1wdHlPYmooaXRlbS5maWx0ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgY29uc3QgeyB0eXBlLCBwcm9wcywgc2VhcmNoS2V5IH0gPSBpdGVtLmZpbHRlclByb3BzO1xyXG4gICAgICAgIGxldCBEaXYgPSBudWxsO1xyXG4gICAgICAgIGxldCB0ZXh0ID0gaXRlbS50aXRsZTtcclxuICAgICAgICBEaXYgPSBnZXROb2RlKHR5cGUsIHsgLi4ucHJvcHMsIHBsYWNlaG9sZGVyOiBg5pCc57SiJHt0ZXh0fWAgfSk7XHJcbiAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgZmlsdGVyRHJvcGRvd246ICh7XHJcbiAgICAgICAgICAgIHNldFNlbGVjdGVkS2V5cyxcclxuICAgICAgICAgICAgc2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgICAgICBjb25maXJtLFxyXG4gICAgICAgICAgICBjbGVhckZpbHRlcnMsXHJcbiAgICAgICAgICB9KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNlYXJjaFwiXX0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic3BhY2VcIl19PntEaXZ9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8U3BhY2U+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3RmlsdGVyUGFyYW1zID0geyAuLi5maWx0ZXJQYXJhbXMgfTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPWl0ZW0uZmllbGQgfHwgaXRlbS5kYXRhSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICBuZXdGaWx0ZXJQYXJhbXNba2V5XSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVTZWFyY2hSZWYuY3VycmVudD8uZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbXM6IHsgLi4ubmV3RmlsdGVyUGFyYW1zIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUubG9hZCh7IHBhcmFtczogeyAuLi5uZXdGaWx0ZXJQYXJhbXMgfSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJidXR0b25cIl19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1NwYWNlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGZpbHRlckljb246ICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5vYmosXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2xzW2luZGV4XSA9IG9iajtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29scztcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXMsXHJcbiAgICAgIHtcclxuICAgICAgICBsb2FkaW5nLFxyXG4gICAgICAgIGRhdGFTb3VyY2UsXHJcbiAgICAgICAgcGFnaW5hdGlvbiA9IHt9LFxyXG4gICAgICAgIHNlYXJjaFRleHQsXHJcbiAgICAgICAgZmllbGRPcHRpb24sXHJcbiAgICAgICAgc2VhcmNoQ29sb3IsXHJcbiAgICAgICAgdGFibGVTaXplLFxyXG4gICAgICB9ID0gdGhpcy5zdGF0ZSxcclxuICAgICAgcHJvcHMgPSB1dGlscy5vbWl0KFxyXG4gICAgICAgIHRoaXMucHJvcHMsXHJcbiAgICAgICAgW1wic3RvcmVcIiwgXCJvbkNoYW5nZVwiLCBcImNvbHVtbnNcIiwgXCJyZXNldENvbHVtblwiXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3dLZXk6IFwiaWRcIixcclxuICAgICAgICAgIGNsaWNrQ2hhbmdlQ29sb3I6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIGlmIChwcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBbXCJib3R0b21SaWdodFwiXSxcclxuICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxyXG4gICAgICAgIC4uLnByb3BzLnBhZ2luYXRpb24sXHJcbiAgICAgICAgLi4ucGFnaW5hdGlvbixcclxuICAgICAgfTtcclxuICAgICAgaWYgKHByb3BzLnNob3dUb3RhbCA9PSB0cnVlKSB7XHJcbiAgICAgICAgcHJvcHMucGFnaW5hdGlvbi5zaG93VG90YWwgPSBmdW5jdGlvbiAodG90YWwsIFtmcm9tLCB0b10pIHtcclxuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgICByZXR1cm4gXCLlhbEgXCIgKyB0b3RhbCArIFwiIOadoVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9wcy5vbkNoYW5nZSA9IGZ1bmN0aW9uIChwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICAgIF90aGlzLm9uQ2hhbmdlKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpO1xyXG4gICAgfTtcclxuICAgIGlmIChwcm9wcy5jbGlja0NoYW5nZUNvbG9yKSB7XHJcbiAgICAgIGNvbnN0IG9uUm93Rm4gPSBwcm9wcy5vblJvdztcclxuICAgICAgcHJvcHMub25Sb3cgPSBmdW5jdGlvbiAocmVjb3JkLCBpbmRleCkge1xyXG4gICAgICAgIHZhciBjdXN0b20gPSBvblJvd0ZuID8gb25Sb3dGbihyZWNvcmQsIGluZGV4KSA6IHt9O1xyXG4gICAgICAgIGNvbnN0IG9uQ2xpY2tGbiA9IGN1c3RvbS5vbkNsaWNrO1xyXG4gICAgICAgIGN1c3RvbS5vbkNsaWNrID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGFjdGl2ZUluZGV4OiBpbmRleCwgLy/ojrflj5bngrnlh7vooYznmoTntKLlvJVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdXRpbHMuY2FsbGJhY2sob25DbGlja0ZuLCBfdGhpcywgW2V2ZW50XSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY3VzdG9tO1xyXG4gICAgICB9O1xyXG4gICAgICBwcm9wcy5yb3dDbGFzc05hbWUgPSBmdW5jdGlvbiAocmVjb3JkLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gX3RoaXMuc3RhdGUuYWN0aXZlSW5kZXhcclxuICAgICAgICAgID8gYCR7c3R5bGVzLmNsaWNrUm93U3R5bGV9YFxyXG4gICAgICAgICAgOiBcIlwiO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IG5ld0RhdGFTb3VyY2UgPSBbXTtcclxuICAgIGlmIChzZWFyY2hUZXh0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0cmVlVXRpbHMuZ2V0U2VhcmNoTWVudURhdGFzKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgc2VhcmNoVGV4dCxcclxuICAgICAgICBmaWVsZE9wdGlvbixcclxuICAgICAgICBzZWFyY2hDb2xvclxyXG4gICAgICApO1xyXG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YS50cmVlRGF0YXM7XHJcbiAgICAgIHByb3BzLmV4cGFuZGVkUm93S2V5cyA9IGRhdGEub3BlbktleXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YVNvdXJjZTtcclxuICAgIH1cclxuICAgIHByb3BzLnN0b3JlID0gcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICBwcm9wcy5zdG9yZS5hdXRvTG9hZCA9IHByb3BzLnN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgIGNvbnN0IHsgZHJhZ2FibGUgfSA9IF90aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZHJhZ2FibGVQcm9wcyA9XHJcbiAgICAgIGRyYWdhYmxlID09PSB0cnVlXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IEJvZHlSb3dDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG9uUm93OiAocmVjb3JkLCBpbmRleCkgPT4gKHtcclxuICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICByZWNvcmQsXHJcbiAgICAgICAgICAgICAgbW92ZVJvdzogdGhpcy5tb3ZlUm93LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIH1cclxuICAgICAgICA6IHt9O1xyXG4gICAgbGV0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGNvbnN0IHJlc2l6ZVByb3BzID1cclxuICAgICAgcmVzaXplQ29sdW1uID09PSB0cnVlID8geyBjb21wb25lbnRzOiB0aGlzLmNvbXBvbmVudHMgfSA6IG51bGw7XHJcblxyXG4gICAgY29uc3Qgc2l6ZUl0ZW0gPSBbXHJcbiAgICAgIHsgdGl0bGU6IFwi5a695p2+XCIsIGtleTogXCJkZWZhdWx0XCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLkuK3nrYlcIiwga2V5OiBcIm1pZGRsZVwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi57Sn5YeRXCIsIGtleTogXCJzbWFsbFwiIH0sXHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc29ydEl0ZW0gPSBbXHJcbiAgICAgIHsgdGl0bGU6IFwi5Y2V5a2X5q615o6S5bqPXCIsIGtleTogXCJzaWdsZVwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi5aSa5a2X5q615o6S5bqPXCIsIGtleTogXCJtdWx0aXBsZVwiIH0sXHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc29ydENvbnRlbnQgPSAoXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdj7lvZPliY3mjpLluo88L2Rpdj5cclxuICAgICAgICB7c29ydEl0ZW0ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpdGVtLmtleVwiLCBpdGVtLmtleSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdGFibGVTaXplOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt0YWJsZVNpemUgPT0gaXRlbS5rZXkgJiYgPENoZWNrT3V0bGluZWQgLz59PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge2l0ZW0udGl0bGV9XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGNvbnN0IHNpemVDb250ZW50ID0gKFxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXY+6KGo5qC85a+G5bqmPC9kaXY+XHJcbiAgICAgICAge3NpemVJdGVtLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBrZXk9e2l0ZW0ua2V5fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaXRlbS5rZXlcIiwgaXRlbS5rZXkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlU2l6ZTogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57dGFibGVTaXplID09IGl0ZW0ua2V5ICYmIDxDaGVja091dGxpbmVkIC8+fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHtpdGVtLnRpdGxlfVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCBEZWZhdWx0VGFibGUgPSAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAgey8qIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8UG9wb3ZlciBwbGFjZW1lbnQ9XCJib3R0b21cIiBjb250ZW50PXtzaXplQ29udGVudH0gdHJpZ2dlcj1cImNsaWNrXCI+XHJcbiAgICAgICAgICAgICAgPENvbHVtbkhlaWdodE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPFBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGVudD17c29ydENvbnRlbnR9IHRyaWdnZXI9XCJjbGlja1wiPlxyXG4gICAgICAgICAgICA8U29ydEFzY2VuZGluZ091dGxpbmVkIC8+XHJcbiAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgY2hpbGRyZW5Db2x1bW5OYW1lPVwiY2hpbGROb2Rlc1wiXHJcbiAgICAgICAgICBkYXRhU291cmNlPXtuZXdEYXRhU291cmNlfVxyXG4gICAgICAgICAgY29sdW1ucz17dGhpcy5nZXRDb2x1bW5zKCl9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxyXG4gICAgICAgICAgLy8gY2xhc3NOYW1lPXtzdHlsZXNbXCJuc2MtdGFibGVcIl19XHJcbiAgICAgICAgICBsb2NhbGU9e3sgZW1wdHlUZXh0OiA8Tm9EYXRhIC8+IH19XHJcbiAgICAgICAgICBzY3JvbGw9e3sgeDogdHJ1ZSB9fVxyXG4gICAgICAgICAgc2l6ZT17dGFibGVTaXplfVxyXG4gICAgICAgICAgey4uLnJlc2l6ZVByb3BzfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLmRyYWdhYmxlUHJvcHN9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBkcmFnYWJsZSA9PT0gdHJ1ZSA/IChcclxuICAgICAgPERuZFByb3ZpZGVyIGJhY2tlbmQ9e0hUTUw1QmFja2VuZH0+e0RlZmF1bHRUYWJsZX08L0RuZFByb3ZpZGVyPlxyXG4gICAgKSA6IChcclxuICAgICAgRGVmYXVsdFRhYmxlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5TQ1RhYmxlKTtcclxuIl19
|