nsc-react-component 2.13.0 → 2.13.2

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.
@@ -39,7 +39,8 @@ export default class NscUpload extends React.PureComponent {
39
39
  const {
40
40
  onComplete,
41
41
  onProcess,
42
- sliceSize
42
+ sliceSize,
43
+ newVersion = true
43
44
  } = this.props;
44
45
  const onProgress = totalProgress => {
45
46
  options.onProgress({
@@ -66,7 +67,7 @@ export default class NscUpload extends React.PureComponent {
66
67
  if (res.code == 200) {
67
68
  fileId = res.data.attachId;
68
69
  options.onSuccess();
69
- if (this.props.listType == "picture-card" && this.props.newVersion) {
70
+ if (this.props.listType == "picture-card" && newVersion) {
70
71
  ImgRes = await previewImage(fileId, this.props.requestConfig);
71
72
  }
72
73
  } else {
@@ -129,7 +130,6 @@ export default class NscUpload extends React.PureComponent {
129
130
  componentDidUpdate(preProps, preState) {
130
131
  if (this.props.fileList) {
131
132
  if (JSON.stringify(this.props.fileList) !== JSON.stringify(this.state.fileListStore)) {
132
- console.log("componentDidUpdate", JSON.parse(JSON.stringify(this.props.fileList)));
133
133
  this.convertFileList(this.props.fileList);
134
134
  }
135
135
  }
@@ -268,7 +268,6 @@ export default class NscUpload extends React.PureComponent {
268
268
  newFile.fileId = file.fileId;
269
269
  newFile.url = file.url;
270
270
  if (!newVersion) {
271
- console.log("aaaaaaaa");
272
271
  let url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
273
272
  newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
274
273
  }
@@ -409,4 +408,4 @@ export default class NscUpload extends React.PureComponent {
409
408
  }
410
409
  }
411
410
  _defineProperty(NscUpload, "Dragger", NscUploadDragger);
412
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJwcm9wcyIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInJlcyIsInBhcnRTaXplIiwicmVxdWVzdENvbmZpZyIsInVwbG9hZEluZ1NpemUiLCJmaWxlSWQiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJuZXdWZXJzaW9uIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlIiwiY29uc29sZSIsImxvZyIsInBhcnNlIiwiZ2V0RmlsZUxpc3QiLCJzZXRGaWxlTGlzdCIsImJlZm9yZVVwbG9hZCIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsIm9uTGlzdENoYW5nZSIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNvbmNhdCIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwiaSIsInNwbGljZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJfcmVmIiwibmV3RmlsZSIsImZpbGVzIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX1VwbG9hZCIsIl9leHRlbmRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS91cGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmltcG9ydCBOc2NVcGxvYWREcmFnZ2VyIGZyb20gXCIuL0RyYWdnZXJcIjtcclxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiQGJhYmVsL2NvcmVcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQsIHByZXZpZXdJbWFnZSB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRpYyBEcmFnZ2VyID0gTnNjVXBsb2FkRHJhZ2dlcjtcclxuICBzdGF0ZSA9IHtcclxuICAgIGZpbGVMaXN0OiBbXSxcclxuICAgIHZpZXdJZDogXCJcIixcclxuICAgIGZpbGVMaXN0U3RvcmU6IFtdLFxyXG4gICAgZmlsZU5hbWVzOiBbXSxcclxuICB9O1xyXG4gIHVwbG9hZEluZ1NpemUgPSAwO1xyXG4gIHVwbG9hZFNpemUgPSAwO1xyXG4gIHVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnRGaWxlTGlzdChsaXN0PzogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCwgbGlzdFR5cGUgfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0ge1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgc3RhdHVzOiBpdGVtLnN0YXR1cyxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIHVybDogaXRlbS51cmwsXHJcbiAgICAgIH0gYXMgYW55O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFsuLi5maWxlTGlzdF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxyXG4gICAgICAgICAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmZpbGVMaXN0KSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KHRoaXMucHJvcHMuZmlsZUxpc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgb25MaXN0Q2hhbmdlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSk7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSBvZmlsZUxpc3QubGVuZ3RoO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBvbkNvbXBsZXRlKGZpbGVzKSB7XHJcbiAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRTaXplID0gMDtcclxuICAgIHRoaXMudXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgbmV3VmVyc2lvbiA9IHRydWUsIHJlcXVlc3RDb25maWcgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG5cclxuICAgIGZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbTogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGZpbGVzLm1hcChhc3luYyAoZmlsZSkgPT4ge1xyXG4gICAgICAgIGlmIChmaWxlLmZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgICBuZXdGaWxlLnN0YXR1cyA9IGZpbGUuc3RhdHVzID09IFwic3VjY2Vzc1wiID8gXCJkb25lXCIgOiBmaWxlLnN0YXR1cztcclxuICAgICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgICBuZXdGaWxlLnVybCA9IGZpbGUudXJsO1xyXG4gICAgICAgICAgaWYgKCFuZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWFhYWFhYWFcIik7XHJcbiAgICAgICAgICAgIGxldCB1cmwgPSBgL2pxdWljay1yZXNvdXJjZS9vc3MvZW5kcG9pbnQvZG93bmxvYWQtZmlsZXM/YXR0YWNoSWQ9JHtcclxuICAgICAgICAgICAgICBmaWxlLmZpbGVJZFxyXG4gICAgICAgICAgICB9Jl90cGs9JHt3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0b2tlblwiKX1gO1xyXG4gICAgICAgICAgICBuZXdGaWxlLnVybCA9IHJlcXVlc3RDb25maWcucHJlZml4XHJcbiAgICAgICAgICAgICAgPyByZXF1ZXN0Q29uZmlnLnByZWZpeCArIHVybFxyXG4gICAgICAgICAgICAgIDogXCIvYXBpXCIgKyB1cmw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdMaXN0XSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgY3VzdG9tUmVxdWVzdCA9IGFzeW5jIChvcHRpb25zKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xyXG4gICAgY29uc3QgeyBvbkNvbXBsZXRlLCBvblByb2Nlc3MsIHNsaWNlU2l6ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MgfSwgZmlsZSk7XHJcbiAgICAgIHRoaXMub25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgICAgb25Qcm9jZXNzICYmIG9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICB9O1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB1cGxvYWQoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgICBwYXJ0U2l6ZTogc2xpY2VTaXplLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudXBsb2FkSW5nU2l6ZSA9IHRoaXMudXBsb2FkSW5nU2l6ZSArIDE7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBsZXQgSW1nUmVzID0gbnVsbDtcclxuICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMubGlzdFR5cGUgPT0gXCJwaWN0dXJlLWNhcmRcIiAmJiB0aGlzLnByb3BzLm5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgIEltZ1JlcyA9IGF3YWl0IHByZXZpZXdJbWFnZShmaWxlSWQsIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXBsb2FkSW5nTGlzdC5wdXNoKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB1cmw6IEltZ1JlcyA/IEltZ1Jlcy5kYXRhIDogbnVsbCxcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgIH1cclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgIHRoaXMub25Db21wbGV0ZSh0aGlzLnVwbG9hZEluZ0xpc3QpO1xyXG4gICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICB9XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAvL+mAmui/h+aWh+S7tuWQjeWIpOaWre+8jOS4iuS8oOaYr+aWh+S7tuWQjeaYr+WUr+S4gOeahFxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXRlbS5uYW1lICE9PSBmaWxlLm5hbWUgfHxcclxuICAgICAgICBpdGVtLmZpbGVJZCAhPT0gZmlsZS5maWxlSWQgfHxcclxuICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBmaWxlTGlzdCxcclxuICAgICAgZmlsZUNhcmQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0ID0ge1xyXG4gICAgICAgIHNob3dEb3dubG9hZEljb246IHRydWUsXHJcbiAgICAgICAgc2hvd1ByZXZpZXdJY29uOiBmYWxzZSxcclxuICAgICAgICBzaG93UmVtb3ZlSWNvbjogdHJ1ZSxcclxuICAgICAgICBkb3dubG9hZEljb246IG51bGwsXHJcbiAgICAgICAgcmVtb3ZlSWNvbjogbnVsbCxcclxuICAgICAgICBwcmV2aWV3SWNvbjogbnVsbCxcclxuICAgICAgfSBhcyBhbnksXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3cHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgIFwib25Db21wbGV0ZVwiLFxyXG4gICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICBcInVzZURlZmF1bHRMaXN0XCIsXHJcbiAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgICAgXCJuZXdWZXJzaW9uXCIsXHJcbiAgICAgIFwicmVxdWVzdENvbmZpZ1wiLFxyXG4gICAgXSk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICB9IGFzIElVcGxvYWRQcm9wcztcclxuICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lO1xyXG4gICAgICAgICAgY29uc3QgbmFtZXMgPSBuYW1lPy5zcGxpdChcIi5cIik7XHJcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJmaWxlLWl0ZW1cIil9PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnRcIiksIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImNvbnRlbnRfZXJyb3JcIildOiBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibWFyay1waWN0dXJlXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHN1ZmZpeD17c3VmZml4fSBmaWxlSWQ9e2ZpbGUuZmlsZUlkfSAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PlxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1ByZXZpZXdJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUHJldmlldykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25QcmV2aWV3KGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UmVtb3ZlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIHtmaWxlLnN0YXR1cyA9PSBcInVwbG9hZGluZ1wiICYmIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGU/LmZpbGVJZCkge1xyXG4gICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3Q6IHsgLi4uc2hvd1VwbG9hZExpc3QgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAgPFVwbG9hZFxyXG4gICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAgIGJlZm9yZVVwbG9hZD17dGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFFaEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtBQUN6QyxTQUNFQyxjQUFjLEVBQ2RDLGdCQUFnQixFQUNoQkMsV0FBVyxRQUNOLG1CQUFtQjtBQUUxQixPQUFPQyxnQkFBZ0IsTUFBTSxXQUFXO0FBRXhDLE1BQU07RUFBRUMsTUFBTTtFQUFFQyxRQUFRO0VBQUVDLGVBQWU7RUFBRUM7QUFBYSxDQUFDLEdBQUdkLElBQUk7QUFlaEUsZUFBZSxNQUFNZSxTQUFTLFNBQVNoQixLQUFLLENBQUNpQixhQUFhLENBQW9CO0VBQUFDLFlBQUE7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
411
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJuZXdWZXJzaW9uIiwicHJvcHMiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJyZXMiLCJwYXJ0U2l6ZSIsInJlcXVlc3RDb25maWciLCJ1cGxvYWRJbmdTaXplIiwiZmlsZUlkIiwiSW1nUmVzIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsImxpc3RUeXBlIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlIiwiZ2V0RmlsZUxpc3QiLCJzZXRGaWxlTGlzdCIsImJlZm9yZVVwbG9hZCIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsIm9uTGlzdENoYW5nZSIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNvbmNhdCIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwiaSIsInNwbGljZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJfcmVmIiwibmV3RmlsZSIsImZpbGVzIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX1VwbG9hZCIsIl9leHRlbmRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS91cGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmltcG9ydCBOc2NVcGxvYWREcmFnZ2VyIGZyb20gXCIuL0RyYWdnZXJcIjtcclxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiQGJhYmVsL2NvcmVcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQsIHByZXZpZXdJbWFnZSB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRpYyBEcmFnZ2VyID0gTnNjVXBsb2FkRHJhZ2dlcjtcclxuICBzdGF0ZSA9IHtcclxuICAgIGZpbGVMaXN0OiBbXSxcclxuICAgIHZpZXdJZDogXCJcIixcclxuICAgIGZpbGVMaXN0U3RvcmU6IFtdLFxyXG4gICAgZmlsZU5hbWVzOiBbXSxcclxuICB9O1xyXG4gIHVwbG9hZEluZ1NpemUgPSAwO1xyXG4gIHVwbG9hZFNpemUgPSAwO1xyXG4gIHVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnRGaWxlTGlzdChsaXN0PzogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCwgbGlzdFR5cGUgfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0ge1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgc3RhdHVzOiBpdGVtLnN0YXR1cyxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIHVybDogaXRlbS51cmwsXHJcbiAgICAgIH0gYXMgYW55O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFsuLi5maWxlTGlzdF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QodGhpcy5wcm9wcy5maWxlTGlzdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICB9XHJcbiAgc2V0RmlsZUxpc3QoZmlsZUxpc3Q6IEFycmF5PE9iamVjdD4pIHtcclxuICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICB9XHJcbiAgYXN5bmMgYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgYWxsb3dGaWxlU3VmZml4LFxyXG4gICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgbWF4Q291bnQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0LFxyXG4gICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtYXhTaXplICE9PSBmYWxzZSkge1xyXG4gICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgIH1cclxuICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgY29uc3QgY2hlY2tMaXN0ID0gdGhpcy5wcm9wcy5maWxlTGlzdCA/IGZpbGVMaXN0U3RvcmUgOiBmaWxlTGlzdDtcclxuICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLmJlZm9yZVVwbG9hZCkge1xyXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3TGlzdCA9IFsuLi5maWxlTGlzdF07XHJcbiAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhKFxyXG4gICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgKGNoZWNrU2FtZUZpbGUgJiYgZmlsZU5hbWVzLmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgdGVtcCA9IHtcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIG5ld0xpc3QucHVzaCh0ZW1wKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG1heENvdW50ICYmIG5ld0xpc3QubGVuZ3RoID4gbWF4Q291bnQpIHtcclxuICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBuZXdMaXN0LnNwbGljZSgwLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICAgIHRoaXMudXBsb2FkU2l6ZSA9IG9maWxlTGlzdC5sZW5ndGg7XHJcbiAgfVxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIG9uQ29tcGxldGUoZmlsZXMpIHtcclxuICAgIHRoaXMudXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBuZXdWZXJzaW9uID0gdHJ1ZSwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcblxyXG4gICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplLCBuZXdWZXJzaW9uID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MgfSwgZmlsZSk7XHJcbiAgICAgIHRoaXMub25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgICAgb25Qcm9jZXNzICYmIG9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICB9O1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB1cGxvYWQoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgICBwYXJ0U2l6ZTogc2xpY2VTaXplLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudXBsb2FkSW5nU2l6ZSA9IHRoaXMudXBsb2FkSW5nU2l6ZSArIDE7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBsZXQgSW1nUmVzID0gbnVsbDtcclxuICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMubGlzdFR5cGUgPT0gXCJwaWN0dXJlLWNhcmRcIiAmJiBuZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICBJbWdSZXMgPSBhd2FpdCBwcmV2aWV3SW1hZ2UoZmlsZUlkLCB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwbG9hZEluZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgdXJsOiBJbWdSZXMgPyBJbWdSZXMuZGF0YSA6IG51bGwsXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgIHRoaXMub25Db21wbGV0ZSh0aGlzLnVwbG9hZEluZ0xpc3QpO1xyXG4gICAgICB9XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgIH1cclxuICB9O1xyXG4gIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGl0ZW0ubmFtZSAhPT0gZmlsZS5uYW1lIHx8XHJcbiAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgIFwibWF4U2l6ZVwiLFxyXG4gICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgXCJhbGxvd0ZpbGVTdWZmaXhcIixcclxuICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgIFwib25MaXN0Q2hhbmdlXCIsXHJcbiAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdH1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBRTlCLE9BQU9DLElBQUksTUFBTSxVQUFVO0FBQzNCLE9BQU9DLE9BQU8sTUFBTSxZQUFZO0FBRWhDLE9BQU9DLElBQUksTUFBTSxTQUFTO0FBQzFCLFNBQVNDLE9BQU8sUUFBUSxhQUFhO0FBQ3JDLE9BQU9DLE1BQU0sTUFBTSxjQUFjO0FBQ2pDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxnQkFBZ0IsRUFDaEJDLFdBQVcsUUFDTixtQkFBbUI7QUFFMUIsT0FBT0MsZ0JBQWdCLE1BQU0sV0FBVztBQUV4QyxNQUFNO0VBQUVDLE1BQU07RUFBRUMsUUFBUTtFQUFFQyxlQUFlO0VBQUVDO0FBQWEsQ0FBQyxHQUFHZCxJQUFJO0FBZWhFLGVBQWUsTUFBTWUsU0FBUyxTQUFTaEIsS0FBSyxDQUFDaUIsYUFBYSxDQUFvQjtFQUFBQyxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLGdCQUVwRTtNQUNOQyxRQUFRLEVBQUUsRUFBRTtNQUNaQyxNQUFNLEVBQUUsRUFBRTtNQUNWQyxhQUFhLEVBQUUsRUFBRTtNQUNqQkMsU0FBUyxFQUFFO0lBQ2IsQ0FBQztJQUFBSixlQUFBLHdCQUNlLENBQUM7SUFBQUEsZUFBQSxxQkFDSixDQUFDO0lBQUFBLGVBQUEsd0JBQ0UsRUFBRTtJQUFB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QkFFM0I5RyxLQUFBLENBQUF5SCxhQUFBLENBQUNqSCxjQUFjLE1BQUUsQ0FFaEIsQ0FFSixDQUNGLENBQUMsRUFDTFAsSUFBSSxDQUFDK0MsTUFBTSxJQUFJLFdBQVcsaUJBQ3pCaEQsS0FBQSxDQUFBeUgsYUFBQTtZQUFLQyxTQUFTLEVBQUV0SCxPQUFPLENBQUNDLE1BQU0sRUFBRSxTQUFTO1VBQUUsZ0JBQ3pDTCxLQUFBLENBQUF5SCxhQUFBO1lBQ0VDLFNBQVMsRUFBRXRILE9BQU8sQ0FBQ0MsTUFBTSxFQUFFLFNBQVMsQ0FBRTtZQUN0Q3dILEtBQUssRUFBRTtjQUFFSSxLQUFLLEVBQUVoSSxJQUFJLENBQUNnQyxPQUFPLEdBQUc7WUFBSTtVQUFFLENBQ2pDLENBQ0gsQ0FFSixDQUFDO1FBRVY7TUFBQyxFQUNGO0lBQ0gsQ0FBQyxNQUFNO01BQ0xpRixZQUFZLEdBQUFyRCxhQUFBLENBQUFBLGFBQUEsS0FDUHFELFlBQVk7UUFDZmEsVUFBVSxFQUFHOUgsSUFBUyxJQUFLO1VBQ3pCWSxRQUFRLENBQUNaLElBQUksQ0FBQ3FDLE1BQU0sRUFBRSxJQUFJLEVBQUVGLGFBQWEsQ0FBQztRQUM1QyxDQUFDO1FBQ0Q0RixRQUFRLEVBQUcvSCxJQUFJLElBQUs7VUFDbEIsSUFBSSxDQUFDdUcsUUFBUSxDQUFDdkcsSUFBSSxDQUFDO1FBQ3JCLENBQUM7UUFDRDJILFNBQVMsRUFBRzNILElBQVMsSUFBSztVQUN4QixJQUFJQSxJQUFJLGFBQUpBLElBQUksZUFBSkEsSUFBSSxDQUFFcUMsTUFBTSxFQUFFO1lBQ2hCeEIsZUFBZSxDQUFDYixJQUFJLENBQUNxQyxNQUFNLEVBQUVGLGFBQWEsQ0FBQztVQUM3QztRQUNGLENBQUM7UUFDRDZDLGNBQWMsRUFBQXBCLGFBQUEsS0FBT29CLGNBQWM7TUFBRSxFQUN0QztJQUNIO0lBQ0Esb0JBQ0VqRixLQUFBLENBQUF5SCxhQUFBLENBQUF6SCxLQUFBLENBQUFrSSxRQUFBLHFCQUNFbEksS0FBQSxDQUFBeUgsYUFBQSxDQUFBVSxPQUFBLEVBQUFDLFFBQUEsS0FDTWxCLFlBQVksRUFDWkQsUUFBUTtNQUNadEMsWUFBWSxFQUFFLElBQUksQ0FBQ0EsWUFBWSxDQUFDeUMsSUFBSSxDQUFDLElBQUksQ0FBRTtNQUMzQy9GLFFBQVEsRUFBRSxJQUFJLENBQUNtRCxLQUFLLENBQUNuRDtJQUFTLEVBQy9CLENBQ0QsQ0FBQztFQUVQO0FBQ0Y7QUFBQ0QsZUFBQSxDQTFab0JKLFNBQVMsYUFDWEwsZ0JBQWdCIiwiaWdub3JlTGlzdCI6W119
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","NscUploadDragger","upload","download","previewDocument","previewImage","NscUpload","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","listType","newVersion","onError","uploadIngList","push","status","url","uploadSize","e","componentDidMount","convertFileList","list","newFileList","oldList","map","item","index","temp","_objectSpread","name","fileName","type","size","setState","componentDidUpdate","preProps","preState","JSON","stringify","state","console","log","parse","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","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","_Upload","_extends"],"sources":["../../../src/components/base/upload/index.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\nimport NscUploadDragger from \"./Dragger\";\r\nimport { parse } from \"@babel/core\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\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 NscUpload extends React.PureComponent<IUploadProps, any> {\r\n static Dragger = NscUploadDragger;\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\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, listType } = this.props;\r\n\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n oldList.map(async (item: any, index) => {\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\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 console.log(\r\n \"componentDidUpdate\",\r\n JSON.parse(JSON.stringify(this.props.fileList))\r\n );\r\n this.convertFileList(this.props.fileList);\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 = true, 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 console.log(\"aaaaaaaa\");\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 if (this.props.listType == \"picture-card\" && this.props.newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\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, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"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(file.fileId, requestConfig);\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, \"process\")}>\r\n <div\r\n className={getLess(styles, \"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 <Upload\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n />\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","NscUploadDragger","upload","download","previewDocument","previewImage","NscUpload","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","newVersion","props","onProgress","totalProgress","percent","res","partSize","requestConfig","uploadIngSize","fileId","ImgRes","code","data","attachId","onSuccess","listType","onError","uploadIngList","push","status","url","uploadSize","e","componentDidMount","convertFileList","list","newFileList","oldList","map","item","index","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","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","_Upload","_extends"],"sources":["../../../src/components/base/upload/index.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\nimport NscUploadDragger from \"./Dragger\";\r\nimport { parse } from \"@babel/core\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\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 NscUpload extends React.PureComponent<IUploadProps, any> {\r\n static Dragger = NscUploadDragger;\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\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, listType } = this.props;\r\n\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n oldList.map(async (item: any, index) => {\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\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(this.props.fileList);\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 = true, 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, newVersion = true } = 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 if (this.props.listType == \"picture-card\" && newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\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, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"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(file.fileId, requestConfig);\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, \"process\")}>\r\n <div\r\n className={getLess(styles, \"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 <Upload\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\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,OAAOC,gBAAgB,MAAM,WAAW;AAExC,MAAM;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,eAAe;EAAEC;AAAa,CAAC,GAAGd,IAAI;AAehE,eAAe,MAAMe,SAAS,SAAShB,KAAK,CAACiB,aAAa,CAAoB;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,gBAEpE;MACNC,QAAQ,EAAE,EAAE;MACZC,MAAM,EAAE,EAAE;MACVC,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE;IACb,CAAC;IAAAJ,eAAA,wBACe,CAAC;IAAAA,eAAA,qBACJ,CAAC;IAAAA,eAAA,wBACE,EAAE;IAAAA,eAAA,wBAqLF,MAAOK,OAAO,IAAK;MACjC,MAAMxB,IAAI,GAAGwB,OAAO,CAACxB,IAAI;MACzB,MAAM;QAAEyB,UAAU;QAAEC,SAAS;QAAEC,SAAS;QAAEC,UAAU,GAAG;MAAK,CAAC,GAAG,IAAI,CAACC,KAAK;MAC1E,MAAMC,UAAU,GAAIC,aAAkB,IAAK;QACzCP,OAAO,CAACM,UAAU,CAAC;UAAEE,OAAO,EAAED;QAAc,CAAC,EAAE/B,IAAI,CAAC;QACpD,IAAI,CAAC0B,SAAS,CAAC;UAAEM,OAAO,EAAED,aAAa;UAAE/B,IAAI,EAAEA;QAAK,CAAC,CAAC;QACtD0B,SAAS,IAAIA,SAAS,CAAC;UAAEM,OAAO,EAAED,aAAa;UAAE/B,IAAI,EAAEA;QAAK,CAAC,CAAC;MAChE,CAAC;MACD,IAAI;QACF,MAAMiC,GAAQ,GAAG,MAAMtB,MAAM,CAC3B;UACEX,IAAI,EAAEA,IAAI;UACV8B,UAAU,EAAEA,UAAU;UACtBI,QAAQ,EAAEP;QACZ,CAAC,EACD,IAAI,CAACE,KAAK,CAACM,aACb,CAAC;QACD,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,GAAG,CAAC;QAC3C,IAAIC,MAAM,GAAG,IAAI;QACjB,IAAIC,MAAM,GAAG,IAAI;QACjB,IAAIL,GAAG,CAACM,IAAI,IAAI,GAAG,EAAE;UACnBF,MAAM,GAAGJ,GAAG,CAACO,IAAI,CAACC,QAAQ;UAC1BjB,OAAO,CAACkB,SAAS,CAAC,CAAC;UACnB,IAAI,IAAI,CAACb,KAAK,CAACc,QAAQ,IAAI,cAAc,IAAIf,UAAU,EAAE;YACvDU,MAAM,GAAG,MAAMxB,YAAY,CAACuB,MAAM,EAAE,IAAI,CAACR,KAAK,CAACM,aAAa,CAAC;UAC/D;QACF,CAAC,MAAM;UACLX,OAAO,CAACoB,OAAO,CAAC,CAAC;QACnB;QACA,IAAI,CAACC,aAAa,CAACC,IAAI,CAAC;UACtB9C,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAClBqC,MAAM,EAAEA,MAAM;UACdU,MAAM,EAAEd,GAAG,CAACM,IAAI,IAAI,GAAG,GAAG,SAAS,GAAG,OAAO;UAC7CS,GAAG,EAAEV,MAAM,GAAGA,MAAM,CAACE,IAAI,GAAG;QAC9B,CAAC,CAAC;QACF,IAAI,IAAI,CAACS,UAAU,IAAI,IAAI,CAACb,aAAa,EAAE;UACzC,IAAI,CAACX,UAAU,CAAC,IAAI,CAACoB,aAAa,CAAC;QACrC;QACApB,UAAU,IACRA,UAAU,CAAC;UACTzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAClBqC,MAAM,EAAEA,MAAM;UACdU,MAAM,EAAEd,GAAG,CAACM,IAAI,IAAI,GAAG,GAAG,SAAS,GAAG;QACxC,CAAC,CAAC;MACN,CAAC,CAAC,OAAOW,CAAC,EAAE;QACV,IAAI,IAAI,CAACD,UAAU,IAAI,IAAI,CAACb,aAAa,EAAE;UACzC,IAAI,CAACX,UAAU,CAAC,IAAI,CAACoB,aAAa,CAAC;UACnCrB,OAAO,CAACoB,OAAO,CAAC,CAAC;QACnB;QACAnB,UAAU,IACRA,UAAU,CAAC;UAAEzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAAEqC,MAAM,EAAE,EAAE;UAAEU,MAAM,EAAE;QAAQ,CAAC,CAAC;MACnE;IACF,CAAC;EAAA;EAxODI,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACtB,KAAK,CAACT,QAAQ,EAAE;MACvB,IAAI,CAACgC,eAAe,CAAC,CAAC;IACxB;EACF;EACAA,eAAeA,CAACC,IAAoB,EAAE;IACpC,MAAM;MAAEjC,QAAQ;MAAEuB;IAAS,CAAC,GAAG,IAAI,CAACd,KAAK;IAEzC,MAAMyB,WAAW,GAAG,EAAE;IACtB,IAAIC,OAAO,GAAGF,IAAI,GAAGA,IAAI,GAAGjC,QAAQ;IACpCmC,OAAO,CAACC,GAAG,CAAC,OAAOC,IAAS,EAAEC,KAAK,KAAK;MACtC,IAAIC,IAAI,GAAAC,aAAA,CAAAA,aAAA,KACHH,IAAI;QACPV,MAAM,EAAEU,IAAI,CAACV,MAAM;QACnBc,IAAI,EAAEJ,IAAI,CAACI,IAAI,IAAIJ,IAAI,CAACK,QAAQ;QAChCC,IAAI,EAAEN,IAAI,CAACM,IAAI;QACfC,IAAI,EAAEP,IAAI,CAACO,IAAI;QACfhB,GAAG,EAAES,IAAI,CAACT;MAAG,EACP;MACRM,WAAW,CAACR,IAAI,CAACa,IAAI,CAAC;IACxB,CAAC,CAAC;IACF,IAAI,CAACM,QAAQ,CAAC;MACZ7C,QAAQ,EAAE,CAAC,GAAGkC,WAAW,CAAC;MAC1BhC,aAAa,EAAE,CAAC,GAAGF,QAAQ;IAC7B,CAAC,CAAC;EACJ;EACA8C,kBAAkBA,CAACC,QAAQ,EAAEC,QAAQ,EAAE;IACrC,IAAI,IAAI,CAACvC,KAAK,CAACT,QAAQ,EAAE;MACvB,IACEiD,IAAI,CAACC,SAAS,CAAC,IAAI,CAACzC,KAAK,CAACT,QAAQ,CAAC,KACnCiD,IAAI,CAACC,SAAS,CAAC,IAAI,CAACC,KAAK,CAACjD,aAAa,CAAC,EACxC;QACA,IAAI,CAAC8B,eAAe,CAAC,IAAI,CAACvB,KAAK,CAACT,QAAQ,CAAC;MAC3C;IACF;EACF;EACAoD,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,KAAK,CAACnD,QAAQ;EAC5B;EACAqD,WAAWA,CAACrD,QAAuB,EAAE;IACnC,IAAI,CAACgC,eAAe,CAAChC,QAAQ,CAAC;EAChC;EACA,MAAMsD,YAAYA,CAAC1E,IAAI,EAAE2E,SAAS,EAAE;IAClC,IAAI;MACFC,OAAO,GAAG,GAAG;MACbC,eAAe;MACfC,aAAa,GAAG,IAAI;MACpBC,QAAQ;MACRC,cAAc;MACd5D,QAAQ,EAAE6D,SAAS;MACnBC;IACF,CAAC,GAAG,IAAI,CAACrD,KAAK;IACd,IAAI;MAAET,QAAQ;MAAEE;IAAc,CAAC,GAAG,IAAI,CAACiD,KAAK;IAC5C,IAAIP,IAAY;IAChB,IAAIa,eAAe,IAAI,CAAC,IAAI,CAACM,aAAa,CAACnF,IAAI,CAAC,EAAE;MAChDC,OAAO,CAACmF,KAAK,IAAAC,MAAA,CACRrF,IAAI,CAAC6D,IAAI,sGAAAwB,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;MACAZ,IAAI,GAAGY,OAAO,GAAG,IAAI,GAAG,IAAI;MAC5B,IAAIZ,IAAI,GAAGhE,IAAI,CAACgE,IAAI,EAAE;QACpB/D,OAAO,CAACmF,KAAK,IAAAC,MAAA,CAAIrF,IAAI,CAAC6D,IAAI,0CAAAwB,MAAA,CAAST,OAAO,gDAAU,CAAC;QACrD,OAAO,KAAK;MACd;IACF;IACA,IAAIrD,SAAS,GAAG,EAAE;IAClB,IAAIuD,aAAa,EAAE;MACjB,MAAMQ,SAAS,GAAG,IAAI,CAACzD,KAAK,CAACT,QAAQ,GAAGE,aAAa,GAAGF,QAAQ;MAChEkE,SAAS,CAAC9B,GAAG,CAAEC,IAAI,IAAK;QACtBlC,SAAS,CAACuB,IAAI,CAACW,IAAI,CAACI,IAAI,IAAIJ,IAAI,CAACK,QAAQ,CAAC;MAC5C,CAAC,CAAC;MAEF,IAAIvC,SAAS,CAACgE,OAAO,CAACvF,IAAI,CAAC6D,IAAI,CAAC,GAAG,CAAC,CAAC,IAAImB,cAAc,KAAK,KAAK,EAAE;QACjE/E,OAAO,CAACmF,KAAK,gBAAAC,MAAA,CAAMrF,IAAI,CAAC6D,IAAI,qGAAkB,CAAC;QAC/C,OAAO,KAAK;MACd;IACF;IAEA,IAAI,IAAI,CAAChC,KAAK,CAAC6C,YAAY,EAAE;MAC3B,MAAMzC,GAAG,GAAG,MAAM,IAAI,CAACJ,KAAK,CAAC6C,YAAY,CAAC1E,IAAI,EAAE2E,SAAS,CAAC;MAC1D,IAAI1C,GAAG,KAAK,KAAK,EAAE;QACjB,OAAO,KAAK;MACd;IACF;IACA,MAAMuD,OAAO,GAAG,CAAC,GAAGpE,QAAQ,CAAC;IAC7BuD,SAAS,CAACnB,GAAG,CAAC,MAAOC,IAAI,IAAK;MAC5B,IACE,EACGoB,eAAe,IAAI,CAAC,IAAI,CAACM,aAAa,CAAC1B,IAAI,CAAC,IAC7CO,IAAI,GAAGP,IAAI,CAACO,IAAI,IACfc,aAAa,IAAIvD,SAAS,CAACgE,OAAO,CAAC9B,IAAI,CAACI,IAAI,CAAC,GAAG,CAAC,CAAE,CACrD,EACD;QACA,MAAMF,IAAI,GAAG;UACXG,QAAQ,EAAEL,IAAI,CAACI,IAAI;UACnB7B,OAAO,EAAE,CAAC;UACVe,MAAM,EAAE,WAAW;UACnB0C,GAAG,EAAEhC,IAAI,CAACgC,GAAG;UACb5B,IAAI,EAAEJ,IAAI,CAACI,IAAI;UACfE,IAAI,EAAEN,IAAI,CAACM,IAAI;UACfC,IAAI,EAAEP,IAAI,CAACO;QACb,CAAC;QACDwB,OAAO,CAAC1C,IAAI,CAACa,IAAI,CAAC;MACpB;IACF,CAAC,CAAC;IAEF,IAAIoB,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;MAAE7C,QAAQ,EAAEoE;IAAQ,CAAC,CAAC;IACpC,IAAI,CAACvC,UAAU,GAAG0B,SAAS,CAACe,MAAM;EACpC;EACAP,aAAaA,CAACnF,IAAI,EAAE;IAClB,MAAM;MAAE6E;IAAgB,CAAC,GAAG,IAAI,CAAChD,KAAK;IACtC,MAAMgE,KAAK,GAAG7F,IAAI,CAAC6D,IAAI,CAACiC,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;EACArE,SAASA,CAAAsE,IAAA,EAAyB;IAAA,IAAxB;MAAEhE,OAAO;MAAEhC;IAAU,CAAC,GAAAgG,IAAA;IAC9B,MAAM;MAAE5E;IAAS,CAAC,GAAG,IAAI,CAACmD,KAAK;IAC/B,MAAM;MAAEW;IAAa,CAAC,GAAG,IAAI,CAACrD,KAAK;IACnC,MAAM2D,OAAY,GAAG,EAAE;IACvBpE,QAAQ,CAACoC,GAAG,CAAEC,IAAS,IAAK;MAC1B,MAAMwC,OAAO,GAAArC,aAAA,KAAQH,IAAI,CAAE;MAC3B,IAAIzD,IAAI,CAACyF,GAAG,IAAIhC,IAAI,CAACgC,GAAG,EAAE;QACxBQ,OAAO,CAACjE,OAAO,GAAGA,OAAO;MAC3B;MACAwD,OAAO,CAAC1C,IAAI,CAACmD,OAAO,CAAC;IACvB,CAAC,CAAC;IACF,IAAI,CAAChC,QAAQ,CAAC;MACZ7C,QAAQ,EAAEoE;IACZ,CAAC,CAAC;IACFN,YAAY,IAAIA,YAAY,CAAC9D,QAAQ,CAAC;EACxC;EACA,MAAMK,UAAUA,CAACyE,KAAK,EAAE;IACtB,IAAI,CAAC9D,aAAa,GAAG,CAAC;IACtB,IAAI,CAACa,UAAU,GAAG,CAAC;IACnB,IAAI,CAACJ,aAAa,GAAG,EAAE;IACvB,MAAM;MAAEzB;IAAS,CAAC,GAAG,IAAI,CAACmD,KAAK;IAC/B,MAAM;MAAE3C,UAAU,GAAG,IAAI;MAAEO,aAAa,GAAG,CAAC;IAAE,CAAC,GAAG,IAAI,CAACN,KAAK;IAC5D,MAAM2D,OAAY,GAAG,EAAE;IAEvBpE,QAAQ,CAACoC,GAAG,CAAC,OAAOC,IAAS,EAAEC,KAAK,KAAK;MACvC,MAAMuC,OAAO,GAAArC,aAAA,KAAQH,IAAI,CAAE;MAC3ByC,KAAK,CAAC1C,GAAG,CAAC,MAAOxD,IAAI,IAAK;QACxB,IAAIA,IAAI,CAACA,IAAI,CAACyF,GAAG,IAAIhC,IAAI,CAACgC,GAAG,EAAE;UAC7BQ,OAAO,CAAClD,MAAM,GAAG/C,IAAI,CAAC+C,MAAM,IAAI,SAAS,GAAG,MAAM,GAAG/C,IAAI,CAAC+C,MAAM;UAChEkD,OAAO,CAAC5D,MAAM,GAAGrC,IAAI,CAACqC,MAAM;UAC5B4D,OAAO,CAACjD,GAAG,GAAGhD,IAAI,CAACgD,GAAG;UACtB,IAAI,CAACpB,UAAU,EAAE;YACf,IAAIoB,GAAG,4DAAAqC,MAAA,CACLrF,IAAI,CAACqC,MAAM,YAAAgD,MAAA,CACJc,MAAM,CAACC,YAAY,CAACC,OAAO,CAAC,OAAO,CAAC,CAAE;YAC/CJ,OAAO,CAACjD,GAAG,GAAGb,aAAa,CAACmE,MAAM,GAC9BnE,aAAa,CAACmE,MAAM,GAAGtD,GAAG,GAC1B,MAAM,GAAGA,GAAG;UAClB;QACF;MACF,CAAC,CAAC;MACFwC,OAAO,CAAC1C,IAAI,CAACmD,OAAO,CAAC;IACvB,CAAC,CAAC;IACF,IAAI,CAAChC,QAAQ,CAAC;MACZ7C,QAAQ,EAAE,CAAC,GAAGoE,OAAO;IACvB,CAAC,CAAC;IAEF,MAAM;MAAEN;IAAa,CAAC,GAAG,IAAI,CAACrD,KAAK;IACnCqD,YAAY,IAAIA,YAAY,CAACM,OAAO,CAAC;EACvC;EAsDAe,QAAQA,CAACvG,IAAI,EAAE;IACb,MAAM;MAAEoB;IAAS,CAAC,GAAG,IAAI,CAACmD,KAAK;IAC/B,MAAM;MAAEW;IAAa,CAAC,GAAG,IAAI,CAACrD,KAAK;IACnC,MAAM2D,OAAY,GAAG,EAAE;IACvBpE,QAAQ,CAACoC,GAAG,CAAEC,IAAS,IAAK;MAC1B;MACA,IACEA,IAAI,CAACI,IAAI,KAAK7D,IAAI,CAAC6D,IAAI,IACvBJ,IAAI,CAACpB,MAAM,KAAKrC,IAAI,CAACqC,MAAM,IAC3BoB,IAAI,CAACgC,GAAG,KAAKzF,IAAI,CAACyF,GAAG,EACrB;QACAD,OAAO,CAAC1C,IAAI,CAACW,IAAI,CAAC;MACpB;IACF,CAAC,CAAC;IACF,IAAI,CAACQ,QAAQ,CAAC;MACZ7C,QAAQ,EAAEoE;IACZ,CAAC,CAAC;IACFN,YAAY,IAAIA,YAAY,CAACM,OAAO,CAAC;EACvC;EACAgB,MAAMA,CAAA,EAAoB;IACxB,IAAI;MACFpF,QAAQ;MACRqF,QAAQ;MACRzB,cAAc,GAAG;QACf0B,gBAAgB,EAAE,IAAI;QACtBC,eAAe,EAAE,KAAK;QACtBC,cAAc,EAAE,IAAI;QACpBC,YAAY,EAAE,IAAI;QAClBC,UAAU,EAAE,IAAI;QAChBC,WAAW,EAAE;MACf,CAAQ;MACR5E,aAAa,GAAG,CAAC;IACnB,CAAC,GAAG,IAAI,CAACN,KAAK;IACd,MAAMmF,QAAQ,GAAG9G,IAAI,CAAC,IAAI,CAAC2B,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,IAAIoF,YAAY,GAAG;MACjBC,aAAa,EAAE,IAAI,CAACA,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC;MAC5CC,QAAQ,EAAE;IACZ,CAAiB;IACjB,IAAIX,QAAQ,EAAE;MACZQ,YAAY,GAAArD,aAAA,CAAAA,aAAA,KACPqD,YAAY;QACfI,UAAU,EAAEA,CAACC,UAAU,EAAEtH,IAAS,EAAEuH,YAAY,KAAK;UACnD,MAAM1D,IAAI,GAAG7D,IAAI,CAAC6D,IAAI,IAAI7D,IAAI,CAAC8D,QAAQ;UACvC,MAAM+B,KAAK,GAAGhC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEiC,KAAK,CAAC,GAAG,CAAC;UAC9B,MAAMC,MAAM,GAAGF,KAAK,GAAGA,KAAK,CAACA,KAAK,CAACH,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;UACnD,oBACE3F,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,WAAW;UAAE,gBAC3CL,KAAA,CAAAyH,aAAA;YACEC,SAAS,EAAEpH,GAAG,CAACF,OAAO,CAACC,MAAM,EAAE,SAAS,CAAC,EAAE;cACzC,CAACD,OAAO,CAACC,MAAM,EAAE,eAAe,CAAC,GAAGJ,IAAI,CAAC+C,MAAM,IAAI;YACrD,CAAC;UAAE,gBAEHhD,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,cAAc;UAAE,gBAC9CL,KAAA,CAAAyH,aAAA,CAAClH,QAAQ;YAACyF,MAAM,EAAEA,MAAO;YAAC1D,MAAM,EAAErC,IAAI,CAACqC;UAAO,CAAE,CAC7C,CAAC,eACNtC,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,MAAM;UAAE,GACrCJ,IAAI,CAAC6D,IAAI,IAAI7D,IAAI,CAAC8D,QAChB,CAAC,eACN/D,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,MAAM;UAAE,GACrC4E,cAAc,CAAC2B,eAAe,IAAI3G,IAAI,CAAC+C,MAAM,IAAI,MAAM,iBACtDhD,KAAA,CAAAyH,aAAA;YACEE,OAAO,EAAEA,CAAA,KAAM;cACb,IAAI,IAAI,CAAC7F,KAAK,CAAC8F,SAAS,EAAE;gBACxB,IAAI,CAAC9F,KAAK,CAAC8F,SAAS,CAAC3H,IAAI,CAAC;cAC5B,CAAC,MAAM;gBACLa,eAAe,CAACb,IAAI,CAACqC,MAAM,EAAEF,aAAa,CAAC;cAC7C;YACF,CAAE;YACFyF,KAAK,EAAE;cAAEC,MAAM,EAAE;YAAU;UAAE,GAE5B7C,cAAc,CAAC6B,YAAY,GAC1B7B,cAAc,CAAC6B,YAAY,gBAE3B9G,KAAA,CAAAyH,aAAA,CAAC/G,WAAW,MAAE,CAEb,CACN,EACAuE,cAAc,CAAC0B,gBAAgB,IAAI1G,IAAI,CAAC+C,MAAM,IAAI,MAAM,iBACvDhD,KAAA,CAAAyH,aAAA;YACEE,OAAO,EAAEA,CAAA,KAAM;cACb,IAAI,IAAI,CAAC7F,KAAK,CAACiG,UAAU,EAAE;gBACzB,IAAI,CAACjG,KAAK,CAACiG,UAAU,CAAC9H,IAAI,CAAC;cAC7B,CAAC,MAAM;gBACLY,QAAQ,CAACZ,IAAI,CAACqC,MAAM,EAAE,IAAI,EAAEF,aAAa,CAAC;cAC5C;YACF,CAAE;YACFyF,KAAK,EAAE;cAAEC,MAAM,EAAE;YAAU;UAAE,GAE5B7C,cAAc,CAAC6B,YAAY,GAC1B7B,cAAc,CAAC6B,YAAY,gBAE3B9G,KAAA,CAAAyH,aAAA,CAAChH,gBAAgB,MAAE,CAElB,CACN,EACAwE,cAAc,CAAC4B,cAAc,iBAC5B7G,KAAA,CAAAyH,aAAA;YACEE,OAAO,EAAEA,CAAA,KAAM;cACb,IAAI,IAAI,CAAC7F,KAAK,CAACkG,QAAQ,EAAE;gBACvB,IAAI,CAAClG,KAAK,CAACkG,QAAQ,CAAC/H,IAAI,CAAC;cAC3B,CAAC,MAAM;gBACL,IAAI,CAACuG,QAAQ,CAACvG,IAAI,CAAC;cACrB;YACF,CAAE;YACF4H,KAAK,EAAE;cAAEC,MAAM,EAAE;YAAU;UAAE,GAE5B7C,cAAc,CAAC6B,YAAY,GAC1B7B,cAAc,CAAC6B,YAAY,gBAE3B9G,KAAA,CAAAyH,aAAA,CAACjH,cAAc,MAAE,CAEhB,CAEJ,CACF,CAAC,EACLP,IAAI,CAAC+C,MAAM,IAAI,WAAW,iBACzBhD,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,SAAS;UAAE,gBACzCL,KAAA,CAAAyH,aAAA;YACEC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,SAAS,CAAE;YACtCwH,KAAK,EAAE;cAAEI,KAAK,EAAEhI,IAAI,CAACgC,OAAO,GAAG;YAAI;UAAE,CACjC,CACH,CAEJ,CAAC;QAEV;MAAC,EACF;IACH,CAAC,MAAM;MACLiF,YAAY,GAAArD,aAAA,CAAAA,aAAA,KACPqD,YAAY;QACfa,UAAU,EAAG9H,IAAS,IAAK;UACzBY,QAAQ,CAACZ,IAAI,CAACqC,MAAM,EAAE,IAAI,EAAEF,aAAa,CAAC;QAC5C,CAAC;QACD4F,QAAQ,EAAG/H,IAAI,IAAK;UAClB,IAAI,CAACuG,QAAQ,CAACvG,IAAI,CAAC;QACrB,CAAC;QACD2H,SAAS,EAAG3H,IAAS,IAAK;UACxB,IAAIA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEqC,MAAM,EAAE;YAChBxB,eAAe,CAACb,IAAI,CAACqC,MAAM,EAAEF,aAAa,CAAC;UAC7C;QACF,CAAC;QACD6C,cAAc,EAAApB,aAAA,KAAOoB,cAAc;MAAE,EACtC;IACH;IACA,oBACEjF,KAAA,CAAAyH,aAAA,CAAAzH,KAAA,CAAAkI,QAAA,qBACElI,KAAA,CAAAyH,aAAA,CAAAU,OAAA,EAAAC,QAAA,KACMlB,YAAY,EACZD,QAAQ;MACZtC,YAAY,EAAE,IAAI,CAACA,YAAY,CAACyC,IAAI,CAAC,IAAI,CAAE;MAC3C/F,QAAQ,EAAE,IAAI,CAACmD,KAAK,CAACnD;IAAS,EAC/B,CACD,CAAC;EAEP;AACF;AAACD,eAAA,CA1ZoBJ,SAAS,aACXL,gBAAgB","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React, { PureComponent, ReactNode } from "react";
2
- import "./index.module.less";
3
2
  import { StoreProps } from "@bj-nsc/msn";
4
3
  import { IFormProps } from "../../base/form/Form";
5
4
  import { PaginationProps } from "antd";
@@ -57,7 +56,6 @@ interface NSCBaseBageProps {
57
56
  textAlign?: string;
58
57
  showIcon?: boolean;
59
58
  width?: number;
60
- buttonNumber?: number | "all";
61
59
  };
62
60
  searchFormProps?: {
63
61
  wrapperCol?: any;
@@ -70,18 +68,15 @@ interface NSCBaseBageProps {
70
68
  onSumbitCallBack?: any;
71
69
  onDeleteCallBack?: any;
72
70
  };
73
- pageType?: "normal" | "tabspage";
74
71
  }
75
72
  declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
76
73
  tableRef: React.RefObject<any>;
77
74
  treeRef: React.RefObject<any>;
78
75
  searchRef: React.RefObject<any>;
79
76
  editorRef: React.RefObject<any>;
80
- pageRef: React.RefObject<any>;
81
77
  dateFormat: any;
82
78
  constructor(props: any);
83
79
  componentDidMount(): void;
84
- componentDidUpdate(): void;
85
80
  setSearchParams(params: any, callBack: any): void;
86
81
  onSelect: (checkedTreeKeys: any) => void;
87
82
  showForm(value?: any, editorflag?: string): void;
@@ -98,7 +93,7 @@ declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
98
93
  resetSelectedRowKeys(): any;
99
94
  getSearchValues(): any;
100
95
  getChildrenData(data: any, keys?: any[]): any[];
101
- renderToolButtons(toolbuttons: any, toolbarFlag: any): React.JSX.Element;
96
+ renderToolButtons(toolbuttons: any, marginflag?: boolean): React.JSX.Element;
102
97
  renderCloumnButton(columnButtons: any, record: any): React.JSX.Element[];
103
98
  treeSelect(selectedKeys: any, obj: any): void;
104
99
  resetSearch(): void;