nsc-react-component 2.12.2 → 2.13.1
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/Interface.js +1 -1
- package/lib/Interface.js.map +1 -0
- package/lib/base/affix/index.js +5 -46
- package/lib/base/affix/index.js.map +1 -0
- package/lib/base/alert/index.js +5 -46
- package/lib/base/alert/index.js.map +1 -0
- package/lib/base/anchor/index.js +8 -49
- package/lib/base/anchor/index.js.map +1 -0
- package/lib/base/avatar/index.js +8 -49
- package/lib/base/avatar/index.js.map +1 -0
- package/lib/base/backTop/index.js +5 -46
- package/lib/base/backTop/index.js.map +1 -0
- package/lib/base/badge/index.js +8 -49
- package/lib/base/badge/index.js.map +1 -0
- package/lib/base/breadcrumb/index.js +5 -46
- package/lib/base/breadcrumb/index.js.map +1 -0
- package/lib/base/button/index.d.ts +1 -1
- package/lib/base/button/index.js +93 -134
- package/lib/base/button/index.js.map +1 -0
- package/lib/base/calendar/index.js +5 -46
- package/lib/base/calendar/index.js.map +1 -0
- package/lib/base/card/index.js +8 -50
- package/lib/base/card/index.js.map +1 -0
- package/lib/base/carousel/index.js +5 -46
- package/lib/base/carousel/index.js.map +1 -0
- package/lib/base/cascader/index.d.ts +3 -3
- package/lib/base/cascader/index.js +150 -221
- package/lib/base/cascader/index.js.map +1 -0
- package/lib/base/chart/index.d.ts +2 -2
- package/lib/base/chart/index.js +178 -287
- package/lib/base/chart/index.js.map +1 -0
- package/lib/base/checkbox/CheckboxGroup.d.ts +3 -3
- package/lib/base/checkbox/CheckboxGroup.js +165 -258
- package/lib/base/checkbox/CheckboxGroup.js.map +1 -0
- package/lib/base/checkbox/index.d.ts +2 -2
- package/lib/base/checkbox/index.js +8 -48
- package/lib/base/checkbox/index.js.map +1 -0
- package/lib/base/collapse/index.js +8 -49
- package/lib/base/collapse/index.js.map +1 -0
- package/lib/base/comment/index.js +5 -46
- package/lib/base/comment/index.js.map +1 -0
- package/lib/base/common/BodyRow/index.js +48 -102
- package/lib/base/common/BodyRow/index.js.map +1 -0
- package/lib/base/common/EllipseCell/index.d.ts +1 -1
- package/lib/base/common/EllipseCell/index.js +16 -57
- package/lib/base/common/EllipseCell/index.js.map +1 -0
- package/lib/base/common/FileIcon.d.ts +2 -2
- package/lib/base/common/FileIcon.js +86 -132
- package/lib/base/common/FileIcon.js.map +1 -0
- package/lib/base/common/Icon.d.ts +2 -2
- package/lib/base/common/Icon.js +42 -96
- package/lib/base/common/Icon.js.map +1 -0
- package/lib/base/common/IconData.js +2 -2
- package/lib/base/common/IconData.js.map +1 -0
- package/lib/base/common/IconFont.d.ts +2 -2
- package/lib/base/common/IconFont.js +6 -8
- package/lib/base/common/IconFont.js.map +1 -0
- package/lib/base/common/NoAuthority.d.ts +2 -2
- package/lib/base/common/NoAuthority.js +13 -53
- package/lib/base/common/NoAuthority.js.map +1 -0
- package/lib/base/common/NoData.d.ts +2 -2
- package/lib/base/common/NoData.js +34 -74
- package/lib/base/common/NoData.js.map +1 -0
- package/lib/base/common/NoMessage.d.ts +2 -2
- package/lib/base/common/NoMessage.js +30 -70
- package/lib/base/common/NoMessage.js.map +1 -0
- package/lib/base/common/NoNetWork.d.ts +2 -2
- package/lib/base/common/NoNetWork.js +30 -70
- package/lib/base/common/NoNetWork.js.map +1 -0
- package/lib/base/common/Page404.d.ts +2 -2
- package/lib/base/common/Page404.js +30 -70
- package/lib/base/common/Page404.js.map +1 -0
- package/lib/base/common/PageRequest.js +91 -154
- package/lib/base/common/PageRequest.js.map +1 -0
- package/lib/base/common/TreePanel.d.ts +1 -1
- package/lib/base/common/TreePanel.js +133 -212
- package/lib/base/common/TreePanel.js.map +1 -0
- package/lib/base/common/iconfontalibaba.js +15 -22
- package/lib/base/common/iconfontalibaba.js.map +1 -0
- package/lib/base/common/withZhLocale.d.ts +1 -1
- package/lib/base/common/withZhLocale.js +3 -7
- package/lib/base/common/withZhLocale.js.map +1 -0
- package/lib/base/configProvider/index.js +8 -49
- package/lib/base/configProvider/index.js.map +1 -0
- package/lib/base/datepick/Rangepicker.d.ts +3 -3
- package/lib/base/datepick/Rangepicker.js +229 -325
- package/lib/base/datepick/Rangepicker.js.map +1 -0
- package/lib/base/datepick/index.d.ts +2 -2
- package/lib/base/datepick/index.js +56 -113
- package/lib/base/datepick/index.js.map +1 -0
- package/lib/base/descriptions/index.js +8 -49
- package/lib/base/descriptions/index.js.map +1 -0
- package/lib/base/divider/index.js +5 -46
- package/lib/base/divider/index.js.map +1 -0
- package/lib/base/download/index.js +42 -84
- package/lib/base/download/index.js.map +1 -0
- package/lib/base/drawer/index.js +14 -57
- package/lib/base/drawer/index.js.map +1 -0
- package/lib/base/dropdown/index.js +19 -65
- package/lib/base/dropdown/index.js.map +1 -0
- package/lib/base/editor/index.d.ts +1 -1
- package/lib/base/editor/index.js +83 -128
- package/lib/base/editor/index.js.map +1 -0
- package/lib/base/errorboundary/index.js +19 -63
- package/lib/base/errorboundary/index.js.map +1 -0
- package/lib/base/form/Form.d.ts +2 -2
- package/lib/base/form/Form.js +314 -427
- package/lib/base/form/Form.js.map +1 -0
- package/lib/base/form/filed/Cascader.d.ts +2 -2
- package/lib/base/form/filed/Cascader.js +6 -45
- package/lib/base/form/filed/Cascader.js.map +1 -0
- package/lib/base/form/filed/Checkbox.d.ts +2 -2
- package/lib/base/form/filed/Checkbox.js +6 -45
- package/lib/base/form/filed/Checkbox.js.map +1 -0
- package/lib/base/form/filed/DatePicker.d.ts +2 -2
- package/lib/base/form/filed/DatePicker.js +6 -45
- package/lib/base/form/filed/DatePicker.js.map +1 -0
- package/lib/base/form/filed/FormItem.d.ts +2 -2
- package/lib/base/form/filed/FormItem.js +65 -127
- package/lib/base/form/filed/FormItem.js.map +1 -0
- package/lib/base/form/filed/Input.d.ts +2 -2
- package/lib/base/form/filed/Input.js +14 -51
- package/lib/base/form/filed/Input.js.map +1 -0
- package/lib/base/form/filed/InputEamil.d.ts +2 -2
- package/lib/base/form/filed/InputEamil.js +5 -44
- package/lib/base/form/filed/InputEamil.js.map +1 -0
- package/lib/base/form/filed/InputNumber.d.ts +2 -2
- package/lib/base/form/filed/InputNumber.js +5 -44
- package/lib/base/form/filed/InputNumber.js.map +1 -0
- package/lib/base/form/filed/InputPassword.d.ts +2 -2
- package/lib/base/form/filed/InputPassword.js +5 -44
- package/lib/base/form/filed/InputPassword.js.map +1 -0
- package/lib/base/form/filed/Item.d.ts +3 -3
- package/lib/base/form/filed/Item.js +91 -163
- package/lib/base/form/filed/Item.js.map +1 -0
- package/lib/base/form/filed/Radio.d.ts +2 -2
- package/lib/base/form/filed/Radio.js +7 -45
- package/lib/base/form/filed/Radio.js.map +1 -0
- package/lib/base/form/filed/RangerPicker.d.ts +2 -2
- package/lib/base/form/filed/RangerPicker.js +6 -45
- package/lib/base/form/filed/RangerPicker.js.map +1 -0
- package/lib/base/form/filed/Rate.d.ts +2 -2
- package/lib/base/form/filed/Rate.js +6 -46
- package/lib/base/form/filed/Rate.js.map +1 -0
- package/lib/base/form/filed/Select.d.ts +2 -2
- package/lib/base/form/filed/Select.js +9 -49
- package/lib/base/form/filed/Select.js.map +1 -0
- package/lib/base/form/filed/Slider.d.ts +2 -2
- package/lib/base/form/filed/Slider.js +6 -46
- package/lib/base/form/filed/Slider.js.map +1 -0
- package/lib/base/form/filed/Switch.d.ts +2 -2
- package/lib/base/form/filed/Switch.js +6 -46
- package/lib/base/form/filed/Switch.js.map +1 -0
- package/lib/base/form/filed/TagSelect.d.ts +2 -2
- package/lib/base/form/filed/TagSelect.js +6 -45
- package/lib/base/form/filed/TagSelect.js.map +1 -0
- package/lib/base/form/filed/TextArea.d.ts +2 -2
- package/lib/base/form/filed/TextArea.js +5 -44
- package/lib/base/form/filed/TextArea.js.map +1 -0
- package/lib/base/form/filed/Upload.d.ts +2 -2
- package/lib/base/form/filed/Upload.js +9 -45
- package/lib/base/form/filed/Upload.js.map +1 -0
- package/lib/base/form/index.js +17 -58
- package/lib/base/form/index.js.map +1 -0
- package/lib/base/grid/Col.js +5 -46
- package/lib/base/grid/Col.js.map +1 -0
- package/lib/base/grid/Row.js +5 -46
- package/lib/base/grid/Row.js.map +1 -0
- package/lib/base/grid/index.js +1 -1
- package/lib/base/grid/index.js.map +1 -0
- package/lib/base/iframe/index.d.ts +1 -1
- package/lib/base/iframe/index.js +44 -93
- package/lib/base/iframe/index.js.map +1 -0
- package/lib/base/image/index.js +163 -261
- package/lib/base/image/index.js.map +1 -0
- package/lib/base/input/Email.d.ts +2 -2
- package/lib/base/input/Email.js +55 -103
- package/lib/base/input/Email.js.map +1 -0
- package/lib/base/input/Number.d.ts +1 -1
- package/lib/base/input/Number.js +48 -104
- package/lib/base/input/Number.js.map +1 -0
- package/lib/base/input/Password.d.ts +1 -1
- package/lib/base/input/Password.js +48 -104
- package/lib/base/input/Password.js.map +1 -0
- package/lib/base/input/Search.d.ts +1 -1
- package/lib/base/input/Search.js +46 -102
- package/lib/base/input/Search.js.map +1 -0
- package/lib/base/input/TextArea.d.ts +1 -1
- package/lib/base/input/TextArea.js +64 -123
- package/lib/base/input/TextArea.js.map +1 -0
- package/lib/base/input/index.d.ts +2 -2
- package/lib/base/input/index.js +121 -195
- package/lib/base/input/index.js.map +1 -0
- package/lib/base/layout/index.js +14 -56
- package/lib/base/layout/index.js.map +1 -0
- package/lib/base/list/index.js +8 -49
- package/lib/base/list/index.js.map +1 -0
- package/lib/base/menu/index.d.ts +5 -5
- package/lib/base/menu/index.js +100 -164
- package/lib/base/menu/index.js.map +1 -0
- package/lib/base/message/index.js +5 -47
- package/lib/base/message/index.js.map +1 -0
- package/lib/base/modal/Confirm.js +14 -18
- package/lib/base/modal/Confirm.js.map +1 -0
- package/lib/base/modal/index.d.ts +1 -1
- package/lib/base/modal/index.js +274 -359
- package/lib/base/modal/index.js.map +1 -0
- package/lib/base/notification/index.js +5 -47
- package/lib/base/notification/index.js.map +1 -0
- package/lib/base/pageHeader/index.js +5 -46
- package/lib/base/pageHeader/index.js.map +1 -0
- package/lib/base/pagination/index.js +5 -46
- package/lib/base/pagination/index.js.map +1 -0
- package/lib/base/pdfviwer/index.d.ts +1 -1
- package/lib/base/pdfviwer/index.js +67 -92
- package/lib/base/pdfviwer/index.js.map +1 -0
- package/lib/base/popconfirm/index.js +5 -46
- package/lib/base/popconfirm/index.js.map +1 -0
- package/lib/base/popover/index.js +19 -65
- package/lib/base/popover/index.js.map +1 -0
- package/lib/base/progress/index.js +5 -46
- package/lib/base/progress/index.js.map +1 -0
- package/lib/base/radio/RadioGroup.d.ts +1 -1
- package/lib/base/radio/RadioGroup.js +198 -295
- package/lib/base/radio/RadioGroup.js.map +1 -0
- package/lib/base/radio/index.d.ts +1 -1
- package/lib/base/radio/index.js +8 -50
- package/lib/base/radio/index.js.map +1 -0
- package/lib/base/result/index.js +5 -46
- package/lib/base/result/index.js.map +1 -0
- package/lib/base/select/index.d.ts +4 -4
- package/lib/base/select/index.js +358 -475
- package/lib/base/select/index.js.map +1 -0
- package/lib/base/skeleton/index.js +5 -46
- package/lib/base/skeleton/index.js.map +1 -0
- package/lib/base/space/index.js +5 -46
- package/lib/base/space/index.js.map +1 -0
- package/lib/base/spin/index.js +5 -46
- package/lib/base/spin/index.js.map +1 -0
- package/lib/base/statistic/index.js +8 -49
- package/lib/base/statistic/index.js.map +1 -0
- package/lib/base/steps/index.js +8 -49
- package/lib/base/steps/index.js.map +1 -0
- package/lib/base/switch/index.js +5 -46
- package/lib/base/switch/index.js.map +1 -0
- package/lib/base/table/index.d.ts +8 -8
- package/lib/base/table/index.js +743 -927
- package/lib/base/table/index.js.map +1 -0
- package/lib/base/tabs/Tabpane.d.ts +1 -1
- package/lib/base/tabs/Tabpane.js +22 -58
- package/lib/base/tabs/Tabpane.js.map +1 -0
- package/lib/base/tabs/index.d.ts +1 -1
- package/lib/base/tabs/index.js +110 -156
- package/lib/base/tabs/index.js.map +1 -0
- package/lib/base/tagSelect/TagSelect.d.ts +3 -3
- package/lib/base/tagSelect/TagSelect.js +124 -213
- package/lib/base/tagSelect/TagSelect.js.map +1 -0
- package/lib/base/tagSelect/index.d.ts +3 -3
- package/lib/base/tagSelect/index.js +90 -145
- package/lib/base/tagSelect/index.js.map +1 -0
- package/lib/base/timeline/index.js +8 -49
- package/lib/base/timeline/index.js.map +1 -0
- package/lib/base/tooltip/index.js +19 -65
- package/lib/base/tooltip/index.js.map +1 -0
- package/lib/base/transfer/index.js +5 -46
- package/lib/base/transfer/index.js.map +1 -0
- package/lib/base/tree/TreeSearch.d.ts +3 -3
- package/lib/base/tree/TreeSearch.js +119 -186
- package/lib/base/tree/TreeSearch.js.map +1 -0
- package/lib/base/tree/index.d.ts +2 -2
- package/lib/base/tree/index.js +169 -241
- package/lib/base/tree/index.js.map +1 -0
- package/lib/base/treeselect/index.js +5 -46
- package/lib/base/treeselect/index.js.map +1 -0
- package/lib/base/typography/index.js +5 -46
- package/lib/base/typography/index.js.map +1 -0
- package/lib/base/upload/Dragger.js +370 -605
- package/lib/base/upload/Dragger.js.map +1 -0
- package/lib/base/upload/Upload.js +352 -529
- package/lib/base/upload/Upload.js.map +1 -0
- package/lib/base/upload/index copy.d.ts +1 -1
- package/lib/base/upload/index copy.js +315 -431
- package/lib/base/upload/index copy.js.map +1 -0
- package/lib/base/upload/index.js +366 -640
- package/lib/base/upload/index.js.map +1 -0
- package/lib/config.d.ts +2 -0
- package/lib/config.js +7 -9
- package/lib/config.js.map +1 -0
- package/lib/constants.js +2 -2
- package/lib/constants.js.map +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -0
- package/lib/page/BasePage/Form.d.ts +1 -1
- package/lib/page/BasePage/Form.js +253 -360
- package/lib/page/BasePage/Form.js.map +1 -0
- package/lib/page/BasePage/index.d.ts +3 -3
- package/lib/page/BasePage/index.js +777 -959
- package/lib/page/BasePage/index.js.map +1 -0
- package/lib/page/BasePage/index.module.less +0 -6
- package/lib/page/HeaderSearch/index.d.ts +1 -1
- package/lib/page/HeaderSearch/index.js +196 -272
- package/lib/page/HeaderSearch/index.js.map +1 -0
- package/lib/page/PasswordCheck/index.d.ts +1 -1
- package/lib/page/PasswordCheck/index.js +53 -109
- package/lib/page/PasswordCheck/index.js.map +1 -0
- package/lib/treeUtils.js +45 -58
- package/lib/treeUtils.js.map +1 -0
- package/lib/utils.d.ts +2 -2
- package/lib/utils.js +48 -61
- package/lib/utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,52 +1,11 @@
|
|
|
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
1
|
import "antd/es/upload/style/css";
|
|
4
2
|
import _Upload from "antd/es/upload";
|
|
5
|
-
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
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); }
|
|
13
|
-
|
|
14
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
15
|
-
|
|
16
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
17
|
-
|
|
18
|
-
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; }
|
|
19
|
-
|
|
20
|
-
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; }
|
|
21
|
-
|
|
22
|
-
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; }
|
|
23
|
-
|
|
24
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
25
|
-
|
|
26
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
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
|
-
|
|
3
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
8
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
50
9
|
import * as React from "react";
|
|
51
10
|
import file from "nsc-file";
|
|
52
11
|
import message from "../message";
|
|
@@ -58,410 +17,335 @@ import cls from "classnames";
|
|
|
58
17
|
import FileIcon from "../common/FileIcon";
|
|
59
18
|
import { DeleteOutlined, DownloadOutlined, EyeOutlined } from "@ant-design/icons";
|
|
60
19
|
import PdfViewer from "../pdfviwer";
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
function NscUpload() {
|
|
70
|
-
var _this;
|
|
71
|
-
|
|
72
|
-
_classCallCheck(this, NscUpload);
|
|
73
|
-
|
|
74
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
75
|
-
args[_key] = arguments[_key];
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
79
|
-
|
|
80
|
-
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
20
|
+
const {
|
|
21
|
+
upload,
|
|
22
|
+
download
|
|
23
|
+
} = file;
|
|
24
|
+
class NscUpload extends React.PureComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
_defineProperty(this, "state", {
|
|
81
28
|
fileList: [],
|
|
82
29
|
viewId: ""
|
|
83
30
|
});
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
file: options.file,
|
|
105
|
-
fileId: "",
|
|
106
|
-
status: "error"
|
|
107
|
-
});
|
|
108
|
-
options.onError();
|
|
109
|
-
return _context.abrupt("return", false);
|
|
110
|
-
|
|
111
|
-
case 8:
|
|
112
|
-
if (!maxSize) {
|
|
113
|
-
_context.next = 15;
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
size = maxSize * 1024 * 1024;
|
|
118
|
-
|
|
119
|
-
if (!(size < file.size)) {
|
|
120
|
-
_context.next = 15;
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
message.error("".concat(file.name, "\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7").concat(maxSize, "M\uFF0C\u8BF7\u91CD\u65B0\u4E0A\u4F20\uFF01"));
|
|
125
|
-
onComplete && onComplete({
|
|
126
|
-
file: options.file,
|
|
127
|
-
fileId: "",
|
|
128
|
-
status: "error"
|
|
129
|
-
});
|
|
130
|
-
options.onError();
|
|
131
|
-
return _context.abrupt("return", false);
|
|
132
|
-
|
|
133
|
-
case 15:
|
|
134
|
-
onProgress = function onProgress(totalProgress) {
|
|
135
|
-
options.onProgress({
|
|
136
|
-
percent: totalProgress
|
|
137
|
-
}, file);
|
|
138
|
-
|
|
139
|
-
_this.onProcess({
|
|
140
|
-
percent: totalProgress,
|
|
141
|
-
file: file
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
onProcess && onProcess({
|
|
145
|
-
percent: totalProgress,
|
|
146
|
-
file: file
|
|
147
|
-
});
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
_context.prev = 16;
|
|
151
|
-
_context.next = 19;
|
|
152
|
-
return upload({
|
|
153
|
-
file: file,
|
|
154
|
-
onProgress: onProgress,
|
|
155
|
-
partSize: sliceSize
|
|
156
|
-
});
|
|
157
|
-
|
|
158
|
-
case 19:
|
|
159
|
-
res = _context.sent;
|
|
160
|
-
fileId = null;
|
|
161
|
-
|
|
162
|
-
if (res.code == 200) {
|
|
163
|
-
fileId = res.data.attachId;
|
|
164
|
-
options.onSuccess();
|
|
165
|
-
} else {
|
|
166
|
-
options.onError();
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
_this.onComplete({
|
|
170
|
-
file: options.file,
|
|
171
|
-
fileId: fileId,
|
|
172
|
-
status: res.code == 200 ? "success" : "error"
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
onComplete && onComplete({
|
|
176
|
-
file: options.file,
|
|
177
|
-
fileId: fileId,
|
|
178
|
-
status: res.code == 200 ? "success" : "error"
|
|
179
|
-
});
|
|
180
|
-
_context.next = 31;
|
|
181
|
-
break;
|
|
182
|
-
|
|
183
|
-
case 26:
|
|
184
|
-
_context.prev = 26;
|
|
185
|
-
_context.t0 = _context["catch"](16);
|
|
186
|
-
|
|
187
|
-
_this.onComplete({
|
|
188
|
-
file: options.file,
|
|
189
|
-
fileId: "",
|
|
190
|
-
status: "error"
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
onComplete && onComplete({
|
|
194
|
-
file: options.file,
|
|
195
|
-
fileId: "",
|
|
196
|
-
status: "error"
|
|
197
|
-
});
|
|
198
|
-
options.onError();
|
|
199
|
-
|
|
200
|
-
case 31:
|
|
201
|
-
case "end":
|
|
202
|
-
return _context.stop();
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}, _callee, null, [[16, 26]]);
|
|
206
|
-
}));
|
|
207
|
-
|
|
208
|
-
return function (_x) {
|
|
209
|
-
return _ref.apply(this, arguments);
|
|
210
|
-
};
|
|
211
|
-
}());
|
|
212
|
-
|
|
213
|
-
return _this;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
_createClass(NscUpload, [{
|
|
217
|
-
key: "componentDidMount",
|
|
218
|
-
value: function componentDidMount() {
|
|
219
|
-
if (this.props.fileList) {
|
|
220
|
-
this.convertFileList();
|
|
31
|
+
_defineProperty(this, "customRequest", async options => {
|
|
32
|
+
const file = options.file;
|
|
33
|
+
const {
|
|
34
|
+
onComplete,
|
|
35
|
+
onProcess,
|
|
36
|
+
sliceSize
|
|
37
|
+
} = this.props;
|
|
38
|
+
const {
|
|
39
|
+
maxSize,
|
|
40
|
+
allowFileSuffix
|
|
41
|
+
} = this.props;
|
|
42
|
+
if (allowFileSuffix && !this.checkFileType(file)) {
|
|
43
|
+
message.error("".concat(file.name, "\u6587\u4EF6\u7C7B\u578B\u4E0D\u5141\u8BB8\u4E0A\u4F20\uFF0C\u8BF7\u4E0A\u4F20\u540E\u7F00\u4E3A").concat(allowFileSuffix, "\u7684\u7C7B\u578B\u6587\u4EF6\uFF01"));
|
|
44
|
+
onComplete && onComplete({
|
|
45
|
+
file: options.file,
|
|
46
|
+
fileId: "",
|
|
47
|
+
status: "error"
|
|
48
|
+
});
|
|
49
|
+
options.onError();
|
|
50
|
+
return false;
|
|
221
51
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
temp.name = item.fileName;
|
|
52
|
+
if (maxSize) {
|
|
53
|
+
const size = maxSize * 1024 * 1024;
|
|
54
|
+
if (size < file.size) {
|
|
55
|
+
message.error("".concat(file.name, "\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7").concat(maxSize, "M\uFF0C\u8BF7\u91CD\u65B0\u4E0A\u4F20\uFF01"));
|
|
56
|
+
onComplete && onComplete({
|
|
57
|
+
file: options.file,
|
|
58
|
+
fileId: "",
|
|
59
|
+
status: "error"
|
|
60
|
+
});
|
|
61
|
+
options.onError();
|
|
62
|
+
return false;
|
|
234
63
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
64
|
+
}
|
|
65
|
+
const onProgress = totalProgress => {
|
|
66
|
+
options.onProgress({
|
|
67
|
+
percent: totalProgress
|
|
68
|
+
}, file);
|
|
69
|
+
this.onProcess({
|
|
70
|
+
percent: totalProgress,
|
|
71
|
+
file: file
|
|
72
|
+
});
|
|
73
|
+
onProcess && onProcess({
|
|
74
|
+
percent: totalProgress,
|
|
75
|
+
file: file
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
const res = await upload({
|
|
80
|
+
file: file,
|
|
81
|
+
onProgress: onProgress,
|
|
82
|
+
partSize: sliceSize
|
|
83
|
+
});
|
|
84
|
+
let fileId = null;
|
|
85
|
+
if (res.code == 200) {
|
|
86
|
+
fileId = res.data.attachId;
|
|
87
|
+
options.onSuccess();
|
|
88
|
+
} else {
|
|
89
|
+
options.onError();
|
|
248
90
|
}
|
|
91
|
+
this.onComplete({
|
|
92
|
+
file: options.file,
|
|
93
|
+
fileId: fileId,
|
|
94
|
+
status: res.code == 200 ? "success" : "error"
|
|
95
|
+
});
|
|
96
|
+
onComplete && onComplete({
|
|
97
|
+
file: options.file,
|
|
98
|
+
fileId: fileId,
|
|
99
|
+
status: res.code == 200 ? "success" : "error"
|
|
100
|
+
});
|
|
101
|
+
} catch (e) {
|
|
102
|
+
this.onComplete({
|
|
103
|
+
file: options.file,
|
|
104
|
+
fileId: "",
|
|
105
|
+
status: "error"
|
|
106
|
+
});
|
|
107
|
+
onComplete && onComplete({
|
|
108
|
+
file: options.file,
|
|
109
|
+
fileId: "",
|
|
110
|
+
status: "error"
|
|
111
|
+
});
|
|
112
|
+
options.onError();
|
|
249
113
|
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
componentDidMount() {
|
|
117
|
+
if (this.props.fileList) {
|
|
118
|
+
this.convertFileList();
|
|
250
119
|
}
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
this.setState({
|
|
274
|
-
fileList: newList
|
|
275
|
-
});
|
|
276
|
-
onListChange && onListChange(newList);
|
|
277
|
-
}
|
|
278
|
-
}, {
|
|
279
|
-
key: "checkFileType",
|
|
280
|
-
value: function checkFileType(file) {
|
|
281
|
-
var allowFileSuffix = this.props.allowFileSuffix;
|
|
282
|
-
var names = file.name.split(".");
|
|
283
|
-
var suffix = names[names.length - 1];
|
|
284
|
-
|
|
285
|
-
if (allowFileSuffix.indexOf(suffix) > -1) {
|
|
286
|
-
return true;
|
|
120
|
+
}
|
|
121
|
+
convertFileList(list) {
|
|
122
|
+
const {
|
|
123
|
+
fileList
|
|
124
|
+
} = this.props;
|
|
125
|
+
const newFileList = [];
|
|
126
|
+
let oldList = list ? list : fileList;
|
|
127
|
+
oldList.map(item => {
|
|
128
|
+
let temp = _objectSpread({}, item);
|
|
129
|
+
if (!item.name) {
|
|
130
|
+
temp.name = item.fileName;
|
|
131
|
+
}
|
|
132
|
+
newFileList.push(temp);
|
|
133
|
+
});
|
|
134
|
+
this.setState({
|
|
135
|
+
fileList: newFileList
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
componentDidUpdate(preProps, preState) {
|
|
139
|
+
if (this.props.fileList) {
|
|
140
|
+
if (JSON.stringify(preState.fileList) !== JSON.stringify(this.props.fileList)) {
|
|
141
|
+
this.convertFileList();
|
|
287
142
|
}
|
|
288
|
-
|
|
289
|
-
return false;
|
|
290
|
-
}
|
|
291
|
-
}, {
|
|
292
|
-
key: "onProcess",
|
|
293
|
-
value: function onProcess(_ref2) {
|
|
294
|
-
var percent = _ref2.percent,
|
|
295
|
-
file = _ref2.file;
|
|
296
|
-
var fileList = this.state.fileList;
|
|
297
|
-
var onListChange = this.props.onListChange;
|
|
298
|
-
var newList = [];
|
|
299
|
-
fileList.map(function (item) {
|
|
300
|
-
var newFile = _objectSpread({}, item);
|
|
301
|
-
|
|
302
|
-
if (file.uid == item.uid) {
|
|
303
|
-
newFile.percent = percent;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
newList.push(newFile);
|
|
307
|
-
});
|
|
308
|
-
this.setState({
|
|
309
|
-
fileList: newList
|
|
310
|
-
});
|
|
311
|
-
onListChange && onListChange(newList);
|
|
312
|
-
}
|
|
313
|
-
}, {
|
|
314
|
-
key: "onComplete",
|
|
315
|
-
value: function onComplete(file) {
|
|
316
|
-
var fileList = this.state.fileList;
|
|
317
|
-
var onListChange = this.props.onListChange;
|
|
318
|
-
var newList = [];
|
|
319
|
-
fileList.map(function (item) {
|
|
320
|
-
var newFile = _objectSpread({}, item);
|
|
321
|
-
|
|
322
|
-
if (file.file.uid == item.uid) {
|
|
323
|
-
newFile.status = file.status == "success" ? "done" : file.status;
|
|
324
|
-
newFile.fileId = file.fileId;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
newList.push(newFile);
|
|
328
|
-
});
|
|
329
|
-
this.setState({
|
|
330
|
-
fileList: newList
|
|
331
|
-
});
|
|
332
|
-
onListChange && onListChange(newList);
|
|
333
143
|
}
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
144
|
+
}
|
|
145
|
+
getFileList() {
|
|
146
|
+
return this.state.fileList;
|
|
147
|
+
}
|
|
148
|
+
setFileList(fileList) {
|
|
149
|
+
this.convertFileList(fileList);
|
|
150
|
+
}
|
|
151
|
+
beforeUpload(file) {
|
|
152
|
+
const {
|
|
153
|
+
fileList
|
|
154
|
+
} = this.state;
|
|
155
|
+
const {
|
|
156
|
+
onListChange
|
|
157
|
+
} = this.props;
|
|
158
|
+
const newList = [...fileList, {
|
|
159
|
+
fileName: file.name,
|
|
160
|
+
percent: 0,
|
|
161
|
+
status: "uploading",
|
|
162
|
+
uid: file.uid,
|
|
163
|
+
name: file.name
|
|
164
|
+
}];
|
|
165
|
+
this.setState({
|
|
166
|
+
fileList: newList
|
|
167
|
+
});
|
|
168
|
+
onListChange && onListChange(newList);
|
|
169
|
+
}
|
|
170
|
+
checkFileType(file) {
|
|
171
|
+
const {
|
|
172
|
+
allowFileSuffix
|
|
173
|
+
} = this.props;
|
|
174
|
+
const names = file.name.split(".");
|
|
175
|
+
const suffix = names[names.length - 1];
|
|
176
|
+
if (allowFileSuffix.indexOf(suffix) > -1) {
|
|
177
|
+
return true;
|
|
349
178
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
onProcess(_ref) {
|
|
182
|
+
let {
|
|
183
|
+
percent,
|
|
184
|
+
file
|
|
185
|
+
} = _ref;
|
|
186
|
+
const {
|
|
187
|
+
fileList
|
|
188
|
+
} = this.state;
|
|
189
|
+
const {
|
|
190
|
+
onListChange
|
|
191
|
+
} = this.props;
|
|
192
|
+
const newList = [];
|
|
193
|
+
fileList.map(item => {
|
|
194
|
+
const newFile = _objectSpread({}, item);
|
|
195
|
+
if (file.uid == item.uid) {
|
|
196
|
+
newFile.percent = percent;
|
|
197
|
+
}
|
|
198
|
+
newList.push(newFile);
|
|
199
|
+
});
|
|
200
|
+
this.setState({
|
|
201
|
+
fileList: newList
|
|
202
|
+
});
|
|
203
|
+
onListChange && onListChange(newList);
|
|
204
|
+
}
|
|
205
|
+
onComplete(file) {
|
|
206
|
+
const {
|
|
207
|
+
fileList
|
|
208
|
+
} = this.state;
|
|
209
|
+
const {
|
|
210
|
+
onListChange
|
|
211
|
+
} = this.props;
|
|
212
|
+
const newList = [];
|
|
213
|
+
fileList.map(item => {
|
|
214
|
+
const newFile = _objectSpread({}, item);
|
|
215
|
+
if (file.file.uid == item.uid) {
|
|
216
|
+
newFile.status = file.status == "success" ? "done" : file.status;
|
|
217
|
+
newFile.fileId = file.fileId;
|
|
218
|
+
}
|
|
219
|
+
newList.push(newFile);
|
|
220
|
+
});
|
|
221
|
+
this.setState({
|
|
222
|
+
fileList: newList
|
|
223
|
+
});
|
|
224
|
+
onListChange && onListChange(newList);
|
|
225
|
+
}
|
|
226
|
+
onDelete(file) {
|
|
227
|
+
const {
|
|
228
|
+
fileList
|
|
229
|
+
} = this.state;
|
|
230
|
+
const {
|
|
231
|
+
onListChange
|
|
232
|
+
} = this.props;
|
|
233
|
+
const newList = [];
|
|
234
|
+
fileList.map(item => {
|
|
235
|
+
if (item.fileId !== file.fileId || item.uid !== file.uid) {
|
|
236
|
+
newList.push(item);
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
this.setState({
|
|
240
|
+
fileList: newList
|
|
241
|
+
});
|
|
242
|
+
onListChange && onListChange(newList);
|
|
243
|
+
}
|
|
244
|
+
render() {
|
|
245
|
+
let {
|
|
246
|
+
useDefaultList,
|
|
247
|
+
fileList,
|
|
248
|
+
fileCard,
|
|
249
|
+
showUploadList = {
|
|
361
250
|
showDownloadIcon: true,
|
|
362
251
|
showPreviewIcon: false,
|
|
363
252
|
showRemoveIcon: true,
|
|
364
253
|
downloadIcon: null,
|
|
365
254
|
removeIcon: null,
|
|
366
255
|
previewIcon: null
|
|
367
|
-
} : _this$props3$showUplo;
|
|
368
|
-
var newFileList = this.state.fileList;
|
|
369
|
-
|
|
370
|
-
if (useDefaultList && fileList) {
|
|
371
|
-
newFileList = fileList;
|
|
372
256
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
}, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(EyeOutlined, null)), showUploadList.showDownloadIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
|
|
412
|
-
onClick: function onClick() {
|
|
413
|
-
if (_this2.props.onDownload) {
|
|
414
|
-
_this2.props.onDownload(file);
|
|
415
|
-
} else {
|
|
416
|
-
download(file.fileId);
|
|
417
|
-
}
|
|
418
|
-
},
|
|
419
|
-
style: {
|
|
420
|
-
cursor: "pointer"
|
|
257
|
+
} = this.props;
|
|
258
|
+
let newFileList = this.state.fileList;
|
|
259
|
+
if (useDefaultList && fileList) {
|
|
260
|
+
newFileList = fileList;
|
|
261
|
+
}
|
|
262
|
+
const newprops = omit(this.props, ["sliceSize", "maxSize", "onComplete", "onProcess", "allowFileSuffix", "useDefaultList", "fileCard", "onListChange"]);
|
|
263
|
+
let defaultProps = {
|
|
264
|
+
customRequest: this.customRequest.bind(this),
|
|
265
|
+
multiple: true,
|
|
266
|
+
beforeUpload: this.beforeUpload.bind(this)
|
|
267
|
+
};
|
|
268
|
+
if (fileCard) {
|
|
269
|
+
defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
|
|
270
|
+
itemRender: (originNode, file, currFileList) => {
|
|
271
|
+
const name = file.name || file.fileName;
|
|
272
|
+
const names = name === null || name === void 0 ? void 0 : name.split(".");
|
|
273
|
+
const suffix = names ? names[names.length - 1] : "";
|
|
274
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
275
|
+
className: getLess(styles, "file-item")
|
|
276
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
277
|
+
className: cls(getLess(styles, "content"), {
|
|
278
|
+
[getLess(styles, "content_error")]: file.status == "error"
|
|
279
|
+
})
|
|
280
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
281
|
+
className: getLess(styles, "mark-picture")
|
|
282
|
+
}, /*#__PURE__*/React.createElement(FileIcon, {
|
|
283
|
+
suffix: suffix,
|
|
284
|
+
fileId: file.fileId
|
|
285
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
286
|
+
className: getLess(styles, "name")
|
|
287
|
+
}, file.name || file.fileName), /*#__PURE__*/React.createElement("div", {
|
|
288
|
+
className: getLess(styles, "icon")
|
|
289
|
+
}, showUploadList.showPreviewIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
|
|
290
|
+
onClick: () => {
|
|
291
|
+
if (this.props.onDownload) {
|
|
292
|
+
this.props.onDownload(file);
|
|
293
|
+
} else {
|
|
294
|
+
download(file.fileId);
|
|
421
295
|
}
|
|
422
|
-
},
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
296
|
+
},
|
|
297
|
+
style: {
|
|
298
|
+
cursor: "pointer"
|
|
299
|
+
}
|
|
300
|
+
}, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(EyeOutlined, null)), showUploadList.showDownloadIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
|
|
301
|
+
onClick: () => {
|
|
302
|
+
if (this.props.onDownload) {
|
|
303
|
+
this.props.onDownload(file);
|
|
304
|
+
} else {
|
|
305
|
+
download(file.fileId);
|
|
432
306
|
}
|
|
433
|
-
},
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
307
|
+
},
|
|
308
|
+
style: {
|
|
309
|
+
cursor: "pointer"
|
|
310
|
+
}
|
|
311
|
+
}, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DownloadOutlined, null)), showUploadList.showRemoveIcon && /*#__PURE__*/React.createElement("div", {
|
|
312
|
+
onClick: () => {
|
|
313
|
+
if (this.props.onRemove) {
|
|
314
|
+
this.props.onRemove(file);
|
|
315
|
+
} else {
|
|
316
|
+
this.onDelete(file);
|
|
439
317
|
}
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
318
|
+
},
|
|
319
|
+
style: {
|
|
320
|
+
cursor: "pointer"
|
|
321
|
+
}
|
|
322
|
+
}, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DeleteOutlined, null)))), file.status == "uploading" && /*#__PURE__*/React.createElement("div", {
|
|
323
|
+
className: getLess(styles, "process")
|
|
324
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
325
|
+
className: getLess(styles, "percent"),
|
|
326
|
+
style: {
|
|
327
|
+
width: file.percent + "%"
|
|
328
|
+
}
|
|
329
|
+
})));
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
} else {
|
|
333
|
+
defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
|
|
334
|
+
onDownload: file => {
|
|
335
|
+
download(file.fileId);
|
|
336
|
+
},
|
|
337
|
+
onRemove: file => {
|
|
338
|
+
this.onDelete(file);
|
|
339
|
+
},
|
|
340
|
+
showUploadList: _objectSpread({}, showUploadList)
|
|
341
|
+
});
|
|
460
342
|
}
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
343
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Upload, _extends({
|
|
344
|
+
fileList: this.state.fileList
|
|
345
|
+
}, defaultProps, newprops)), /*#__PURE__*/React.createElement(PdfViewer, {
|
|
346
|
+
fileId: this.state.viewId
|
|
347
|
+
}));
|
|
348
|
+
}
|
|
349
|
+
}
|
|
466
350
|
export default withZhLocale(NscUpload);
|
|
467
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4IGNvcHkudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsIm1lc3NhZ2UiLCJ3aXRoWmhMb2NhbGUiLCJvbWl0IiwiZ2V0TGVzcyIsInN0eWxlcyIsImNscyIsIkZpbGVJY29uIiwiRGVsZXRlT3V0bGluZWQiLCJEb3dubG9hZE91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJQZGZWaWV3ZXIiLCJ1cGxvYWQiLCJkb3dubG9hZCIsIk5zY1VwbG9hZCIsImZpbGVMaXN0Iiwidmlld0lkIiwib3B0aW9ucyIsInByb3BzIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJuYW1lIiwiZmlsZUlkIiwic3RhdHVzIiwib25FcnJvciIsInNpemUiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJwYXJ0U2l6ZSIsInJlcyIsImNvZGUiLCJkYXRhIiwiYXR0YWNoSWQiLCJvblN1Y2Nlc3MiLCJjb252ZXJ0RmlsZUxpc3QiLCJsaXN0IiwibmV3RmlsZUxpc3QiLCJvbGRMaXN0IiwibWFwIiwiaXRlbSIsInRlbXAiLCJmaWxlTmFtZSIsInB1c2giLCJzZXRTdGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJvbkxpc3RDaGFuZ2UiLCJuZXdMaXN0IiwidWlkIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsImxlbmd0aCIsImluZGV4T2YiLCJuZXdGaWxlIiwidXNlRGVmYXVsdExpc3QiLCJmaWxlQ2FyZCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiYmVmb3JlVXBsb2FkIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJvbkRvd25sb2FkIiwiY3Vyc29yIiwib25SZW1vdmUiLCJvbkRlbGV0ZSIsIndpZHRoIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLFlBQXBCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5Qix3QkFBekI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixvQkFBckI7QUFDQSxTQUNFQyxjQURGLEVBRUVDLGdCQUZGLEVBR0VDLFdBSEYsUUFJTyxtQkFKUDtBQUtBLE9BQU9DLFNBQVAsTUFBc0IsYUFBdEI7QUFDQSxJQUFRQyxNQUFSLEdBQTZCWixJQUE3QixDQUFRWSxNQUFSO0FBQUEsSUFBZ0JDLFFBQWhCLEdBQTZCYixJQUE3QixDQUFnQmEsUUFBaEI7O0lBWU1DLFM7Ozs7Ozs7Ozs7Ozs7Ozs7NERBQ0k7QUFBRUMsTUFBQUEsUUFBUSxFQUFFLEVBQVo7QUFBZ0JDLE1BQUFBLE1BQU0sRUFBRTtBQUF4QixLOzs7eUVBK0ZRLGlCQUFPQyxPQUFQO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDUmpCLGdCQUFBQSxJQURRLEdBQ0RpQixPQUFPLENBQUNqQixJQURQO0FBQUEsOEJBRStCLE1BQUtrQixLQUZwQyxFQUVOQyxVQUZNLGVBRU5BLFVBRk0sRUFFTUMsU0FG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Q0QsV0FQUztBQVFWa0UsVUFBQUEsY0FBYyxvQkFBT0EsY0FBUDtBQVJKLFVBQVo7QUFVRDs7QUFDRCwwQkFDRSx1REFDRTtBQUNFLFFBQUEsUUFBUSxFQUFFLEtBQUtaLEtBQUwsQ0FBV3ZDO0FBRHZCLFNBRU0yRCxZQUZOLEVBR01ELFFBSE4sRUFERixlQU1FLG9CQUFDLFNBQUQ7QUFBVyxRQUFBLE1BQU0sRUFBRSxLQUFLbkIsS0FBTCxDQUFXdEM7QUFBOUIsUUFORixDQURGO0FBVUQ7Ozs7RUE3VHFCakIsS0FBSyxDQUFDd0YsYTs7QUErVDlCLGVBQWVyRixZQUFZLENBQUNZLFNBQUQsQ0FBM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVXBsb2FkLCBVcGxvYWRQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgUGRmVmlld2VyIGZyb20gXCIuLi9wZGZ2aXdlclwiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG59XHJcbmNsYXNzIE5zY1VwbG9hZCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVVwbG9hZFByb3BzLCBhbnk+IHtcclxuICBzdGF0ZSA9IHsgZmlsZUxpc3Q6IFtdLCB2aWV3SWQ6IFwiXCIgfTtcclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnRGaWxlTGlzdChsaXN0PzogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICBvbGRMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICghaXRlbS5uYW1lKSB7XHJcbiAgICAgICAgdGVtcC5uYW1lID0gaXRlbS5maWxlTmFtZTtcclxuICAgICAgfVxyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0ZpbGVMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmVQcm9wcywgcHJlU3RhdGUpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShwcmVTdGF0ZS5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdClcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRGaWxlTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmZpbGVMaXN0O1xyXG4gIH1cclxuICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBiZWZvcmVVcGxvYWQoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdCA9IFtcclxuICAgICAgLi4uZmlsZUxpc3QsXHJcbiAgICAgIHtcclxuICAgICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgIHVpZDogZmlsZS51aWQsXHJcbiAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgb25Db21wbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnN0YXR1cyA9IGZpbGUuc3RhdHVzID09IFwic3VjY2Vzc1wiID8gXCJkb25lXCIgOiBmaWxlLnN0YXR1cztcclxuICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBtYXhTaXplLCBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtYXhTaXplKSB7XHJcbiAgICAgIGNvbnN0IHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZCh7XHJcbiAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8IGl0ZW0udWlkICE9PSBmaWxlLnVpZCkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgdXNlRGVmYXVsdExpc3QsXHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IG5ld0ZpbGVMaXN0ID0gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICAgIGlmICh1c2VEZWZhdWx0TGlzdCAmJiBmaWxlTGlzdCkge1xyXG4gICAgICBuZXdGaWxlTGlzdCA9IGZpbGVMaXN0O1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3cHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgIFwib25Db21wbGV0ZVwiLFxyXG4gICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICBcInVzZURlZmF1bHRMaXN0XCIsXHJcbiAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgICBiZWZvcmVVcGxvYWQ6IHRoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyksXHJcbiAgICB9IGFzIElVcGxvYWRQcm9wcztcclxuICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgY29uc3QgbmFtZXMgPSBuYW1lPy5zcGxpdChcIi5cIik7XHJcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJmaWxlLWl0ZW1cIil9PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnRcIiksIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImNvbnRlbnRfZXJyb3JcIildOiBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibWFyay1waWN0dXJlXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHN1ZmZpeD17c3VmZml4fSBmaWxlSWQ9e2ZpbGUuZmlsZUlkfSAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PlxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1ByZXZpZXdJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdH1cclxuICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8UGRmVmlld2VyIGZpbGVJZD17dGhpcy5zdGF0ZS52aWV3SWR9IC8+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5zY1VwbG9hZCk7XHJcbiJdfQ==
|
|
351
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwid2l0aFpoTG9jYWxlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiUGRmVmlld2VyIiwidXBsb2FkIiwiZG93bmxvYWQiLCJOc2NVcGxvYWQiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJmaWxlTGlzdCIsInZpZXdJZCIsIm9wdGlvbnMiLCJvbkNvbXBsZXRlIiwib25Qcm9jZXNzIiwic2xpY2VTaXplIiwicHJvcHMiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tGaWxlVHlwZSIsImVycm9yIiwiY29uY2F0IiwibmFtZSIsImZpbGVJZCIsInN0YXR1cyIsIm9uRXJyb3IiLCJzaXplIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicmVzIiwicGFydFNpemUiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwiZSIsImNvbXBvbmVudERpZE1vdW50IiwiY29udmVydEZpbGVMaXN0IiwibGlzdCIsIm5ld0ZpbGVMaXN0Iiwib2xkTGlzdCIsIm1hcCIsIml0ZW0iLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsImZpbGVOYW1lIiwicHVzaCIsInNldFN0YXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXRGaWxlTGlzdCIsInN0YXRlIiwic2V0RmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJvbkxpc3RDaGFuZ2UiLCJuZXdMaXN0IiwidWlkIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsImxlbmd0aCIsImluZGV4T2YiLCJfcmVmIiwibmV3RmlsZSIsIm9uRGVsZXRlIiwicmVuZGVyIiwidXNlRGVmYXVsdExpc3QiLCJmaWxlQ2FyZCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uRG93bmxvYWQiLCJzdHlsZSIsImN1cnNvciIsIm9uUmVtb3ZlIiwid2lkdGgiLCJGcmFnbWVudCIsIl9VcGxvYWQiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4IGNvcHkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXI7XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbn1cclxuY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0geyBmaWxlTGlzdDogW10sIHZpZXdJZDogXCJcIiB9O1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKCFpdGVtLm5hbWUpIHtcclxuICAgICAgICB0ZW1wLm5hbWUgPSBpdGVtLmZpbGVOYW1lO1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3RmlsZUxpc3QsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZVN0YXRlLmZpbGVMaXN0KSAhPT1cclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmZpbGVMaXN0KVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGJlZm9yZVVwbG9hZChmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gW1xyXG4gICAgICAuLi5maWxlTGlzdCxcclxuICAgICAge1xyXG4gICAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgdWlkOiBmaWxlLnVpZCxcclxuICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBvbkNvbXBsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgIGNvbnN0IHsgb25Db21wbGV0ZSwgb25Qcm9jZXNzLCBzbGljZVNpemUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IG1heFNpemUsIGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKG1heFNpemUpIHtcclxuICAgICAgY29uc3Qgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKHtcclxuICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmZpbGVJZCAhPT0gZmlsZS5maWxlSWQgfHwgaXRlbS51aWQgIT09IGZpbGUudWlkKSB7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBsZXQge1xyXG4gICAgICB1c2VEZWZhdWx0TGlzdCxcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgbmV3RmlsZUxpc3QgPSB0aGlzLnN0YXRlLmZpbGVMaXN0O1xyXG4gICAgaWYgKHVzZURlZmF1bHRMaXN0ICYmIGZpbGVMaXN0KSB7XHJcbiAgICAgIG5ld0ZpbGVMaXN0ID0gZmlsZUxpc3Q7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgXSk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICAgIGJlZm9yZVVwbG9hZDogdGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzID8gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV0gOiBcIlwiO1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAge2ZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UmVtb3ZlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIHtmaWxlLnN0YXR1cyA9PSBcInVwbG9hZGluZ1wiICYmIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICAgIDxQZGZWaWV3ZXIgZmlsZUlkPXt0aGlzLnN0YXRlLnZpZXdJZH0gLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCB3aXRoWmhMb2NhbGUoTnNjVXBsb2FkKTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsWUFBWSxNQUFNLHdCQUF3QjtBQUNqRCxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixTQUFTQyxPQUFPLFFBQVEsYUFBYTtBQUNyQyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sb0JBQW9CO0FBQ3pDLFNBQ0VDLGNBQWMsRUFDZEMsZ0JBQWdCLEVBQ2hCQyxXQUFXLFFBQ04sbUJBQW1CO0FBQzFCLE9BQU9DLFNBQVMsTUFBTSxhQUFhO0FBQ25DLE1BQU07RUFBRUMsTUFBTTtFQUFFQztBQUFTLENBQUMsR0FBR2IsSUFBSTtBQVlqQyxNQUFNYyxTQUFTLFNBQVNmLEtBQUssQ0FBQ2dCLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDckQ7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFB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
|