nsc-react-component 3.0.4 → 3.0.6

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.
@@ -31,6 +31,9 @@ export default class NscUploadDragger extends React.PureComponent {
31
31
  fileListStore: [],
32
32
  fileNames: []
33
33
  });
34
+ _defineProperty(this, "uploadIngSize", 0);
35
+ _defineProperty(this, "uploadSize", 0);
36
+ _defineProperty(this, "uploadIngList", []);
34
37
  _defineProperty(this, "customRequest", async options => {
35
38
  const file = options.file;
36
39
  const {
@@ -56,36 +59,40 @@ export default class NscUploadDragger extends React.PureComponent {
56
59
  file: file,
57
60
  onProgress: onProgress,
58
61
  partSize: sliceSize
59
- });
62
+ }, this.props.requestConfig);
63
+ this.uploadIngSize = this.uploadIngSize + 1;
60
64
  let fileId = null;
65
+ let ImgRes = null;
61
66
  if (res.code == 200) {
62
67
  fileId = res.data.attachId;
63
68
  options.onSuccess();
64
69
  } else {
65
70
  options.onError();
66
71
  }
67
- this.onComplete({
72
+ this.uploadIngList.push({
68
73
  file: options.file,
69
74
  fileId: fileId,
70
- status: res.code == 200 ? "success" : "error"
75
+ status: res.code == 200 ? "success" : "error",
76
+ url: ImgRes ? ImgRes.data : null
71
77
  });
78
+ if (this.uploadSize == this.uploadIngSize) {
79
+ this.onComplete(this.uploadIngList);
80
+ }
72
81
  onComplete && onComplete({
73
82
  file: options.file,
74
83
  fileId: fileId,
75
84
  status: res.code == 200 ? "success" : "error"
76
85
  });
77
86
  } catch (e) {
78
- this.onComplete({
79
- file: options.file,
80
- fileId: "",
81
- status: "error"
82
- });
87
+ if (this.uploadSize == this.uploadIngSize) {
88
+ this.onComplete(this.uploadIngList);
89
+ options.onError();
90
+ }
83
91
  onComplete && onComplete({
84
92
  file: options.file,
85
93
  fileId: "",
86
94
  status: "error"
87
95
  });
88
- options.onError();
89
96
  }
90
97
  });
91
98
  }
@@ -197,6 +204,7 @@ export default class NscUploadDragger extends React.PureComponent {
197
204
  this.setState({
198
205
  fileList: newList
199
206
  });
207
+ this.uploadSize = ofileList.length;
200
208
  }
201
209
  checkFileType(file) {
202
210
  const {
@@ -233,7 +241,10 @@ export default class NscUploadDragger extends React.PureComponent {
233
241
  });
234
242
  onListChange && onListChange(fileList);
235
243
  }
