nsc-react-component 3.2.13 → 3.2.14

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.
@@ -398,6 +398,7 @@ export default class NscUpload extends React.PureComponent {
398
398
  showUploadList: _objectSpread({}, showUploadList)
399
399
  });
400
400
  }
401
+ console.log('state------', this.state.fileList);
401
402
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Upload, _extends({}, defaultProps, newprops, {
402
403
  beforeUpload: this.beforeUpload.bind(this),
403
404
  fileList: this.state.fileList
@@ -415,4 +416,4 @@ export default class NscUpload extends React.PureComponent {
415
416
  }
416
417
  }
417
418
  _defineProperty(NscUpload, "Dragger", NscUploadDragger);
418
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJwcm9wcyIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInJlcyIsInBhcnRTaXplIiwicmVxdWVzdENvbmZpZyIsInVwbG9hZEluZ1NpemUiLCJmaWxlSWQiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJuZXdWZXJzaW9uIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlIiwiZ2V0RmlsZUxpc3QiLCJzZXRGaWxlTGlzdCIsImJlZm9yZVVwbG9hZCIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsIm9uTGlzdENoYW5nZSIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNvbmNhdCIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwiaSIsInNwbGljZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJfcmVmIiwibmV3RmlsZSIsImZpbGVzIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX1VwbG9hZCIsIl9leHRlbmRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS91cGxvYWQvVXBsb2FkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVXBsb2FkLCBVcGxvYWRQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBGaWxlSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ZpbGVJY29uXCI7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbiAgRG93bmxvYWRPdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFBkZlZpZXdlciBmcm9tIFwiLi4vcGRmdml3ZXJcIjtcclxuaW1wb3J0IE5zY1VwbG9hZERyYWdnZXIgZnJvbSBcIi4vRHJhZ2dlclwiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCwgcHJldmlld0ltYWdlIH0gPSBmaWxlO1xyXG5cclxuaW50ZXJmYWNlIElVcGxvYWRQcm9wcyBleHRlbmRzIFVwbG9hZFByb3BzIHtcclxuICBzbGljZVNpemU/OiBudW1iZXI7XHJcbiAgbWF4U2l6ZT86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbiAgY2hlY2tTYW1lRmlsZT86IGJvb2xlYW47XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBuZXdWZXJzaW9uPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NVcGxvYWQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElVcGxvYWRQcm9wcywgYW55PiB7XHJcbiAgc3RhdGljIERyYWdnZXIgPSBOc2NVcGxvYWREcmFnZ2VyO1xyXG4gIHN0YXRlID0geyBmaWxlTGlzdDogW10sIHZpZXdJZDogXCJcIiwgZmlsZUxpc3RTdG9yZTogW10sIGZpbGVOYW1lczogW10gfTtcclxuICB1cGxvYWRJbmdTaXplID0gMDtcclxuICB1cGxvYWRTaXplID0gMDtcclxuICB1cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb252ZXJ0RmlsZUxpc3QobGlzdD86IEFycmF5PE9iamVjdD4pIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QsIGxpc3RUeXBlIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICBvbGRMaXN0Lm1hcChhc3luYyAoaXRlbTogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgIHN0YXR1czogaXRlbS5zdGF0dXMsXHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgfSBhcyBhbnk7XHJcblxyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFsuLi5maWxlTGlzdF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRGaWxlTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmZpbGVMaXN0O1xyXG4gIH1cclxuICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBiZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBtYXhTaXplID0gMTAwLFxyXG4gICAgICBhbGxvd0ZpbGVTdWZmaXgsXHJcbiAgICAgIGNoZWNrU2FtZUZpbGUgPSB0cnVlLFxyXG4gICAgICBtYXhDb3VudCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QsXHJcbiAgICAgIGZpbGVMaXN0OiBwcm9wc0xpc3QsXHJcbiAgICAgIG9uTGlzdENoYW5nZSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZmlsZUxpc3QsIGZpbGVMaXN0U3RvcmUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2l6ZTogbnVtYmVyO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGZpbGUpKSB7XHJcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXHJcbiAgICAgICAgYCR7ZmlsZS5uYW1lfeaWh+S7tuexu+Wei+S4jeWFgeiuuOS4iuS8oO+8jOivt+S4iuS8oOWQjue8gOS4uiR7YWxsb3dGaWxlU3VmZml4feeahOexu+Wei+aWh+S7tu+8gWBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKG1heFNpemUgIT09IGZhbHNlKSB7XHJcbiAgICAgIGlmIChtYXhTaXplID09PSB0cnVlKSB7XHJcbiAgICAgICAgbWF4U2l6ZSA9IDEwMDtcclxuICAgICAgfVxyXG4gICAgICBzaXplID0gbWF4U2l6ZSAqIDEwMjQgKiAxMDI0O1xyXG4gICAgICBpZiAoc2l6ZSA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYCR7ZmlsZS5uYW1lfeaWh+S7tuWkp+Wwj+i2hei/hyR7bWF4U2l6ZX1N77yM6K+36YeN5paw5LiK5Lyg77yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsZU5hbWVzID0gW107XHJcbiAgICBpZiAoY2hlY2tTYW1lRmlsZSkge1xyXG4gICAgICBjb25zdCBjaGVja0xpc3QgPSB0aGlzLnByb3BzLmZpbGVMaXN0ID8gZmlsZUxpc3RTdG9yZSA6IGZpbGVMaXN0O1xyXG4gICAgICBjaGVja0xpc3QubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgZmlsZU5hbWVzLnB1c2goaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChmaWxlTmFtZXMuaW5kZXhPZihmaWxlLm5hbWUpID4gLTEgJiYgc2hvd1VwbG9hZExpc3QgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu2JHtmaWxlLm5hbWV95bey5Zyo5LiK5Lyg5YiX6KGo5Lit77yM6K+36YeN5paw6YCJ5oup5paH5Lu277yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKSB7XHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCk7XHJcbiAgICAgIGlmIChyZXMgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmZpbGVMaXN0XTtcclxuICAgIG9maWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICEoXHJcbiAgICAgICAgICAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoaXRlbSkpIHx8XHJcbiAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAoY2hlY2tTYW1lRmlsZSAmJiBmaWxlTmFtZXMuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCB0ZW1wID0ge1xyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgICB1aWQ6IGl0ZW0udWlkLFxyXG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAobWF4Q291bnQgJiYgbmV3TGlzdC5sZW5ndGggPiBtYXhDb3VudCkge1xyXG4gICAgICBsZXQgbGVuZ3RoID0gbmV3TGlzdC5sZW5ndGggLSBtYXhDb3VudDtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKDAsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0pO1xyXG4gICAgdGhpcy51cGxvYWRTaXplID0gb2ZpbGVMaXN0Lmxlbmd0aDtcclxuICB9XHJcbiAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICB9XHJcbiAgYXN5bmMgb25Db21wbGV0ZShmaWxlcykge1xyXG4gICAgdGhpcy51cGxvYWRJbmdTaXplID0gMDtcclxuICAgIHRoaXMudXBsb2FkU2l6ZSA9IDA7XHJcbiAgICB0aGlzLnVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG5ld1ZlcnNpb24gPSB0cnVlLCByZXF1ZXN0Q29uZmlnID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuXHJcbiAgICBmaWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW06IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBmaWxlcy5tYXAoYXN5bmMgKGZpbGUpID0+IHtcclxuICAgICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgICAgbmV3RmlsZS5zdGF0dXMgPSBmaWxlLnN0YXR1cyA9PSBcInN1Y2Nlc3NcIiA/IFwiZG9uZVwiIDogZmlsZS5zdGF0dXM7XHJcbiAgICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgICAgbmV3RmlsZS51cmwgPSBmaWxlLnVybDtcclxuICAgICAgICAgIGlmICghbmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgICBsZXQgdXJsID0gYC9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7XHJcbiAgICAgICAgICAgICAgZmlsZS5maWxlSWRcclxuICAgICAgICAgICAgfSZfdHBrPSR7d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidG9rZW5cIil9YDtcclxuICAgICAgICAgICAgbmV3RmlsZS51cmwgPSByZXF1ZXN0Q29uZmlnLnByZWZpeFxyXG4gICAgICAgICAgICAgID8gcmVxdWVzdENvbmZpZy5wcmVmaXggKyB1cmxcclxuICAgICAgICAgICAgICA6IFwiL2FwaVwiICsgdXJsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBbLi4ubmV3TGlzdF0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgIGNvbnN0IHsgb25Db21wbGV0ZSwgb25Qcm9jZXNzLCBzbGljZVNpemUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSB0aGlzLnVwbG9hZEluZ1NpemUgKyAxO1xyXG4gICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgbGV0IEltZ1JlcyA9IG51bGw7XHJcbiAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICBvcHRpb25zLm9uU3VjY2VzcygpO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmxpc3RUeXBlID09IFwicGljdHVyZS1jYXJkXCIgJiYgdGhpcy5wcm9wcy5uZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICBJbWdSZXMgPSBhd2FpdCBwcmV2aWV3SW1hZ2UoZmlsZUlkLCB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwbG9hZEluZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgdXJsOiBJbWdSZXMgPyBJbWdSZXMuZGF0YSA6IG51bGwsXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgIHRoaXMub25Db21wbGV0ZSh0aGlzLnVwbG9hZEluZ0xpc3QpO1xyXG4gICAgICB9XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgIH1cclxuICB9O1xyXG4gIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGl0ZW0ubmFtZSAhPT0gZmlsZS5uYW1lIHx8XHJcbiAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgIFwibWF4U2l6ZVwiLFxyXG4gICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgXCJhbGxvd0ZpbGVTdWZmaXhcIixcclxuICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgIFwib25MaXN0Q2hhbmdlXCIsXHJcbiAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1jb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtZXJyb3JcIildOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLW1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtY29udGVudC1uYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAge2ZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1pY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1wZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmlsZS5maWxlSWQpIHtcclxuICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdH1cclxuICAgICAgICAgIC8vIG9uQ2hhbmdlPXsoeyBmaWxlLCBmaWxlTGlzdCwgZXZlbnQgfSkgPT4ge1xyXG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZyhcIm9uQ2hhbmdlZmlsZVwiLCBmaWxlKTtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVMaXN0XCIsIGZpbGVMaXN0KTtcclxuICAgICAgICAgIC8vICAgY29uc3QgeyBvbkNoYW5nZSwgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIC8vICAgICBmaWxlTGlzdDogZmlsZUxpc3QsXHJcbiAgICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgICAgLy8gICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICAgICAgICAgIC8vICAgb25DaGFuZ2UgJiYgb25DaGFuZ2UoeyBmaWxlLCBmaWxlTGlzdCwgZXZlbnQgfSk7XHJcbiAgICAgICAgICAvLyB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUU5QixPQUFPQyxJQUFJLE1BQU0sVUFBVTtBQUMzQixPQUFPQyxPQUFPLE1BQU0sWUFBWTtBQUNoQyxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixTQUFTQyxPQUFPLFFBQVEsYUFBYTtBQUNyQyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sb0JBQW9CO0FBQ3pDLFNBQ0VDLGNBQWMsRUFDZEMsZ0JBQWdCLEVBQ2hCQyxXQUFXLFFBQ04sbUJBQW1CO0FBRTFCLE9BQU9DLGdCQUFnQixNQUFNLFdBQVc7QUFDeEMsTUFBTTtFQUFFQyxNQUFNO0VBQUVDLFFBQVE7RUFBRUMsZUFBZTtFQUFFQztBQUFhLENBQUMsR0FBR2QsSUFBSTtBQWVoRSxlQUFlLE1BQU1lLFNBQVMsU0FBU2hCLEtBQUssQ0FBQ2lCLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFFcEU7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsTUFBTSxFQUFFLEVBQUU7TUFBRUMsYUFBYSxFQUFFLEVBQUU7TUFBRUMsU0FBUyxFQUFFO0lBQUcsQ0FBQztJQUFBSixlQUFBLHdCQUN0RCxDQUFDO0lBQUFBLGVBQUEscUJBQ0osQ0FBQztJQUFBQSxlQUFBLHdCQUNFLEVBQUU7SUFBQUEsZUFBQSx3QkFxTEYsTUFBT0ssT0FBTyxJQUFLO01BQ2pDLE1BQU14QixJQUFJLEdBQUd3QixPQUFPLENBQUN4QixJQUFJO01BQ3pCLE1BQU07UUFBRXlCLFVBQVU7UUFBRUMsU0FBUztRQUFFQztNQUFVLENBQUMsR0FBRyxJQUFJLENBQUNDLEtBQUs7TUFDdkQsTUFBTUMsVUFBVSxHQUFJQyxhQUFrQixJQUFLO1FBQ3pDTixPQUFPLENBQUNLLFVBQVUsQ0FBQztVQUFFRSxPQUFPLEVBQUVEO1FBQWMsQ0FBQyxFQUFFOUIsSUFBSSxDQUFDO1FBQ3BELElBQUksQ0FBQzBCLFNBQVMsQ0FBQztVQUFFSyxPQUFPLEVBQUVELGFBQWE7VUFBRTlCLElBQUksRUFBRUE7UUFBSyxDQUFDLENBQUM7UUFDdEQwQixTQUFTLElBQUlBLFNBQVMsQ0FBQztVQUFFSyxPQUFPLEVBQUVELGFBQWE7VUFBRTlCLElBQUksRUFBRUE7UUFBSyxDQUFDLENBQUM7TUFDaEUsQ0FBQztNQUNELElBQUk7UUFDRixNQUFNZ0MsR0FBUSxHQUFHLE1BQU1yQixNQUFNLENBQzNCO1VBQ0VYLElBQUksRUFBRUEsSUFBSTtVQUNWNkIsVUFBVSxFQUFFQSxVQUFVO1VBQ3RCSSxRQUFRLEVBQUVOO1FBQ1osQ0FBQyxFQUNELElBQUksQ0FBQ0MsS0FBSyxDQUFDTSxhQUNiLENBQUM7UUFDRCxJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNBLGFBQWEsR0FBRyxDQUFDO1FBQzNDLElBQUlDLE1BQU0sR0FBRyxJQUFJO1FBQ2pCLElBQUlDLE1BQU0sR0FBRyxJQUFJO1FBQ2pCLElBQUlMLEdBQUcsQ0FBQ00sSUFBSSxJQUFJLEdBQUcsRUFBRTtVQUNuQkYsTUFBTSxHQUFHSixHQUFHLENBQUNPLElBQUksQ0FBQ0MsUUFBUTtVQUMxQmhCLE9BQU8sQ0FBQ2lCLFNBQVMsQ0FBQyxDQUFDO1VBQ25CLElBQUksSUFBSSxDQUFDYixLQUFLLENBQUNjLFFBQVEsSUFBSSxjQUFjLElBQUksSUFBSSxDQUFDZCxLQUFLLENBQUNlLFVBQVUsRUFBRTtZQUNsRU4sTUFBTSxHQUFHLE1BQU12QixZQUFZLENBQUNzQixNQUFNLEVBQUUsSUFBSSxDQUFDUixLQUFLLENBQUNNLGFBQWEsQ0FBQztVQUMvRDtRQUNGLENBQUMsTUFBTTtVQUNMVixPQUFPLENBQUNvQixPQUFPLENBQUMsQ0FBQztRQUNuQjtRQUNBLElBQUksQ0FBQ0MsYUFBYSxDQUFDQyxJQUFJLENBQUM7VUFDdEI5QyxJQUFJLEVBQUV3QixPQUFPLENBQUN4QixJQUFJO1VBQ2xCb0MsTUFBTSxFQUFFQSxNQUFNO1VBQ2RXLE1BQU0sRUFBRWYsR0FBRyxDQUFDTSxJQUFJLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRyxPQUFPO1VBQzdDVSxHQUFHLEVBQUVYLE1BQU0sR0FBR0EsTUFBTSxDQUFDRSxJQUFJLEdBQUc7UUFDOUIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUNVLFVBQVUsSUFBSSxJQUFJLENBQUNkLGFBQWEsRUFBRTtVQUN6QyxJQUFJLENBQUNWLFVBQVUsQ0FBQyxJQUFJLENBQUNvQixhQUFhLENBQUM7UUFDckM7UUFDQXBCLFVBQVUsSUFDUkEsVUFBVSxDQUFDO1VBQ1R6QixJQUFJLEVBQUV3QixPQUFPLENBQUN4QixJQUFJO1VBQ2xCb0MsTUFBTSxFQUFFQSxNQUFNO1VBQ2RXLE1BQU0sRUFBRWYsR0FBRyxDQUFDTSxJQUFJLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRztRQUN4QyxDQUFDLENBQUM7TUFDTixDQUFDLENBQUMsT0FBT1ksQ0FBQyxFQUFFO1FBQ1YsSUFBSSxJQUFJLENBQUNELFVBQVUsSUFBSSxJQUFJLENBQUNkLGFBQWEsRUFBRTtVQUN6QyxJQUFJLENBQUNWLFVBQVUsQ0FBQyxJQUFJLENBQUNvQixhQUFhLENBQUM7VUFDbkNyQixPQUFPLENBQUNvQixPQUFPLENBQUMsQ0FBQztRQUNuQjtRQUNBbkIsVUFBVSxJQUNSQSxVQUFVLENBQUM7VUFBRXpCLElBQUksRUFBRXdCLE9BQU8sQ0FBQ3hCLElBQUk7VUFBRW9DLE1BQU0sRUFBRSxFQUFFO1VBQUVXLE1BQU0sRUFBRTtRQUFRLENBQUMsQ0FBQztNQUNuRTtJQUNGLENBQUM7RUFBQTtFQXhPREksaUJBQWlCQSxDQUFBLEVBQUc7SUFDbEIsSUFBSSxJQUFJLENBQUN2QixLQUFLLENBQUNSLFFBQVEsRUFBRTtNQUN2QixJQUFJLENBQUNnQyxlQUFlLENBQUMsQ0FBQztJQUN4QjtFQUNGO0VBQ0FBLGVBQWVBLENBQUNDLElBQW9CLEVBQUU7SUFDcEMsTUFBTTtNQUFFakMsUUFBUTtNQUFFc0I7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDZCxLQUFLO0lBRXpDLE1BQU0wQixXQUFXLEdBQUcsRUFBRTtJQUN0QixJQUFJQyxPQUFPLEdBQUdGLElBQUksR0FBR0EsSUFBSSxHQUFHakMsUUFBUTtJQUNwQ21DLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLE9BQU9DLElBQVMsRUFBRUMsS0FBSyxLQUFLO01BQ3RDLElBQUlDLElBQUksR0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ0hILElBQUk7UUFDUFYsTUFBTSxFQUFFVSxJQUFJLENBQUNWLE1BQU07UUFDbkJjLElBQUksRUFBRUosSUFBSSxDQUFDSSxJQUFJLElBQUlKLElBQUksQ0FBQ0ssUUFBUTtRQUNoQ0MsSUFBSSxFQUFFTixJQUFJLENBQUNNLElBQUk7UUFDZkMsSUFBSSxFQUFFUCxJQUFJLENBQUNPO01BQUksRUFDVDtNQUVSVixXQUFXLENBQUNSLElBQUksQ0FBQ2EsSUFBSSxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ00sUUFBUSxDQUFDO01BQ1o3QyxRQUFRLEVBQUUsQ0FBQyxHQUFHa0MsV0FBVyxDQUFDO01BQzFCaEMsYUFBYSxFQUFFLENBQUMsR0FBR0YsUUFBUTtJQUM3QixDQUFDLENBQUM7RUFDSjtFQUNBOEMsa0JBQWtCQSxDQUFDQyxRQUFRLEVBQUVDLFFBQVEsRUFBRTtJQUNyQyxJQUFJLElBQUksQ0FBQ3hDLEtBQUssQ0FBQ1IsUUFBUSxFQUFFO01BQ3ZCLElBQ0VpRCxJQUFJLENBQUNDLFNBQVMsQ0FBQyxJQUFJLENBQUMxQyxLQUFLLENBQUNSLFFBQVEsQ0FBQyxLQUNuQ2lELElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ0MsS0FBSyxDQUFDakQsYUFBYSxDQUFDLEVBQ3hDO1FBQ0EsSUFBSSxDQUFDOEIsZUFBZSxDQUFDLENBQUM7TUFDeEI7SUFDRjtFQUNGO0VBQ0FvQixXQUFXQSxDQUFBLEVBQUc7SUFDWixPQUFPLElBQUksQ0FBQ0QsS0FBSyxDQUFDbkQsUUFBUTtFQUM1QjtFQUNBcUQsV0FBV0EsQ0FBQ3JELFFBQXVCLEVBQUU7SUFDbkMsSUFBSSxDQUFDZ0MsZUFBZSxDQUFDaEMsUUFBUSxDQUFDO0VBQ2hDO0VBQ0EsTUFBTXNELFlBQVlBLENBQUMxRSxJQUFJLEVBQUUyRSxTQUFTLEVBQUU7SUFDbEMsSUFBSTtNQUNGQyxPQUFPLEdBQUcsR0FBRztNQUNiQyxlQUFlO01BQ2ZDLGFBQWEsR0FBRyxJQUFJO01BQ3BCQyxRQUFRO01BQ1JDLGNBQWM7TUFDZDVELFFBQVEsRUFBRTZELFNBQVM7TUFDbkJDO0lBQ0YsQ0FBQyxHQUFHLElBQUksQ0FBQ3RELEtBQUs7SUFDZCxJQUFJO01BQUVSLFFBQVE7TUFBRUU7SUFBYyxDQUFDLEdBQUcsSUFBSSxDQUFDaUQsS0FBSztJQUM1QyxJQUFJUCxJQUFZO0lBQ2hCLElBQUlhLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQ00sYUFBYSxDQUFDbkYsSUFBSSxDQUFDLEVBQUU7TUFDaERDLE9BQU8sQ0FBQ21GLEtBQUssSUFBQUMsTUFBQSxDQUNSckYsSUFBSSxDQUFDNkQsSUFBSSxzR0FBQXdCLE1BQUEsQ0FBbUJSLGVBQWUseUNBQ2hELENBQUM7TUFDRCxPQUFPLEtBQUs7SUFDZDtJQUNBLElBQUlELE9BQU8sS0FBSyxLQUFLLEVBQUU7TUFDckIsSUFBSUEsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNwQkEsT0FBTyxHQUFHLEdBQUc7TUFDZjtNQUNBWixJQUFJLEdBQUdZLE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSTtNQUM1QixJQUFJWixJQUFJLEdBQUdoRSxJQUFJLENBQUNnRSxJQUFJLEVBQUU7UUFDcEIvRCxPQUFPLENBQUNtRixLQUFLLElBQUFDLE1BQUEsQ0FBSXJGLElBQUksQ0FBQzZELElBQUksMENBQUF3QixNQUFBLENBQVNULE9BQU8sZ0RBQVUsQ0FBQztRQUNyRCxPQUFPLEtBQUs7TUFDZDtJQUNGO0lBQ0EsSUFBSXJELFNBQVMsR0FBRyxFQUFFO0lBQ2xCLElBQUl1RCxhQUFhLEVBQUU7TUFDakIsTUFBTVEsU0FBUyxHQUFHLElBQUksQ0FBQzFELEtBQUssQ0FBQ1IsUUFBUSxHQUFHRSxhQUFhLEdBQUdGLFFBQVE7TUFDaEVrRSxTQUFTLENBQUM5QixHQUFHLENBQUVDLElBQUksSUFBSztRQUN0QmxDLFNBQVMsQ0FBQ3VCLElBQUksQ0FBQ1csSUFBSSxDQUFDSSxJQUFJLElBQUlKLElBQUksQ0FBQ0ssUUFBUSxDQUFDO01BQzVDLENBQUMsQ0FBQztNQUVGLElBQUl2QyxTQUFTLENBQUNnRSxPQUFPLENBQUN2RixJQUFJLENBQUM2RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSW1CLGNBQWMsS0FBSyxLQUFLLEVBQUU7UUFDakUvRSxPQUFPLENBQUNtRixLQUFLLGdCQUFBQyxNQUFBLENBQU1yRixJQUFJLENBQUM2RCxJQUFJLHFHQUFrQixDQUFDO1FBQy9DLE9BQU8sS0FBSztNQUNkO0lBQ0Y7SUFFQSxJQUFJLElBQUksQ0FBQ2pDLEtBQUssQ0FBQzhDLFlBQVksRUFBRTtNQUMzQixNQUFNMUMsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDSixLQUFLLENBQUM4QyxZQUFZLENBQUMxRSxJQUFJLEVBQUUyRSxTQUFTLENBQUM7TUFDMUQsSUFBSTNDLEdBQUcsS0FBSyxLQUFLLEVBQUU7UUFDakIsT0FBTyxLQUFLO01BQ2Q7SUFDRjtJQUNBLE1BQU13RCxPQUFPLEdBQUcsQ0FBQyxHQUFHcEUsUUFBUSxDQUFDO0lBQzdCdUQsU0FBUyxDQUFDbkIsR0FBRyxDQUFDLE1BQU9DLElBQUksSUFBSztNQUM1QixJQUNFLEVBQ0dvQixlQUFlLElBQUksQ0FBQyxJQUFJLENBQUNNLGFBQWEsQ0FBQzFCLElBQUksQ0FBQyxJQUM3Q08sSUFBSSxHQUFHUCxJQUFJLENBQUNPLElBQUksSUFDZmMsYUFBYSxJQUFJdkQsU0FBUyxDQUFDZ0UsT0FBTyxDQUFDOUIsSUFBSSxDQUFDSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUUsQ0FDckQsRUFDRDtRQUNBLE1BQU1GLElBQUksR0FBRztVQUNYRyxRQUFRLEVBQUVMLElBQUksQ0FBQ0ksSUFBSTtVQUNuQjlCLE9BQU8sRUFBRSxDQUFDO1VBQ1ZnQixNQUFNLEVBQUUsV0FBVztVQUNuQjBDLEdBQUcsRUFBRWhDLElBQUksQ0FBQ2dDLEdBQUc7VUFDYjVCLElBQUksRUFBRUosSUFBSSxDQUFDSSxJQUFJO1VBQ2ZFLElBQUksRUFBRU4sSUFBSSxDQUFDTSxJQUFJO1VBQ2ZDLElBQUksRUFBRVAsSUFBSSxDQUFDTztRQUNiLENBQUM7UUFDRHdCLE9BQU8sQ0FBQzFDLElBQUksQ0FBQ2EsSUFBSSxDQUFDO01BQ3BCO0lBQ0YsQ0FBQyxDQUFDO0lBRUYsSUFBSW9CLFFBQVEsSUFBSVMsT0FBTyxDQUFDRSxNQUFNLEdBQUdYLFFBQVEsRUFBRTtNQUN6QyxJQUFJVyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0UsTUFBTSxHQUFHWCxRQUFRO01BQ3RDLEtBQUssSUFBSVksQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRCxNQUFNLEVBQUVDLENBQUMsRUFBRSxFQUFFO1FBQy9CSCxPQUFPLENBQUNJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO01BQ3RCO0lBQ0Y7SUFDQVYsWUFBWSxJQUFJQSxZQUFZLENBQUNNLE9BQU8sQ0FBQztJQUNyQyxJQUFJLENBQUN2QixRQUFRLENBQUM7TUFBRTdDLFFBQVEsRUFBRW9FO0lBQVEsQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQ3ZDLFVBQVUsR0FBRzBCLFNBQVMsQ0FBQ2UsTUFBTTtFQUNwQztFQUNBUCxhQUFhQSxDQUFDbkYsSUFBSSxFQUFFO0lBQ2xCLE1BQU07TUFBRTZFO0lBQWdCLENBQUMsR0FBRyxJQUFJLENBQUNqRCxLQUFLO0lBQ3RDLE1BQU1pRSxLQUFLLEdBQUc3RixJQUFJLENBQUM2RCxJQUFJLENBQUNpQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQ2xDLE1BQU1DLE1BQU0sR0FBR0YsS0FBSyxDQUFDQSxLQUFLLENBQUNILE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEMsSUFBSWIsZUFBZSxDQUFDVSxPQUFPLENBQUNRLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO01BQ3hDLE9BQU8sSUFBSTtJQUNiO0lBQ0EsT0FBTyxLQUFLO0VBQ2Q7RUFDQXJFLFNBQVNBLENBQUFzRSxJQUFBLEVBQXlCO0lBQUEsSUFBeEI7TUFBRWpFLE9BQU87TUFBRS9CO0lBQVUsQ0FBQyxHQUFBZ0csSUFBQTtJQUM5QixNQUFNO01BQUU1RTtJQUFTLENBQUMsR0FBRyxJQUFJLENBQUNtRCxLQUFLO0lBQy9CLE1BQU07TUFBRVc7SUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDdEQsS0FBSztJQUNuQyxNQUFNNEQsT0FBWSxHQUFHLEVBQUU7SUFDdkJwRSxRQUFRLENBQUNvQyxHQUFHLENBQUVDLElBQVMsSUFBSztNQUMxQixNQUFNd0MsT0FBTyxHQUFBckMsYUFBQSxLQUFRSCxJQUFJLENBQUU7TUFDM0IsSUFBSXpELElBQUksQ0FBQ3lGLEdBQUcsSUFBSWhDLElBQUksQ0FBQ2dDLEdBQUcsRUFBRTtRQUN4QlEsT0FBTyxDQUFDbEUsT0FBTyxHQUFHQSxPQUFPO01BQzNCO01BQ0F5RCxPQUFPLENBQUMxQyxJQUFJLENBQUNtRCxPQUFPLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDaEMsUUFBUSxDQUFDO01BQ1o3QyxRQUFRLEVBQUVvRTtJQUNaLENBQUMsQ0FBQztJQUNGTixZQUFZLElBQUlBLFlBQVksQ0FBQzlELFFBQVEsQ0FBQztFQUN4QztFQUNBLE1BQU1LLFVBQVVBLENBQUN5RSxLQUFLLEVBQUU7SUFDdEIsSUFBSSxDQUFDL0QsYUFBYSxHQUFHLENBQUM7SUFDdEIsSUFBSSxDQUFDYyxVQUFVLEdBQUcsQ0FBQztJQUNuQixJQUFJLENBQUNKLGFBQWEsR0FBRyxFQUFFO0lBQ3ZCLE1BQU07TUFBRXpCO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ21ELEtBQUs7SUFDL0IsTUFBTTtNQUFFNUIsVUFBVSxHQUFHLElBQUk7TUFBRVQsYUFBYSxHQUFHLENBQUM7SUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDTixLQUFLO0lBQzVELE1BQU00RCxPQUFZLEdBQUcsRUFBRTtJQUV2QnBFLFFBQVEsQ0FBQ29DLEdBQUcsQ0FBQyxPQUFPQyxJQUFTLEVBQUVDLEtBQUssS0FBSztNQUN2QyxNQUFNdUMsT0FBTyxHQUFBckMsYUFBQSxLQUFRSCxJQUFJLENBQUU7TUFDM0J5QyxLQUFLLENBQUMxQyxHQUFHLENBQUMsTUFBT3hELElBQUksSUFBSztRQUN4QixJQUFJQSxJQUFJLENBQUNBLElBQUksQ0FBQ3lGLEdBQUcsSUFBSWhDLElBQUksQ0FBQ2dDLEdBQUcsRUFBRTtVQUM3QlEsT0FBTyxDQUFDbEQsTUFBTSxHQUFHL0MsSUFBSSxDQUFDK0MsTUFBTSxJQUFJLFNBQVMsR0FBRyxNQUFNLEdBQUcvQyxJQUFJLENBQUMrQyxNQUFNO1VBQ2hFa0QsT0FBTyxDQUFDN0QsTUFBTSxHQUFHcEMsSUFBSSxDQUFDb0MsTUFBTTtVQUM1QjZELE9BQU8sQ0FBQ2pELEdBQUcsR0FBR2hELElBQUksQ0FBQ2dELEdBQUc7VUFDdEIsSUFBSSxDQUFDTCxVQUFVLEVBQUU7WUFDZixJQUFJSyxHQUFHLDREQUFBcUMsTUFBQSxDQUNMckYsSUFBSSxDQUFDb0MsTUFBTSxZQUFBaUQsTUFBQSxDQUNKYyxNQUFNLENBQUNDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFFO1lBQy9DSixPQUFPLENBQUNqRCxHQUFHLEdBQUdkLGFBQWEsQ0FBQ29FLE1BQU0sR0FDOUJwRSxhQUFhLENBQUNvRSxNQUFNLEdBQUd0RCxHQUFHLEdBQzFCLE1BQU0sR0FBR0EsR0FBRztVQUNsQjtRQUNGO01BQ0YsQ0FBQyxDQUFDO01BQ0Z3QyxPQUFPLENBQUMxQyxJQUFJLENBQUNtRCxPQUFPLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDaEMsUUFBUSxDQUFDO01BQ1o3QyxRQUFRLEVBQUUsQ0FBQyxHQUFHb0UsT0FBTztJQUN2QixDQUFDLENBQUM7SUFFRixNQUFNO01BQUVOO0lBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQ3RELEtBQUs7SUFDbkNzRCxZQUFZLElBQUlBLFlBQVksQ0FBQ00sT0FBTyxDQUFDO0VBQ3ZDO0VBc0RBZSxRQUFRQSxDQUFDdkcsSUFBSSxFQUFFO0lBQ2IsTUFBTTtNQUFFb0I7SUFBUyxDQUFDLEdBQUcsSUFBSSxDQUFDbUQsS0FBSztJQUMvQixNQUFNO01BQUVXO0lBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQ3RELEtBQUs7SUFDbkMsTUFBTTRELE9BQVksR0FBRyxFQUFFO0lBQ3ZCcEUsUUFBUSxDQUFDb0MsR0FBRyxDQUFFQyxJQUFTLElBQUs7TUFDMUI7TUFDQSxJQUNFQSxJQUFJLENBQUNJLElBQUksS0FBSzdELElBQUksQ0FBQzZELElBQUksSUFDdkJKLElBQUksQ0FBQ3JCLE1BQU0sS0FBS3BDLElBQUksQ0FBQ29DLE1BQU0sSUFDM0JxQixJQUFJLENBQUNnQyxHQUFHLEtBQUt6RixJQUFJLENBQUN5RixHQUFHLEVBQ3JCO1FBQ0FELE9BQU8sQ0FBQzFDLElBQUksQ0FBQ1csSUFBSSxDQUFDO01BQ3BCO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDUSxRQUFRLENBQUM7TUFDWjdDLFFBQVEsRUFBRW9FO0lBQ1osQ0FBQyxDQUFDO0lBQ0ZOLFlBQVksSUFBSUEsWUFBWSxDQUFDTSxPQUFPLENBQUM7RUFDdkM7RUFDQWdCLE1BQU1BLENBQUEsRUFBb0I7SUFDeEIsSUFBSTtNQUNGcEYsUUFBUTtNQUNScUYsUUFBUTtNQUNSekIsY0FBYyxHQUFHO1FBQ2YwQixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCQyxlQUFlLEVBQUUsS0FBSztRQUN0QkMsY0FBYyxFQUFFLElBQUk7UUFDcEJDLFlBQVksRUFBRSxJQUFJO1FBQ2xCQyxVQUFVLEVBQUUsSUFBSTtRQUNoQkMsV0FBVyxFQUFFO01BQ2YsQ0FBUTtNQUNSN0UsYUFBYSxHQUFHLENBQUM7SUFDbkIsQ0FBQyxHQUFHLElBQUksQ0FBQ04sS0FBSztJQUNkLE1BQU1vRixRQUFRLEdBQUc5RyxJQUFJLENBQUMsSUFBSSxDQUFDMEIsS0FBSyxFQUFFLENBQ2hDLFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixjQUFjLEVBQ2QsWUFBWSxFQUNaLGVBQWUsQ0FDaEIsQ0FBQztJQUNGLElBQUlxRixZQUFZLEdBQUc7TUFDakJDLGFBQWEsRUFBRSxJQUFJLENBQUNBLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQztNQUM1Q0MsUUFBUSxFQUFFO0lBQ1osQ0FBaUI7SUFDakIsSUFBSVgsUUFBUSxFQUFFO01BQ1pRLFlBQVksR0FBQXJELGFBQUEsQ0FBQUEsYUFBQSxLQUNQcUQsWUFBWTtRQUNmSSxVQUFVLEVBQUVBLENBQUNDLFVBQVUsRUFBRXRILElBQVMsRUFBRXVILFlBQVksS0FBSztVQUNuRCxNQUFNMUQsSUFBSSxHQUFHN0QsSUFBSSxDQUFDNkQsSUFBSSxJQUFJN0QsSUFBSSxDQUFDOEQsUUFBUTtVQUN2QyxNQUFNK0IsS0FBSyxHQUFHaEMsSUFBSSxDQUFDaUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztVQUM3QixNQUFNQyxNQUFNLEdBQUdGLEtBQUssR0FBR0EsS0FBSyxDQUFDQSxLQUFLLENBQUNILE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFO1VBQ25ELG9CQUNFM0YsS0FBQSxDQUFBeUgsYUFBQTtZQUFLQyxTQUFTLEVBQUV0SCxPQUFPLENBQUNDLE1BQU0sRUFBRSxzQkFBc0I7VUFBRSxnQkFDdERMLEtBQUEsQ0FBQXlILGFBQUE7WUFDRUMsU0FBUyxFQUFFcEgsR0FBRyxDQUFDRixPQUFPLENBQUNDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2NBQ3BELENBQUNELE9BQU8sQ0FBQ0MsTUFBTSxFQUFFLDBCQUEwQixDQUFDLEdBQzFDSixJQUFJLENBQUMrQyxNQUFNLElBQUk7WUFDbkIsQ0FBQztVQUFFLGdCQUVIaEQsS0FBQSxDQUFBeUgsYUFBQTtZQUFLQyxTQUFTLEVBQUV0SCxPQUFPLENBQUNDLE1BQU0sRUFBRSx5QkFBeUI7VUFBRSxnQkFDekRMLEtBQUEsQ0FBQXlILGFBQUEsQ0FBQ2xILFFBQVE7WUFBQ3lGLE1BQU0sRUFBRUEsTUFBTztZQUFDM0QsTUFBTSxFQUFFcEMsSUFBSSxDQUFDb0M7VUFBTyxDQUFFLENBQzdDLENBQUMsZUFDTnJDLEtBQUEsQ0FBQXlILGFBQUE7WUFBS0MsU0FBUyxFQUFFdEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUseUJBQXlCO1VBQUUsR0FDeERKLElBQUksQ0FBQzZELElBQUksSUFBSTdELElBQUksQ0FBQzhELFFBQ2hCLENBQUMsZUFDTi9ELEtBQUEsQ0FBQXlILGFBQUE7WUFBS0MsU0FBUyxFQUFFdEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsaUJBQWlCO1VBQUUsR0FDaEQ0RSxjQUFjLENBQUMyQixlQUFlLElBQUkzRyxJQUFJLENBQUMrQyxNQUFNLElBQUksTUFBTSxpQkFDdERoRCxLQUFBLENBQUF5SCxhQUFBO1lBQ0VFLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO2NBQ2IsSUFBSSxJQUFJLENBQUM5RixLQUFLLENBQUMrRixTQUFTLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQy9GLEtBQUssQ0FBQytGLFNBQVMsQ0FBQzNILElBQUksQ0FBQztjQUM1QixDQUFDLE1BQU07Z0JBQ0xhLGVBQWUsQ0FBQ2IsSUFBSSxDQUFDb0MsTUFBTSxFQUFFRixhQUFhLENBQUM7Y0FDN0M7WUFDRixDQUFFO1lBQ0YwRixLQUFLLEVBQUU7Y0FBRUMsTUFBTSxFQUFFO1lBQVU7VUFBRSxHQUU1QjdDLGNBQWMsQ0FBQzZCLFlBQVksR0FDMUI3QixjQUFjLENBQUM2QixZQUFZLGdCQUUzQjlHLEtBQUEsQ0FBQXlILGFBQUEsQ0FBQy9HLFdBQVcsTUFBRSxDQUViLENBQ04sRUFDQXVFLGNBQWMsQ0FBQzBCLGdCQUFnQixJQUFJMUcsSUFBSSxDQUFDK0MsTUFBTSxJQUFJLE1BQU0saUJBQ3ZEaEQsS0FBQSxDQUFBeUgsYUFBQTtZQUNFRSxPQUFPLEVBQUVBLENBQUEsS0FBTTtjQUNiLElBQUksSUFBSSxDQUFDOUYsS0FBSyxDQUFDa0csVUFBVSxFQUFFO2dCQUN6QixJQUFJLENBQUNsRyxLQUFLLENBQUNrRyxVQUFVLENBQUM5SCxJQUFJLENBQUM7Y0FDN0IsQ0FBQyxNQUFNO2dCQUNMWSxRQUFRLENBQUNaLElBQUksQ0FBQ29DLE1BQU0sRUFBRSxJQUFJLEVBQUVGLGFBQWEsQ0FBQztjQUM1QztZQUNGLENBQUU7WUFDRjBGLEtBQUssRUFBRTtjQUFFQyxNQUFNLEVBQUU7WUFBVTtVQUFFLEdBRTVCN0MsY0FBYyxDQUFDNkIsWUFBWSxHQUMxQjdCLGNBQWMsQ0FBQzZCLFlBQVksZ0JBRTNCOUcsS0FBQSxDQUFBeUgsYUFBQSxDQUFDaEgsZ0JBQWdCLE1BQUUsQ0FFbEIsQ0FDTixFQUNBd0UsY0FBYyxDQUFDNEIsY0FBYyxpQkFDNUI3RyxLQUFBLENBQUF5SCxhQUFBO1lBQ0VFLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO2NBQ2IsSUFBSSxJQUFJLENBQUM5RixLQUFLLENBQUNtRyxRQUFRLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQ25HLEtBQUssQ0FBQ21HLFFBQVEsQ0FBQy9ILElBQUksQ0FBQztjQUMzQixDQUFDLE1BQU07Z0JBQ0wsSUFBSSxDQUFDdUcsUUFBUSxDQUFDdkcsSUFBSSxDQUFDO2NBQ3JCO1lBQ0YsQ0FBRTtZQUNGNEgsS0FBSyxFQUFFO2NBQUVDLE1BQU0sRUFBRTtZQUFVO1VBQUUsR0FFNUI3QyxjQUFjLENBQUM2QixZQUFZLEdBQzFCN0IsY0FBYyxDQUFDNkIsWUFBWSxnQkFFM0I5RyxLQUFBLENBQUF5SCxhQUFBLENBQUNqSCxjQUFjLE1BQUUsQ0FFaEIsQ0FFSixDQUNGLENBQUMsRUFDTFAsSUFBSSxDQUFDK0MsTUFBTSxJQUFJLFdBQVcsaUJBQ3pCaEQsS0FBQSxDQUFBeUgsYUFBQTtZQUFLQyxTQUFTLEVBQUV0SCxPQUFPLENBQUNDLE1BQU0sRUFBRSxvQkFBb0I7VUFBRSxnQkFDcERMLEtBQUEsQ0FBQXlILGFBQUE7WUFDRUMsU0FBUyxFQUFFdEgsT0FBTyxDQUFDQyxNQUFNLEVBQUUsb0JBQW9CLENBQUU7WUFDakR3SCxLQUFLLEVBQUU7Y0FBRUksS0FBSyxFQUFFaEksSUFBSSxDQUFDK0IsT0FBTyxHQUFHO1lBQUk7VUFBRSxDQUNqQyxDQUNILENBRUosQ0FBQztRQUVWO01BQUMsRUFDRjtJQUNILENBQUMsTUFBTTtNQUNMa0YsWUFBWSxHQUFBckQsYUFBQSxDQUFBQSxhQUFBLEtBQ1BxRCxZQUFZO1FBQ2ZhLFVBQVUsRUFBRzlILElBQVMsSUFBSztVQUN6QlksUUFBUSxDQUFDWixJQUFJLENBQUNvQyxNQUFNLEVBQUUsSUFBSSxFQUFFRixhQUFhLENBQUM7UUFDNUMsQ0FBQztRQUNENkYsUUFBUSxFQUFHL0gsSUFBSSxJQUFLO1VBQ2xCLElBQUksQ0FBQ3VHLFFBQVEsQ0FBQ3ZHLElBQUksQ0FBQztRQUNyQixDQUFDO1FBQ0QySCxTQUFTLEVBQUczSCxJQUFTLElBQUs7VUFDeEIsSUFBSUEsSUFBSSxDQUFDb0MsTUFBTSxFQUFFO1lBQ2Z2QixlQUFlLENBQUNiLElBQUksQ0FBQ29DLE1BQU0sRUFBRUYsYUFBYSxDQUFDO1VBQzdDO1FBQ0YsQ0FBQztRQUNEOEMsY0FBYyxFQUFBcEIsYUFBQSxLQUFPb0IsY0FBYztNQUFFLEVBQ3RDO0lBQ0g7SUFDQSxvQkFDRWpGLEtBQUEsQ0FBQXlILGFBQUEsQ0FBQXpILEtBQUEsQ0FBQWtJLFFBQUEscUJBQ0VsSSxLQUFBLENBQUF5SCxhQUFBLENBQUFVLE9BQUEsRUFBQUMsUUFBQSxLQUNNbEIsWUFBWSxFQUNaRCxRQUFRO01BQ1p0QyxZQUFZLEVBQUUsSUFBSSxDQUFDQSxZQUFZLENBQUN5QyxJQUFJLENBQUMsSUFBSSxDQUFFO01BQzNDL0YsUUFBUSxFQUFFLElBQUksQ0FBQ21ELEtBQUssQ0FBQ25EO01BQ3JCO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQUEsRUFDRCxDQUNELENBQUM7RUFFUDtBQUNGO0FBQUNELGVBQUEsQ0FoYW9CSixTQUFTLGFBQ1hMLGdCQUFnQiJ9
419
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJwcm9wcyIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInJlcyIsInBhcnRTaXplIiwicmVxdWVzdENvbmZpZyIsInVwbG9hZEluZ1NpemUiLCJmaWxlSWQiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJuZXdWZXJzaW9uIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlIiwiZ2V0RmlsZUxpc3QiLCJzZXRGaWxlTGlzdCIsImJlZm9yZVVwbG9hZCIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsIm9uTGlzdENoYW5nZSIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNvbmNhdCIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwiaSIsInNwbGljZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJfcmVmIiwibmV3RmlsZSIsImZpbGVzIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsImNvbnNvbGUiLCJsb2ciLCJGcmFnbWVudCIsIl9VcGxvYWQiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL1VwbG9hZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmltcG9ydCBOc2NVcGxvYWREcmFnZ2VyIGZyb20gXCIuL0RyYWdnZXJcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQsIHByZXZpZXdJbWFnZSB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRpYyBEcmFnZ2VyID0gTnNjVXBsb2FkRHJhZ2dlcjtcclxuICBzdGF0ZSA9IHsgZmlsZUxpc3Q6IFtdLCB2aWV3SWQ6IFwiXCIsIGZpbGVMaXN0U3RvcmU6IFtdLCBmaWxlTmFtZXM6IFtdIH07XHJcbiAgdXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgdXBsb2FkU2l6ZSA9IDA7XHJcbiAgdXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0LCBsaXN0VHlwZSB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBjb25zdCBuZXdGaWxlTGlzdCA9IFtdO1xyXG4gICAgbGV0IG9sZExpc3QgPSBsaXN0ID8gbGlzdCA6IGZpbGVMaXN0O1xyXG4gICAgb2xkTGlzdC5tYXAoYXN5bmMgKGl0ZW06IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBzdGF0dXM6IGl0ZW0uc3RhdHVzLFxyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgIH0gYXMgYW55O1xyXG5cclxuICAgICAgbmV3RmlsZUxpc3QucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBbLi4ubmV3RmlsZUxpc3RdLFxyXG4gICAgICBmaWxlTGlzdFN0b3JlOiBbLi4uZmlsZUxpc3RdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmVQcm9wcywgcHJlU3RhdGUpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmZpbGVMaXN0KSAhPT1cclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICB9XHJcbiAgc2V0RmlsZUxpc3QoZmlsZUxpc3Q6IEFycmF5PE9iamVjdD4pIHtcclxuICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICB9XHJcbiAgYXN5bmMgYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgYWxsb3dGaWxlU3VmZml4LFxyXG4gICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgbWF4Q291bnQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0LFxyXG4gICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtYXhTaXplICE9PSBmYWxzZSkge1xyXG4gICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgIH1cclxuICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgY29uc3QgY2hlY2tMaXN0ID0gdGhpcy5wcm9wcy5maWxlTGlzdCA/IGZpbGVMaXN0U3RvcmUgOiBmaWxlTGlzdDtcclxuICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLmJlZm9yZVVwbG9hZCkge1xyXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3TGlzdCA9IFsuLi5maWxlTGlzdF07XHJcbiAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhKFxyXG4gICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgKGNoZWNrU2FtZUZpbGUgJiYgZmlsZU5hbWVzLmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgdGVtcCA9IHtcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIG5ld0xpc3QucHVzaCh0ZW1wKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG1heENvdW50ICYmIG5ld0xpc3QubGVuZ3RoID4gbWF4Q291bnQpIHtcclxuICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBuZXdMaXN0LnNwbGljZSgwLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICAgIHRoaXMudXBsb2FkU2l6ZSA9IG9maWxlTGlzdC5sZW5ndGg7XHJcbiAgfVxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIG9uQ29tcGxldGUoZmlsZXMpIHtcclxuICAgIHRoaXMudXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBuZXdWZXJzaW9uID0gdHJ1ZSwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcblxyXG4gICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgIGxldCBJbWdSZXMgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5saXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmIHRoaXMucHJvcHMubmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgSW1nUmVzID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCwgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGxvYWRJbmdMaXN0LnB1c2goe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgXCJyZXF1ZXN0Q29uZmlnXCIsXHJcbiAgICBdKTtcclxuICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgIGN1c3RvbVJlcXVlc3Q6IHRoaXMuY3VzdG9tUmVxdWVzdC5iaW5kKHRoaXMpLFxyXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1maWxlLWl0ZW1cIil9PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1jb250ZW50LWVycm9yXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1tYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtbmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxFeWVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dSZW1vdmVJY29uICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge2ZpbGUuc3RhdHVzID09IFwidXBsb2FkaW5nXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtcHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtcGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGUuZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3N0YXRlLS0tLS0tJyx0aGlzLnN0YXRlLmZpbGVMaXN0KVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICAvLyBvbkNoYW5nZT17KHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVcIiwgZmlsZSk7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlTGlzdFwiLCBmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIC8vICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAvLyAgICAgZmlsZUxpc3Q6IGZpbGVMaXN0LFxyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pO1xyXG4gICAgICAgICAgLy8gfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMs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
@@ -1 +1 @@
1
- {"version":3,"file":"Upload.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","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/Upload.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 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\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 = { 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, 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 } as any;\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 = 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 } = 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, \"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(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, \"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 <Upload\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;AAChC,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;AACxC,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;MAAEC,QAAQ,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAEC,aAAa,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAG,CAAC;IAAAJ,eAAA,wBACtD,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;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,MAAMrB,MAAM,CAC3B;UACEX,IAAI,EAAEA,IAAI;UACV6B,UAAU,EAAEA,UAAU;UACtBI,QAAQ,EAAEN;QACZ,CAAC,EACD,IAAI,CAACC,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;UAC1BhB,OAAO,CAACiB,SAAS,CAAC,CAAC;UACnB,IAAI,IAAI,CAACb,KAAK,CAACc,QAAQ,IAAI,cAAc,IAAI,IAAI,CAACd,KAAK,CAACe,UAAU,EAAE;YAClEN,MAAM,GAAG,MAAMvB,YAAY,CAACsB,MAAM,EAAE,IAAI,CAACR,KAAK,CAACM,aAAa,CAAC;UAC/D;QACF,CAAC,MAAM;UACLV,OAAO,CAACoB,OAAO,CAAC,CAAC;QACnB;QACA,IAAI,CAACC,aAAa,CAACC,IAAI,CAAC;UACtB9C,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAClBoC,MAAM,EAAEA,MAAM;UACdW,MAAM,EAAEf,GAAG,CAACM,IAAI,IAAI,GAAG,GAAG,SAAS,GAAG,OAAO;UAC7CU,GAAG,EAAEX,MAAM,GAAGA,MAAM,CAACE,IAAI,GAAG;QAC9B,CAAC,CAAC;QACF,IAAI,IAAI,CAACU,UAAU,IAAI,IAAI,CAACd,aAAa,EAAE;UACzC,IAAI,CAACV,UAAU,CAAC,IAAI,CAACoB,aAAa,CAAC;QACrC;QACApB,UAAU,IACRA,UAAU,CAAC;UACTzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAClBoC,MAAM,EAAEA,MAAM;UACdW,MAAM,EAAEf,GAAG,CAACM,IAAI,IAAI,GAAG,GAAG,SAAS,GAAG;QACxC,CAAC,CAAC;MACN,CAAC,CAAC,OAAOY,CAAC,EAAE;QACV,IAAI,IAAI,CAACD,UAAU,IAAI,IAAI,CAACd,aAAa,EAAE;UACzC,IAAI,CAACV,UAAU,CAAC,IAAI,CAACoB,aAAa,CAAC;UACnCrB,OAAO,CAACoB,OAAO,CAAC,CAAC;QACnB;QACAnB,UAAU,IACRA,UAAU,CAAC;UAAEzB,IAAI,EAAEwB,OAAO,CAACxB,IAAI;UAAEoC,MAAM,EAAE,EAAE;UAAEW,MAAM,EAAE;QAAQ,CAAC,CAAC;MACnE;IACF,CAAC;EAAA;EAxODI,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACvB,KAAK,CAACR,QAAQ,EAAE;MACvB,IAAI,CAACgC,eAAe,CAAC,CAAC;IACxB;EACF;EACAA,eAAeA,CAACC,IAAoB,EAAE;IACpC,MAAM;MAAEjC,QAAQ;MAAEsB;IAAS,CAAC,GAAG,IAAI,CAACd,KAAK;IAEzC,MAAM0B,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;MAAI,EACT;MAERV,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,CAACxC,KAAK,CAACR,QAAQ,EAAE;MACvB,IACEiD,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC1C,KAAK,CAACR,QAAQ,CAAC,KACnCiD,IAAI,CAACC,SAAS,CAAC,IAAI,CAACC,KAAK,CAACjD,aAAa,CAAC,EACxC;QACA,IAAI,CAAC8B,eAAe,CAAC,CAAC;MACxB;IACF;EACF;EACAoB,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,CAACtD,KAAK;IACd,IAAI;MAAER,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,CAAC1D,KAAK,CAACR,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,CAACjC,KAAK,CAAC8C,YAAY,EAAE;MAC3B,MAAM1C,GAAG,GAAG,MAAM,IAAI,CAACJ,KAAK,CAAC8C,YAAY,CAAC1E,IAAI,EAAE2E,SAAS,CAAC;MAC1D,IAAI3C,GAAG,KAAK,KAAK,EAAE;QACjB,OAAO,KAAK;MACd;IACF;IACA,MAAMwD,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;UACnB9B,OAAO,EAAE,CAAC;UACVgB,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,CAACjD,KAAK;IACtC,MAAMiE,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;MAAEjE,OAAO;MAAE/B;IAAU,CAAC,GAAAgG,IAAA;IAC9B,MAAM;MAAE5E;IAAS,CAAC,GAAG,IAAI,CAACmD,KAAK;IAC/B,MAAM;MAAEW;IAAa,CAAC,GAAG,IAAI,CAACtD,KAAK;IACnC,MAAM4D,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,CAAClE,OAAO,GAAGA,OAAO;MAC3B;MACAyD,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,CAAC/D,aAAa,GAAG,CAAC;IACtB,IAAI,CAACc,UAAU,GAAG,CAAC;IACnB,IAAI,CAACJ,aAAa,GAAG,EAAE;IACvB,MAAM;MAAEzB;IAAS,CAAC,GAAG,IAAI,CAACmD,KAAK;IAC/B,MAAM;MAAE5B,UAAU,GAAG,IAAI;MAAET,aAAa,GAAG,CAAC;IAAE,CAAC,GAAG,IAAI,CAACN,KAAK;IAC5D,MAAM4D,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,CAAC7D,MAAM,GAAGpC,IAAI,CAACoC,MAAM;UAC5B6D,OAAO,CAACjD,GAAG,GAAGhD,IAAI,CAACgD,GAAG;UACtB,IAAI,CAACL,UAAU,EAAE;YACf,IAAIK,GAAG,4DAAAqC,MAAA,CACLrF,IAAI,CAACoC,MAAM,YAAAiD,MAAA,CACJc,MAAM,CAACC,YAAY,CAACC,OAAO,CAAC,OAAO,CAAC,CAAE;YAC/CJ,OAAO,CAACjD,GAAG,GAAGd,aAAa,CAACoE,MAAM,GAC9BpE,aAAa,CAACoE,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,CAACtD,KAAK;IACnCsD,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,CAACtD,KAAK;IACnC,MAAM4D,OAAY,GAAG,EAAE;IACvBpE,QAAQ,CAACoC,GAAG,CAAEC,IAAS,IAAK;MAC1B;MACA,IACEA,IAAI,CAACI,IAAI,KAAK7D,IAAI,CAAC6D,IAAI,IACvBJ,IAAI,CAACrB,MAAM,KAAKpC,IAAI,CAACoC,MAAM,IAC3BqB,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;MACR7E,aAAa,GAAG,CAAC;IACnB,CAAC,GAAG,IAAI,CAACN,KAAK;IACd,MAAMoF,QAAQ,GAAG9G,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,IAAIqF,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,CAACiC,KAAK,CAAC,GAAG,CAAC;UAC7B,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,sBAAsB;UAAE,gBACtDL,KAAA,CAAAyH,aAAA;YACEC,SAAS,EAAEpH,GAAG,CAACF,OAAO,CAACC,MAAM,EAAE,oBAAoB,CAAC,EAAE;cACpD,CAACD,OAAO,CAACC,MAAM,EAAE,0BAA0B,CAAC,GAC1CJ,IAAI,CAAC+C,MAAM,IAAI;YACnB,CAAC;UAAE,gBAEHhD,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,yBAAyB;UAAE,gBACzDL,KAAA,CAAAyH,aAAA,CAAClH,QAAQ;YAACyF,MAAM,EAAEA,MAAO;YAAC3D,MAAM,EAAEpC,IAAI,CAACoC;UAAO,CAAE,CAC7C,CAAC,eACNrC,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,yBAAyB;UAAE,GACxDJ,IAAI,CAAC6D,IAAI,IAAI7D,IAAI,CAAC8D,QAChB,CAAC,eACN/D,KAAA,CAAAyH,aAAA;YAAKC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,iBAAiB;UAAE,GAChD4E,cAAc,CAAC2B,eAAe,IAAI3G,IAAI,CAAC+C,MAAM,IAAI,MAAM,iBACtDhD,KAAA,CAAAyH,aAAA;YACEE,OAAO,EAAEA,CAAA,KAAM;cACb,IAAI,IAAI,CAAC9F,KAAK,CAAC+F,SAAS,EAAE;gBACxB,IAAI,CAAC/F,KAAK,CAAC+F,SAAS,CAAC3H,IAAI,CAAC;cAC5B,CAAC,MAAM;gBACLa,eAAe,CAACb,IAAI,CAACoC,MAAM,EAAEF,aAAa,CAAC;cAC7C;YACF,CAAE;YACF0F,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,CAAC9F,KAAK,CAACkG,UAAU,EAAE;gBACzB,IAAI,CAAClG,KAAK,CAACkG,UAAU,CAAC9H,IAAI,CAAC;cAC7B,CAAC,MAAM;gBACLY,QAAQ,CAACZ,IAAI,CAACoC,MAAM,EAAE,IAAI,EAAEF,aAAa,CAAC;cAC5C;YACF,CAAE;YACF0F,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,CAAC9F,KAAK,CAACmG,QAAQ,EAAE;gBACvB,IAAI,CAACnG,KAAK,CAACmG,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,oBAAoB;UAAE,gBACpDL,KAAA,CAAAyH,aAAA;YACEC,SAAS,EAAEtH,OAAO,CAACC,MAAM,EAAE,oBAAoB,CAAE;YACjDwH,KAAK,EAAE;cAAEI,KAAK,EAAEhI,IAAI,CAAC+B,OAAO,GAAG;YAAI;UAAE,CACjC,CACH,CAEJ,CAAC;QAEV;MAAC,EACF;IACH,CAAC,MAAM;MACLkF,YAAY,GAAArD,aAAA,CAAAA,aAAA,KACPqD,YAAY;QACfa,UAAU,EAAG9H,IAAS,IAAK;UACzBY,QAAQ,CAACZ,IAAI,CAACoC,MAAM,EAAE,IAAI,EAAEF,aAAa,CAAC;QAC5C,CAAC;QACD6F,QAAQ,EAAG/H,IAAI,IAAK;UAClB,IAAI,CAACuG,QAAQ,CAACvG,IAAI,CAAC;QACrB,CAAC;QACD2H,SAAS,EAAG3H,IAAS,IAAK;UACxB,IAAIA,IAAI,CAACoC,MAAM,EAAE;YACfvB,eAAe,CAACb,IAAI,CAACoC,MAAM,EAAEF,aAAa,CAAC;UAC7C;QACF,CAAC;QACD8C,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;MACrB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IAAA,EACD,CACD,CAAC;EAEP;AACF;AAACD,eAAA,CAhaoBJ,SAAS,aACXL,gBAAgB"}
1
+ {"version":3,"file":"Upload.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","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","console","log","Fragment","_Upload","_extends"],"sources":["../../../src/components/base/upload/Upload.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 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\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 = { 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, 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 } as any;\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 = 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 } = 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, \"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(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, \"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 console.log('state------',this.state.fileList)\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 // 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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"}
@@ -218,9 +218,10 @@ const withCustomUpload = Component => {
218
218
  newList.splice(0, 1);
219
219
  }
220
220
  }
