nsc-react-component 2.6.5 → 2.6.7

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.
@@ -0,0 +1,467 @@
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/upload/style/css";
4
+ import _Upload from "antd/es/upload";
5
+
6
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
+
8
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
+
10
+ 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."); }
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
+
50
+ import * as React from "react";
51
+ import file from "nsc-file";
52
+ import message from "../message";
53
+ import withZhLocale from "../common/withZhLocale";
54
+ import omit from "omit.js";
55
+ import { getLess } from "../../utils";
56
+ import styles from "./index.less";
57
+ import cls from "classnames";
58
+ import FileIcon from "../common/FileIcon";
59
+ import { DeleteOutlined, DownloadOutlined, EyeOutlined } from "@ant-design/icons";
60
+ import PdfViewer from "../pdfviwer";
61
+ var upload = file.upload,
62
+ download = file.download;
63
+
64
+ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
65
+ _inherits(NscUpload, _React$PureComponent);
66
+
67
+ var _super = _createSuper(NscUpload);
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", {
81
+ fileList: [],
82
+ viewId: ""
83
+ });
84
+
85
+ _defineProperty(_assertThisInitialized(_this), "customRequest", /*#__PURE__*/function () {
86
+ var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(options) {
87
+ var file, _this$props, onComplete, onProcess, sliceSize, _this$props2, maxSize, allowFileSuffix, size, onProgress, res, fileId;
88
+
89
+ return regeneratorRuntime.wrap(function _callee$(_context) {
90
+ while (1) {
91
+ switch (_context.prev = _context.next) {
92
+ case 0:
93
+ file = options.file;
94
+ _this$props = _this.props, onComplete = _this$props.onComplete, onProcess = _this$props.onProcess, sliceSize = _this$props.sliceSize;
95
+ _this$props2 = _this.props, maxSize = _this$props2.maxSize, allowFileSuffix = _this$props2.allowFileSuffix;
96
+
97
+ if (!(allowFileSuffix && !_this.checkFileType(file))) {
98
+ _context.next = 8;
99
+ break;
100
+ }
101
+
102
+ 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"));
103
+ onComplete && onComplete({
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();
221
+ }
222
+ }
223
+ }, {
224
+ key: "convertFileList",
225
+ value: function convertFileList(list) {
226
+ var fileList = this.props.fileList;
227
+ var newFileList = [];
228
+ var oldList = list ? list : fileList;
229
+ oldList.map(function (item) {
230
+ var temp = _objectSpread({}, item);
231
+
232
+ if (!item.name) {
233
+ temp.name = item.fileName;
234
+ }
235
+
236
+ newFileList.push(temp);
237
+ });
238
+ this.setState({
239
+ fileList: newFileList
240
+ });
241
+ }
242
+ }, {
243
+ key: "componentDidUpdate",
244
+ value: function componentDidUpdate(preProps, preState) {
245
+ if (this.props.fileList) {
246
+ if (JSON.stringify(preState.fileList) !== JSON.stringify(this.props.fileList)) {
247
+ this.convertFileList();
248
+ }
249
+ }
250
+ }
251
+ }, {
252
+ key: "getFileList",
253
+ value: function getFileList() {
254
+ return this.state.fileList;
255
+ }
256
+ }, {
257
+ key: "setFileList",
258
+ value: function setFileList(fileList) {
259
+ this.convertFileList(fileList);
260
+ }
261
+ }, {
262
+ key: "beforeUpload",
263
+ value: function beforeUpload(file) {
264
+ var fileList = this.state.fileList;
265
+ var onListChange = this.props.onListChange;
266
+ var newList = [].concat(_toConsumableArray(fileList), [{
267
+ fileName: file.name,
268
+ percent: 0,
269
+ status: "uploading",
270
+ uid: file.uid,
271
+ name: file.name
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;
287
+ }
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
+ }
334
+ }, {
335
+ key: "onDelete",
336
+ value: function onDelete(file) {
337
+ var fileList = this.state.fileList;
338
+ var onListChange = this.props.onListChange;
339
+ var newList = [];
340
+ fileList.map(function (item) {
341
+ if (item.fileId !== file.fileId || item.uid !== file.uid) {
342
+ newList.push(item);
343
+ }
344
+ });
345
+ this.setState({
346
+ fileList: newList
347
+ });
348
+ onListChange && onListChange(newList);
349
+ }
350
+ }, {
351
+ key: "render",
352
+ value: function render() {
353
+ var _this2 = this;
354
+
355
+ var _this$props3 = this.props,
356
+ useDefaultList = _this$props3.useDefaultList,
357
+ fileList = _this$props3.fileList,
358
+ fileCard = _this$props3.fileCard,
359
+ _this$props3$showUplo = _this$props3.showUploadList,
360
+ showUploadList = _this$props3$showUplo === void 0 ? {
361
+ showDownloadIcon: true,
362
+ showPreviewIcon: false,
363
+ showRemoveIcon: true,
364
+ downloadIcon: null,
365
+ removeIcon: null,
366
+ previewIcon: null
367
+ } : _this$props3$showUplo;
368
+ var newFileList = this.state.fileList;
369
+
370
+ if (useDefaultList && fileList) {
371
+ newFileList = fileList;
372
+ }
373
+
374
+ var newprops = omit(this.props, ["sliceSize", "maxSize", "onComplete", "onProcess", "allowFileSuffix", "useDefaultList", "fileCard", "onListChange"]);
375
+ var defaultProps = {
376
+ customRequest: this.customRequest.bind(this),
377
+ multiple: true,
378
+ beforeUpload: this.beforeUpload.bind(this)
379
+ };
380
+
381
+ if (fileCard) {
382
+ defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
383
+ itemRender: function itemRender(originNode, file, currFileList) {
384
+ var name = file.name || file.fileName;
385
+ var names = name === null || name === void 0 ? void 0 : name.split(".");
386
+ var suffix = names ? names[names.length - 1] : "";
387
+ return /*#__PURE__*/React.createElement("div", {
388
+ className: getLess(styles, "file-item")
389
+ }, /*#__PURE__*/React.createElement("div", {
390
+ className: cls(getLess(styles, "content"), _defineProperty({}, getLess(styles, "content_error"), file.status == "error"))
391
+ }, /*#__PURE__*/React.createElement("div", {
392
+ className: getLess(styles, "mark-picture")
393
+ }, /*#__PURE__*/React.createElement(FileIcon, {
394
+ suffix: suffix,
395
+ fileId: file.fileId
396
+ })), /*#__PURE__*/React.createElement("div", {
397
+ className: getLess(styles, "name")
398
+ }, file.name || file.fileName), /*#__PURE__*/React.createElement("div", {
399
+ className: getLess(styles, "icon")
400
+ }, showUploadList.showPreviewIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
401
+ onClick: function onClick() {
402
+ if (_this2.props.onDownload) {
403
+ _this2.props.onDownload(file);
404
+ } else {
405
+ download(file.fileId);
406
+ }
407
+ },
408
+ style: {
409
+ cursor: "pointer"
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"
421
+ }
422
+ }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DownloadOutlined, null)), showUploadList.showRemoveIcon && /*#__PURE__*/React.createElement("div", {
423
+ onClick: function onClick() {
424
+ if (_this2.props.onRemove) {
425
+ _this2.props.onRemove(file);
426
+ } else {
427
+ _this2.onDelete(file);
428
+ }
429
+ },
430
+ style: {
431
+ cursor: "pointer"
432
+ }
433
+ }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DeleteOutlined, null)))), file.status == "uploading" && /*#__PURE__*/React.createElement("div", {
434
+ className: getLess(styles, "process")
435
+ }, /*#__PURE__*/React.createElement("div", {
436
+ className: getLess(styles, "percent"),
437
+ style: {
438
+ width: file.percent + "%"
439
+ }
440
+ })));
441
+ }
442
+ });
443
+ } else {
444
+ defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
445
+ onDownload: function onDownload(file) {
446
+ download(file.fileId);
447
+ },
448
+ onRemove: function onRemove(file) {
449
+ _this2.onDelete(file);
450
+ },
451
+ showUploadList: _objectSpread({}, showUploadList)
452
+ });
453
+ }
454
+
455
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Upload, _extends({
456
+ fileList: this.state.fileList
457
+ }, defaultProps, newprops)), /*#__PURE__*/React.createElement(PdfViewer, {
458
+ fileId: this.state.viewId
459
+ }));
460
+ }
461
+ }]);
462
+
463
+ return NscUpload;
464
+ }(React.PureComponent);
465
+
466
+ 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==
@@ -0,0 +1,62 @@
1
+ .name {
2
+ margin-bottom: 10px;
3
+ .text {
4
+ color: var(--ant-primary-color);
5
+ }
6
+ }
7
+ .file-item {
8
+ border-radius: 4px;
9
+ border: 1px solid #d9d9d9;
10
+ margin-top: 10px;
11
+ padding: 0px 15px;
12
+ position: relative;
13
+ height: 66px;
14
+ .content {
15
+ display: flex;
16
+ align-items: center;
17
+ height: 66px;
18
+ .mark-picture {
19
+ width: 48px;
20
+ height: 48px;
21
+ margin-right: 10px;
22
+ border-radius: 4px;
23
+ // border: 1px solid #d9d9d9;
24
+ }
25
+ .name {
26
+ flex: 1;
27
+ }
28
+
29
+ .icon {
30
+ display: flex;
31
+ flex-direction: row-reverse;
32
+ margin-left: 10px;
33
+ width: 40px;
34
+ justify-content: space-between;
35
+ }
36
+ }
37
+ .content_error {
38
+ color: #ff4d4f;
39
+ // color: var(--ant-error-color);
40
+ }
41
+ .process {
42
+ height: 2px;
43
+ border-radius: 2px;
44
+ background: #f5f5f5;
45
+ position: absolute;
46
+ bottom: 3px;
47
+ width: calc(100% - 30px);
48
+ .percent {
49
+ height: 2px;
50
+ border-radius: 2px;
51
+ background: var(--ant-primary-color);
52
+ }
53
+ }
54
+ }
55
+ .file-item:hover {
56
+ background: #f5f5f5;
57
+ }
58
+ .bottom {
59
+ color: #666666;
60
+ margin-top: 10px;
61
+ font-size: 12px;
62
+ }