nsc-react-component 4.2.3 → 4.2.4

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.
@@ -289,8 +289,8 @@ class NscImportData extends React.PureComponent {
289
289
  });
290
290
  return false;
291
291
  },
292
- allowFileSuffix: ["xls", "xlxs"],
293
- accept: ".xls,.xlxs",
292
+ allowFileSuffix: ["xls", "xlsx"],
293
+ accept: ".xls,.xlsx",
294
294
  showUploadList: false
295
295
  }, /*#__PURE__*/React.createElement(NSCButton, {
296
296
  type: "primary",
@@ -334,4 +334,4 @@ class NscImportData extends React.PureComponent {
334
334
  }
335
335
  }
336
336
  export default NscImportData;
337
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiYnV0dG9uTG9hZGluZyIsImNyZWF0ZVJlZiIsImZpbGVTaXplS2IiLCJudW1iZXIiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0b0ZpeGVkIiwic2hvdyIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbiIsIm1vZGFsUmVmIiwiY3VycmVudCIsImhpZGUiLCJfdGhpcyRtb2RhbFJlZiRjdXJyZW4yIiwicmVzZXREYXRhIiwiaW1wb3J0RGF0YSIsImlzT3ZlcndyaXRlIiwicmVxdWVzdENvbmZpZyIsImltcG9ydFVybCIsIm9uQ2FsbEJhY2tzIiwicHJvcHMiLCJkYXRhIiwiY29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic2V0U3RhdGUiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwid2FybmluZ3MiLCJlcnJvcnMiLCJfbWVzc2FnZSIsInN1Y2Nlc3MiLCJpbXBvcnRDYWxsQmFjayIsInJlbmRlckVycm9yQ29udGVudCIsImxpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzdGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJyb3dOdW0iLCJlcnJvck1zZyIsInJlbmRlclJlc3VsdCIsImFsZXJ0X21zZ19tYXAiLCJlcnJvciIsIndhcm5pbmciLCJfYWxlcnRfbXNnX21hcCRyZXF1ZXMiLCJzdHlsZSIsIm1hcmdpblRvcCIsIm1lc3NhZ2UiLCJ0eXBlIiwic2hvd0ljb24iLCJleHBhbmRJY29uUG9zaXRpb24iLCJjbGFzc05hbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJkZWZhdWx0QWN0aXZlS2V5IiwiUGFuZWwiLCJoZWFkZXIiLCJjb2xvciIsImV4dHJhIiwiYmFja2dyb3VuZCIsInJlbmRlciIsImRvd25Mb2FkVGVtcGxldCIsImRvd25UZW1wbGV0VXJsIiwiY2hlY2tEYXRhIiwiY2hlY2tVcmwiLCJmb290ZXIiLCJvbkNsaWNrIiwiZXJyb3JDb3VudCIsImR1cGxpY2F0ZUNvdW50IiwiZHVwbGljYXRlTGlzdCIsImRpc2FibGVkIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJjaGlsZHJlbiIsIkZyYWdtZW50Iiwic2hvd0J1dHRvbiIsInRpdGxlIiwid2lkdGgiLCJ3cmFwQ2xhc3NOYW1lIiwicmVmIiwib25DYW5jZWwiLCJkaXNwbGF5IiwiYmVmb3JlVXBsb2FkIiwiYWxsb3dGaWxlU3VmZml4IiwiYWNjZXB0Iiwic2hvd1VwbG9hZExpc3QiLCJuYW1lIiwic2l6ZSIsIml0ZW1zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9pbXBvcnREYXRhL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgTnNjVXBsb2FkIGZyb20gXCIuLi91cGxvYWRcIjtcclxuaW1wb3J0IE5TQ0J1dHRvbiBmcm9tIFwiLi4vYnV0dG9uXCI7XHJcbmltcG9ydCBOc2NEb3duTG9hZCBmcm9tIFwiLi4vZG93bmxvYWRcIjtcclxuaW1wb3J0IE5zY01vZGFsIGZyb20gXCIuLi9tb2RhbFwiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIFVwbG9hZE91dGxpbmVkLFxyXG4gIEZvbGRlck91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFN0ZXBzIGZyb20gXCIuLi9zdGVwc1wiO1xyXG5pbXBvcnQgbnNjRmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBBbGVydCBmcm9tIFwiLi4vYWxlcnRcIjtcclxuaW1wb3J0IENvbGxhcHNlIGZyb20gXCIuLi9jb2xsYXBzZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ljb25cIjtcclxuXHJcbmludGVyZmFjZSBJbXBvcnRQcm9wb3Mge1xyXG4gIGNoZWNrRGF0YT86IGJvb2xlYW47IC8v5piv5ZCm6L+b6KGM5pWw5o2u5qCh6aqM77yM6buY6K6kZmFsc2VcclxuICBjaGVja1VybD86IHN0cmluZzsgLy/mlbDmja7moKHpqozmjqXlj6PlnLDlnYBcclxuICBpbXBvcnRVcmw6IHN0cmluZzsgLy/mlbDmja7lr7zlhaXlnLDlnYBcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIGRvd25Mb2FkVGVtcGxldD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65LiL6L295qih5p2/5oyJ6ZKuXHJcbiAgZG93blRlbXBsZXRVcmw/OiBzdHJpbmc7IC8v5LiL6L295qih5p2/5Zyw5Z2AXHJcbiAgb25DYWxsQmFja3M/OiB7XHJcbiAgICBjaGVja0NhbGxCYWNrPzogYW55OyAvL+aVsOaNruagoemqjOWbnuiwg1xyXG4gICAgaW1wb3J0Q2FsbEJhY2s/OiBhbnk7IC8v5pWw5o2u5a+85YWl5Zue6LCDXHJcbiAgICBjbG9zZUNhbGxCYWNrPzogYW55O1xyXG4gIH07XHJcbiAgc2hvd0J1dHRvbj86IGJvb2xlYW47XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmNsYXNzIE5zY0ltcG9ydERhdGEgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PEltcG9ydFByb3BvcywgYW55PiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBzdGF0dXM6IDEsXHJcbiAgICBmaWxlOiBudWxsLFxyXG4gICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICByZXF1ZXN0U3RhdHVzOiBcIlwiLFxyXG4gICAgZXJyb3JMaXN0OiBbXSxcclxuICAgIHdhcm5MaXN0OiBbXSxcclxuICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gIH07XHJcbiAgbW9kYWxSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGZpbGVTaXplS2IobnVtYmVyID0gMCkge1xyXG4gICAgcmV0dXJuIChudW1iZXIgLyAxMDI0KS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuICBzaG93KCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50Py5zaG93KCk7XHJcbiAgfVxyXG4gIGhpZGUoKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmLmN1cnJlbnQ/LmhpZGUoKTtcclxuICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgfVxyXG4gIGltcG9ydERhdGEoZmlsZSwgaXNPdmVyd3JpdGUpIHtcclxuICAgIGNvbnN0IHsgcmVxdWVzdENvbmZpZyA9IHt9LCBpbXBvcnRVcmwsIG9uQ2FsbEJhY2tzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBkYXRhID0ge30sIC4uLmNvbmZpZyB9ID0gcmVxdWVzdENvbmZpZztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBidXR0b25Mb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICAvLyBsZXQgZm9ybURhdGEgPSB7Li4uZGF0YX1cclxuXHJcbiAgICBuc2NGaWxlXHJcbiAgICAgIC5pbXBvcnRGaWxlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVybDogaW1wb3J0VXJsLFxyXG4gICAgICAgICAgZGF0YTogeyAuLi5kYXRhLCBpc092ZXJ3cml0ZTogaXNPdmVyd3JpdGUgfSxcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKVxyXG4gICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIC8vIG1lc3NhZ2Uuc3VjY2VzcyhcIuWvvOWFpeaIkOWKn++8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhLndhcm5pbmdzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICAgICAgd2Fybkxpc3Q6IHJlcy5kYXRhLndhcm5pbmdzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXMuZGF0YS5lcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZXJyb3JzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2sgJiYgb25DYWxsQmFja3M/LmltcG9ydENhbGxCYWNrKHJlcyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlckVycm9yQ29udGVudChsaXN0KSB7XHJcbiAgICByZXR1cm4gbGlzdC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXRlLnJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gXCJzdHJpbmdcIiA/IChcclxuICAgICAgICAgIDxkaXY+e2l0ZW19PC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e1wi56ysXCIgKyBpdGVtLnJvd051bSArIFwi6KGM5pWw5o2u6YeN5aSN77ybXCJ9PC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gXCJzdHJpbmdcIiA/IChcclxuICAgICAgICAgIDxkaXY+e2l0ZW19PC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e2l0ZW0uZXJyb3JNc2d9PC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlclJlc3VsdCgpIHtcclxuICAgIGNvbnN0IHsgcmVxdWVzdFN0YXR1cywgZXJyb3JMaXN0LCB3YXJuTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGFsZXJ0X21zZ19tYXAgPSB7XHJcbiAgICAgIHN1Y2Nlc3M6IFwi5a+85YWl5oiQ5YqfXCIsXHJcbiAgICAgIGVycm9yOiBcIuWvvOWFpeWksei0pVwiLFxyXG4gICAgICB3YXJuaW5nOiBcIuWRiuitpuaPkOekulwiLFxyXG4gICAgfTtcclxuICAgIGlmIChyZXF1ZXN0U3RhdHVzKSB7XHJcbiAgICAgIGlmIChyZXF1ZXN0U3RhdHVzID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxBbGVydFxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiOHB4XCIgfX1cclxuICAgICAgICAgICAgbWVzc2FnZT17YWxlcnRfbXNnX21hcFtyZXF1ZXN0U3RhdHVzXSA/PyBcIuaPkOekulwifVxyXG4gICAgICAgICAgICB0eXBlPXtcInN1Y2Nlc3NcIn1cclxuICAgICAgICAgICAgc2hvd0ljb25cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPENvbGxhcHNlXHJcbiAgICAgICAgICAgIGV4cGFuZEljb25Qb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCJjb250ZW50LXdhcm5pbmdcIiA6IFwiY29udGVudC1lcnJvclwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkNFMUFCXCIgOiBcIiNmZmYyZjBcIixcclxuICAgICAgICAgICAgICBib3JkZXI6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgID8gXCIxcHggc29saWQgI0ZDRTFBQlwiXHJcbiAgICAgICAgICAgICAgICAgIDogXCIxcHggc29saWQgI0ZGQ0NDN1wiLFxyXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIycHhcIixcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGVmYXVsdEFjdGl2ZUtleT17W1wiMVwiXX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPENvbGxhcHNlLlBhbmVsXHJcbiAgICAgICAgICAgICAga2V5PVwiMVwiXHJcbiAgICAgICAgICAgICAgaGVhZGVyPXtcclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge2FsZXJ0X21zZ19tYXBbcmVxdWVzdFN0YXR1c119XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBleHRyYT17XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIuafpeeci1wiIDogXCLmn6XnnIvplJnor69cIn1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIiNGRkZERjZcIiA6IFwiI2ZmZjlmOVwiLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbnRlbnQtZXJyb3JfX21zZ1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRXJyb3JDb250ZW50KFxyXG4gICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gd2Fybkxpc3QgOiBlcnJvckxpc3RcclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvQ29sbGFwc2UuUGFuZWw+XHJcbiAgICAgICAgICA8L0NvbGxhcHNlPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHN0YXR1czogMSxcclxuICAgICAgZmlsZTogbnVsbCxcclxuICAgICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICAgIHJlcXVlc3RTdGF0dXM6IFwiXCIsXHJcbiAgICAgIGVycm9yTGlzdDogW10sXHJcbiAgICAgIHdhcm5MaXN0OiBbXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZpbGUsIHN0YXR1cywgY3VycmVudFN0ZXAsIHJlcXVlc3RTdGF0dXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRvd25Mb2FkVGVtcGxldCxcclxuICAgICAgZG93blRlbXBsZXRVcmwsXHJcbiAgICAgIGNoZWNrRGF0YSxcclxuICAgICAgY2hlY2tVcmwsXHJcbiAgICAgIHJlcXVlc3RDb25maWcsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJcIj5cclxuICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDlj5bmtohcclxuICAgICAgICA8L05TQ0J1dHRvbj5cclxuXHJcbiAgICAgICAge3N0YXR1cyA9PSAxICYmIHRoaXMuc3RhdGUuZmlsZSAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogMixcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChjaGVja0RhdGEpIHtcclxuICAgICAgICAgICAgICAgIG5zY0ZpbGVcclxuICAgICAgICAgICAgICAgICAgLmltcG9ydEZpbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogY2hlY2tVcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiByZXF1ZXN0Q29uZmlnPy5kYXRhIHx8IHt9LFxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmVycm9yQ291bnQgPT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kdXBsaWNhdGVDb3VudCA9PSAwXHJcbiAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXA6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZXJyb3JDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTGlzdDogcmVzLmRhdGEuZXJyb3JMaXN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmR1cGxpY2F0ZUNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZHVwbGljYXRlTGlzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpbGUgPyBmYWxzZSA6IHRydWV9XHJcbiAgICAgICAgICAgIGljb249ezxVcGxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5byA5aeL5LiK5LygXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiICYmIHN0YXR1cyA9PSAyICYmIChcclxuICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKHRoaXMuc3RhdGUuZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5idXR0b25Mb2FkaW5nfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDkuI3opobnm5bmlbDmja5cclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgJiYgc3RhdHVzID09IDIgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEodGhpcy5zdGF0ZS5maWxlLCB0cnVlKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuYnV0dG9uTG9hZGluZ31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg6KaG55uW5pWw5o2uXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdj5cclxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbiA/IChcclxuICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMuc2hvd0J1dHRvbiAmJiAoXHJcbiAgICAgICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5pWw5o2u5a+85YWlXHJcbiAgICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICA8TnNjTW9kYWxcclxuICAgICAgICAgIHRpdGxlPVwi5pWw5o2u5a+85YWlXCJcclxuICAgICAgICAgIHdpZHRoPXs4MDB9XHJcbiAgICAgICAgICB3cmFwQ2xhc3NOYW1lPXtcImltcG9ydC1tb2RhbFwifVxyXG4gICAgICAgICAgcmVmPXt0aGlzLm1vZGFsUmVmfVxyXG4gICAgICAgICAgZm9vdGVyPXtmb290ZXJ9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgIHtzdGF0dXMgPT0gMSA/IChcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgPE5zY1VwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17KGZpbGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBhbGxvd0ZpbGVTdWZmaXg9e1tcInhsc1wiLCBcInhseHNcIl19XHJcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtcIi54bHMsLnhseHNcIn1cclxuICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtmaWxlID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEZvbGRlck91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L05zY1VwbG9hZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgIHtkb3duTG9hZFRlbXBsZXQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxOc2NEb3duTG9hZCB1cmw9e2Rvd25UZW1wbGV0VXJsfT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxOU0NCdXR0b24gdHlwZT1cInByaW1hcnlcIiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5qih5p2/5LiL6L29XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L05zY0Rvd25Mb2FkPlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC10aXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgMeOAgeaUr+aMgUV4Y2VsIDIwMDflj4rku6XkuIrniYjmnKzvvIzkuJTmr4/mrKHlj6rog73kuIrkvKDkuIDkuKrmlofku7bvvJtcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PjLjgIHlr7zlhaXliY3lhYjkuIvovb3mqKHmnb/vvIzlubbmoLnmja7mqKHmnb/loavlhpnmlbDmja7vvJs8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB7ZmlsZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLWZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHR5cGU9XCJleGNlbFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS10aXRsZVwiPntmaWxlLm5hbWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtZGVzY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpKflsI/vvJp7dGhpcy5maWxlU2l6ZUtiKGZpbGUuc2l6ZSkgKyBcIktCXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxTdGVwc1xyXG4gICAgICAgICAgICAgICAgICBjdXJyZW50PXtjdXJyZW50U3RlcH1cclxuICAgICAgICAgICAgICAgICAgaXRlbXM9e1tcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCLmlbDmja7liIbmnpBcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaVsOaNruaPkuWFpVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicmVzdWx0LWNvbnRlbnRcIn0+e3RoaXMucmVuZGVyUmVzdWx0KCl9PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L05zY01vZGFsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IE5zY0ltcG9ydERhdGE7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFdBQVcsTUFBTSxhQUFhO0FBQ3JDLE9BQU9DLFFBQVEsTUFBTSxVQUFVO0FBQy9CLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMseUJBQXlCLFFBQ3BCLG1CQUFtQjtBQUMxQixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUU5QixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQWtCbEMsTUFBTUMsYUFBYSxTQUFTZCxLQUFLLENBQUNlLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDekQ7TUFDTkMsTUFBTSxFQUFFLENBQUM7TUFDVEMsSUFBSSxFQUFFLElBQUk7TUFDVkMsV0FBVyxFQUFFLENBQUM7TUFDZEMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRSxFQUFFO01BQ2JDLFFBQVEsRUFBRSxFQUFFO01BQ1pDLGFBQWEsRUFBRTtJQUNqQixDQUFDO0lBQUFQLGVBQUEsZ0NBQ1VsQixLQUFLLENBQUMwQixTQUFTLENBQU0sQ0FBQztFQUFBO0VB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
337
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiYnV0dG9uTG9hZGluZyIsImNyZWF0ZVJlZiIsImZpbGVTaXplS2IiLCJudW1iZXIiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0b0ZpeGVkIiwic2hvdyIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbiIsIm1vZGFsUmVmIiwiY3VycmVudCIsImhpZGUiLCJfdGhpcyRtb2RhbFJlZiRjdXJyZW4yIiwicmVzZXREYXRhIiwiaW1wb3J0RGF0YSIsImlzT3ZlcndyaXRlIiwicmVxdWVzdENvbmZpZyIsImltcG9ydFVybCIsIm9uQ2FsbEJhY2tzIiwicHJvcHMiLCJkYXRhIiwiY29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic2V0U3RhdGUiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwid2FybmluZ3MiLCJlcnJvcnMiLCJfbWVzc2FnZSIsInN1Y2Nlc3MiLCJpbXBvcnRDYWxsQmFjayIsInJlbmRlckVycm9yQ29udGVudCIsImxpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzdGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJyb3dOdW0iLCJlcnJvck1zZyIsInJlbmRlclJlc3VsdCIsImFsZXJ0X21zZ19tYXAiLCJlcnJvciIsIndhcm5pbmciLCJfYWxlcnRfbXNnX21hcCRyZXF1ZXMiLCJzdHlsZSIsIm1hcmdpblRvcCIsIm1lc3NhZ2UiLCJ0eXBlIiwic2hvd0ljb24iLCJleHBhbmRJY29uUG9zaXRpb24iLCJjbGFzc05hbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJkZWZhdWx0QWN0aXZlS2V5IiwiUGFuZWwiLCJoZWFkZXIiLCJjb2xvciIsImV4dHJhIiwiYmFja2dyb3VuZCIsInJlbmRlciIsImRvd25Mb2FkVGVtcGxldCIsImRvd25UZW1wbGV0VXJsIiwiY2hlY2tEYXRhIiwiY2hlY2tVcmwiLCJmb290ZXIiLCJvbkNsaWNrIiwiZXJyb3JDb3VudCIsImR1cGxpY2F0ZUNvdW50IiwiZHVwbGljYXRlTGlzdCIsImRpc2FibGVkIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJjaGlsZHJlbiIsIkZyYWdtZW50Iiwic2hvd0J1dHRvbiIsInRpdGxlIiwid2lkdGgiLCJ3cmFwQ2xhc3NOYW1lIiwicmVmIiwib25DYW5jZWwiLCJkaXNwbGF5IiwiYmVmb3JlVXBsb2FkIiwiYWxsb3dGaWxlU3VmZml4IiwiYWNjZXB0Iiwic2hvd1VwbG9hZExpc3QiLCJuYW1lIiwic2l6ZSIsIml0ZW1zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS9pbXBvcnREYXRhL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgTnNjVXBsb2FkIGZyb20gXCIuLi91cGxvYWRcIjtcclxuaW1wb3J0IE5TQ0J1dHRvbiBmcm9tIFwiLi4vYnV0dG9uXCI7XHJcbmltcG9ydCBOc2NEb3duTG9hZCBmcm9tIFwiLi4vZG93bmxvYWRcIjtcclxuaW1wb3J0IE5zY01vZGFsIGZyb20gXCIuLi9tb2RhbFwiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIFVwbG9hZE91dGxpbmVkLFxyXG4gIEZvbGRlck91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFN0ZXBzIGZyb20gXCIuLi9zdGVwc1wiO1xyXG5pbXBvcnQgbnNjRmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBBbGVydCBmcm9tIFwiLi4vYWxlcnRcIjtcclxuaW1wb3J0IENvbGxhcHNlIGZyb20gXCIuLi9jb2xsYXBzZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ljb25cIjtcclxuXHJcbmludGVyZmFjZSBJbXBvcnRQcm9wb3Mge1xyXG4gIGNoZWNrRGF0YT86IGJvb2xlYW47IC8v5piv5ZCm6L+b6KGM5pWw5o2u5qCh6aqM77yM6buY6K6kZmFsc2VcclxuICBjaGVja1VybD86IHN0cmluZzsgLy/mlbDmja7moKHpqozmjqXlj6PlnLDlnYBcclxuICBpbXBvcnRVcmw6IHN0cmluZzsgLy/mlbDmja7lr7zlhaXlnLDlnYBcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIGRvd25Mb2FkVGVtcGxldD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65LiL6L295qih5p2/5oyJ6ZKuXHJcbiAgZG93blRlbXBsZXRVcmw/OiBzdHJpbmc7IC8v5LiL6L295qih5p2/5Zyw5Z2AXHJcbiAgb25DYWxsQmFja3M/OiB7XHJcbiAgICBjaGVja0NhbGxCYWNrPzogYW55OyAvL+aVsOaNruagoemqjOWbnuiwg1xyXG4gICAgaW1wb3J0Q2FsbEJhY2s/OiBhbnk7IC8v5pWw5o2u5a+85YWl5Zue6LCDXHJcbiAgICBjbG9zZUNhbGxCYWNrPzogYW55O1xyXG4gIH07XHJcbiAgc2hvd0J1dHRvbj86IGJvb2xlYW47XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmNsYXNzIE5zY0ltcG9ydERhdGEgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PEltcG9ydFByb3BvcywgYW55PiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBzdGF0dXM6IDEsXHJcbiAgICBmaWxlOiBudWxsLFxyXG4gICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICByZXF1ZXN0U3RhdHVzOiBcIlwiLFxyXG4gICAgZXJyb3JMaXN0OiBbXSxcclxuICAgIHdhcm5MaXN0OiBbXSxcclxuICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gIH07XHJcbiAgbW9kYWxSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGZpbGVTaXplS2IobnVtYmVyID0gMCkge1xyXG4gICAgcmV0dXJuIChudW1iZXIgLyAxMDI0KS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuICBzaG93KCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50Py5zaG93KCk7XHJcbiAgfVxyXG4gIGhpZGUoKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmLmN1cnJlbnQ/LmhpZGUoKTtcclxuICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgfVxyXG4gIGltcG9ydERhdGEoZmlsZSwgaXNPdmVyd3JpdGUpIHtcclxuICAgIGNvbnN0IHsgcmVxdWVzdENvbmZpZyA9IHt9LCBpbXBvcnRVcmwsIG9uQ2FsbEJhY2tzID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBkYXRhID0ge30sIC4uLmNvbmZpZyB9ID0gcmVxdWVzdENvbmZpZztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBidXR0b25Mb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICAvLyBsZXQgZm9ybURhdGEgPSB7Li4uZGF0YX1cclxuXHJcbiAgICBuc2NGaWxlXHJcbiAgICAgIC5pbXBvcnRGaWxlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVybDogaW1wb3J0VXJsLFxyXG4gICAgICAgICAgZGF0YTogeyAuLi5kYXRhLCBpc092ZXJ3cml0ZTogaXNPdmVyd3JpdGUgfSxcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb25maWdcclxuICAgICAgKVxyXG4gICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIC8vIG1lc3NhZ2Uuc3VjY2VzcyhcIuWvvOWFpeaIkOWKn++8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhLndhcm5pbmdzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICAgICAgd2Fybkxpc3Q6IHJlcy5kYXRhLndhcm5pbmdzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXMuZGF0YS5lcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZXJyb3JzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2sgJiYgb25DYWxsQmFja3M/LmltcG9ydENhbGxCYWNrKHJlcyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlckVycm9yQ29udGVudChsaXN0KSB7XHJcbiAgICByZXR1cm4gbGlzdC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXRlLnJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gXCJzdHJpbmdcIiA/IChcclxuICAgICAgICAgIDxkaXY+e2l0ZW19PC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e1wi56ysXCIgKyBpdGVtLnJvd051bSArIFwi6KGM5pWw5o2u6YeN5aSN77ybXCJ9PC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gXCJzdHJpbmdcIiA/IChcclxuICAgICAgICAgIDxkaXY+e2l0ZW19PC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e2l0ZW0uZXJyb3JNc2d9PC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlclJlc3VsdCgpIHtcclxuICAgIGNvbnN0IHsgcmVxdWVzdFN0YXR1cywgZXJyb3JMaXN0LCB3YXJuTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGFsZXJ0X21zZ19tYXAgPSB7XHJcbiAgICAgIHN1Y2Nlc3M6IFwi5a+85YWl5oiQ5YqfXCIsXHJcbiAgICAgIGVycm9yOiBcIuWvvOWFpeWksei0pVwiLFxyXG4gICAgICB3YXJuaW5nOiBcIuWRiuitpuaPkOekulwiLFxyXG4gICAgfTtcclxuICAgIGlmIChyZXF1ZXN0U3RhdHVzKSB7XHJcbiAgICAgIGlmIChyZXF1ZXN0U3RhdHVzID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxBbGVydFxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiOHB4XCIgfX1cclxuICAgICAgICAgICAgbWVzc2FnZT17YWxlcnRfbXNnX21hcFtyZXF1ZXN0U3RhdHVzXSA/PyBcIuaPkOekulwifVxyXG4gICAgICAgICAgICB0eXBlPXtcInN1Y2Nlc3NcIn1cclxuICAgICAgICAgICAgc2hvd0ljb25cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPENvbGxhcHNlXHJcbiAgICAgICAgICAgIGV4cGFuZEljb25Qb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCJjb250ZW50LXdhcm5pbmdcIiA6IFwiY29udGVudC1lcnJvclwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkNFMUFCXCIgOiBcIiNmZmYyZjBcIixcclxuICAgICAgICAgICAgICBib3JkZXI6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgID8gXCIxcHggc29saWQgI0ZDRTFBQlwiXHJcbiAgICAgICAgICAgICAgICAgIDogXCIxcHggc29saWQgI0ZGQ0NDN1wiLFxyXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIycHhcIixcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGVmYXVsdEFjdGl2ZUtleT17W1wiMVwiXX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPENvbGxhcHNlLlBhbmVsXHJcbiAgICAgICAgICAgICAga2V5PVwiMVwiXHJcbiAgICAgICAgICAgICAgaGVhZGVyPXtcclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge2FsZXJ0X21zZ19tYXBbcmVxdWVzdFN0YXR1c119XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBleHRyYT17XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIuafpeeci1wiIDogXCLmn6XnnIvplJnor69cIn1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIiNGRkZERjZcIiA6IFwiI2ZmZjlmOVwiLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbnRlbnQtZXJyb3JfX21zZ1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRXJyb3JDb250ZW50KFxyXG4gICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gd2Fybkxpc3QgOiBlcnJvckxpc3RcclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvQ29sbGFwc2UuUGFuZWw+XHJcbiAgICAgICAgICA8L0NvbGxhcHNlPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHN0YXR1czogMSxcclxuICAgICAgZmlsZTogbnVsbCxcclxuICAgICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICAgIHJlcXVlc3RTdGF0dXM6IFwiXCIsXHJcbiAgICAgIGVycm9yTGlzdDogW10sXHJcbiAgICAgIHdhcm5MaXN0OiBbXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZpbGUsIHN0YXR1cywgY3VycmVudFN0ZXAsIHJlcXVlc3RTdGF0dXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRvd25Mb2FkVGVtcGxldCxcclxuICAgICAgZG93blRlbXBsZXRVcmwsXHJcbiAgICAgIGNoZWNrRGF0YSxcclxuICAgICAgY2hlY2tVcmwsXHJcbiAgICAgIHJlcXVlc3RDb25maWcsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJcIj5cclxuICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDlj5bmtohcclxuICAgICAgICA8L05TQ0J1dHRvbj5cclxuXHJcbiAgICAgICAge3N0YXR1cyA9PSAxICYmIHRoaXMuc3RhdGUuZmlsZSAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogMixcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChjaGVja0RhdGEpIHtcclxuICAgICAgICAgICAgICAgIG5zY0ZpbGVcclxuICAgICAgICAgICAgICAgICAgLmltcG9ydEZpbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogY2hlY2tVcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiByZXF1ZXN0Q29uZmlnPy5kYXRhIHx8IHt9LFxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmVycm9yQ291bnQgPT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kdXBsaWNhdGVDb3VudCA9PSAwXHJcbiAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXA6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZXJyb3JDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTGlzdDogcmVzLmRhdGEuZXJyb3JMaXN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmR1cGxpY2F0ZUNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZHVwbGljYXRlTGlzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpbGUgPyBmYWxzZSA6IHRydWV9XHJcbiAgICAgICAgICAgIGljb249ezxVcGxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5byA5aeL5LiK5LygXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiICYmIHN0YXR1cyA9PSAyICYmIChcclxuICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKHRoaXMuc3RhdGUuZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5idXR0b25Mb2FkaW5nfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDkuI3opobnm5bmlbDmja5cclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgJiYgc3RhdHVzID09IDIgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEodGhpcy5zdGF0ZS5maWxlLCB0cnVlKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuYnV0dG9uTG9hZGluZ31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg6KaG55uW5pWw5o2uXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdj5cclxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbiA/IChcclxuICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMuc2hvd0J1dHRvbiAmJiAoXHJcbiAgICAgICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5pWw5o2u5a+85YWlXHJcbiAgICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICA8TnNjTW9kYWxcclxuICAgICAgICAgIHRpdGxlPVwi5pWw5o2u5a+85YWlXCJcclxuICAgICAgICAgIHdpZHRoPXs4MDB9XHJcbiAgICAgICAgICB3cmFwQ2xhc3NOYW1lPXtcImltcG9ydC1tb2RhbFwifVxyXG4gICAgICAgICAgcmVmPXt0aGlzLm1vZGFsUmVmfVxyXG4gICAgICAgICAgZm9vdGVyPXtmb290ZXJ9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgIHtzdGF0dXMgPT0gMSA/IChcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgPE5zY1VwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17KGZpbGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBhbGxvd0ZpbGVTdWZmaXg9e1tcInhsc1wiLCBcInhsc3hcIl19XHJcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtcIi54bHMsLnhsc3hcIn1cclxuICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtmaWxlID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEZvbGRlck91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L05zY1VwbG9hZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgIHtkb3duTG9hZFRlbXBsZXQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxOc2NEb3duTG9hZCB1cmw9e2Rvd25UZW1wbGV0VXJsfT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxOU0NCdXR0b24gdHlwZT1cInByaW1hcnlcIiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5qih5p2/5LiL6L29XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L05zY0Rvd25Mb2FkPlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC10aXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgMeOAgeaUr+aMgUV4Y2VsIDIwMDflj4rku6XkuIrniYjmnKzvvIzkuJTmr4/mrKHlj6rog73kuIrkvKDkuIDkuKrmlofku7bvvJtcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PjLjgIHlr7zlhaXliY3lhYjkuIvovb3mqKHmnb/vvIzlubbmoLnmja7mqKHmnb/loavlhpnmlbDmja7vvJs8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB7ZmlsZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLWZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHR5cGU9XCJleGNlbFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS10aXRsZVwiPntmaWxlLm5hbWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtZGVzY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpKflsI/vvJp7dGhpcy5maWxlU2l6ZUtiKGZpbGUuc2l6ZSkgKyBcIktCXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxTdGVwc1xyXG4gICAgICAgICAgICAgICAgICBjdXJyZW50PXtjdXJyZW50U3RlcH1cclxuICAgICAgICAgICAgICAgICAgaXRlbXM9e1tcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCLmlbDmja7liIbmnpBcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaVsOaNruaPkuWFpVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicmVzdWx0LWNvbnRlbnRcIn0+e3RoaXMucmVuZGVyUmVzdWx0KCl9PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L05zY01vZGFsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IE5zY0ltcG9ydERhdGE7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFdBQVcsTUFBTSxhQUFhO0FBQ3JDLE9BQU9DLFFBQVEsTUFBTSxVQUFVO0FBQy9CLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMseUJBQXlCLFFBQ3BCLG1CQUFtQjtBQUMxQixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUU5QixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQWtCbEMsTUFBTUMsYUFBYSxTQUFTZCxLQUFLLENBQUNlLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDekQ7TUFDTkMsTUFBTSxFQUFFLENBQUM7TUFDVEMsSUFBSSxFQUFFLElBQUk7TUFDVkMsV0FBVyxFQUFFLENBQUM7TUFDZEMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRSxFQUFFO01BQ2JDLFFBQVEsRUFBRSxFQUFFO01BQ1pDLGFBQWEsRUFBRTtJQUNqQixDQUFDO0lBQUFQLGVBQUEsZ0NBQ1VsQixLQUFLLENBQUMwQixTQUFTLENBQU0sQ0FBQztFQUFBO0VB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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","NscUpload","NSCButton","NscDownLoad","NscModal","FileIcon","UploadOutlined","FolderOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Steps","nscFile","Alert","Collapse","NscImportData","PureComponent","constructor","arguments","_defineProperty","status","file","currentStep","requestStatus","errorList","warnList","buttonLoading","createRef","fileSizeKb","number","length","undefined","toFixed","show","_this$modalRef$curren","modalRef","current","hide","_this$modalRef$curren2","resetData","importData","isOverwrite","requestConfig","importUrl","onCallBacks","props","data","config","_objectWithoutProperties","_excluded","setState","importFile","url","_objectSpread","then","res","code","warnings","errors","_message","success","importCallBack","renderErrorContent","list","map","item","index","state","createElement","key","rowNum","errorMsg","renderResult","alert_msg_map","error","warning","_alert_msg_map$reques","style","marginTop","message","type","showIcon","expandIconPosition","className","backgroundColor","border","borderRadius","defaultActiveKey","Panel","header","color","extra","background","render","downLoadTemplet","downTempletUrl","checkData","checkUrl","footer","onClick","errorCount","duplicateCount","duplicateList","disabled","icon","marginLeft","children","Fragment","showButton","title","width","wrapClassName","ref","onCancel","display","beforeUpload","allowFileSuffix","accept","showUploadList","name","size","items"],"sources":["../../../src/components/base/importData/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport \"./index.less\";\r\nimport NscUpload from \"../upload\";\r\nimport NSCButton from \"../button\";\r\nimport NscDownLoad from \"../download\";\r\nimport NscModal from \"../modal\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n UploadOutlined,\r\n FolderOutlined,\r\n CloseCircleOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport Steps from \"../steps\";\r\nimport nscFile from \"nsc-file\";\r\nimport { message } from \"antd\";\r\nimport Alert from \"../alert\";\r\nimport Collapse from \"../collapse\";\r\nimport Icon from \"../common/Icon\";\r\n\r\ninterface ImportPropos {\r\n checkData?: boolean; //是否进行数据校验,默认false\r\n checkUrl?: string; //数据校验接口地址\r\n importUrl: string; //数据导入地址\r\n requestConfig?: any;\r\n downLoadTemplet?: boolean; //是否显示下载模板按钮\r\n downTempletUrl?: string; //下载模板地址\r\n onCallBacks?: {\r\n checkCallBack?: any; //数据校验回调\r\n importCallBack?: any; //数据导入回调\r\n closeCallBack?: any;\r\n };\r\n showButton?: boolean;\r\n [propsName: string]: any;\r\n}\r\nclass NscImportData extends React.PureComponent<ImportPropos, any> {\r\n state = {\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n buttonLoading: false,\r\n };\r\n modalRef = React.createRef<any>();\r\n fileSizeKb(number = 0) {\r\n return (number / 1024).toFixed(2);\r\n }\r\n show() {\r\n this.modalRef.current?.show();\r\n }\r\n hide() {\r\n this.modalRef.current?.hide();\r\n this.resetData();\r\n }\r\n importData(file, isOverwrite) {\r\n const { requestConfig = {}, importUrl, onCallBacks = {} } = this.props;\r\n let { data = {}, ...config } = requestConfig;\r\n this.setState({\r\n buttonLoading: true,\r\n });\r\n // let formData = {...data}\r\n\r\n nscFile\r\n .importFile(\r\n {\r\n url: importUrl,\r\n data: { ...data, isOverwrite: isOverwrite },\r\n file: file,\r\n },\r\n config\r\n )\r\n .then((res: any) => {\r\n this.setState({\r\n buttonLoading: false,\r\n });\r\n if (res.code == 200) {\r\n // message.success(\"导入成功!\");\r\n this.setState({\r\n requestStatus: \"success\",\r\n });\r\n if (res.data.warnings.length > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.warnings,\r\n });\r\n }\r\n if (res.data.errors.length > 0) {\r\n message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n warnList: res.data.errors,\r\n });\r\n }else{\r\n message.success(\"导入成功!\");\r\n }\r\n onCallBacks?.importCallBack && onCallBacks?.importCallBack(res);\r\n // this.hide();\r\n } else {\r\n message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n renderErrorContent(list) {\r\n return list.map((item, index) => {\r\n if (this.state.requestStatus == \"warning\") {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{\"第\" + item.rowNum + \"行数据重复;\"}</div>\r\n );\r\n } else {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{item.errorMsg}</div>\r\n );\r\n }\r\n });\r\n }\r\n renderResult() {\r\n const { requestStatus, errorList, warnList } = this.state;\r\n const alert_msg_map = {\r\n success: \"导入成功\",\r\n error: \"导入失败\",\r\n warning: \"告警提示\",\r\n };\r\n if (requestStatus) {\r\n if (requestStatus == \"success\") {\r\n return (\r\n <Alert\r\n style={{ marginTop: \"8px\" }}\r\n message={alert_msg_map[requestStatus] ?? \"提示\"}\r\n type={\"success\"}\r\n showIcon\r\n />\r\n );\r\n } else {\r\n return (\r\n <Collapse\r\n expandIconPosition=\"right\"\r\n className={\r\n requestStatus == \"warning\" ? \"content-warning\" : \"content-error\"\r\n }\r\n style={{\r\n backgroundColor:\r\n requestStatus == \"warning\" ? \"#FCE1AB\" : \"#fff2f0\",\r\n border:\r\n requestStatus == \"warning\"\r\n ? \"1px solid #FCE1AB\"\r\n : \"1px solid #FFCCC7\",\r\n borderRadius: \"2px\",\r\n }}\r\n defaultActiveKey={[\"1\"]}\r\n >\r\n <Collapse.Panel\r\n key=\"1\"\r\n header={\r\n <div>\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? (\r\n <ExclamationCircleOutlined />\r\n ) : (\r\n <CloseCircleOutlined />\r\n )}\r\n {alert_msg_map[requestStatus]}\r\n </span>\r\n </div>\r\n }\r\n extra={\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? \"查看\" : \"查看错误\"}\r\n </span>\r\n }\r\n >\r\n <div\r\n style={{\r\n background:\r\n requestStatus == \"warning\" ? \"#FFFDF6\" : \"#fff9f9\",\r\n }}\r\n className=\"content-error__msg\"\r\n >\r\n {this.renderErrorContent(\r\n requestStatus == \"warning\" ? warnList : errorList\r\n )}\r\n </div>\r\n </Collapse.Panel>\r\n </Collapse>\r\n );\r\n }\r\n }\r\n }\r\n resetData() {\r\n this.setState({\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n });\r\n }\r\n render() {\r\n const { file, status, currentStep, requestStatus } = this.state;\r\n const {\r\n downLoadTemplet,\r\n downTempletUrl,\r\n checkData,\r\n checkUrl,\r\n requestConfig,\r\n } = this.props;\r\n const footer = (\r\n <div className=\"footer\">\r\n <NSCButton\r\n onClick={() => {\r\n this.hide();\r\n }}\r\n >\r\n 取消\r\n </NSCButton>\r\n\r\n {status == 1 && this.state.file && (\r\n <NSCButton\r\n onClick={() => {\r\n this.setState({\r\n status: 2,\r\n currentStep: 1,\r\n });\r\n if (checkData) {\r\n nscFile\r\n .importFile({\r\n url: checkUrl,\r\n file: file,\r\n data: requestConfig?.data || {},\r\n })\r\n .then((res: any) => {\r\n if (res.code == 200) {\r\n if (\r\n res.data.errorCount == 0 &&\r\n res.data.duplicateCount == 0\r\n ) {\r\n this.setState({\r\n currentStep: 2,\r\n requestStatus: \"success\",\r\n });\r\n this.importData(file, false);\r\n return;\r\n }\r\n if (res.data.errorCount > 0) {\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errorList,\r\n });\r\n return;\r\n }\r\n if (res.data.duplicateCount > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.duplicateList,\r\n });\r\n return;\r\n }\r\n }\r\n });\r\n } else {\r\n this.importData(file, false);\r\n }\r\n }}\r\n disabled={file ? false : true}\r\n icon={<UploadOutlined />}\r\n style={{ marginLeft: 20 }}\r\n >\r\n 开始上传\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, false);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 不覆盖数据\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, true);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 覆盖数据\r\n </NSCButton>\r\n )}\r\n </div>\r\n );\r\n\r\n return (\r\n <div>\r\n {this.props.children ? (\r\n this.props.children\r\n ) : (\r\n <>\r\n {this.props.showButton && (\r\n <NSCButton\r\n type=\"primary\"\r\n onClick={() => {\r\n this.show();\r\n }}\r\n >\r\n 数据导入\r\n </NSCButton>\r\n )}\r\n </>\r\n )}\r\n\r\n <NscModal\r\n title=\"数据导入\"\r\n width={800}\r\n wrapClassName={\"import-modal\"}\r\n ref={this.modalRef}\r\n footer={footer}\r\n onCancel={() => {\r\n this.hide();\r\n }}\r\n >\r\n <div className=\"content\">\r\n {status == 1 ? (\r\n <div>\r\n <div style={{ display: \"flex\" }}>\r\n <NscUpload\r\n beforeUpload={(file) => {\r\n this.setState({\r\n file,\r\n });\r\n return false;\r\n }}\r\n allowFileSuffix={[\"xls\", \"xlxs\"]}\r\n accept={\".xls,.xlxs\"}\r\n showUploadList={false}\r\n >\r\n <NSCButton\r\n type={\"primary\"}\r\n disabled={file ? true : false}\r\n icon={<FolderOutlined />}\r\n >\r\n 选择文件\r\n </NSCButton>\r\n </NscUpload>\r\n\r\n {downLoadTemplet && (\r\n <NscDownLoad url={downTempletUrl}>\r\n <NSCButton type=\"primary\" style={{ marginLeft: 20 }}>\r\n 模板下载\r\n </NSCButton>\r\n </NscDownLoad>\r\n )}\r\n </div>\r\n <div className=\"upload-tip\">\r\n <div className=\"upload-tip-left\">\r\n <ExclamationCircleOutlined />\r\n </div>\r\n <div className=\"upload-tip-content\">\r\n <div>\r\n 1、支持Excel 2007及以上版本,且每次只能上传一个文件;\r\n </div>\r\n <div>2、导入前先下载模板,并根据模板填写数据;</div>\r\n </div>\r\n </div>\r\n\r\n {file && (\r\n <div className=\"upload-file\">\r\n <div className=\"file-icon\">\r\n <FileIcon type=\"excel\" />\r\n </div>\r\n <div className=\"file-content\">\r\n <div className=\"file-title\">{file.name}</div>\r\n <div className=\"file-desc\">\r\n <span>\r\n 文件大小:{this.fileSizeKb(file.size) + \"KB\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div>\r\n <Steps\r\n current={currentStep}\r\n items={[\r\n {\r\n title: \"数据分析\",\r\n },\r\n {\r\n title: \"数据插入\",\r\n },\r\n ]}\r\n />\r\n <div className={\"result-content\"}>{this.renderResult()}</div>\r\n </div>\r\n )}\r\n </div>\r\n </NscModal>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default NscImportData;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","NscUpload","NSCButton","NscDownLoad","NscModal","FileIcon","UploadOutlined","FolderOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Steps","nscFile","Alert","Collapse","NscImportData","PureComponent","constructor","arguments","_defineProperty","status","file","currentStep","requestStatus","errorList","warnList","buttonLoading","createRef","fileSizeKb","number","length","undefined","toFixed","show","_this$modalRef$curren","modalRef","current","hide","_this$modalRef$curren2","resetData","importData","isOverwrite","requestConfig","importUrl","onCallBacks","props","data","config","_objectWithoutProperties","_excluded","setState","importFile","url","_objectSpread","then","res","code","warnings","errors","_message","success","importCallBack","renderErrorContent","list","map","item","index","state","createElement","key","rowNum","errorMsg","renderResult","alert_msg_map","error","warning","_alert_msg_map$reques","style","marginTop","message","type","showIcon","expandIconPosition","className","backgroundColor","border","borderRadius","defaultActiveKey","Panel","header","color","extra","background","render","downLoadTemplet","downTempletUrl","checkData","checkUrl","footer","onClick","errorCount","duplicateCount","duplicateList","disabled","icon","marginLeft","children","Fragment","showButton","title","width","wrapClassName","ref","onCancel","display","beforeUpload","allowFileSuffix","accept","showUploadList","name","size","items"],"sources":["../../../src/components/base/importData/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport \"./index.less\";\r\nimport NscUpload from \"../upload\";\r\nimport NSCButton from \"../button\";\r\nimport NscDownLoad from \"../download\";\r\nimport NscModal from \"../modal\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n UploadOutlined,\r\n FolderOutlined,\r\n CloseCircleOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport Steps from \"../steps\";\r\nimport nscFile from \"nsc-file\";\r\nimport { message } from \"antd\";\r\nimport Alert from \"../alert\";\r\nimport Collapse from \"../collapse\";\r\nimport Icon from \"../common/Icon\";\r\n\r\ninterface ImportPropos {\r\n checkData?: boolean; //是否进行数据校验,默认false\r\n checkUrl?: string; //数据校验接口地址\r\n importUrl: string; //数据导入地址\r\n requestConfig?: any;\r\n downLoadTemplet?: boolean; //是否显示下载模板按钮\r\n downTempletUrl?: string; //下载模板地址\r\n onCallBacks?: {\r\n checkCallBack?: any; //数据校验回调\r\n importCallBack?: any; //数据导入回调\r\n closeCallBack?: any;\r\n };\r\n showButton?: boolean;\r\n [propsName: string]: any;\r\n}\r\nclass NscImportData extends React.PureComponent<ImportPropos, any> {\r\n state = {\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n buttonLoading: false,\r\n };\r\n modalRef = React.createRef<any>();\r\n fileSizeKb(number = 0) {\r\n return (number / 1024).toFixed(2);\r\n }\r\n show() {\r\n this.modalRef.current?.show();\r\n }\r\n hide() {\r\n this.modalRef.current?.hide();\r\n this.resetData();\r\n }\r\n importData(file, isOverwrite) {\r\n const { requestConfig = {}, importUrl, onCallBacks = {} } = this.props;\r\n let { data = {}, ...config } = requestConfig;\r\n this.setState({\r\n buttonLoading: true,\r\n });\r\n // let formData = {...data}\r\n\r\n nscFile\r\n .importFile(\r\n {\r\n url: importUrl,\r\n data: { ...data, isOverwrite: isOverwrite },\r\n file: file,\r\n },\r\n config\r\n )\r\n .then((res: any) => {\r\n this.setState({\r\n buttonLoading: false,\r\n });\r\n if (res.code == 200) {\r\n // message.success(\"导入成功!\");\r\n this.setState({\r\n requestStatus: \"success\",\r\n });\r\n if (res.data.warnings.length > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.warnings,\r\n });\r\n }\r\n if (res.data.errors.length > 0) {\r\n message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n warnList: res.data.errors,\r\n });\r\n }else{\r\n message.success(\"导入成功!\");\r\n }\r\n onCallBacks?.importCallBack && onCallBacks?.importCallBack(res);\r\n // this.hide();\r\n } else {\r\n message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n renderErrorContent(list) {\r\n return list.map((item, index) => {\r\n if (this.state.requestStatus == \"warning\") {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{\"第\" + item.rowNum + \"行数据重复;\"}</div>\r\n );\r\n } else {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{item.errorMsg}</div>\r\n );\r\n }\r\n });\r\n }\r\n renderResult() {\r\n const { requestStatus, errorList, warnList } = this.state;\r\n const alert_msg_map = {\r\n success: \"导入成功\",\r\n error: \"导入失败\",\r\n warning: \"告警提示\",\r\n };\r\n if (requestStatus) {\r\n if (requestStatus == \"success\") {\r\n return (\r\n <Alert\r\n style={{ marginTop: \"8px\" }}\r\n message={alert_msg_map[requestStatus] ?? \"提示\"}\r\n type={\"success\"}\r\n showIcon\r\n />\r\n );\r\n } else {\r\n return (\r\n <Collapse\r\n expandIconPosition=\"right\"\r\n className={\r\n requestStatus == \"warning\" ? \"content-warning\" : \"content-error\"\r\n }\r\n style={{\r\n backgroundColor:\r\n requestStatus == \"warning\" ? \"#FCE1AB\" : \"#fff2f0\",\r\n border:\r\n requestStatus == \"warning\"\r\n ? \"1px solid #FCE1AB\"\r\n : \"1px solid #FFCCC7\",\r\n borderRadius: \"2px\",\r\n }}\r\n defaultActiveKey={[\"1\"]}\r\n >\r\n <Collapse.Panel\r\n key=\"1\"\r\n header={\r\n <div>\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? (\r\n <ExclamationCircleOutlined />\r\n ) : (\r\n <CloseCircleOutlined />\r\n )}\r\n {alert_msg_map[requestStatus]}\r\n </span>\r\n </div>\r\n }\r\n extra={\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? \"查看\" : \"查看错误\"}\r\n </span>\r\n }\r\n >\r\n <div\r\n style={{\r\n background:\r\n requestStatus == \"warning\" ? \"#FFFDF6\" : \"#fff9f9\",\r\n }}\r\n className=\"content-error__msg\"\r\n >\r\n {this.renderErrorContent(\r\n requestStatus == \"warning\" ? warnList : errorList\r\n )}\r\n </div>\r\n </Collapse.Panel>\r\n </Collapse>\r\n );\r\n }\r\n }\r\n }\r\n resetData() {\r\n this.setState({\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n });\r\n }\r\n render() {\r\n const { file, status, currentStep, requestStatus } = this.state;\r\n const {\r\n downLoadTemplet,\r\n downTempletUrl,\r\n checkData,\r\n checkUrl,\r\n requestConfig,\r\n } = this.props;\r\n const footer = (\r\n <div className=\"footer\">\r\n <NSCButton\r\n onClick={() => {\r\n this.hide();\r\n }}\r\n >\r\n 取消\r\n </NSCButton>\r\n\r\n {status == 1 && this.state.file && (\r\n <NSCButton\r\n onClick={() => {\r\n this.setState({\r\n status: 2,\r\n currentStep: 1,\r\n });\r\n if (checkData) {\r\n nscFile\r\n .importFile({\r\n url: checkUrl,\r\n file: file,\r\n data: requestConfig?.data || {},\r\n })\r\n .then((res: any) => {\r\n if (res.code == 200) {\r\n if (\r\n res.data.errorCount == 0 &&\r\n res.data.duplicateCount == 0\r\n ) {\r\n this.setState({\r\n currentStep: 2,\r\n requestStatus: \"success\",\r\n });\r\n this.importData(file, false);\r\n return;\r\n }\r\n if (res.data.errorCount > 0) {\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errorList,\r\n });\r\n return;\r\n }\r\n if (res.data.duplicateCount > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.duplicateList,\r\n });\r\n return;\r\n }\r\n }\r\n });\r\n } else {\r\n this.importData(file, false);\r\n }\r\n }}\r\n disabled={file ? false : true}\r\n icon={<UploadOutlined />}\r\n style={{ marginLeft: 20 }}\r\n >\r\n 开始上传\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, false);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 不覆盖数据\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, true);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 覆盖数据\r\n </NSCButton>\r\n )}\r\n </div>\r\n );\r\n\r\n return (\r\n <div>\r\n {this.props.children ? (\r\n this.props.children\r\n ) : (\r\n <>\r\n {this.props.showButton && (\r\n <NSCButton\r\n type=\"primary\"\r\n onClick={() => {\r\n this.show();\r\n }}\r\n >\r\n 数据导入\r\n </NSCButton>\r\n )}\r\n </>\r\n )}\r\n\r\n <NscModal\r\n title=\"数据导入\"\r\n width={800}\r\n wrapClassName={\"import-modal\"}\r\n ref={this.modalRef}\r\n footer={footer}\r\n onCancel={() => {\r\n this.hide();\r\n }}\r\n >\r\n <div className=\"content\">\r\n {status == 1 ? (\r\n <div>\r\n <div style={{ display: \"flex\" }}>\r\n <NscUpload\r\n beforeUpload={(file) => {\r\n this.setState({\r\n file,\r\n });\r\n return false;\r\n }}\r\n allowFileSuffix={[\"xls\", \"xlsx\"]}\r\n accept={\".xls,.xlsx\"}\r\n showUploadList={false}\r\n >\r\n <NSCButton\r\n type={\"primary\"}\r\n disabled={file ? true : false}\r\n icon={<FolderOutlined />}\r\n >\r\n 选择文件\r\n </NSCButton>\r\n </NscUpload>\r\n\r\n {downLoadTemplet && (\r\n <NscDownLoad url={downTempletUrl}>\r\n <NSCButton type=\"primary\" style={{ marginLeft: 20 }}>\r\n 模板下载\r\n </NSCButton>\r\n </NscDownLoad>\r\n )}\r\n </div>\r\n <div className=\"upload-tip\">\r\n <div className=\"upload-tip-left\">\r\n <ExclamationCircleOutlined />\r\n </div>\r\n <div className=\"upload-tip-content\">\r\n <div>\r\n 1、支持Excel 2007及以上版本,且每次只能上传一个文件;\r\n </div>\r\n <div>2、导入前先下载模板,并根据模板填写数据;</div>\r\n </div>\r\n </div>\r\n\r\n {file && (\r\n <div className=\"upload-file\">\r\n <div className=\"file-icon\">\r\n <FileIcon type=\"excel\" />\r\n </div>\r\n <div className=\"file-content\">\r\n <div className=\"file-title\">{file.name}</div>\r\n <div className=\"file-desc\">\r\n <span>\r\n 文件大小:{this.fileSizeKb(file.size) + \"KB\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div>\r\n <Steps\r\n current={currentStep}\r\n items={[\r\n {\r\n title: \"数据分析\",\r\n },\r\n {\r\n title: \"数据插入\",\r\n },\r\n ]}\r\n />\r\n <div className={\"result-content\"}>{this.renderResult()}</div>\r\n </div>\r\n )}\r\n </div>\r\n </NscModal>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default NscImportData;\r\n"],"mappings":"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"}