221
- onListChange && onListChange(newList);
222
221
  this.setState({
223
222
  fileList: newList
223
+ }, () => {
224
+ onListChange && onListChange(newList);
224
225
  });
225
226
  this.uploadSize = ofileList.length;
226
227
  }
@@ -256,8 +257,9 @@ const withCustomUpload = Component => {
256
257
  });
257
258
  this.setState({
258
259
  fileList: newList
260
+ }, () => {
261
+ onListChange && onListChange(fileList);
259
262
  });
260
- onListChange && onListChange(fileList);
261
263
  }
262
264
  async onComplete(files) {
263
265
  this.uploadIngSize = 0;
@@ -288,11 +290,12 @@ const withCustomUpload = Component => {
288
290
  });
289
291
  this.setState({
290
292
  fileList: [...newList]
293
+ }, () => {
294
+ const {
295
+ onListChange
296
+ } = this.props;
297
+ onListChange && onListChange(newList);
291
298
  });
292
- const {
293
- onListChange
294
- } = this.props;
295
- onListChange && onListChange(newList);
296
299
  }
297
300
  onDelete(file) {
298
301
  const {
@@ -310,8 +313,9 @@ const withCustomUpload = Component => {
310
313
  });
311
314
  this.setState({
312
315
  fileList: newList
316
+ }, () => {
317
+ onListChange && onListChange(newList);
313
318
  });
314
- onListChange && onListChange(newList);
315
319
  }