236
- onComplete(file) {
244
+ async onComplete(files) {
245
+ this.uploadIngSize = 0;
246
+ this.uploadSize = 0;
247
+ this.uploadIngList = [];
237
248
  const {
238
249
  fileList
239
250
  } = this.state;
@@ -242,25 +253,23 @@ export default class NscUploadDragger extends React.PureComponent {
242
253
  requestConfig = {}
243
254
  } = this.props;
244
255
  const newList = [];
245
- let requestId;
246
- let fileIndex;
247
- fileList.map((item, index) => {
256
+ fileList.map(async (item, index) => {
248
257
  const newFile = _objectSpread({}, item);
249
- if (file.file.uid == item.uid) {
250
- newFile.status = file.status == "success" ? "done" : file.status;
251
- newFile.fileId = file.fileId;
252
- if (newVersion) {
253
- requestId = file.fileId;
254
- fileIndex = index;
255
- } else {
256
- let url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
257
- newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
258
+ files.map(async file => {
259
+ if (file.file.uid == item.uid) {
260
+ newFile.status = file.status == "success" ? "done" : file.status;
261
+ newFile.fileId = file.fileId;
262
+ newFile.url = file.url;
263
+ if (!newVersion) {
264
+ let url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
265
+ newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
266
+ }
258
267
  }
259
- }
268
+ });
260
269
  newList.push(newFile);
261
270
  });
262
271
  this.setState({
263
- fileList: newList
272
+ fileList: [...newList]
264
273
  });
265
274
  const {
266
275
  onListChange
@@ -401,4 +410,4 @@ export default class NscUploadDragger extends React.PureComponent {
401
410
  })));
402
411
  }
403
412
  }
404
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJEcmFnZ2VyIiwiX1VwbG9hZCIsIk5zY1VwbG9hZERyYWdnZXIiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJmaWxlTGlzdCIsInZpZXdJZCIsImZpbGVMaXN0U3RvcmUiLCJmaWxlTmFtZXMiLCJvcHRpb25zIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsInByb3BzIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicmVzIiwicGFydFNpemUiLCJmaWxlSWQiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwib25FcnJvciIsInN0YXR1cyIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwidGVtcCIsIl9vYmplY3RTcHJlYWQiLCJuYW1lIiwiZmlsZU5hbWUiLCJ0eXBlIiwic2l6ZSIsInB1c2giLCJzZXRTdGF0ZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJnZXRGaWxlTGlzdCIsInNldEZpbGVMaXN0IiwiYmVmb3JlVXBsb2FkIiwib2ZpbGVMaXN0IiwibWF4U2l6ZSIsImFsbG93RmlsZVN1ZmZpeCIsImNoZWNrU2FtZUZpbGUiLCJtYXhDb3VudCIsInNob3dVcGxvYWRMaXN0IiwicHJvcHNMaXN0Iiwib25MaXN0Q2hhbmdlIiwiY2hlY2tGaWxlVHlwZSIsImVycm9yIiwiY29uY2F0IiwiY2hlY2tMaXN0IiwiaW5kZXhPZiIsIm5ld0xpc3QiLCJ1aWQiLCJsZW5ndGgiLCJpIiwic3BsaWNlIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsIl9yZWYiLCJuZXdGaWxlIiwibmV3VmVyc2lvbiIsInJlcXVlc3RDb25maWciLCJyZXF1ZXN0SWQiLCJmaWxlSW5kZXgiLCJpbmRleCIsInVybCIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwcmVmaXgiLCJvbkRlbGV0ZSIsInJlbmRlciIsImZpbGVDYXJkIiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uUHJldmlldyIsInN0eWxlIiwiY3Vyc29yIiwib25Eb3dubG9hZCIsIm9uUmVtb3ZlIiwid2lkdGgiLCJGcmFnbWVudCIsIl9leHRlbmRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS91cGxvYWQvRHJhZ2dlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBGaWxlSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ZpbGVJY29uXCI7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbiAgRG93bmxvYWRPdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFBkZlZpZXdlciBmcm9tIFwiLi4vcGRmdml3ZXJcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQgfSA9IGZpbGU7XHJcbmNvbnN0IHsgRHJhZ2dlciB9ID0gVXBsb2FkO1xyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIG5ld1ZlcnNpb24/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY1VwbG9hZERyYWdnZXIgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PFxyXG4gIElVcGxvYWRQcm9wcyxcclxuICBhbnlcclxuPiB7XHJcbiAgc3RhdGUgPSB7IGZpbGVMaXN0OiBbXSwgdmlld0lkOiBcIlwiLCBmaWxlTGlzdFN0b3JlOiBbXSwgZmlsZU5hbWVzOiBbXSB9O1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0ZpbGVMaXN0LFxyXG4gICAgICBmaWxlTGlzdFN0b3JlOiBmaWxlTGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgb25MaXN0Q2hhbmdlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSk7XHJcbiAgfVxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIG9uQ29tcGxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgbmV3VmVyc2lvbiwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBsZXQgcmVxdWVzdElkO1xyXG4gICAgbGV0IGZpbGVJbmRleDtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLmZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5zdGF0dXMgPSBmaWxlLnN0YXR1cyA9PSBcInN1Y2Nlc3NcIiA/IFwiZG9uZVwiIDogZmlsZS5zdGF0dXM7XHJcbiAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICBpZiAobmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgcmVxdWVzdElkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgICBmaWxlSW5kZXggPSBpbmRleDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICBmaWxlLmZpbGVJZFxyXG4gICAgICAgICAgfSZfdHBrPSR7d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidG9rZW5cIil9YDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgPyByZXF1ZXN0Q29uZmlnLnByZWZpeCArIHVybFxyXG4gICAgICAgICAgICA6IFwiL2FwaVwiICsgdXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZCh7XHJcbiAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAvL+mAmui/h+aWh+S7tuWQjeWIpOaWre+8jOS4iuS8oOaYr+aWh+S7tuWQjeaYr+WUr+S4gOeahFxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXRlbS5uYW1lICE9PSBmaWxlLm5hbWUgfHxcclxuICAgICAgICBpdGVtLmZpbGVJZCAhPT0gZmlsZS5maWxlSWQgfHxcclxuICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBmaWxlTGlzdCxcclxuICAgICAgZmlsZUNhcmQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0ID0ge1xyXG4gICAgICAgIHNob3dEb3dubG9hZEljb246IHRydWUsXHJcbiAgICAgICAgc2hvd1ByZXZpZXdJY29uOiBmYWxzZSxcclxuICAgICAgICBzaG93UmVtb3ZlSWNvbjogdHJ1ZSxcclxuICAgICAgICBkb3dubG9hZEljb246IG51bGwsXHJcbiAgICAgICAgcmVtb3ZlSWNvbjogbnVsbCxcclxuICAgICAgICBwcmV2aWV3SWNvbjogbnVsbCxcclxuICAgICAgfSBhcyBhbnksXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3cHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgIFwib25Db21wbGV0ZVwiLFxyXG4gICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICBcInVzZURlZmF1bHRMaXN0XCIsXHJcbiAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgICAgXCJuZXdWZXJzaW9uXCIsXHJcbiAgICAgIFwicmVxdWVzdENvbmZpZ1wiLFxyXG4gICAgXSk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICB9IGFzIElVcGxvYWRQcm9wcztcclxuICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgY29uc3QgbmFtZXMgPSBuYW1lPy5zcGxpdChcIi5cIik7XHJcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1jb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtZXJyb3JcIildOiBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1tYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtbmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcgfHwge31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmlsZT8uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8RHJhZ2dlclxyXG4gICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAgIGJlZm9yZVVwbG9hZD17dGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgICAgLy8gb25DaGFuZ2U9eyh7IGZpbGUsIGZpbGVMaXN0LCBldmVudCB9KSA9PiB7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlXCIsIGZpbGUpO1xyXG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZyhcIm9uQ2hhbmdlZmlsZUxpc3RcIiwgZmlsZUxpc3QpO1xyXG4gICAgICAgICAgLy8gICBjb25zdCB7IG9uQ2hhbmdlLCBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgLy8gICAgIGZpbGVMaXN0OiBmaWxlTGlzdCxcclxuICAgICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgICAvLyAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gICAgICAgICAgLy8gICBvbkNoYW5nZSAmJiBvbkNoYW5nZSh7IGZpbGUsIGZpbGVMaXN0LCBldmVudCB9KTtcclxuICAgICAgICAgIC8vIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBRTlCLE9BQU9DLElBQUksTUFBTSxVQUFVO0FBQzNCLE9BQU9DLE9BQU8sTUFBTSxZQUFZO0FBRWhDLE9BQU9DLElBQUksTUFBTSxTQUFTO0FBQzFCLFNBQVNDLE9BQU8sUUFBUSxhQUFhO0FBQ3JDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxnQkFBZ0IsRUFDaEJDLFdBQVcsUUFDTixtQkFBbUI7QUFFMUIsTUFBTTtFQUFFQyxNQUFNO0VBQUVDLFFBQVE7RUFBRUM7QUFBZ0IsQ0FBQyxHQUFHWixJQUFJO0FBQ2xELE1BQU07RUFBRWE7QUFBUSxDQUFDLEdBQUFDLE9BQVM7QUFjMUIsZUFBZSxNQUFNQyxnQkFBZ0IsU0FBU2hCLEtBQUssQ0FBQ2lCLGFBQWEsQ0FHL0Q7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDUTtNQUFFQyxRQUFRLEVBQUUsRUFBRTtNQUFFQyxNQUFNLEVBQUUsRUFBRTtNQUFFQyxhQUFhLEVBQUUsRUFBRTtNQUFFQyxTQUFTLEVBQUU7SUFBRyxDQUFDO0lBQUFKLGVBQUEsd0JBOEt0RCxNQUFPSyxPQUFPLElBQUs7TUFDakMsTUFBTXhCLElBQUksR0FBR3dCLE9BQU8sQ0FBQ3hCLElBQUk7TUFDekIsTUFBTTtRQUFFeUIsVUFBVTtRQUFFQyxTQUFTO1FBQUVDO01BQVUsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsS0FBSztNQUN2RCxNQUFNQyxVQUFVLEdBQUlDLGFBQWtCLElBQUs7UUFDekNOLE9BQU8sQ0FBQ0ssVUFBVSxDQUFDO1VBQUVFLE9BQU8sRUFBRUQ7UUFBYyxDQUFDLEVBQUU5QixJQUFJLENBQUM7UUFDcEQsSUFBSSxDQUFDMEIsU0FBUyxDQUFDO1VBQUVLLE9BQU8sRUFBRUQsYUFBYTtVQUFFOUIsSUFBSSxFQUFFQTtRQUFLLENBQUMsQ0FBQztRQUN0RDBCLFNBQVMsSUFBSUEsU0FBUyxDQUFDO1VBQUVLLE9BQU8sRUFBRUQsYUFBYTtVQUFFOUIsSUFBSSxFQUFFQTtRQUFLLENBQUMsQ0FBQztNQUNoRSxDQUFDO01BQ0QsSUFBSTtRQUNGLE1BQU1nQyxHQUFRLEdBQUcsTUFBTXRCLE1BQU0sQ0FBQztVQUM1QlYsSUFBSSxFQUFFQSxJQUFJO1VBQ1Y2QixVQUFVLEVBQUVBLFVBQVU7VUFDdEJJLFFBQVEsRUFBRU47UUFDWixDQUFDLENBQUM7UUFDRixJQUFJTyxNQUFNLEdBQUcsSUFBSTtRQUNqQixJQUFJRixHQUFHLENBQUNHLElBQUksSUFBSSxHQUFHLEVBQUU7VUFDbkJELE1BQU0sR0FBR0YsR0FBRyxDQUFDSSxJQUFJLENBQUNDLFFBQVE7VUFDMUJiLE9BQU8sQ0FBQ2MsU0FBUyxDQUFDLENBQUM7UUFDckIsQ0FBQyxNQUFNO1VBQ0xkLE9BQU8sQ0FBQ2UsT0FBTyxDQUFDLENBQUM7UUFDbkI7UUFDQSxJQUFJLENBQUNkLFVBQVUsQ0FBQztVQUNkekIsSUFBSSxFQUFFd0IsT0FBTyxDQUFDeEIsSUFBSTtVQUNsQmtDLE1BQU0sRUFBRUEsTUFBTTtVQUNkTSxNQUFNLEVBQUVSLEdBQUcsQ0FBQ0csSUFBSSxJQUFJLEdBQUcsR0FBRyxTQUFTLEdBQUc7UUFDeEMsQ0FBQyxDQUFDO1FBQ0ZWLFVBQVUsSUFDUkEsVUFBVSxDQUFDO1VBQ1R6QixJQUFJLEVBQUV3QixPQUFPLENBQUN4QixJQUFJO1VBQ2xCa0MsTUFBTSxFQUFFQSxNQUFNO1VBQ2RNLE1BQU0sRUFBRVIsR0FBRyxDQUFDRyxJQUFJLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRztRQUN4QyxDQUFDLENBQUM7TUFDTixDQUFDLENBQUMsT0FBT00sQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDaEIsVUFBVSxDQUFDO1VBQ2R6QixJQUFJLEVBQUV3QixPQUFPLENBQUN4QixJQUFJO1VBQ2xCa0MsTUFBTSxFQUFFLEVBQUU7VUFDVk0sTUFBTSxFQUFFO1FBQ1YsQ0FBQyxDQUFDO1FBQ0ZmLFVBQVUsSUFDUkEsVUFBVSxDQUFDO1VBQUV6QixJQUFJLEVBQUV3QixPQUFPLENBQUN4QixJQUFJO1VBQUVrQyxNQUFNLEVBQUUsRUFBRTtVQUFFTSxNQUFNLEVBQUU7UUFBUSxDQUFDLENBQUM7UUFDakVoQixPQUFPLENBQUNlLE9BQU8sQ0FBQyxDQUFDO01BQ25CO0lBQ0YsQ0FBQztFQUFBO0VBdk5ERyxpQkFBaUJBLENBQUEsRUFBRztJQUNsQixJQUFJLElBQUksQ0FBQ2QsS0FBSyxDQUFDUixRQUFRLEVBQUU7TUFDdkIsSUFBSSxDQUFDdUIsZUFBZSxDQUFDLENBQUM7SUFDeEI7RUFDRjtFQUNBQSxlQUFlQSxDQUFDQyxJQUFvQixFQUFFO0lBQ3BDLE1BQU07TUFBRXhCO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ1EsS0FBSztJQUMvQixNQUFNaUIsV0FBVyxHQUFHLEVBQUU7SUFDdEIsSUFBSUMsT0FBTyxHQUFHRixJQUFJLEdBQUdBLElBQUksR0FBR3hCLFFBQVE7SUFDcEMwQixPQUFPLENBQUNDLEdBQUcsQ0FBRUMsSUFBUyxJQUFLO01BQ3pCLElBQUlDLElBQUksR0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ0hGLElBQUk7UUFDUEcsSUFBSSxFQUFFSCxJQUFJLENBQUNHLElBQUksSUFBSUgsSUFBSSxDQUFDSSxRQUFRO1FBQ2hDQyxJQUFJLEVBQUVMLElBQUksQ0FBQ0ssSUFBSTtRQUNmQyxJQUFJLEVBQUVOLElBQUksQ0FBQ007TUFBSSxFQUNoQjtNQUNEVCxXQUFXLENBQUNVLElBQUksQ0FBQ04sSUFBSSxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ08sUUFBUSxDQUFDO01BQ1pwQyxRQUFRLEVBQUV5QixXQUFXO01BQ3JCdkIsYUFBYSxFQUFFRjtJQUNqQixDQUFDLENBQUM7RUFDSjtFQUNBcUMsa0JBQWtCQSxDQUFDQyxRQUFRLEVBQUVDLFFBQVEsRUFBRTtJQUNyQyxJQUFJLElBQUksQ0FBQy9CLEtBQUssQ0FBQ1IsUUFBUSxFQUFFO01BQ3ZCLElBQ0V3QyxJQUFJLENBQUNDLFNBQVMsQ0FBQyxJQUFJLENBQUNqQyxLQUFLLENBQUNSLFFBQVEsQ0FBQyxLQUNuQ3dDLElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ0MsS0FBSyxDQUFDeEMsYUFBYSxDQUFDLEVBQ3hDO1FBQ0EsSUFBSSxDQUFDcUIsZUFBZSxDQUFDLENBQUM7TUFDeEI7SUFDRjtFQUNGO0VBQ0FvQixXQUFXQSxDQUFBLEVBQUc7SUFDWixPQUFPLElBQUksQ0FBQ0QsS0FBSyxDQUFDMUMsUUFBUTtFQUM1QjtFQUNBNEMsV0FBV0EsQ0FBQzVDLFFBQXVCLEVBQUU7SUFDbkMsSUFBSSxDQUFDdUIsZUFBZSxDQUFDdkIsUUFBUSxDQUFDO0VBQ2hDO0VBQ0EsTUFBTTZDLFlBQVlBLENBQUNqRSxJQUFJLEVBQUVrRSxTQUFTLEVBQUU7SUFDbEMsSUFBSTtNQUNGQyxPQUFPLEdBQUcsR0FBRztNQUNiQyxlQUFlO01BQ2ZDLGFBQWEsR0FBRyxJQUFJO01BQ3BCQyxRQUFRO01BQ1JDLGNBQWM7TUFDZG5ELFFBQVEsRUFBRW9ELFNBQVM7TUFDbkJDO0lBQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQzdDLEtBQUs7SUFDZCxJQUFJO01BQUVSLFFBQVE7TUFBRUU7SUFBYyxDQUFDLEdBQUcsSUFBSSxDQUFDd0MsS0FBSztJQUM1QyxJQUFJUixJQUFZO0lBQ2hCLElBQUljLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQ00sYUFBYSxDQUFDMUUsSUFBSSxDQUFDLEVBQUU7TUFDaERDLE9BQU8sQ0FBQzBFLEtBQUssSUFBQUMsTUFBQSxDQUNSNUUsSUFBSSxDQUFDbUQsSUFBSSxzR0FBQXlCLE1BQUEsQ0FBbUJSLGVBQWUseUNBQ2hELENBQUM7TUFDRCxPQUFPLEtBQUs7SUFDZDtJQUNBLElBQUlELE9BQU8sS0FBSyxLQUFLLEVBQUU7TUFDckIsSUFBSUEsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNwQkEsT0FBTyxHQUFHLEdBQUc7TUFDZjtNQUNBYixJQUFJLEdBQUdhLE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSTtNQUM1QixJQUFJYixJQUFJLEdBQUd0RCxJQUFJLENBQUNzRCxJQUFJLEVBQUU7UUFDcEJyRCxPQUFPLENBQUMwRSxLQUFLLElBQUFDLE1BQUEsQ0FBSTVFLElBQUksQ0FBQ21ELElBQUksMENBQUF5QixNQUFBLENBQVNULE9BQU8sZ0RBQVUsQ0FBQztRQUNyRCxPQUFPLEtBQUs7TUFDZDtJQUNGO0lBQ0EsSUFBSTVDLFNBQVMsR0FBRyxFQUFFO0lBQ2xCLElBQUk4QyxhQUFhLEVBQUU7TUFDakIsTUFBTVEsU0FBUyxHQUFHLElBQUksQ0FBQ2pELEtBQUssQ0FBQ1IsUUFBUSxHQUFHRSxhQUFhLEdBQUdGLFFBQVE7TUFDaEV5RCxTQUFTLENBQUM5QixHQUFHLENBQUVDLElBQUksSUFBSztRQUN0QnpCLFNBQVMsQ0FBQ2dDLElBQUksQ0FBQ1AsSUFBSSxDQUFDRyxJQUFJLElBQUlILElBQUksQ0FBQ0ksUUFBUSxDQUFDO01BQzVDLENBQUMsQ0FBQztNQUVGLElBQUk3QixTQUFTLENBQUN1RCxPQUFPLENBQUM5RSxJQUFJLENBQUNtRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSW9CLGNBQWMsS0FBSyxLQUFLLEVBQUU7UUFDakV0RSxPQUFPLENBQUMwRSxLQUFLLGdCQUFBQyxNQUFBLENBQU01RSxJQUFJLENBQUNtRCxJQUFJLHFHQUFrQixDQUFDO1FBQy9DLE9BQU8sS0FBSztNQUNkO0lBQ0Y7SUFFQSxJQUFJLElBQUksQ0FBQ3ZCLEtBQUssQ0FBQ3FDLFlBQVksRUFBRTtNQUMzQixNQUFNakMsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDSixLQUFLLENBQUNxQyxZQUFZLENBQUNqRSxJQUFJLEVBQUVrRSxTQUFTLENBQUM7TUFDMUQsSUFBSWxDLEdBQUcsS0FBSyxLQUFLLEVBQUU7UUFDakIsT0FBTyxLQUFLO01BQ2Q7SUFDRjtJQUNBLE1BQU0rQyxPQUFPLEdBQUcsQ0FBQyxHQUFHM0QsUUFBUSxDQUFDO0lBQzdCOEMsU0FBUyxDQUFDbkIsR0FBRyxDQUFDLE1BQU9DLElBQUksSUFBSztNQUM1QixJQUNFLEVBQ0dvQixlQUFlLElBQUksQ0FBQyxJQUFJLENBQUNNLGFBQWEsQ0FBQzFCLElBQUksQ0FBQyxJQUM3Q00sSUFBSSxHQUFHTixJQUFJLENBQUNNLElBQUksSUFDZmUsYUFBYSxJQUFJOUMsU0FBUyxDQUFDdUQsT0FBTyxDQUFDOUIsSUFBSSxDQUFDRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUUsQ0FDckQsRUFDRDtRQUNBLE1BQU1GLElBQUksR0FBRztVQUNYRyxRQUFRLEVBQUVKLElBQUksQ0FBQ0csSUFBSTtVQUNuQnBCLE9BQU8sRUFBRSxDQUFDO1VBQ1ZTLE1BQU0sRUFBRSxXQUFXO1VBQ25Cd0MsR0FBRyxFQUFFaEMsSUFBSSxDQUFDZ0MsR0FBRztVQUNiN0IsSUFBSSxFQUFFSCxJQUFJLENBQUNHLElBQUk7VUFDZkUsSUFBSSxFQUFFTCxJQUFJLENBQUNLLElBQUk7VUFDZkMsSUFBSSxFQUFFTixJQUFJLENBQUNNO1FBQ2IsQ0FBQztRQUNEeUIsT0FBTyxDQUFDeEIsSUFBSSxDQUFDTixJQUFJLENBQUM7TUFDcEI7SUFDRixDQUFDLENBQUM7SUFFRixJQUFJcUIsUUFBUSxJQUFJUyxPQUFPLENBQUNFLE1BQU0sR0FBR1gsUUFBUSxFQUFFO01BQ3pDLElBQUlXLE1BQU0sR0FBR0YsT0FBTyxDQUFDRSxNQUFNLEdBQUdYLFFBQVE7TUFDdEMsS0FBSyxJQUFJWSxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdELE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEVBQUU7UUFDL0JILE9BQU8sQ0FBQ0ksTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7TUFDdEI7SUFDRjtJQUNBVixZQUFZLElBQUlBLFlBQVksQ0FBQ00sT0FBTyxDQUFDO0lBQ3JDLElBQUksQ0FBQ3ZCLFFBQVEsQ0FBQztNQUFFcEMsUUFBUSxFQUFFMkQ7SUFBUSxDQUFDLENBQUM7RUFDdEM7RUFDQUwsYUFBYUEsQ0FBQzFFLElBQUksRUFBRTtJQUNsQixNQUFNO01BQUVvRTtJQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDeEMsS0FBSztJQUN0QyxNQUFNd0QsS0FBSyxHQUFHcEYsSUFBSSxDQUFDbUQsSUFBSSxDQUFDa0MsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNsQyxNQUFNQyxNQUFNLEdBQUdGLEtBQUssQ0FBQ0EsS0FBSyxDQUFDSCxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLElBQUliLGVBQWUsQ0FBQ1UsT0FBTyxDQUFDUSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtNQUN4QyxPQUFPLElBQUk7SUFDYjtJQUNBLE9BQU8sS0FBSztFQUNkO0VBQ0E1RCxTQUFTQSxDQUFBNkQsSUFBQSxFQUF5QjtJQUFBLElBQXhCO01BQUV4RCxPQUFPO01BQUUvQjtJQUFVLENBQUMsR0FBQXVGLElBQUE7SUFDOUIsTUFBTTtNQUFFbkU7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDMEMsS0FBSztJQUMvQixNQUFNO01BQUVXO0lBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQzdDLEtBQUs7SUFDbkMsTUFBTW1ELE9BQVksR0FBRyxFQUFFO0lBQ3ZCM0QsUUFBUSxDQUFDMkIsR0FBRyxDQUFFQyxJQUFTLElBQUs7TUFDMUIsTUFBTXdDLE9BQU8sR0FBQXRDLGFBQUEsS0FBUUYsSUFBSSxDQUFFO01BQzNCLElBQUloRCxJQUFJLENBQUNnRixHQUFHLElBQUloQyxJQUFJLENBQUNnQyxHQUFHLEVBQUU7UUFDeEJRLE9BQU8sQ0FBQ3pELE9BQU8sR0FBR0EsT0FBTztNQUMzQjtNQUNBZ0QsT0FBTyxDQUFDeEIsSUFBSSxDQUFDaUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ2hDLFFBQVEsQ0FBQztNQUNacEMsUUFBUSxFQUFFMkQ7SUFDWixDQUFDLENBQUM7SUFDRk4sWUFBWSxJQUFJQSxZQUFZLENBQUNyRCxRQUFRLENBQUM7RUFDeEM7RUFDQUssVUFBVUEsQ0FBQ3pCLElBQUksRUFBRTtJQUNmLE1BQU07TUFBRW9CO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzBDLEtBQUs7SUFDL0IsTUFBTTtNQUFFMkIsVUFBVTtNQUFFQyxhQUFhLEdBQUcsQ0FBQztJQUFFLENBQUMsR0FBRyxJQUFJLENBQUM5RCxLQUFLO0lBQ3JELE1BQU1tRCxPQUFZLEdBQUcsRUFBRTtJQUN2QixJQUFJWSxTQUFTO0lBQ2IsSUFBSUMsU0FBUztJQUNieEUsUUFBUSxDQUFDMkIsR0FBRyxDQUFDLENBQUNDLElBQVMsRUFBRTZDLEtBQUssS0FBSztNQUNqQyxNQUFNTCxPQUFPLEdBQUF0QyxhQUFBLEtBQVFGLElBQUksQ0FBRTtNQUMzQixJQUFJaEQsSUFBSSxDQUFDQSxJQUFJLENBQUNnRixHQUFHLElBQUloQyxJQUFJLENBQUNnQyxHQUFHLEVBQUU7UUFDN0JRLE9BQU8sQ0FBQ2hELE1BQU0sR0FBR3hDLElBQUksQ0FBQ3dDLE1BQU0sSUFBSSxTQUFTLEdBQUcsTUFBTSxHQUFHeEMsSUFBSSxDQUFDd0MsTUFBTTtRQUNoRWdELE9BQU8sQ0FBQ3RELE1BQU0sR0FBR2xDLElBQUksQ0FBQ2tDLE1BQU07UUFDNUIsSUFBSXVELFVBQVUsRUFBRTtVQUNkRSxTQUFTLEdBQUczRixJQUFJLENBQUNrQyxNQUFNO1VBQ3ZCMEQsU0FBUyxHQUFHQyxLQUFLO1FBQ25CLENBQUMsTUFBTTtVQUNMLElBQUlDLEdBQUcsNERBQUFsQixNQUFBLENBQ0w1RSxJQUFJLENBQUNrQyxNQUFNLFlBQUEwQyxNQUFBLENBQ0ptQixNQUFNLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFFO1VBQy9DVCxPQUFPLENBQUNNLEdBQUcsR0FBR0osYUFBYSxDQUFDUSxNQUFNLEdBQzlCUixhQUFhLENBQUNRLE1BQU0sR0FBR0osR0FBRyxHQUMxQixNQUFNLEdBQUdBLEdBQUc7UUFDbEI7TUFDRjtNQUNBZixPQUFPLENBQUN4QixJQUFJLENBQUNpQyxPQUFPLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDaEMsUUFBUSxDQUFDO01BQ1pwQyxRQUFRLEVBQUUyRDtJQUNaLENBQUMsQ0FBQztJQUNGLE1BQU07TUFBRU47SUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDN0MsS0FBSztJQUNuQzZDLFlBQVksSUFBSUEsWUFBWSxDQUFDTSxPQUFPLENBQUM7RUFDdkM7RUE0Q0FvQixRQUFRQSxDQUFDbkcsSUFBSSxFQUFFO0lBQ2IsTUFBTTtNQUFFb0I7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDMEMsS0FBSztJQUMvQixNQUFNO01BQUVXO0lBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQzdDLEtBQUs7SUFDbkMsTUFBTW1ELE9BQVksR0FBRyxFQUFFO0lBQ3ZCM0QsUUFBUSxDQUFDMkIsR0FBRyxDQUFFQyxJQUFTLElBQUs7TUFDMUI7TUFDQSxJQUNFQSxJQUFJLENBQUNHLElBQUksS0FBS25ELElBQUksQ0FBQ21ELElBQUksSUFDdkJILElBQUksQ0FBQ2QsTUFBTSxLQUFLbEMsSUFBSSxDQUFDa0MsTUFBTSxJQUMzQmMsSUFBSSxDQUFDZ0MsR0FBRyxLQUFLaEYsSUFBSSxDQUFDZ0YsR0FBRyxFQUNyQjtRQUNBRCxPQUFPLENBQUN4QixJQUFJLENBQUNQLElBQUksQ0FBQztNQUNwQjtJQUNGLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ1EsUUFBUSxDQUFDO01BQ1pwQyxRQUFRLEVBQUUyRDtJQUNaLENBQUMsQ0FBQztJQUNGTixZQUFZLElBQUlBLFlBQVksQ0FBQ00sT0FBTyxDQUFDO0VBQ3ZDO0VBQ0FxQixNQUFNQSxDQUFBLEVBQW9CO0lBQ3hCLElBQUk7TUFDRmhGLFFBQVE7TUFDUmlGLFFBQVE7TUFDUjlCLGNBQWMsR0FBRztRQUNmK0IsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QkMsZUFBZSxFQUFFLEtBQUs7UUFDdEJDLGNBQWMsRUFBRSxJQUFJO1FBQ3BCQyxZQUFZLEVBQUUsSUFBSTtRQUNsQkMsVUFBVSxFQUFFLElBQUk7UUFDaEJDLFdBQVcsRUFBRTtNQUNmLENBQVE7TUFDUmpCLGFBQWEsR0FBRyxDQUFDO0lBQ25CLENBQUMsR0FBRyxJQUFJLENBQUM5RCxLQUFLO0lBQ2QsTUFBTWdGLFFBQVEsR0FBRzFHLElBQUksQ0FBQyxJQUFJLENBQUMwQixLQUFLLEVBQUUsQ0FDaEMsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLGNBQWMsRUFDZCxZQUFZLEVBQ1osZUFBZSxDQUNoQixDQUFDO0lBQ0YsSUFBSWlGLFlBQVksR0FBRztNQUNqQkMsYUFBYSxFQUFFLElBQUksQ0FBQ0EsYUFBYSxDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQzVDQyxRQUFRLEVBQUU7SUFDWixDQUFpQjtJQUNqQixJQUFJWCxRQUFRLEVBQUU7TUFDWlEsWUFBWSxHQUFBM0QsYUFBQSxDQUFBQSxhQUFBLEtBQ1AyRCxZQUFZO1FBQ2ZJLFVBQVUsRUFBRUEsQ0FBQ0MsVUFBVSxFQUFFbEgsSUFBUyxFQUFFbUgsWUFBWSxLQUFLO1VBQ25ELE1BQU1oRSxJQUFJLEdBQUduRCxJQUFJLENBQUNtRCxJQUFJLElBQUluRCxJQUFJLENBQUNvRCxRQUFRO1VBQ3ZDLE1BQU1nQyxLQUFLLEdBQUdqQyxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRWtDLEtBQUssQ0FBQyxHQUFHLENBQUM7VUFDOUIsTUFBTUMsTUFBTSxHQUFHRixLQUFLLEdBQUdBLEtBQUssQ0FBQ0EsS0FBSyxDQUFDSCxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRTtVQUNuRCxvQkFDRWxGLEtBQUEsQ0FBQXFILGFBQUE7WUFBS0MsU0FBUyxFQUFFbEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsc0JBQXNCO1VBQUUsZ0JBQ3RETCxLQUFBLENBQUFxSCxhQUFBO1lBQ0VDLFNBQVMsRUFBRWhILEdBQUcsQ0FBQ0YsT0FBTyxDQUFDQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsRUFBRTtjQUNwRCxDQUFDRCxPQUFPLENBQUNDLE1BQU0sRUFBRSwwQkFBMEIsQ0FBQyxHQUFHSixJQUFJLENBQUN3QyxNQUFNLElBQUk7WUFDaEUsQ0FBQztVQUFFLGdCQUVIekMsS0FBQSxDQUFBcUgsYUFBQTtZQUFLQyxTQUFTLEVBQUVsSCxPQUFPLENBQUNDLE1BQU0sRUFBRSx5QkFBeUI7VUFBRSxnQkFDekRMLEtBQUEsQ0FBQXFILGFBQUEsQ0FBQzlHLFFBQVE7WUFBQ2dGLE1BQU0sRUFBRUEsTUFBTztZQUFDcEQsTUFBTSxFQUFFbEMsSUFBSSxDQUFDa0M7VUFBTyxDQUFFLENBQzdDLENBQUMsZUFDTm5DLEtBQUEsQ0FBQXFILGFBQUE7WUFBS0MsU0FBUyxFQUFFbEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUseUJBQXlCO1VBQUUsR0FDeERKLElBQUksQ0FBQ21ELElBQUksSUFBSW5ELElBQUksQ0FBQ29ELFFBQ2hCLENBQUMsZUFDTnJELEtBQUEsQ0FBQXFILGFBQUE7WUFBS0MsU0FBUyxFQUFFbEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsaUJBQWlCO1VBQUUsR0FDaERtRSxjQUFjLENBQUNnQyxlQUFlLElBQUl2RyxJQUFJLENBQUN3QyxNQUFNLElBQUksTUFBTSxpQkFDdER6QyxLQUFBLENBQUFxSCxhQUFBO1lBQ0VFLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO2NBQ2IsSUFBSSxJQUFJLENBQUMxRixLQUFLLENBQUMyRixTQUFTLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQzNGLEtBQUssQ0FBQzJGLFNBQVMsQ0FBQ3ZILElBQUksQ0FBQztjQUM1QixDQUFDLE1BQU07Z0JBQ0xZLGVBQWUsQ0FDYlosSUFBSSxDQUFDa0MsTUFBTSxFQUNYLElBQUksQ0FBQ04sS0FBSyxDQUFDOEQsYUFBYSxJQUFJLENBQUMsQ0FDL0IsQ0FBQztjQUNIO1lBQ0YsQ0FBRTtZQUNGOEIsS0FBSyxFQUFFO2NBQUVDLE1BQU0sRUFBRTtZQUFVO1VBQUUsR0FFNUJsRCxjQUFjLENBQUNrQyxZQUFZLEdBQzFCbEMsY0FBYyxDQUFDa0MsWUFBWSxnQkFFM0IxRyxLQUFBLENBQUFxSCxhQUFBLENBQUMzRyxXQUFXLE1BQUUsQ0FFYixDQUNOLEVBQ0E4RCxjQUFjLENBQUMrQixnQkFBZ0IsSUFBSXRHLElBQUksQ0FBQ3dDLE1BQU0sSUFBSSxNQUFNLGlCQUN2RHpDLEtBQUEsQ0FBQXFILGFBQUE7WUFDRUUsT0FBTyxFQUFFQSxDQUFBLEtBQU07Y0FDYixJQUFJLElBQUksQ0FBQzFGLEtBQUssQ0FBQzhGLFVBQVUsRUFBRTtnQkFDekIsSUFBSSxDQUFDOUYsS0FBSyxDQUFDOEYsVUFBVSxDQUFDMUgsSUFBSSxDQUFDO2NBQzdCLENBQUMsTUFBTTtnQkFDTFcsUUFBUSxDQUFDWCxJQUFJLENBQUNrQyxNQUFNLEVBQUUsSUFBSSxFQUFFd0QsYUFBYSxDQUFDO2NBQzVDO1lBQ0YsQ0FBRTtZQUNGOEIsS0FBSyxFQUFFO2NBQUVDLE1BQU0sRUFBRTtZQUFVO1VBQUUsR0FFNUJsRCxjQUFjLENBQUNrQyxZQUFZLEdBQzFCbEMsY0FBYyxDQUFDa0MsWUFBWSxnQkFFM0IxRyxLQUFBLENBQUFxSCxhQUFBLENBQUM1RyxnQkFBZ0IsTUFBRSxDQUVsQixDQUNOLEVBQ0ErRCxjQUFjLENBQUNpQyxjQUFjLGlCQUM1QnpHLEtBQUEsQ0FBQXFILGFBQUE7WUFDRUUsT0FBTyxFQUFFQSxDQUFBLEtBQU07Y0FDYixJQUFJLElBQUksQ0FBQzFGLEtBQUssQ0FBQytGLFFBQVEsRUFBRTtnQkFDdkIsSUFBSSxDQUFDL0YsS0FBSyxDQUFDK0YsUUFBUSxDQUFDM0gsSUFBSSxDQUFDO2NBQzNCLENBQUMsTUFBTTtnQkFDTCxJQUFJLENBQUNtRyxRQUFRLENBQUNuRyxJQUFJLENBQUM7Y0FDckI7WUFDRixDQUFFO1lBQ0Z3SCxLQUFLLEVBQUU7Y0FBRUMsTUFBTSxFQUFFO1lBQVU7VUFBRSxHQUU1QmxELGNBQWMsQ0FBQ2tDLFlBQVksR0FDMUJsQyxjQUFjLENBQUNrQyxZQUFZLGdCQUUzQjFHLEtBQUEsQ0FBQXFILGFBQUEsQ0FBQzdHLGNBQWMsTUFBRSxDQUVoQixDQUVKLENBQ0YsQ0FBQyxFQUNMUCxJQUFJLENBQUN3QyxNQUFNLElBQUksV0FBVyxpQkFDekJ6QyxLQUFBLENBQUFxSCxhQUFBO1lBQUtDLFNBQVMsRUFBRWxILE9BQU8sQ0FBQ0MsTUFBTSxFQUFFLG9CQUFvQjtVQUFFLGdCQUNwREwsS0FBQSxDQUFBcUgsYUFBQTtZQUNFQyxTQUFTLEVBQUVsSCxPQUFPLENBQUNDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBRTtZQUNqRG9ILEtBQUssRUFBRTtjQUFFSSxLQUFLLEVBQUU1SCxJQUFJLENBQUMrQixPQUFPLEdBQUc7WUFBSTtVQUFFLENBQ2pDLENBQ0gsQ0FFSixDQUFDO1FBRVY7TUFBQyxFQUNGO0lBQ0gsQ0FBQyxNQUFNO01BQ0w4RSxZQUFZLEdBQUEzRCxhQUFBLENBQUFBLGFBQUEsS0FDUDJELFlBQVk7UUFDZmEsVUFBVSxFQUFHMUgsSUFBUyxJQUFLO1VBQ3pCVyxRQUFRLENBQUNYLElBQUksQ0FBQ2tDLE1BQU0sRUFBRSxJQUFJLEVBQUV3RCxhQUFhLENBQUM7UUFDNUMsQ0FBQztRQUNEaUMsUUFBUSxFQUFHM0gsSUFBSSxJQUFLO1VBQ2xCLElBQUksQ0FBQ21HLFFBQVEsQ0FBQ25HLElBQUksQ0FBQztRQUNyQixDQUFDO1FBQ0R1SCxTQUFTLEVBQUd2SCxJQUFTLElBQUs7VUFDeEIsSUFBSUEsSUFBSSxhQUFKQSxJQUFJLGVBQUpBLElBQUksQ0FBRWtDLE1BQU0sRUFBRTtZQUNoQnRCLGVBQWUsQ0FBQ1osSUFBSSxDQUFDa0MsTUFBTSxFQUFFd0QsYUFBYSxDQUFDO1VBQzdDO1FBQ0YsQ0FBQztRQUNEbkIsY0FBYyxFQUFBckIsYUFBQSxLQUFPcUIsY0FBYztNQUFFLEVBQ3RDO0lBQ0g7SUFDQSxvQkFDRXhFLEtBQUEsQ0FBQXFILGFBQUEsQ0FBQXJILEtBQUEsQ0FBQThILFFBQUEscUJBQ0U5SCxLQUFBLENBQUFxSCxhQUFBLENBQUN2RyxPQUFPLEVBQUFpSCxRQUFBLEtBQ0ZqQixZQUFZLEVBQ1pELFFBQVE7TUFDWjNDLFlBQVksRUFBRSxJQUFJLENBQUNBLFlBQVksQ0FBQzhDLElBQUksQ0FBQyxJQUFJLENBQUU7TUFDM0MzRixRQUFRLEVBQUUsSUFBSSxDQUFDMEMsS0FBSyxDQUFDMUM7TUFDckI7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7SUFBQSxFQUNELENBQ0QsQ0FBQztFQUVQO0FBQ0YifQ==
413
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJEcmFnZ2VyIiwiX1VwbG9hZCIsIk5zY1VwbG9hZERyYWdnZXIiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJmaWxlTGlzdCIsInZpZXdJZCIsImZpbGVMaXN0U3RvcmUiLCJmaWxlTmFtZXMiLCJvcHRpb25zIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsInByb3BzIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicmVzIiwicGFydFNpemUiLCJyZXF1ZXN0Q29uZmlnIiwidXBsb2FkSW5nU2l6ZSIsImZpbGVJZCIsIkltZ1JlcyIsImNvZGUiLCJkYXRhIiwiYXR0YWNoSWQiLCJvblN1Y2Nlc3MiLCJvbkVycm9yIiwidXBsb2FkSW5nTGlzdCIsInB1c2giLCJzdGF0dXMiLCJ1cmwiLCJ1cGxvYWRTaXplIiwiZSIsImNvbXBvbmVudERpZE1vdW50IiwiY29udmVydEZpbGVMaXN0IiwibGlzdCIsIm5ld0ZpbGVMaXN0Iiwib2xkTGlzdCIsIm1hcCIsIml0ZW0iLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlIiwiZ2V0RmlsZUxpc3QiLCJzZXRGaWxlTGlzdCIsImJlZm9yZVVwbG9hZCIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsIm9uTGlzdENoYW5nZSIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNvbmNhdCIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwiaSIsInNwbGljZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJfcmVmIiwibmV3RmlsZSIsImZpbGVzIiwibmV3VmVyc2lvbiIsImluZGV4Iiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX2V4dGVuZHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3VwbG9hZC9EcmFnZ2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVXBsb2FkLCBVcGxvYWRQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgUGRmVmlld2VyIGZyb20gXCIuLi9wZGZ2aXdlclwiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCB9ID0gZmlsZTtcclxuY29uc3QgeyBEcmFnZ2VyIH0gPSBVcGxvYWQ7XHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkRHJhZ2dlciBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8XHJcbiAgSVVwbG9hZFByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHsgZmlsZUxpc3Q6IFtdLCB2aWV3SWQ6IFwiXCIsIGZpbGVMaXN0U3RvcmU6IFtdLCBmaWxlTmFtZXM6IFtdIH07XHJcbiAgdXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgdXBsb2FkU2l6ZSA9IDA7XHJcbiAgdXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0ZpbGVMaXN0LFxyXG4gICAgICBmaWxlTGlzdFN0b3JlOiBmaWxlTGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgb25MaXN0Q2hhbmdlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSk7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSBvZmlsZUxpc3QubGVuZ3RoO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBvbkNvbXBsZXRlKGZpbGVzKSB7XHJcbiAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRTaXplID0gMDtcclxuICAgIHRoaXMudXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgbmV3VmVyc2lvbiwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcblxyXG4gICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgIGxldCBJbWdSZXMgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwbG9hZEluZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgdXJsOiBJbWdSZXMgPyBJbWdSZXMuZGF0YSA6IG51bGwsXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgIHRoaXMub25Db21wbGV0ZSh0aGlzLnVwbG9hZEluZ0xpc3QpO1xyXG4gICAgICB9XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgIH1cclxuICB9O1xyXG4gIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGl0ZW0ubmFtZSAhPT0gZmlsZS5uYW1lIHx8XHJcbiAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgIFwibWF4U2l6ZVwiLFxyXG4gICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgXCJhbGxvd0ZpbGVTdWZmaXhcIixcclxuICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgIFwib25MaXN0Q2hhbmdlXCIsXHJcbiAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1maWxlLWl0ZW1cIil9PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1jb250ZW50LWVycm9yXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1tYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtbmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcgfHwge31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmlsZT8uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8RHJhZ2dlclxyXG4gICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAgIGJlZm9yZVVwbG9hZD17dGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgICAgLy8gb25DaGFuZ2U9eyh7IGZpbGUsIGZpbGVMaXN0LCBldmVudCB9KSA9PiB7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlXCIsIGZpbGUpO1xyXG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZyhcIm9uQ2hhbmdlZmlsZUxpc3RcIiwgZmlsZUxpc3QpO1xyXG4gICAgICAgICAgLy8gICBjb25zdCB7IG9uQ2hhbmdlLCBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAvLyAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgLy8gICAgIGZpbGVMaXN0OiBmaWxlTGlzdCxcclxuICAgICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgICAvLyAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gICAgICAgICAgLy8gICBvbkNoYW5nZSAmJiBvbkNoYW5nZSh7IGZpbGUsIGZpbGVMaXN0LCBldmVudCB9KTtcclxuICAgICAgICAgIC8vIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBRTlCLE9BQU9DLElBQUksTUFBTSxVQUFVO0FBQzNCLE9BQU9DLE9BQU8sTUFBTSxZQUFZO0FBRWhDLE9BQU9DLElBQUksTUFBTSxTQUFTO0FBQzFCLFNBQVNDLE9BQU8sUUFBUSxhQUFhO0FBQ3JDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxnQkFBZ0IsRUFDaEJDLFdBQVcsUUFDTixtQkFBbUI7QUFFMUIsTUFBTTtFQUFFQyxNQUFNO0VBQUVDLFFBQVE7RUFBRUM7QUFBZ0IsQ0FBQyxHQUFHWixJQUFJO0FBQ2xELE1BQU07RUFBRWE7QUFBUSxDQUFDLEdBQUFDLE9BQVM7QUFjMUIsZUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"Dragger.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","Dragger","_Upload","NscUploadDragger","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","props","onProgress","totalProgress","percent","res","partSize","fileId","code","data","attachId","onSuccess","onError","status","e","componentDidMount","convertFileList","list","newFileList","oldList","map","item","temp","_objectSpread","name","fileName","type","size","push","setState","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","indexOf","newList","uid","length","i","splice","names","split","suffix","_ref","newFile","newVersion","requestConfig","requestId","fileIndex","index","url","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_extends"],"sources":["../../../src/components/base/upload/Dragger.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport withZhLocale from \"../common/withZhLocale\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nimport PdfViewer from \"../pdfviwer\";\r\nconst { upload, download, previewDocument } = file;\r\nconst { Dragger } = Upload;\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n}\r\nexport default class NscUploadDragger extends React.PureComponent<\r\n IUploadProps,\r\n any\r\n> {\r\n state = { fileList: [], viewId: \"\", fileListStore: [], fileNames: [] };\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList();\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n oldList.map((item: any) => {\r\n let temp = {\r\n ...item,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newFileList.push(temp);\r\n });\r\n this.setState({\r\n fileList: newFileList,\r\n fileListStore: fileList,\r\n });\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList();\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n onListChange && onListChange(newList);\r\n this.setState({ fileList: newList });\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(fileList);\r\n }\r\n onComplete(file) {\r\n const { fileList } = this.state;\r\n const { newVersion, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n let requestId;\r\n let fileIndex;\r\n fileList.map((item: any, index) => {\r\n const newFile = { ...item };\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n if (newVersion) {\r\n requestId = file.fileId;\r\n fileIndex = index;\r\n } else {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const { onComplete, onProcess, sliceSize } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload({\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n });\r\n let fileId = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n } else {\r\n options.onError();\r\n }\r\n this.onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n this.onComplete({\r\n file: options.file,\r\n fileId: \"\",\r\n status: \"error\",\r\n });\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n options.onError();\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(newList);\r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"nsc-upload-file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"nsc-upload-content\"), {\r\n [getLess(styles, \"nsc-upload-content-error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"nsc-upload-mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-content-name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-icon\")}>\r\n {showUploadList.showPreviewIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(\r\n file.fileId,\r\n this.props.requestConfig || {}\r\n );\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"nsc-upload-process\")}>\r\n <div\r\n className={getLess(styles, \"nsc-upload-percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n download(file.fileId, true, requestConfig);\r\n },\r\n onRemove: (file) => {\r\n this.onDelete(file);\r\n },\r\n onPreview: (file: any) => {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Dragger\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n // onChange={({ file, fileList, event }) => {\r\n // console.log(\"onChangefile\", file);\r\n // console.log(\"onChangefileList\", fileList);\r\n // const { onChange, onListChange } = this.props;\r\n // this.setState({\r\n // fileList: fileList,\r\n // });\r\n // onListChange && onListChange(fileList);\r\n // onChange && onChange({ file, fileList, event });\r\n // }}\r\n />\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,IAAI,MAAM,UAAU;AAC3B,OAAOC,OAAO,MAAM,YAAY;AAEhC,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAASC,OAAO,QAAQ,aAAa;AACrC,OAAOC,MAAM,MAAM,cAAc;AACjC,OAAOC,GAAG,MAAM,YAAY;AAC5B,OAAOC,QAAQ,MAAM,oBAAoB;AACzC,SACEC,cAAc,EACdC,gBAAgB,EAChBC,WAAW,QACN,mBAAmB;AAE1B,MAAM;EAAEC,MAAM;EAAEC,QAAQ;EAAEC;AAAgB,CAAC,GAAGZ,IAAI;AAClD,MAAM;EAAEa;AAAQ,CAAC,GAAAC,OAAS;AAc1B,eAAe,MAAMC,gBAAgB,SAAShB,KAAK,CAACiB,aAAa,CAG/D;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,gBACQ;MAAEC,QAAQ,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAEC,aAAa,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAG,CAAC;IAAAJ,eAAA,wBA8KtD,MAAOK,OAAO,IAAK;MACjC,MAAMxB,IAAI,GAAGwB,OAAO,CAACxB,IAAI;MACzB,MAAM;QAAEyB,UAAU;QAAEC,SAAS;QAAEC;MAAU,CAAC,GAAG,IAAI,CAACC,KAAK;MACvD,MAAMC,UAAU,GAAIC,aAAkB,IAAK;QACzCN,OAAO,CAACK,UAAU,CAAC;UAAEE,OAAO,EAAED;QAAc,CAAC,EAAE9B,IAAI,CAAC;QACpD,IAAI,CAAC0B,SAAS,CAAC;UAAEK,OAAO,EAAED,aAAa;UAAE9B,IAAI,EAAEA;QAAK,CAAC,CAAC;QACtD0B,SAAS,IAAIA,SAAS,CAAC;UAAEK,OAAO,EAAED,aAAa;UAAE9B,IAAI,EAAEA;QAAK,CAAC,CAAC;MAChE,CAAC;MACD,IAAI;QACF,MAAMgC,GAAQ,GAAG,MAAMtB,MAAM,CAAC;UAC5BV,IAAI,EAAEA,IAAI;UACV6B,UAAU,EAAEA,UAAU;UACtBI,QAAQ,EAAEN;QACZ,CAAC,CAAC;QACF,IAAIO,MAAM,GAAG,IAAI;QACjB,IAAIF,GAAG,CAACG,IAAI,IAAI,GAAG,EAAE;UACnBD,MAAM,GAAGF,GAAG,CAACI,IAAI,CAACC,QAAQ;UAC1Bb,OAAO,CAACc,SAAS,CAAC,CAAC;QACrB,CAAC,MAAM;UACLd,OAAO,CAACe,OAAO,CAAC,CAAC;QACnB;QACA,IAAI,CAACd,UAAU,CAAC;UACdzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAClBkC,MAAM,EAAEA,MAAM;UACdM,MAAM,EAAER,GAAG,CAACG,IAAI,IAAI,GAAG,GAAG,SAAS,GAAG;QACxC,CAAC,CAAC;QACFV,UAAU,IACRA,UAAU,CAAC;UACTzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAClBkC,MAAM,EAAEA,MAAM;UACdM,MAAM,EAAER,GAAG,CAACG,IAAI,IAAI,GAAG,GAAG,SAAS,GAAG;QACxC,CAAC,CAAC;MACN,CAAC,CAAC,OAAOM,CAAC,EAAE;QACV,IAAI,CAAChB,UAAU,CAAC;UACdzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAClBkC,MAAM,EAAE,EAAE;UACVM,MAAM,EAAE;QACV,CAAC,CAAC;QACFf,UAAU,IACRA,UAAU,CAAC;UAAEzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAAEkC,MAAM,EAAE,EAAE;UAAEM,MAAM,EAAE;QAAQ,CAAC,CAAC;QACjEhB,OAAO,CAACe,OAAO,CAAC,CAAC;MACnB;IACF,CAAC;EAAA;EAvNDG,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACd,KAAK,CAACR,QAAQ,EAAE;MACvB,IAAI,CAACuB,eAAe,CAAC,CAAC;IACxB;EACF;EACAA,eAAeA,CAACC,IAAoB,EAAE;IACpC,MAAM;MAAExB;IAAS,CAAC,GAAG,IAAI,CAACQ,KAAK;IAC/B,MAAMiB,WAAW,GAAG,EAAE;IACtB,IAAIC,OAAO,GAAGF,IAAI,GAAGA,IAAI,GAAGxB,QAAQ;IACpC0B,OAAO,CAACC,GAAG,CAAEC,IAAS,IAAK;MACzB,IAAIC,IAAI,GAAAC,aAAA,CAAAA,aAAA,KACHF,IAAI;QACPG,IAAI,EAAEH,IAAI,CAACG,IAAI,IAAIH,IAAI,CAACI,QAAQ;QAChCC,IAAI,EAAEL,IAAI,CAACK,IAAI;QACfC,IAAI,EAAEN,IAAI,CAACM;MAAI,EAChB;MACDT,WAAW,CAACU,IAAI,CAACN,IAAI,CAAC;IACxB,CAAC,CAAC;IACF,IAAI,CAACO,QAAQ,CAAC;MACZpC,QAAQ,EAAEyB,WAAW;MACrBvB,aAAa,EAAEF;IACjB,CAAC,CAAC;EACJ;EACAqC,kBAAkBA,CAACC,QAAQ,EAAEC,QAAQ,EAAE;IACrC,IAAI,IAAI,CAAC/B,KAAK,CAACR,QAAQ,EAAE;MACvB,IACEwC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACjC,KAAK,CAACR,QAAQ,CAAC,KACnCwC,IAAI,CAACC,SAAS,CAAC,IAAI,CAACC,KAAK,CAACxC,aAAa,CAAC,EACxC;QACA,IAAI,CAACqB,eAAe,CAAC,CAAC;MACxB;IACF;EACF;EACAoB,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,KAAK,CAAC1C,QAAQ;EAC5B;EACA4C,WAAWA,CAAC5C,QAAuB,EAAE;IACnC,IAAI,CAACuB,eAAe,CAACvB,QAAQ,CAAC;EAChC;EACA,MAAM6C,YAAYA,CAACjE,IAAI,EAAEkE,SAAS,EAAE;IAClC,IAAI;MACFC,OAAO,GAAG,GAAG;MACbC,eAAe;MACfC,aAAa,GAAG,IAAI;MACpBC,QAAQ;MACRC,cAAc;MACdnD,QAAQ,EAAEoD,SAAS;MACnBC;IACF,CAAC,GAAG,IAAI,CAAC7C,KAAK;IACd,IAAI;MAAER,QAAQ;MAAEE;IAAc,CAAC,GAAG,IAAI,CAACwC,KAAK;IAC5C,IAAIR,IAAY;IAChB,IAAIc,eAAe,IAAI,CAAC,IAAI,CAACM,aAAa,CAAC1E,IAAI,CAAC,EAAE;MAChDC,OAAO,CAAC0E,KAAK,IAAAC,MAAA,CACR5E,IAAI,CAACmD,IAAI,sGAAAyB,MAAA,CAAmBR,eAAe,yCAChD,CAAC;MACD,OAAO,KAAK;IACd;IACA,IAAID,OAAO,KAAK,KAAK,EAAE;MACrB,IAAIA,OAAO,KAAK,IAAI,EAAE;QACpBA,OAAO,GAAG,GAAG;MACf;MACAb,IAAI,GAAGa,OAAO,GAAG,IAAI,GAAG,IAAI;MAC5B,IAAIb,IAAI,GAAGtD,IAAI,CAACsD,IAAI,EAAE;QACpBrD,OAAO,CAAC0E,KAAK,IAAAC,MAAA,CAAI5E,IAAI,CAACmD,IAAI,0CAAAyB,MAAA,CAAST,OAAO,gDAAU,CAAC;QACrD,OAAO,KAAK;MACd;IACF;IACA,IAAI5C,SAAS,GAAG,EAAE;IAClB,IAAI8C,aAAa,EAAE;MACjB,MAAMQ,SAAS,GAAG,IAAI,CAACjD,KAAK,CAACR,QAAQ,GAAGE,aAAa,GAAGF,QAAQ;MAChEyD,SAAS,CAAC9B,GAAG,CAAEC,IAAI,IAAK;QACtBzB,SAAS,CAACgC,IAAI,CAACP,IAAI,CAACG,IAAI,IAAIH,IAAI,CAACI,QAAQ,CAAC;MAC5C,CAAC,CAAC;MAEF,IAAI7B,SAAS,CAACuD,OAAO,CAAC9E,IAAI,CAACmD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAIoB,cAAc,KAAK,KAAK,EAAE;QACjEtE,OAAO,CAAC0E,KAAK,gBAAAC,MAAA,CAAM5E,IAAI,CAACmD,IAAI,qGAAkB,CAAC;QAC/C,OAAO,KAAK;MACd;IACF;IAEA,IAAI,IAAI,CAACvB,KAAK,CAACqC,YAAY,EAAE;MAC3B,MAAMjC,GAAG,GAAG,MAAM,IAAI,CAACJ,KAAK,CAACqC,YAAY,CAACjE,IAAI,EAAEkE,SAAS,CAAC;MAC1D,IAAIlC,GAAG,KAAK,KAAK,EAAE;QACjB,OAAO,KAAK;MACd;IACF;IACA,MAAM+C,OAAO,GAAG,CAAC,GAAG3D,QAAQ,CAAC;IAC7B8C,SAAS,CAACnB,GAAG,CAAC,MAAOC,IAAI,IAAK;MAC5B,IACE,EACGoB,eAAe,IAAI,CAAC,IAAI,CAACM,aAAa,CAAC1B,IAAI,CAAC,IAC7CM,IAAI,GAAGN,IAAI,CAACM,IAAI,IACfe,aAAa,IAAI9C,SAAS,CAACuD,OAAO,CAAC9B,IAAI,CAACG,IAAI,CAAC,GAAG,CAAC,CAAE,CACrD,EACD;QACA,MAAMF,IAAI,GAAG;UACXG,QAAQ,EAAEJ,IAAI,CAACG,IAAI;UACnBpB,OAAO,EAAE,CAAC;UACVS,MAAM,EAAE,WAAW;UACnBwC,GAAG,EAAEhC,IAAI,CAACgC,GAAG;UACb7B,IAAI,EAAEH,IAAI,CAACG,IAAI;UACfE,IAAI,EAAEL,IAAI,CAACK,IAAI;UACfC,IAAI,EAAEN,IAAI,CAACM;QACb,CAAC;QACDyB,OAAO,CAACxB,IAAI,CAACN,IAAI,CAAC;MACpB;IACF,CAAC,CAAC;IAEF,IAAIqB,QAAQ,IAAIS,OAAO,CAACE,MAAM,GAAGX,QAAQ,EAAE;MACzC,IAAIW,MAAM,GAAGF,OAAO,CAACE,MAAM,GAAGX,QAAQ;MACtC,KAAK,IAAIY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,EAAEC,CAAC,EAAE,EAAE;QAC/BH,OAAO,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;MACtB;IACF;IACAV,YAAY,IAAIA,YAAY,CAACM,OAAO,CAAC;IACrC,IAAI,CAACvB,QAAQ,CAAC;MAAEpC,QAAQ,EAAE2D;IAAQ,CAAC,CAAC;EACtC;EACAL,aAAaA,CAAC1E,IAAI,EAAE;IAClB,MAAM;MAAEoE;IAAgB,CAAC,GAAG,IAAI,CAACxC,KAAK;IACtC,MAAMwD,KAAK,GAAGpF,IAAI,CAACmD,IAAI,CAACkC,KAAK,CAAC,GAAG,CAAC;IAClC,MAAMC,MAAM,GAAGF,KAAK,CAACA,KAAK,CAACH,MAAM,GAAG,CAAC,CAAC;IACtC,IAAIb,eAAe,CAACU,OAAO,CAACQ,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;MACxC,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EACA5D,SAASA,CAAA6D,IAAA,EAAyB;IAAA,IAAxB;MAAExD,OAAO;MAAE/B;IAAU,CAAC,GAAAuF,IAAA;IAC9B,MAAM;MAAEnE;IAAS,CAAC,GAAG,IAAI,CAAC0C,KAAK;IAC/B,MAAM;MAAEW;IAAa,CAAC,GAAG,IAAI,CAAC7C,KAAK;IACnC,MAAMmD,OAAY,GAAG,EAAE;IACvB3D,QAAQ,CAAC2B,GAAG,CAAEC,IAAS,IAAK;MAC1B,MAAMwC,OAAO,GAAAtC,aAAA,KAAQF,IAAI,CAAE;MAC3B,IAAIhD,IAAI,CAACgF,GAAG,IAAIhC,IAAI,CAACgC,GAAG,EAAE;QACxBQ,OAAO,CAACzD,OAAO,GAAGA,OAAO;MAC3B;MACAgD,OAAO,CAACxB,IAAI,CAACiC,OAAO,CAAC;IACvB,CAAC,CAAC;IACF,IAAI,CAAChC,QAAQ,CAAC;MACZpC,QAAQ,EAAE2D;IACZ,CAAC,CAAC;IACFN,YAAY,IAAIA,YAAY,CAACrD,QAAQ,CAAC;EACxC;EACAK,UAAUA,CAACzB,IAAI,EAAE;IACf,MAAM;MAAEoB;IAAS,CAAC,GAAG,IAAI,CAAC0C,KAAK;IAC/B,MAAM;MAAE2B,UAAU;MAAEC,aAAa,GAAG,CAAC;IAAE,CAAC,GAAG,IAAI,CAAC9D,KAAK;IACrD,MAAMmD,OAAY,GAAG,EAAE;IACvB,IAAIY,SAAS;IACb,IAAIC,SAAS;IACbxE,QAAQ,CAAC2B,GAAG,CAAC,CAACC,IAAS,EAAE6C,KAAK,KAAK;MACjC,MAAML,OAAO,GAAAtC,aAAA,KAAQF,IAAI,CAAE;MAC3B,IAAIhD,IAAI,CAACA,IAAI,CAACgF,GAAG,IAAIhC,IAAI,CAACgC,GAAG,EAAE;QAC7BQ,OAAO,CAAChD,MAAM,GAAGxC,IAAI,CAACwC,MAAM,IAAI,SAAS,GAAG,MAAM,GAAGxC,IAAI,CAACwC,MAAM;QAChEgD,OAAO,CAACtD,MAAM,GAAGlC,IAAI,CAACkC,MAAM;QAC5B,IAAIuD,UAAU,EAAE;UACdE,SAAS,GAAG3F,IAAI,CAACkC,MAAM;UACvB0D,SAAS,GAAGC,KAAK;QACnB,CAAC,MAAM;UACL,IAAIC,GAAG,4DAAAlB,MAAA,CACL5E,IAAI,CAACkC,MAAM,YAAA0C,MAAA,CACJmB,MAAM,CAACC,YAAY,CAACC,OAAO,CAAC,OAAO,CAAC,CAAE;UAC/CT,OAAO,CAACM,GAAG,GAAGJ,aAAa,CAACQ,MAAM,GAC9BR,aAAa,CAACQ,MAAM,GAAGJ,GAAG,GAC1B,MAAM,GAAGA,GAAG;QAClB;MACF;MACAf,OAAO,CAACxB,IAAI,CAACiC,OAAO,CAAC;IACvB,CAAC,CAAC;IACF,IAAI,CAAChC,QAAQ,CAAC;MACZpC,QAAQ,EAAE2D;IACZ,CAAC,CAAC;IACF,MAAM;MAAEN;IAAa,CAAC,GAAG,IAAI,CAAC7C,KAAK;IACnC6C,YAAY,IAAIA,YAAY,CAACM,OAAO,CAAC;EACvC;EA4CAoB,QAAQA,CAACnG,IAAI,EAAE;IACb,MAAM;MAAEoB;IAAS,CAAC,GAAG,IAAI,CAAC0C,KAAK;IAC/B,MAAM;MAAEW;IAAa,CAAC,GAAG,IAAI,CAAC7C,KAAK;IACnC,MAAMmD,OAAY,GAAG,EAAE;IACvB3D,QAAQ,CAAC2B,GAAG,CAAEC,IAAS,IAAK;MAC1B;MACA,IACEA,IAAI,CAACG,IAAI,KAAKnD,IAAI,CAACmD,IAAI,IACvBH,IAAI,CAACd,MAAM,KAAKlC,IAAI,CAACkC,MAAM,IAC3Bc,IAAI,CAACgC,GAAG,KAAKhF,IAAI,CAACgF,GAAG,EACrB;QACAD,OAAO,CAACxB,IAAI,CAACP,IAAI,CAAC;MACpB;IACF,CAAC,CAAC;IACF,IAAI,CAACQ,QAAQ,CAAC;MACZpC,QAAQ,EAAE2D;IACZ,CAAC,CAAC;IACFN,YAAY,IAAIA,YAAY,CAACM,OAAO,CAAC;EACvC;EACAqB,MAAMA,CAAA,EAAoB;IACxB,IAAI;MACFhF,QAAQ;MACRiF,QAAQ;MACR9B,cAAc,GAAG;QACf+B,gBAAgB,EAAE,IAAI;QACtBC,eAAe,EAAE,KAAK;QACtBC,cAAc,EAAE,IAAI;QACpBC,YAAY,EAAE,IAAI;QAClBC,UAAU,EAAE,IAAI;QAChBC,WAAW,EAAE;MACf,CAAQ;MACRjB,aAAa,GAAG,CAAC;IACnB,CAAC,GAAG,IAAI,CAAC9D,KAAK;IACd,MAAMgF,QAAQ,GAAG1G,IAAI,CAAC,IAAI,CAAC0B,KAAK,EAAE,CAChC,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,CAChB,CAAC;IACF,IAAIiF,YAAY,GAAG;MACjBC,aAAa,EAAE,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC;MAC5CC,QAAQ,EAAE;IACZ,CAAiB;IACjB,IAAIX,QAAQ,EAAE;MACZQ,YAAY,GAAA3D,aAAA,CAAAA,aAAA,KACP2D,YAAY;QACfI,UAAU,EAAEA,CAACC,UAAU,EAAElH,IAAS,EAAEmH,YAAY,KAAK;UACnD,MAAMhE,IAAI,GAAGnD,IAAI,CAACmD,IAAI,IAAInD,IAAI,CAACoD,QAAQ;UACvC,MAAMgC,KAAK,GAAGjC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkC,KAAK,CAAC,GAAG,CAAC;UAC9B,MAAMC,MAAM,GAAGF,KAAK,GAAGA,KAAK,CAACA,KAAK,CAACH,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;UACnD,oBACElF,KAAA,CAAAqH,aAAA;YAAKC,SAAS,EAAElH,OAAO,CAACC,MAAM,EAAE,sBAAsB;UAAE,gBACtDL,KAAA,CAAAqH,aAAA;YACEC,SAAS,EAAEhH,GAAG,CAACF,OAAO,CAACC,MAAM,EAAE,oBAAoB,CAAC,EAAE;cACpD,CAACD,OAAO,CAACC,MAAM,EAAE,0BAA0B,CAAC,GAAGJ,IAAI,CAACwC,MAAM,IAAI;YAChE,CAAC;UAAE,gBAEHzC,KAAA,CAAAqH,aAAA;YAAKC,SAAS,EAAElH,OAAO,CAACC,MAAM,EAAE,yBAAyB;UAAE,gBACzDL,KAAA,CAAAqH,aAAA,CAAC9G,QAAQ;YAACgF,MAAM,EAAEA,MAAO;YAACpD,MAAM,EAAElC,IAAI,CAACkC;UAAO,CAAE,CAC7C,CAAC,eACNnC,KAAA,CAAAqH,aAAA;YAAKC,SAAS,EAAElH,OAAO,CAACC,MAAM,EAAE,yBAAyB;UAAE,GACxDJ,IAAI,CAACmD,IAAI,IAAInD,IAAI,CAACoD,QAChB,CAAC,eACNrD,KAAA,CAAAqH,aAAA;YAAKC,SAAS,EAAElH,OAAO,CAACC,MAAM,EAAE,iBAAiB;UAAE,GAChDmE,cAAc,CAACgC,eAAe,IAAIvG,IAAI,CAACwC,MAAM,IAAI,MAAM,iBACtDzC,KAAA,CAAAqH,aAAA;YACEE,OAAO,EAAEA,CAAA,KAAM;cACb,IAAI,IAAI,CAAC1F,KAAK,CAAC2F,SAAS,EAAE;gBACxB,IAAI,CAAC3F,KAAK,CAAC2F,SAAS,CAACvH,IAAI,CAAC;cAC5B,CAAC,MAAM;gBACLY,eAAe,CACbZ,IAAI,CAACkC,MAAM,EACX,IAAI,CAACN,KAAK,CAAC8D,aAAa,IAAI,CAAC,CAC/B,CAAC;cACH;YACF,CAAE;YACF8B,KAAK,EAAE;cAAEC,MAAM,EAAE;YAAU;UAAE,GAE5BlD,cAAc,CAACkC,YAAY,GAC1BlC,cAAc,CAACkC,YAAY,gBAE3B1G,KAAA,CAAAqH,aAAA,CAAC3G,WAAW,MAAE,CAEb,CACN,EACA8D,cAAc,CAAC+B,gBAAgB,IAAItG,IAAI,CAACwC,MAAM,IAAI,MAAM,iBACvDzC,KAAA,CAAAqH,aAAA;YACEE,OAAO,EAAEA,CAAA,KAAM;cACb,IAAI,IAAI,CAAC1F,KAAK,CAAC8F,UAAU,EAAE;gBACzB,IAAI,CAAC9F,KAAK,CAAC8F,UAAU,CAAC1H,IAAI,CAAC;cAC7B,CAAC,MAAM;gBACLW,QAAQ,CAACX,IAAI,CAACkC,MAAM,EAAE,IAAI,EAAEwD,aAAa,CAAC;cAC5C;YACF,CAAE;YACF8B,KAAK,EAAE;cAAEC,MAAM,EAAE;YAAU;UAAE,GAE5BlD,cAAc,CAACkC,YAAY,GAC1BlC,cAAc,CAACkC,YAAY,gBAE3B1G,KAAA,CAAAqH,aAAA,CAAC5G,gBAAgB,MAAE,CAElB,CACN,EACA+D,cAAc,CAACiC,cAAc,iBAC5BzG,KAAA,CAAAqH,aAAA;YACEE,OAAO,EAAEA,CAAA,KAAM;cACb,IAAI,IAAI,CAAC1F,KAAK,CAAC+F,QAAQ,EAAE;gBACvB,IAAI,CAAC/F,KAAK,CAAC+F,QAAQ,CAAC3H,IAAI,CAAC;cAC3B,CAAC,MAAM;gBACL,IAAI,CAACmG,QAAQ,CAACnG,IAAI,CAAC;cACrB;YACF,CAAE;YACFwH,KAAK,EAAE;cAAEC,MAAM,EAAE;YAAU;UAAE,GAE5BlD,cAAc,CAACkC,YAAY,GAC1BlC,cAAc,CAACkC,YAAY,gBAE3B1G,KAAA,CAAAqH,aAAA,CAAC7G,cAAc,MAAE,CAEhB,CAEJ,CACF,CAAC,EACLP,IAAI,CAACwC,MAAM,IAAI,WAAW,iBACzBzC,KAAA,CAAAqH,aAAA;YAAKC,SAAS,EAAElH,OAAO,CAACC,MAAM,EAAE,oBAAoB;UAAE,gBACpDL,KAAA,CAAAqH,aAAA;YACEC,SAAS,EAAElH,OAAO,CAACC,MAAM,EAAE,oBAAoB,CAAE;YACjDoH,KAAK,EAAE;cAAEI,KAAK,EAAE5H,IAAI,CAAC+B,OAAO,GAAG;YAAI;UAAE,CACjC,CACH,CAEJ,CAAC;QAEV;MAAC,EACF;IACH,CAAC,MAAM;MACL8E,YAAY,GAAA3D,aAAA,CAAAA,aAAA,KACP2D,YAAY;QACfa,UAAU,EAAG1H,IAAS,IAAK;UACzBW,QAAQ,CAACX,IAAI,CAACkC,MAAM,EAAE,IAAI,EAAEwD,aAAa,CAAC;QAC5C,CAAC;QACDiC,QAAQ,EAAG3H,IAAI,IAAK;UAClB,IAAI,CAACmG,QAAQ,CAACnG,IAAI,CAAC;QACrB,CAAC;QACDuH,SAAS,EAAGvH,IAAS,IAAK;UACxB,IAAIA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEkC,MAAM,EAAE;YAChBtB,eAAe,CAACZ,IAAI,CAACkC,MAAM,EAAEwD,aAAa,CAAC;UAC7C;QACF,CAAC;QACDnB,cAAc,EAAArB,aAAA,KAAOqB,cAAc;MAAE,EACtC;IACH;IACA,oBACExE,KAAA,CAAAqH,aAAA,CAAArH,KAAA,CAAA8H,QAAA,qBACE9H,KAAA,CAAAqH,aAAA,CAACvG,OAAO,EAAAiH,QAAA,KACFjB,YAAY,EACZD,QAAQ;MACZ3C,YAAY,EAAE,IAAI,CAACA,YAAY,CAAC8C,IAAI,CAAC,IAAI,CAAE;MAC3C3F,QAAQ,EAAE,IAAI,CAAC0C,KAAK,CAAC1C;MACrB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IAAA,EACD,CACD,CAAC;EAEP;AACF"}
1
+ {"version":3,"file":"Dragger.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","Dragger","_Upload","NscUploadDragger","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","props","onProgress","totalProgress","percent","res","partSize","requestConfig","uploadIngSize","fileId","ImgRes","code","data","attachId","onSuccess","onError","uploadIngList","push","status","url","uploadSize","e","componentDidMount","convertFileList","list","newFileList","oldList","map","item","temp","_objectSpread","name","fileName","type","size","setState","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","indexOf","newList","uid","length","i","splice","names","split","suffix","_ref","newFile","files","newVersion","index","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_extends"],"sources":["../../../src/components/base/upload/Dragger.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport withZhLocale from \"../common/withZhLocale\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nimport PdfViewer from \"../pdfviwer\";\r\nconst { upload, download, previewDocument } = file;\r\nconst { Dragger } = Upload;\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n}\r\nexport default class NscUploadDragger extends React.PureComponent<\r\n IUploadProps,\r\n any\r\n> {\r\n state = { fileList: [], viewId: \"\", fileListStore: [], fileNames: [] };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList();\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n oldList.map((item: any) => {\r\n let temp = {\r\n ...item,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newFileList.push(temp);\r\n });\r\n this.setState({\r\n fileList: newFileList,\r\n fileListStore: fileList,\r\n });\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList();\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n onListChange && onListChange(newList);\r\n this.setState({ fileList: newList });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(fileList);\r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n });\r\n\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const { onComplete, onProcess, sliceSize } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n });\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n }\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(newList);\r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"nsc-upload-file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"nsc-upload-content\"), {\r\n [getLess(styles, \"nsc-upload-content-error\")]:\r\n file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"nsc-upload-mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-content-name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-icon\")}>\r\n {showUploadList.showPreviewIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(\r\n file.fileId,\r\n this.props.requestConfig || {}\r\n );\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"nsc-upload-process\")}>\r\n <div\r\n className={getLess(styles, \"nsc-upload-percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n download(file.fileId, true, requestConfig);\r\n },\r\n onRemove: (file) => {\r\n this.onDelete(file);\r\n },\r\n onPreview: (file: any) => {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Dragger\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n // onChange={({ file, fileList, event }) => {\r\n // console.log(\"onChangefile\", file);\r\n // console.log(\"onChangefileList\", fileList);\r\n // const { onChange, onListChange } = this.props;\r\n // this.setState({\r\n // fileList: fileList,\r\n // });\r\n // onListChange && onListChange(fileList);\r\n // onChange && onChange({ file, fileList, event });\r\n // }}\r\n />\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -26,6 +26,9 @@ export default class NscUpload extends React.PureComponent<IUploadProps, any> {
26
26
  fileListStore: any[];
27
27
  fileNames: any[];
28
28
  };
29
+ uploadIngSize: number;
30
+ uploadSize: number;
31
+ uploadIngList: any[];
29
32
  componentDidMount(): void;
30
33
  convertFileList(list?: Array<Object>): void;
31
34
  componentDidUpdate(preProps: any, preState: any): void;
@@ -34,7 +37,7 @@ export default class NscUpload extends React.PureComponent<IUploadProps, any> {
34
37
  beforeUpload(file: any, ofileList: any): Promise<boolean>;
35
38
  checkFileType(file: any): boolean;
36
39
  onProcess({ percent, file }: any): void;
37
- onComplete(file: any): Promise<void>;
40
+ onComplete(files: any): Promise<void>;
38
41
  customRequest: (options: any) => Promise<void>;
39
42
  onDelete(file: any): void;
40
43
  render(): React.ReactNode;