316
320
  render() {
317
321
  let {
@@ -436,4 +440,4 @@ const NscUpload = withCustomUpload(_Upload);
436
440
  const NscUploadDragger = withCustomUpload(_Upload.Dragger);
437
441
  NscUpload.Dragger = NscUploadDragger;
438
442
  export default NscUpload;
439
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJwcmV2aWV3SW1hZ2UiLCJ3aXRoQ3VzdG9tVXBsb2FkIiwiQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJuZXdWZXJzaW9uIiwicHJvcHMiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJyZXMiLCJwYXJ0U2l6ZSIsInJlcXVlc3RDb25maWciLCJ1cGxvYWRJbmdTaXplIiwiZmlsZUlkIiwiSW1nUmVzIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsImxpc3RUeXBlIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJzZXRTdGF0ZSIsImkiLCJsZW5ndGgiLCJpdGVtIiwidGVtcCIsIl9vYmplY3RTcHJlYWQiLCJuYW1lIiwiZmlsZU5hbWUiLCJ0eXBlIiwic2l6ZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJnZXRGaWxlTGlzdCIsInNldEZpbGVMaXN0IiwiYmVmb3JlVXBsb2FkIiwib2ZpbGVMaXN0IiwibWF4U2l6ZSIsImFsbG93RmlsZVN1ZmZpeCIsImNoZWNrU2FtZUZpbGUiLCJtYXhDb3VudCIsInNob3dVcGxvYWRMaXN0IiwicHJvcHNMaXN0Iiwib25MaXN0Q2hhbmdlIiwiY2hlY2tGaWxlVHlwZSIsImVycm9yIiwiY29uY2F0IiwiY2hlY2tMaXN0IiwibWFwIiwiaW5kZXhPZiIsIm5ld0xpc3QiLCJ1aWQiLCJzcGxpY2UiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwiX3JlZiIsIm5ld0ZpbGUiLCJmaWxlcyIsImluZGV4Iiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX2V4dGVuZHMiLCJOc2NVcGxvYWQiLCJfVXBsb2FkIiwiTnNjVXBsb2FkRHJhZ2dlciIsIkRyYWdnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3VwbG9hZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50LCBwcmV2aWV3SW1hZ2UgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIG5ld1ZlcnNpb24/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jb25zdCB3aXRoQ3VzdG9tVXBsb2FkID0gKENvbXBvbmVudCkgPT4ge1xyXG4gIC8vIOi/lOWbnuS4gOS4quexu+e7hOS7tlxyXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVVwbG9hZFByb3BzLCBhbnk+IHtcclxuICAgIHN0YXRlID0ge1xyXG4gICAgICBmaWxlTGlzdDogW10sXHJcbiAgICAgIHZpZXdJZDogXCJcIixcclxuICAgICAgZmlsZUxpc3RTdG9yZTogW10sXHJcbiAgICAgIGZpbGVOYW1lczogW10sXHJcbiAgICB9O1xyXG4gICAgdXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgICB1cGxvYWRTaXplID0gMDtcclxuICAgIHVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICAgIHByZXZpZXdVcmwgPSB7fTtcclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KHRoaXMucHJvcHMuZmlsZUxpc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb252ZXJ0RmlsZUxpc3QobGlzdD86IEFycmF5PE9iamVjdD4pIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCwgbGlzdFR5cGUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlTGlzdFN0b3JlOiBbLi4uZmlsZUxpc3RdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbGRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSBvbGRMaXN0W2ldO1xyXG4gICAgICAgICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICAgIHN0YXR1czogaXRlbS5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICAgICAgICB1cmw6IGl0ZW0udXJsLFxyXG4gICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgaWYgKGxpc3RUeXBlID09IFwicGljdHVyZS1jYXJkXCIgJiYgIWl0ZW0udXJsICYmIGl0ZW0uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHJlczogYW55ID0gYXdhaXQgcHJldmlld0ltYWdlKFxyXG4gICAgICAgICAgICAgICAgaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRlbXAudXJsID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCh0aGlzLnByb3BzLmZpbGVMaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGdldEZpbGVMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICAgIH1cclxuICAgIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICAgIH1cclxuICAgIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgICAgbGV0IHtcclxuICAgICAgICBtYXhTaXplID0gMTAwLFxyXG4gICAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgICBtYXhDb3VudCxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICAgIG9uTGlzdENoYW5nZSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBsZXQgc2l6ZTogbnVtYmVyO1xyXG4gICAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgICAgYCR7ZmlsZS5uYW1lfeaWh+S7tuexu+Wei+S4jeWFgeiuuOS4iuS8oO+8jOivt+S4iuS8oOWQjue8gOS4uiR7YWxsb3dGaWxlU3VmZml4feeahOexu+Wei+aWh+S7tu+8gWBcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgbWF4U2l6ZSA9IDEwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgICBpZiAoc2l6ZSA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgICBpZiAoY2hlY2tTYW1lRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgZmlsZU5hbWVzLnB1c2goaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu2JHtmaWxlLm5hbWV95bey5Zyo5LiK5Lyg5YiX6KGo5Lit77yM6K+36YeN5paw6YCJ5oup5paH5Lu277yBYCk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICAgIGlmIChyZXMgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIShcclxuICAgICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICAgICAgdGhpcy51cGxvYWRTaXplID0gb2ZpbGVMaXN0Lmxlbmd0aDtcclxuICAgIH1cclxuICAgIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgICAgfSk7XHJcbiAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgb25Db21wbGV0ZShmaWxlcykge1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgICB0aGlzLnVwbG9hZFNpemUgPSAwO1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBuZXdWZXJzaW9uID0gdHJ1ZSwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICAgIGZpbGVzLm1hcChhc3luYyAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgICAgbmV3RmlsZS5zdGF0dXMgPSBmaWxlLnN0YXR1cyA9PSBcInN1Y2Nlc3NcIiA/IFwiZG9uZVwiIDogZmlsZS5zdGF0dXM7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICAgIGlmICghbmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgICAgIGxldCB1cmwgPSBgL2pxdWljay1yZXNvdXJjZS9vc3MvZW5kcG9pbnQvZG93bmxvYWQtZmlsZXM/YXR0YWNoSWQ9JHtcclxuICAgICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgICAgfSZfdHBrPSR7d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidG9rZW5cIil9YDtcclxuICAgICAgICAgICAgICBuZXdGaWxlLnVybCA9IHJlcXVlc3RDb25maWcucHJlZml4XHJcbiAgICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgICA6IFwiL2FwaVwiICsgdXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdMaXN0XSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgIH1cclxuICAgIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xyXG4gICAgICBjb25zdCB7XHJcbiAgICAgICAgb25Db21wbGV0ZSxcclxuICAgICAgICBvblByb2Nlc3MsXHJcbiAgICAgICAgc2xpY2VTaXplLFxyXG4gICAgICAgIG5ld1ZlcnNpb24gPSB0cnVlLFxyXG4gICAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICAgIHRoaXMub25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgICAgfTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudXBsb2FkSW5nU2l6ZSA9IHRoaXMudXBsb2FkSW5nU2l6ZSArIDE7XHJcbiAgICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgICAgbGV0IEltZ1JlcyA9IG51bGw7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgICBvcHRpb25zLm9uU3VjY2VzcygpO1xyXG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMubGlzdFR5cGUgPT0gXCJwaWN0dXJlLWNhcmRcIiAmJiBuZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgIEltZ1JlcyA9IGF3YWl0IHByZXZpZXdJbWFnZShmaWxlSWQsIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwbG9hZEluZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgICB1cmw6IEltZ1JlcyA/IEltZ1Jlcy5kYXRhIDogbnVsbCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaXRlbS5uYW1lICE9PSBmaWxlLm5hbWUgfHxcclxuICAgICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgfVxyXG4gICAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICAgIGxldCB7XHJcbiAgICAgICAgZmlsZUxpc3QsXHJcbiAgICAgICAgZmlsZUNhcmQsXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd1ByZXZpZXdJY29uOiBmYWxzZSxcclxuICAgICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgICAgcmVtb3ZlSWNvbjogbnVsbCxcclxuICAgICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICAgIH0gYXMgYW55LFxyXG4gICAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgICBcIm1heFNpemVcIixcclxuICAgICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICAgIFwicmVxdWVzdENvbmZpZ1wiLFxyXG4gICAgICBdKTtcclxuICAgICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHN1ZmZpeD17c3VmZml4fSBmaWxlSWQ9e2ZpbGUuZmlsZUlkfSAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1ByZXZpZXdJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiZcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAge2ZpbGUuc3RhdHVzID09IFwidXBsb2FkaW5nXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoZmlsZT8uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICA8Q29tcG9uZW50XHJcbiAgICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuXHJcbmNvbnN0IE5zY1VwbG9hZDogYW55ID0gd2l0aEN1c3RvbVVwbG9hZChVcGxvYWQpO1xyXG4vLyAvLyDkvb/nlKggd2l0aEN1c3RvbVVwbG9hZCDlsIHoo4UgVXBsb2FkLkRyYWdnZXIg57uE5Lu2XHJcbmNvbnN0IE5zY1VwbG9hZERyYWdnZXIgPSB3aXRoQ3VzdG9tVXBsb2FkKFVwbG9hZC5EcmFnZ2VyKTtcclxuTnNjVXBsb2FkLkRyYWdnZXIgPSBOc2NVcGxvYWREcmFnZ2VyO1xyXG5leHBvcnQgZGVmYXVsdCBOc2NVcGxvYWQ7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtBQUN6QyxTQUNFQyxjQUFjLEVBQ2RDLGdCQUFnQixFQUNoQkMsV0FBVyxRQUNOLG1CQUFtQjtBQUMxQixNQUFNO0VBQUVDLE1BQU07RUFBRUMsUUFBUTtFQUFFQyxl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
443
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJwcmV2aWV3SW1hZ2UiLCJ3aXRoQ3VzdG9tVXBsb2FkIiwiQ29tcG9uZW50IiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJuZXdWZXJzaW9uIiwicHJvcHMiLCJvblByb2dyZXNzIiwidG90YWxQcm9ncmVzcyIsInBlcmNlbnQiLCJyZXMiLCJwYXJ0U2l6ZSIsInJlcXVlc3RDb25maWciLCJ1cGxvYWRJbmdTaXplIiwiZmlsZUlkIiwiSW1nUmVzIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsImxpc3RUeXBlIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJzZXRTdGF0ZSIsImkiLCJsZW5ndGgiLCJpdGVtIiwidGVtcCIsIl9vYmplY3RTcHJlYWQiLCJuYW1lIiwiZmlsZU5hbWUiLCJ0eXBlIiwic2l6ZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJnZXRGaWxlTGlzdCIsInNldEZpbGVMaXN0IiwiYmVmb3JlVXBsb2FkIiwib2ZpbGVMaXN0IiwibWF4U2l6ZSIsImFsbG93RmlsZVN1ZmZpeCIsImNoZWNrU2FtZUZpbGUiLCJtYXhDb3VudCIsInNob3dVcGxvYWRMaXN0IiwicHJvcHNMaXN0Iiwib25MaXN0Q2hhbmdlIiwiY2hlY2tGaWxlVHlwZSIsImVycm9yIiwiY29uY2F0IiwiY2hlY2tMaXN0IiwibWFwIiwiaW5kZXhPZiIsIm5ld0xpc3QiLCJ1aWQiLCJzcGxpY2UiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwiX3JlZiIsIm5ld0ZpbGUiLCJmaWxlcyIsImluZGV4Iiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX2V4dGVuZHMiLCJOc2NVcGxvYWQiLCJfVXBsb2FkIiwiTnNjVXBsb2FkRHJhZ2dlciIsIkRyYWdnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3VwbG9hZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50LCBwcmV2aWV3SW1hZ2UgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIG5ld1ZlcnNpb24/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jb25zdCB3aXRoQ3VzdG9tVXBsb2FkID0gKENvbXBvbmVudCkgPT4ge1xyXG4gIC8vIOi/lOWbnuS4gOS4quexu+e7hOS7tlxyXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVVwbG9hZFByb3BzLCBhbnk+IHtcclxuICAgIHN0YXRlID0ge1xyXG4gICAgICBmaWxlTGlzdDogW10sXHJcbiAgICAgIHZpZXdJZDogXCJcIixcclxuICAgICAgZmlsZUxpc3RTdG9yZTogW10sXHJcbiAgICAgIGZpbGVOYW1lczogW10sXHJcbiAgICB9O1xyXG4gICAgdXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgICB1cGxvYWRTaXplID0gMDtcclxuICAgIHVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICAgIHByZXZpZXdVcmwgPSB7fTtcclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KHRoaXMucHJvcHMuZmlsZUxpc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb252ZXJ0RmlsZUxpc3QobGlzdD86IEFycmF5PE9iamVjdD4pIHtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCwgbGlzdFR5cGUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlTGlzdFN0b3JlOiBbLi4uZmlsZUxpc3RdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbGRMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSBvbGRMaXN0W2ldO1xyXG4gICAgICAgICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICAgIHN0YXR1czogaXRlbS5zdGF0dXMsXHJcbiAgICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICAgICAgICB1cmw6IGl0ZW0udXJsLFxyXG4gICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgaWYgKGxpc3RUeXBlID09IFwicGljdHVyZS1jYXJkXCIgJiYgIWl0ZW0udXJsICYmIGl0ZW0uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHJlczogYW55ID0gYXdhaXQgcHJldmlld0ltYWdlKFxyXG4gICAgICAgICAgICAgICAgaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRlbXAudXJsID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCh0aGlzLnByb3BzLmZpbGVMaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGdldEZpbGVMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICAgIH1cclxuICAgIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICAgIH1cclxuICAgIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgICAgbGV0IHtcclxuICAgICAgICBtYXhTaXplID0gMTAwLFxyXG4gICAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgICBtYXhDb3VudCxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICAgIG9uTGlzdENoYW5nZSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBsZXQgc2l6ZTogbnVtYmVyO1xyXG4gICAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgICAgYCR7ZmlsZS5uYW1lfeaWh+S7tuexu+Wei+S4jeWFgeiuuOS4iuS8oO+8jOivt+S4iuS8oOWQjue8gOS4uiR7YWxsb3dGaWxlU3VmZml4feeahOexu+Wei+aWh+S7tu+8gWBcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgbWF4U2l6ZSA9IDEwMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgICBpZiAoc2l6ZSA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgICBpZiAoY2hlY2tTYW1lRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgZmlsZU5hbWVzLnB1c2goaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu2JHtmaWxlLm5hbWV95bey5Zyo5LiK5Lyg5YiX6KGo5Lit77yM6K+36YeN5paw6YCJ5oup5paH5Lu277yBYCk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICAgIGlmIChyZXMgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIShcclxuICAgICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9LCgpPT57XHJcbiAgICAgICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXBsb2FkU2l6ZSA9IG9maWxlTGlzdC5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICAgIH0sKCk9PntcclxuICAgICAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICAgICAgfSk7XHJcbiAgIFxyXG4gICAgfVxyXG4gICAgYXN5bmMgb25Db21wbGV0ZShmaWxlcykge1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgICB0aGlzLnVwbG9hZFNpemUgPSAwO1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICAgICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgY29uc3QgeyBuZXdWZXJzaW9uID0gdHJ1ZSwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICAgIGZpbGVzLm1hcChhc3luYyAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgICAgbmV3RmlsZS5zdGF0dXMgPSBmaWxlLnN0YXR1cyA9PSBcInN1Y2Nlc3NcIiA/IFwiZG9uZVwiIDogZmlsZS5zdGF0dXM7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICAgIGlmICghbmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgICAgIGxldCB1cmwgPSBgL2pxdWljay1yZXNvdXJjZS9vc3MvZW5kcG9pbnQvZG93bmxvYWQtZmlsZXM/YXR0YWNoSWQ9JHtcclxuICAgICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgICAgfSZfdHBrPSR7d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidG9rZW5cIil9YDtcclxuICAgICAgICAgICAgICBuZXdGaWxlLnVybCA9IHJlcXVlc3RDb25maWcucHJlZml4XHJcbiAgICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgICA6IFwiL2FwaVwiICsgdXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdMaXN0XSxcclxuICAgICAgfSwoKT0+e1xyXG4gICAgICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY3VzdG9tUmVxdWVzdCA9IGFzeW5jIChvcHRpb25zKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICBvbkNvbXBsZXRlLFxyXG4gICAgICAgIG9uUHJvY2VzcyxcclxuICAgICAgICBzbGljZVNpemUsXHJcbiAgICAgICAgbmV3VmVyc2lvbiA9IHRydWUsXHJcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MgfSwgZmlsZSk7XHJcbiAgICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICB9O1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgICAgICBwYXJ0U2l6ZTogc2xpY2VTaXplLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgICBsZXQgSW1nUmVzID0gbnVsbDtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5saXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmIG5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgSW1nUmVzID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCwgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBsb2FkSW5nTGlzdC5wdXNoKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgICBpdGVtLnVpZCAhPT0gZmlsZS51aWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgICAgfSwoKT0+e1xyXG4gICAgICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgIFxyXG4gICAgfVxyXG4gICAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICAgIGxldCB7XHJcbiAgICAgICAgZmlsZUxpc3QsXHJcbiAgICAgICAgZmlsZUNhcmQsXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd1ByZXZpZXdJY29uOiBmYWxzZSxcclxuICAgICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgICAgcmVtb3ZlSWNvbjogbnVsbCxcclxuICAgICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICAgIH0gYXMgYW55LFxyXG4gICAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgICBcIm1heFNpemVcIixcclxuICAgICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICAgIFwicmVxdWVzdENvbmZpZ1wiLFxyXG4gICAgICBdKTtcclxuICAgICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICAgIGlmIChmaWxlQ2FyZCkge1xyXG4gICAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICAgIGl0ZW1SZW5kZXI6IChvcmlnaW5Ob2RlLCBmaWxlOiBhbnksIGN1cnJGaWxlTGlzdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHN1ZmZpeD17c3VmZml4fSBmaWxlSWQ9e2ZpbGUuZmlsZUlkfSAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1ByZXZpZXdJY29uICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiZcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAge2ZpbGUuc3RhdHVzID09IFwidXBsb2FkaW5nXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoZmlsZT8uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICA8Q29tcG9uZW50XHJcbiAgICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuXHJcbmNvbnN0IE5zY1VwbG9hZDogYW55ID0gd2l0aEN1c3RvbVVwbG9hZChVcGxvYWQpO1xyXG4vLyAvLyDkvb/nlKggd2l0aEN1c3RvbVVwbG9hZCDlsIHoo4UgVXBsb2FkLkRyYWdnZXIg57uE5Lu2XHJcbmNvbnN0IE5zY1VwbG9hZERyYWdnZXIgPSB3aXRoQ3VzdG9tVXBsb2FkKFVwbG9hZC5EcmFnZ2VyKTtcclxuTnNjVXBsb2FkLkRyYWdnZXIgPSBOc2NVcGxvYWREcmFnZ2VyO1xyXG5leHBvcnQgZGVmYXVsdCBOc2NVcGxvYWQ7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtBQUN6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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","previewImage","withCustomUpload","Component","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","setState","i","length","item","temp","_objectSpread","name","fileName","type","size","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","map","indexOf","newList","uid","splice","names","split","suffix","_ref","newFile","files","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","NscUpload","_Upload","NscUploadDragger","Dragger"],"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 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\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 [propsName: string]: any;\r\n}\r\nconst withCustomUpload = (Component) => {\r\n // 返回一个类组件\r\n return class extends React.PureComponent<IUploadProps, any> {\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 previewUrl = {};\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n this.setState(\r\n {\r\n fileListStore: [...fileList],\r\n },\r\n async () => {\r\n for (let i = 0; i < oldList.length; i++) {\r\n let item: any = oldList[i];\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 if (listType == \"picture-card\" && !item.url && item.fileId) {\r\n let res: any = await previewImage(\r\n item.fileId,\r\n this.props.requestConfig\r\n );\r\n if (res.code == 200) {\r\n temp.url = res.data;\r\n }\r\n }\r\n newFileList.push(temp);\r\n }\r\n this.setState({\r\n fileList: [...newFileList],\r\n });\r\n }\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 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 {\r\n onComplete,\r\n onProcess,\r\n sliceSize,\r\n newVersion = true,\r\n } = 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 &&\r\n 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 &&\r\n 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 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 onRemove: (file) => {\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 onPreview: (file: any) => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Component\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};\r\n\r\nconst NscUpload: any = withCustomUpload(Upload);\r\n// // 使用 withCustomUpload 封装 Upload.Dragger 组件\r\nconst NscUploadDragger = withCustomUpload(Upload.Dragger);\r\nNscUpload.Dragger = NscUploadDragger;\r\nexport default NscUpload;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","previewImage","withCustomUpload","Component","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","setState","i","length","item","temp","_objectSpread","name","fileName","type","size","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","map","indexOf","newList","uid","splice","names","split","suffix","_ref","newFile","files","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","NscUpload","_Upload","NscUploadDragger","Dragger"],"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 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\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 [propsName: string]: any;\r\n}\r\nconst withCustomUpload = (Component) => {\r\n // 返回一个类组件\r\n return class extends React.PureComponent<IUploadProps, any> {\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 previewUrl = {};\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n this.setState(\r\n {\r\n fileListStore: [...fileList],\r\n },\r\n async () => {\r\n for (let i = 0; i < oldList.length; i++) {\r\n let item: any = oldList[i];\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 if (listType == \"picture-card\" && !item.url && item.fileId) {\r\n let res: any = await previewImage(\r\n item.fileId,\r\n this.props.requestConfig\r\n );\r\n if (res.code == 200) {\r\n temp.url = res.data;\r\n }\r\n }\r\n newFileList.push(temp);\r\n }\r\n this.setState({\r\n fileList: [...newFileList],\r\n });\r\n }\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 this.setState({ fileList: newList },()=>{\r\n onListChange && onListChange(newList);\r\n });\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 \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 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 const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n });\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const {\r\n onComplete,\r\n onProcess,\r\n sliceSize,\r\n newVersion = true,\r\n } = 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 \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 &&\r\n 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 &&\r\n 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 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 onRemove: (file) => {\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 onPreview: (file: any) => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Component\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};\r\n\r\nconst NscUpload: any = withCustomUpload(Upload);\r\n// // 使用 withCustomUpload 封装 Upload.Dragger 组件\r\nconst NscUploadDragger = withCustomUpload(Upload.Dragger);\r\nNscUpload.Dragger = NscUploadDragger;\r\nexport default NscUpload;\r\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "3.2.13",
3
+ "version": "3.2.14",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {