nsc-react-component 4.3.3 → 4.3.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.
@@ -96,10 +96,12 @@ class FormPage extends PureComponent {
96
96
  const {
97
97
  defaultValue
98
98
  } = this.props;
99
+ console.log('');
99
100
  return convertStringToObj(defaultValue, this.props.Utils || {}, {
100
101
  funcs: this.props.funcs,
101
102
  pageRef: this.props.pageRef,
102
- formRef: this.formRef
103
+ formRef: this.formRef,
104
+ refs: this.refList
103
105
  });
104
106
  }
105
107
  //表单显示
@@ -671,7 +673,7 @@ class FormPage extends PureComponent {
671
673
  key: index
672
674
  }, PaneWithoutPageType(Pane, _objectSpread({}, Pane.props)));
673
675
  }), formType === "page" && footer == true && /*#__PURE__*/React.createElement("div", {
674
- className: cls("nsc-form-page-footer", [this.state.width ? "nsc-form-page-footer-width" : ""], this.props.footerClassName)
676
+ className: cls(this.props.footerClassName, "nsc-form-page-footer", [this.state.width ? "nsc-form-page-footer-width" : ""])
675
677
  }, /*#__PURE__*/React.createElement(Button, _extends({}, this.props.cancelButtonProps, {
676
678
  onClick: () => {
677
679
  if (this.props.onCancel) {
@@ -699,4 +701,4 @@ class FormPage extends PureComponent {
699
701
  }
700
702
  }
701
703
  export default FormPage;
702
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInNob3ciLCJvcmdWYWx1ZSIsImVkaXRvcmZsYWciLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJjYWxsQmFjayIsIl90aGlzJGZvcm1SZWYkY3VycmVudDMiLCJjb252ZXJ0VmFsdWUiLCJzaG93Rm9ybSIsImFmdGVyUmVuZGVyIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NCIsImhpZGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ1Iiwib25IaWRlRm9ybSIsImhpZGVGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NiIsInNldExvYWRpbmciLCJzZXRFZGl0VHlwZSIsInR5cGUiLCJzZXRFZGl0SWQiLCJnZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ3IiwiZm9ybVZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJjbG9uZURlZXAiLCJmaWxlRm9ybWF0IiwibmV3RmlsZUxpc3QiLCJtYXAiLCJpdGVtIiwiZ2V0RmlsZUxpc3QiLCJzdWJtaXRGbGFnIiwiZXJyb3IiLCJkYXRlVmFsdWVGb3JtYXQiLCJrZXkiLCJvbGRkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwicmFuZ2VyRGF0ZSIsImRhdGVGb3JtYXQiLCJlIiwibmV3RGF0YSIsInN0cmluZ2lmeSIsInZhbHVlcyIsImZvckVhY2giLCJmaWxlS2V5IiwidmFsdWUxIiwidmFsdWUyIiwic2V0Rm9ybVZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OCIsIm5ld1ZhbHVlIiwiZG9TdWJtaXQiLCJmb3JtZGF0YSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDkiLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJyZXF1ZXN0Q29uZmlnIiwiYWRkVXJsIiwiZWRpdG9yVXJsIiwiYWRkUGFyYW1zIiwiZWRpdG9yUGFyYW1zIiwidXJsIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY29udmVyUGFyYW1zIiwiY29uc29sZSIsIm90aGVyUGFyYW1zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwib25TdWJtaXQiLCJub1VuZGVmaW5lZCIsIm1zZyIsInN1Y2Nlc3MiLCJzZXRUaW1lb3V0Iiwib2JqIiwiZmlsZUlkIiwiZmlsZU5hbWUiLCJzdGF0dXMiLCJwdXNoIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MTAiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwicmV0dXJuRGF0YSIsImNhdGNoIiwiZXJyb3JJbmZvIiwidmFsdWVDaGFuZ2UiLCJfcmVmIiwidmFsdWVPcHRpb24iLCJkaWN0TmFtZSIsIm5ld05hbWVzIiwib25DaGFuZ2UiLCJldmVudE9wdGlvbiIsInJlZnMiLCJyZWZMaXN0IiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsImluZGV4IiwiX2l0ZW0kcHJvcHMiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzcGxpdCIsImFsbG93Q2hhcnMiLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJfaXRlbSRwcm9wczIiLCJzcGFuIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzMyIsIl9pdGVtJHByb3BzNCIsIl9pdGVtJHByb3BzNSIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJmb290ZXIiLCJ0aXRsZSIsIm1vZGFsUHJvcHMiLCJkZWZhdWx0TW9kYWxQcm9wcyIsImRyYXdlclByb3BzIiwiZGVmYXVsdERyYXdlclByb3BzIiwic2VsZkJ1dHRvbnMiLCJzZWxmUGFuZXMiLCJjaGlsZCIsIl9jaGlsZCRwcm9wcyIsInBhZ2VUeXBlIiwib25PayIsIm9uQ2FuY2VsIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwiZm9vdGVyQnV0dG9uIiwib25DbG9zZSIsIm5ld0Zvcm1zT2JqIiwiZm9ybUdyb3VwcyIsIm90aGVyR3J1cHMiLCJzaG93Rm9ybXMiLCJncm91cE5hbWUiLCJpbmRleE9mIiwiZ3JvdXBGb3JtcyIsImZvcm0iLCJQYW5lV2l0aG91dFBhZ2VUeXBlIiwiUGFuZSIsImNsZWFuUHJvcHMiLCJfZXhjbHVkZWQyIiwic2hvd01vZGVsIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9vdGVyQ2xhc3NOYW1lIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuZXhwb3J0IGludGVyZmFjZSBGb3JtUGFnZVByb3BzIHtcclxuICBmb3Jtcz86IEFycmF5PGFueT47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBmb290ZXJDbGFzc05hbWU/OiBhbnk7XHJcbiAgb2tCdXR0b25Qcm9wcz86IGFueTtcclxuICBjYW5jZWxCdXR0b25Qcm9wcz86IGFueTtcclxuICBmb290ZXI/OiBSZWFjdE5vZGUgfCBib29sZWFuO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uRm9ybUNoYW5nZT86ICh2YWx1ZT86IGFueSwgYWxsVmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgc3VibWl0UGFyYW1zPzogYW55OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBmdW5jcz86IGFueTtcclxuICBwcm9wcz86IElGb3JtUHJvcHM7XHJcbiAgcmVxdWVzdE9iamVjdD86IHtcclxuICAgIGFkZFVybD86IHN0cmluZztcclxuICAgIGVkaXRvclVybD86IHN0cmluZztcclxuICAgIGFkZFBhcmFtcz86IGFueTtcclxuICAgIGVkaXRvclBhcmFtcz86IGFueTtcclxuICAgIGRldGFpbFVybD86IHN0cmluZztcclxuICB9O1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgZm9vdGVyV2lkdGg/OiBib29sZWFuO1xyXG4gIGVkaXRUeXBlPzogXCLmlrDlop5cIiB8IFwi57yW6L6RXCIgfCBcIuafpeeci1wiO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGVkaXRJZD86IHN0cmluZztcclxuICBtb2RhbFByb3BzPzogYW55O1xyXG4gIGRyYXdlclByb3BzPzogYW55O1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+ihqOWNleaYvuekulxyXG4gIHNob3cob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgbGV0IGxhYmVsID0gXCLmlrDlop5cIjtcclxuICAgIGlmIChvcmdWYWx1ZSAmJiBlZGl0b3JmbGFnID09IFwiZWRpdG9yXCIpIHtcclxuICAgICAgbGFiZWwgPSBcIue8lui+kVwiO1xyXG4gICAgfSBlbHNlIGlmIChvcmdWYWx1ZSAmJiAoZWRpdG9yZmxhZyA9PSBcImRldGFpbFwiIHx8IGVkaXRvcmZsYWcgPT0gXCJzZWFyY2hcIikpIHtcclxuICAgICAgbGFiZWwgPSBcIuafpeeci1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG9yZ1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgICAgdmFsdWU6IG9yZ1ZhbHVlLFxyXG4gICAgICAgICAgZWRpdElkOiBvcmdWYWx1ZS5pZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKG9yZ1ZhbHVlLCBsYWJlbCk7XHJcbiAgICAgICAgICAvL+WkhOeQhuaWh+S7tuaVsOaNrlxyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHZhbHVlLCB7XHJcbiAgICAgICAgICAgIGFmdGVyUmVuZGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKClcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybShkZWZhdWx0VmFsdWUgfHwge30sIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlKGhpZGUgPSB0cnVlKSB7XHJcbiAgICBjb25zdCB7IG9uSGlkZUZvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25IaWRlRm9ybSkge1xyXG4gICAgICBvbkhpZGVGb3JtICYmIG9uSGlkZUZvcm0oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICBoaWRlICYmIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZmlsZUxpc3Q6IHt9IH0pO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIHNob3dGb3JtKG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIiwgY2FsbEJhY2s/OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvdyhvcmdWYWx1ZSwgZWRpdG9yZmxhZywgY2FsbEJhY2spO1xyXG4gIH1cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBsb2FkaW5nIH0pO1xyXG4gIH1cclxuICBzZXRFZGl0VHlwZSh0eXBlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgbGFiZWw6IHR5cGUsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0RWRpdElkKGlkKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZWRpdElkOiBpZCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRGb3JtVmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzLCBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgbGV0IGRhdGEgPSBsb2Rhc2guY2xvbmVEZWVwKHsgLi4uZm9ybVZhbHVlLCAuLi5kaWN0TmFtZXMgfSk7XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IG5ld0ZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGVMaXN0W2l0ZW1dLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICBuZXdGaWxlTGlzdFtpdGVtXSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gdGhpcy5nZXRGaWxlTGlzdChmaWxlTGlzdFtpdGVtXSB8fCBbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgLi4ubmV3RmlsZUxpc3QgfTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zdWJtaXRGbGFnKSB7XHJcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXCLor7fnrYnlvoXmiYDmnInmlofku7bkuIrkvKDlrozmiJDvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVWYWx1ZUZvcm1hdCkpIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSBkYXRhW2tleV07XHJcbiAgICAgICAgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yYW5nZXJEYXRlW2tleV0pIHtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgZGF0YVt0aGlzLnJhbmdlckRhdGVba2V5XVswXV0gPSBkYXlqcyhvbGRkYXRhWzBdKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtrZXldXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgZGF0YVt0aGlzLnJhbmdlckRhdGVba2V5XVsxXV0gPSBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtrZXldXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIHx8IHRoaXMuc3RhdGUuZWRpdElkIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgfVxyXG4gIGNvbnZlcnRWYWx1ZSh2YWx1ZSwgdHlwZSkge1xyXG4gICAgbGV0IHZhbHVlcyA9IGxvZGFzaC5jbG9uZURlZXAodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBmaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0LmZvckVhY2goKGZpbGVLZXkpID0+IHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1tmaWxlS2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSAmJiBBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtmaWxlS2V5XSA9IHRoaXMuZ2V0RmlsZUxpc3Qob2xkZGF0YSB8fCBbXSwgdHlwZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBmaWxlTGlzdCB9KTtcclxuICAgIH1cclxuICAgIC8v5aSE55CG5pel5pyf5qC85byP5pWw5o2uXHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yYW5nZXJEYXRlW2tleV0pIHtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMSA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVswXV07XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZTIgPSB2YWx1ZXNbdGhpcy5yYW5nZXJEYXRlW2tleV1bMV1dO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xyXG4gICAgICAgICAgICAgIHZhbHVlc1trZXldID0gW1xyXG4gICAgICAgICAgICAgICAgZGF5anModmFsdWUxLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTIsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG4gIH1cclxuICBzZXRGb3JtVmFsdWUodmFsdWUsIHR5cGUgPSBcIuafpeeci1wiKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgfVxyXG4gIGRvU3VibWl0KGZvcm1kYXRhLCBsYWJlbCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdWJtaXRVcmwsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBjYWxsQmFjayxcclxuICAgICAgcmVxdWVzdE9iamVjdCA9IHt9LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWRkVXJsLCBlZGl0b3JVcmwsIGFkZFBhcmFtcywgZWRpdG9yUGFyYW1zIH0gPSByZXF1ZXN0T2JqZWN0O1xyXG4gICAgbGV0IHVybCA9IHN1Ym1pdFVybDtcclxuICAgIGxldCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgaWYgKCFsYWJlbCB8fCBsYWJlbCA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgIHVybCA9IGFkZFVybCA/IGFkZFVybCA6IHN1Ym1pdFVybDtcclxuICAgICAgaWYgKGFkZFBhcmFtcyAmJiB0eXBlb2YgYWRkUGFyYW1zID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge307XHJcbiAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCBhZGRQYXJhbXMpO1xyXG4gICAgICAgIGxldCBjb252ZXJQYXJhbXMgPSBmdW5jKFV0aWxzKTtcclxuICAgICAgICBwYXJhbXMgPSBjb252ZXJQYXJhbXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gYWRkUGFyYW1zID8gYWRkUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgdXJsID0gZWRpdG9yVXJsID8gZWRpdG9yVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoZWRpdG9yUGFyYW1zICYmIHR5cGVvZiBlZGl0b3JQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGVkaXRvclBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBlZGl0b3JQYXJhbXMgPyBlZGl0b3JQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLphY3nva5VcmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZGF0YSA9IHt9LCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxyXG4gICAgICB1cmwsXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiB7IC4uLmZvcm1kYXRhLCAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgICAuLi5vdGhlclBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlLCBtc2cgfSA9IHJlcztcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBnZXRGaWxlTGlzdChkYXRhLCBsYWJlbCA9IFwi5paw5aKeXCIpIHtcclxuICAgIHRoaXMuc3VibWl0RmxhZyA9IHRydWU7XHJcbiAgICBsZXQgZmlsZUxpc3QgPSBbXSBhcyBhbnk7XHJcbiAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgZGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgICAgZmlsZUlkOiBpdGVtLmZpbGVJZCxcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICBvYmouc3RhdHVzID0gXCJkb25lXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsYWJlbCAhPT0gXCLmn6XnnItcIiAmJiBpdGVtLnN0YXR1cyAhPT0gXCJkb25lXCIpIHtcclxuICAgICAgICAgIHRoaXMuc3VibWl0RmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWxlTGlzdC5wdXNoKG9iaik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbGVMaXN0O1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCB7IG9uU3VibWl0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcywgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgdmFsaWQgPSB0aGlzLnZhbGlkO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcclxuICAgICAgPy52YWxpZGF0ZUZpZWxkcygpXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuZ2V0Rm9ybVZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XHJcbiAgICAgICAgaWYgKG9uU3VibWl0KSB7XHJcbiAgICAgICAgICBsZXQgcmV0dXJuRGF0YSA9IGxvZGFzaC5jbG9uZURlZXAoZGF0YSk7XHJcbiAgICAgICAgICBvblN1Ym1pdCAmJiBvblN1Ym1pdChyZXR1cm5EYXRhLCBsYWJlbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZG9TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7fSk7XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlKHsgdHlwZSwgZGljdE5hbWUgfSwgcHJvcHMsIHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSkge1xyXG4gICAgaWYgKHZhbHVlT3B0aW9uKSB7XHJcbiAgICAgIGlmIChkaWN0TmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHsgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGNvbnN0IG5ld05hbWVzID0geyAuLi5kaWN0TmFtZXMgfSBhcyBhbnk7XHJcbiAgICAgICAgbmV3TmFtZXNbZGljdE5hbWVdID0gdmFsdWVPcHRpb24ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkaWN0TmFtZXM6IG5ld05hbWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcclxuICAgICAgaWYgKHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICBwcm9wcy5vbkNoYW5nZSh2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRPcHRpb24gPSB7XHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICBmb3JtUmVmOiB0aGlzLmZvcm1SZWYsXHJcbiAgICAgICAgICBmdW5jczogdGhpcy5wcm9wcy5mdW5jcyB8fCB7fSxcclxuICAgICAgICAgIHJlZnM6IHRoaXMucmVmTGlzdCxcclxuICAgICAgICAgIHBhZ2VSZWY6dGhpcy5wcm9wcy5wYWdlUmVmXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiU2VsZWN0XCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlT3B0aW9uID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgICBldmVudE9wdGlvbi5kYXRhID0gZGF0YTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJEYXRlUGlja2VyXCIgfHwgdHlwZSA9PSBcIlJhbmdlUGlja2VyXCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlU3RyID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNlbGZGdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb25cIiwgXCJVdGlsc1wiLCBwcm9wcy5vbkNoYW5nZSk7XHJcbiAgICAgICAgc2VsZkZ1bmMoZXZlbnRPcHRpb24sIFV0aWxzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyRm9ybShmb3JtcywgbGFiZWwpIHtcclxuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiUmFuZ2VQaWNrZXJcIiAmJiBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICAgIHRoaXMsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgICAgZGljdE5hbWU6IGl0ZW0uZGljdE5hbWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuYWxsb3dDaGFycyA9IHRydWU7IC8vZm9ybS5pdGVtIOS9v+eUqGlucHV057uE5Lu2YWxsb3dDaGFyc+W/hemhu+m7mOiupHRydWUs5LiN54S26L6T5YWl54m55q6K5a2X56ym5ou/5Yiw55qE5YC85LiN5a+5XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmRhdGFUeXBlO1xyXG4gICAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBwcm9wcy5wbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB8fCBpdGVtLnJlcXVpcmVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBpdGVtUmVmOiBhbnkgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gICAgICAgICAgdGhpcy5yZWZMaXN0W2l0ZW0ubmFtZV0gPSBpdGVtUmVmO1xyXG4gICAgICAgICAgaWYgKGl0ZW0udHlwZSAhPT0gXCJVcGxvYWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxDb2xcclxuICAgICAgICAgICAgICAgIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn1cclxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBpdGVtLmhpZGUgPyBcIm5vbmVcIiA6IFwiYmxvY2tcIiB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM9e2FsbG93Q2hhcnN9XHJcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU9e2l0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IFwiSW5wdXRcIn1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9e2l0ZW0ucHJvcHM/LnR5cGV9XHJcbiAgICAgICAgICAgICAgICAgIG5vU3R5bGU9e2l0ZW0ubm9TdHlsZSB8fCBmYWxzZX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge2l0ZW0uZm9ybVJlbmRlclxyXG4gICAgICAgICAgICAgICAgICAgID8gaXRlbS5mb3JtUmVuZGVyKHByb3BzKVxyXG4gICAgICAgICAgICAgICAgICAgIDogZ2V0Tm9kZShpdGVtLnR5cGUsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBpdGVtUmVmLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVGb3JtYXQucHVzaChpdGVtLm5hbWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxDb2xcclxuICAgICAgICAgICAgICAgIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn1cclxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBpdGVtLmhpZGUgPyBcIm5vbmVcIiA6IFwiYmxvY2tcIiB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM9e2FsbG93Q2hhcnN9XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9e2l0ZW0ucHJvcHM/LnR5cGV9XHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3RbaXRlbS5uYW1lXSB8fCBbXX1cclxuICAgICAgICAgICAgICAgICAgICBvbkxpc3RDaGFuZ2U9eyhsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dSZW1vdmVJY29uOiBsYWJlbCAhPT0gXCLmn6XnnItcIixcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj17aXRlbVJlZn1cclxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5wcm9wcz8uY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wcz8uY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWwgIT09IFwi5p+l55yLXCIgJiYgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICAgIDwvVXBsb2FkPlxyXG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvUm93PlxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBmb3JtcyA9IFtdLFxyXG4gICAgICBwcm9wcyA9IHt9LFxyXG4gICAgICBmb290ZXIgPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgZm9ybVR5cGUgPSBcInBhZ2VcIixcclxuICAgICAgdGl0bGUgPSBcIlwiLFxyXG4gICAgICBtb2RhbFByb3BzOiBkZWZhdWx0TW9kYWxQcm9wcyA9IHt9LFxyXG4gICAgICBkcmF3ZXJQcm9wczogZGVmYXVsdERyYXdlclByb3BzLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHNlbGZCdXR0b25zID0gW10gYXMgYW55O1xyXG4gICAgbGV0IHNlbGZQYW5lcyA9IFtdIGFzIGFueTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJmb3JtUGFuZVwiKSB7XHJcbiAgICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBtb2RhbFByb3BzID0ge1xyXG4gICAgICB0aXRsZTogbGFiZWwgKyB0aXRsZSxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNhbmNlbDogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0TW9kYWxQcm9wcyxcclxuICAgIH0gYXMgYW55O1xyXG5cclxuICAgIGxldCBkcmF3ZXJQcm9wcyA9IHtcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzaG93Rm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGl0ZW0uc2hvdyAhPT0gZmFsc2UpIHtcclxuICAgICAgICBzaG93Rm9ybXMucHVzaChpdGVtKTtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cE5hbWUgJiYgZm9ybUdyb3Vwcy5pbmRleE9mKGl0ZW0uZ3JvdXBOYW1lKSA8IDApIHtcclxuICAgICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghaXRlbS5ncm91cE5hbWUpIHtcclxuICAgICAgICAgIG90aGVyR3J1cHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGZvcm1Hcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtR3JvdXBzLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwRm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgICAgc2hvd0Zvcm1zLm1hcCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybS5ncm91cE5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBncm91cEZvcm1zLnB1c2goZm9ybSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG90aGVyR3J1cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW1wibm9Hcm91cE5hbWVcIl0gPSBvdGhlckdydXBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBQYW5lV2l0aG91dFBhZ2VUeXBlID0gKFBhbmUsIHByb3BzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcGFnZVR5cGUsIC4uLmNsZWFuUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChQYW5lLnR5cGUsIGNsZWFuUHJvcHMpO1xyXG4gICAgfTtcclxuICAgIC8v6Ieq5a6a5LmJ5oyJ6ZKuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIiA/IG51bGwgOiB0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgLy8gbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgLy8gd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFnZVwiPlxyXG4gICAgICAgICAge2Zvcm1Hcm91cHMubGVuZ3RoID09IDAgPyAoXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZm9ybVR5cGUgIT09IFwicGFnZVwiID8gKFxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMobmV3Rm9ybXNPYmopLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrZXl9IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgICAge2tleSAhPSBcIm5vR3JvdXBOYW1lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tdGl0bGVcIj57a2V5fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJGb3JtKG5ld0Zvcm1zT2JqW2tleV0sIGxhYmVsKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtzZWxmUGFuZXMubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICBzZWxmUGFuZXMubWFwKChQYW5lLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIiBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAge1BhbmVXaXRob3V0UGFnZVR5cGUoUGFuZSwgeyAuLi5QYW5lLnByb3BzIH0pfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICB7Zm9ybVR5cGUgPT09IFwicGFnZVwiICYmIGZvb3RlciA9PSB0cnVlICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgICAgXCJuc2MtZm9ybS1wYWdlLWZvb3RlclwiLFxyXG4gICAgICAgICAgICAgICAgW3RoaXMuc3RhdGUud2lkdGggPyBcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLXdpZHRoXCIgOiBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZm9vdGVyQ2xhc3NOYW1lXHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLmNhbmNlbEJ1dHRvblByb3BzfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNhbmNlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DYW5jZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDlj5bmtohcclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5va0J1dHRvblByb3BzfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9uU3VibWl0KCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgbG9hZGluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0blwifVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOS/neWtmFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIHtzZWxmQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICAgIHtpdGVtfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtmb3JtVHlwZSA9PT0gXCJwYWdlXCIgJiYgZm9vdGVyICE9PSB0cnVlICYmIHRoaXMucHJvcHMuZm9vdGVyfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQg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
704
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjb25zb2xlIiwibG9nIiwiVXRpbHMiLCJmdW5jcyIsInBhZ2VSZWYiLCJyZWZzIiwicmVmTGlzdCIsInNob3ciLCJvcmdWYWx1ZSIsImVkaXRvcmZsYWciLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJjYWxsQmFjayIsIl90aGlzJGZvcm1SZWYkY3VycmVudDMiLCJjb252ZXJ0VmFsdWUiLCJzaG93Rm9ybSIsImFmdGVyUmVuZGVyIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NCIsImhpZGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ1Iiwib25IaWRlRm9ybSIsImhpZGVGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NiIsInNldExvYWRpbmciLCJzZXRFZGl0VHlwZSIsInR5cGUiLCJzZXRFZGl0SWQiLCJnZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ3IiwiZm9ybVZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJjbG9uZURlZXAiLCJmaWxlRm9ybWF0IiwibmV3RmlsZUxpc3QiLCJtYXAiLCJpdGVtIiwiZ2V0RmlsZUxpc3QiLCJzdWJtaXRGbGFnIiwiZXJyb3IiLCJkYXRlVmFsdWVGb3JtYXQiLCJrZXkiLCJvbGRkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwicmFuZ2VyRGF0ZSIsImRhdGVGb3JtYXQiLCJlIiwibmV3RGF0YSIsInN0cmluZ2lmeSIsInZhbHVlcyIsImZvckVhY2giLCJmaWxlS2V5IiwidmFsdWUxIiwidmFsdWUyIiwic2V0Rm9ybVZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OCIsIm5ld1ZhbHVlIiwiZG9TdWJtaXQiLCJmb3JtZGF0YSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDkiLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJyZXF1ZXN0Q29uZmlnIiwiYWRkVXJsIiwiZWRpdG9yVXJsIiwiYWRkUGFyYW1zIiwiZWRpdG9yUGFyYW1zIiwidXJsIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY29udmVyUGFyYW1zIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsImluZGV4IiwiX2l0ZW0kcHJvcHMiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzcGxpdCIsImFsbG93Q2hhcnMiLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJfaXRlbSRwcm9wczIiLCJzcGFuIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzMyIsIl9pdGVtJHByb3BzNCIsIl9pdGVtJHByb3BzNSIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJmb290ZXIiLCJ0aXRsZSIsIm1vZGFsUHJvcHMiLCJkZWZhdWx0TW9kYWxQcm9wcyIsImRyYXdlclByb3BzIiwiZGVmYXVsdERyYXdlclByb3BzIiwic2VsZkJ1dHRvbnMiLCJzZWxmUGFuZXMiLCJjaGlsZCIsIl9jaGlsZCRwcm9wcyIsInBhZ2VUeXBlIiwib25PayIsIm9uQ2FuY2VsIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwiZm9vdGVyQnV0dG9uIiwib25DbG9zZSIsIm5ld0Zvcm1zT2JqIiwiZm9ybUdyb3VwcyIsIm90aGVyR3J1cHMiLCJzaG93Rm9ybXMiLCJncm91cE5hbWUiLCJpbmRleE9mIiwiZ3JvdXBGb3JtcyIsImZvcm0iLCJQYW5lV2l0aG91dFBhZ2VUeXBlIiwiUGFuZSIsImNsZWFuUHJvcHMiLCJfZXhjbHVkZWQyIiwic2hvd01vZGVsIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9vdGVyQ2xhc3NOYW1lIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuZXhwb3J0IGludGVyZmFjZSBGb3JtUGFnZVByb3BzIHtcclxuICBmb3Jtcz86IEFycmF5PGFueT47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBmb290ZXJDbGFzc05hbWU/OiBhbnk7XHJcbiAgb2tCdXR0b25Qcm9wcz86IGFueTtcclxuICBjYW5jZWxCdXR0b25Qcm9wcz86IGFueTtcclxuICBmb290ZXI/OiBSZWFjdE5vZGUgfCBib29sZWFuO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uRm9ybUNoYW5nZT86ICh2YWx1ZT86IGFueSwgYWxsVmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgc3VibWl0UGFyYW1zPzogYW55OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBmdW5jcz86IGFueTtcclxuICBwcm9wcz86IElGb3JtUHJvcHM7XHJcbiAgcmVxdWVzdE9iamVjdD86IHtcclxuICAgIGFkZFVybD86IHN0cmluZztcclxuICAgIGVkaXRvclVybD86IHN0cmluZztcclxuICAgIGFkZFBhcmFtcz86IGFueTtcclxuICAgIGVkaXRvclBhcmFtcz86IGFueTtcclxuICAgIGRldGFpbFVybD86IHN0cmluZztcclxuICB9O1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgZm9vdGVyV2lkdGg/OiBib29sZWFuO1xyXG4gIGVkaXRUeXBlPzogXCLmlrDlop5cIiB8IFwi57yW6L6RXCIgfCBcIuafpeeci1wiO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGVkaXRJZD86IHN0cmluZztcclxuICBtb2RhbFByb3BzPzogYW55O1xyXG4gIGRyYXdlclByb3BzPzogYW55O1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnNvbGUubG9nKCcnKVxyXG4gICAgcmV0dXJuIGNvbnZlcnRTdHJpbmdUb09iaihkZWZhdWx0VmFsdWUsIHRoaXMucHJvcHMuVXRpbHMgfHwge30sIHtcclxuICAgICAgZnVuY3M6IHRoaXMucHJvcHMuZnVuY3MsXHJcbiAgICAgIHBhZ2VSZWY6IHRoaXMucHJvcHMucGFnZVJlZixcclxuICAgICAgZm9ybVJlZjogdGhpcy5mb3JtUmVmLFxyXG4gICAgICByZWZzOiB0aGlzLnJlZkxpc3QsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/ooajljZXmmL7npLpcclxuICBzaG93KG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIiwgY2FsbEJhY2s/OiBhbnkpIHtcclxuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XHJcbiAgICBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImVkaXRvclwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcclxuICAgIH0gZWxzZSBpZiAob3JnVmFsdWUgJiYgKGVkaXRvcmZsYWcgPT0gXCJkZXRhaWxcIiB8fCBlZGl0b3JmbGFnID09IFwic2VhcmNoXCIpKSB7XHJcbiAgICAgIGxhYmVsID0gXCLmn6XnnItcIjtcclxuICAgIH1cclxuICAgIGlmIChvcmdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBvcmdWYWx1ZSxcclxuICAgICAgICAgIGVkaXRJZDogb3JnVmFsdWUuaWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmNvbnZlcnRWYWx1ZShvcmdWYWx1ZSwgbGFiZWwpO1xyXG4gICAgICAgICAgLy/lpITnkIbmlofku7bmlbDmja5cclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh2YWx1ZSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSB0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgICAgICA/IHRoaXMuY29udmVydERlZmF1bHRWYWx1ZSgpXHJcbiAgICAgICAgICAgIDoge307XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0oZGVmYXVsdFZhbHVlIHx8IHt9LCB7XHJcbiAgICAgICAgICAgIGFmdGVyUmVuZGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZShoaWRlID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgeyBvbkhpZGVGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uSGlkZUZvcm0pIHtcclxuICAgICAgb25IaWRlRm9ybSAmJiBvbkhpZGVGb3JtKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZmlsZUxpc3Q6IHt9IH0pO1xyXG4gICAgaGlkZSAmJiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBzaG93Rm9ybShvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICB0aGlzLnNob3cob3JnVmFsdWUsIGVkaXRvcmZsYWcsIGNhbGxCYWNrKTtcclxuICB9XHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogbG9hZGluZyB9KTtcclxuICB9XHJcbiAgc2V0RWRpdFR5cGUodHlwZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGxhYmVsOiB0eXBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRJZChpZCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGVkaXRJZDogaWQsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0Rm9ybVZhbHVlKCkge1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcywgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCBkYXRhID0gbG9kYXNoLmNsb25lRGVlcCh7IC4uLmZvcm1WYWx1ZSwgLi4uZGljdE5hbWVzIH0pO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBuZXdGaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGlmIChmaWxlTGlzdFtpdGVtXS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdGaWxlTGlzdFtpdGVtXSA9IHRoaXMuZ2V0RmlsZUxpc3QoZmlsZUxpc3RbaXRlbV0gfHwgW10pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIC4uLm5ld0ZpbGVMaXN0IH07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc3VibWl0RmxhZykge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFwi6K+3562J5b6F5omA5pyJ5paH5Lu25LiK5Lyg5a6M5oiQ77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlVmFsdWVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZGF0YVtrZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmFuZ2VyRGF0ZVtrZXldKSB7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGRhdGFbdGhpcy5yYW5nZXJEYXRlW2tleV1bMF1dID0gZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRba2V5XVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGRhdGFbdGhpcy5yYW5nZXJEYXRlW2tleV1bMV1dID0gZGF5anMob2xkZGF0YVsxXSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRba2V5XVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gZGF5anMob2xkZGF0YSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgaWQ6IHZhbHVlPy5pZCB8fCB0aGlzLnN0YXRlLmVkaXRJZCB9O1xyXG4gICAgfVxyXG4gICAgbGV0IG5ld0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgIHJldHVybiBuZXdEYXRhO1xyXG4gIH1cclxuICBjb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpIHtcclxuICAgIGxldCB2YWx1ZXMgPSBsb2Rhc2guY2xvbmVEZWVwKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5mb3JFYWNoKChmaWxlS2V5KSA9PiB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNbZmlsZUtleV07XHJcbiAgICAgICAgaWYgKG9sZGRhdGEgJiYgQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgZmlsZUxpc3RbZmlsZUtleV0gPSB0aGlzLmdldEZpbGVMaXN0KG9sZGRhdGEgfHwgW10sIHR5cGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtmaWxlS2V5XSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogZmlsZUxpc3QgfSk7XHJcbiAgICB9XHJcbiAgICAvL+WkhOeQhuaXpeacn+agvOW8j+aVsOaNrlxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZUZvcm1hdCkpIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVzW2tleV07XHJcbiAgICAgICAgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZXNba2V5XSA9IGRheWpzKG9sZGRhdGEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMucmFuZ2VyRGF0ZVtrZXldKSB7XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZTEgPSB2YWx1ZXNbdGhpcy5yYW5nZXJEYXRlW2tleV1bMF1dO1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUyID0gdmFsdWVzW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcclxuICAgICAgICAgICAgICB2YWx1ZXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICAgIGRheWpzKHZhbHVlMSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgICAgZGF5anModmFsdWUyLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxuICB9XHJcbiAgc2V0Rm9ybVZhbHVlKHZhbHVlLCB0eXBlID0gXCLmn6XnnItcIikge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmNvbnZlcnRWYWx1ZSh2YWx1ZSwgdHlwZSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUobmV3VmFsdWUpO1xyXG4gIH1cclxuICBkb1N1Ym1pdChmb3JtZGF0YSwgbGFiZWwpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3VibWl0VXJsLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgY2FsbEJhY2ssXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFkZFVybCwgZWRpdG9yVXJsLCBhZGRQYXJhbXMsIGVkaXRvclBhcmFtcyB9ID0gcmVxdWVzdE9iamVjdDtcclxuICAgIGxldCB1cmwgPSBzdWJtaXRVcmw7XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7fTtcclxuICAgIGlmICghbGFiZWwgfHwgbGFiZWwgPT0gXCLmlrDlop5cIikge1xyXG4gICAgICB1cmwgPSBhZGRVcmwgPyBhZGRVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChhZGRQYXJhbXMgJiYgdHlwZW9mIGFkZFBhcmFtcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHNcIiwgYWRkUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGFkZFBhcmFtcyA/IGFkZFBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIHVybCA9IGVkaXRvclVybCA/IGVkaXRvclVybCA6IHN1Ym1pdFVybDtcclxuICAgICAgaWYgKGVkaXRvclBhcmFtcyAmJiB0eXBlb2YgZWRpdG9yUGFyYW1zID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge307XHJcbiAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCBlZGl0b3JQYXJhbXMpO1xyXG4gICAgICAgIGxldCBjb252ZXJQYXJhbXMgPSBmdW5jKFV0aWxzKTtcclxuICAgICAgICBwYXJhbXMgPSBjb252ZXJQYXJhbXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gZWRpdG9yUGFyYW1zID8gZWRpdG9yUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwi6YWN572uVXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGRhdGEgPSB7fSwgLi4ub3RoZXJQYXJhbXMgfSA9IHBhcmFtcztcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcclxuICAgICAgdXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgZGF0YTogeyAuLi5mb3JtZGF0YSwgLi4uZGF0YSB9LFxyXG4gICAgICAgIG5vVW5kZWZpbmVkOiBsYWJlbCA9PSBcIue8lui+kVwiLFxyXG4gICAgICAgIC4uLnJlcXVlc3RDb25maWcsXHJcbiAgICAgICAgLi4ub3RoZXJQYXJhbXMsXHJcbiAgICAgIH0sXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgY29kZSwgbXNnIH0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoZGF0YSwgbGFiZWwgPSBcIuaWsOWinlwiKSB7XHJcbiAgICB0aGlzLnN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gICAgbGV0IGZpbGVMaXN0ID0gW10gYXMgYW55O1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgIGZpbGVJZDogaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgb2JqLnN0YXR1cyA9IFwiZG9uZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFiZWwgIT09IFwi5p+l55yLXCIgJiYgaXRlbS5zdGF0dXMgIT09IFwiZG9uZVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdEZsYWcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsZUxpc3QucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlTGlzdDtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgeyBvblN1Ym1pdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHZhbGlkID0gdGhpcy52YWxpZDtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50XHJcbiAgICAgID8udmFsaWRhdGVGaWVsZHMoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmdldEZvcm1WYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgbGV0IHJldHVybkRhdGEgPSBsb2Rhc2guY2xvbmVEZWVwKGRhdGEpO1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQocmV0dXJuRGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xyXG4gIH1cclxuICB2YWx1ZUNoYW5nZSh7IHR5cGUsIGRpY3ROYW1lIH0sIHByb3BzLCB2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpIHtcclxuICAgIGlmICh2YWx1ZU9wdGlvbikge1xyXG4gICAgICBpZiAoZGljdE5hbWUpIHtcclxuICAgICAgICBjb25zdCB7IGRpY3ROYW1lcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICBjb25zdCBuZXdOYW1lcyA9IHsgLi4uZGljdE5hbWVzIH0gYXMgYW55O1xyXG4gICAgICAgIG5ld05hbWVzW2RpY3ROYW1lXSA9IHZhbHVlT3B0aW9uLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGljdE5hbWVzOiBuZXdOYW1lcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgZm9ybVJlZjogdGhpcy5mb3JtUmVmLFxyXG4gICAgICAgICAgZnVuY3M6IHRoaXMucHJvcHMuZnVuY3MgfHwge30sXHJcbiAgICAgICAgICByZWZzOiB0aGlzLnJlZkxpc3QsXHJcbiAgICAgICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiU2VsZWN0XCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlT3B0aW9uID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgICBldmVudE9wdGlvbi5kYXRhID0gZGF0YTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJEYXRlUGlja2VyXCIgfHwgdHlwZSA9PSBcIlJhbmdlUGlja2VyXCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlU3RyID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNlbGZGdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb25cIiwgXCJVdGlsc1wiLCBwcm9wcy5vbkNoYW5nZSk7XHJcbiAgICAgICAgc2VsZkZ1bmMoZXZlbnRPcHRpb24sIFV0aWxzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyRm9ybShmb3JtcywgbGFiZWwpIHtcclxuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiUmFuZ2VQaWNrZXJcIiAmJiBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICAgIHRoaXMsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgICAgZGljdE5hbWU6IGl0ZW0uZGljdE5hbWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuYWxsb3dDaGFycyA9IHRydWU7IC8vZm9ybS5pdGVtIOS9v+eUqGlucHV057uE5Lu2YWxsb3dDaGFyc+W/hemhu+m7mOiupHRydWUs5LiN54S26L6T5YWl54m55q6K5a2X56ym5ou/5Yiw55qE5YC85LiN5a+5XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmRhdGFUeXBlO1xyXG4gICAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgICAgcHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBwcm9wcy5wbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB8fCBpdGVtLnJlcXVpcmVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBpdGVtUmVmOiBhbnkgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gICAgICAgICAgdGhpcy5yZWZMaXN0W2l0ZW0ubmFtZV0gPSBpdGVtUmVmO1xyXG4gICAgICAgICAgaWYgKGl0ZW0udHlwZSAhPT0gXCJVcGxvYWRcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxDb2xcclxuICAgICAgICAgICAgICAgIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn1cclxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBpdGVtLmhpZGUgPyBcIm5vbmVcIiA6IFwiYmxvY2tcIiB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM9e2FsbG93Q2hhcnN9XHJcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU9e2l0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IFwiSW5wdXRcIn1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9e2l0ZW0ucHJvcHM/LnR5cGV9XHJcbiAgICAgICAgICAgICAgICAgIG5vU3R5bGU9e2l0ZW0ubm9TdHlsZSB8fCBmYWxzZX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge2l0ZW0uZm9ybVJlbmRlclxyXG4gICAgICAgICAgICAgICAgICAgID8gaXRlbS5mb3JtUmVuZGVyKHByb3BzKVxyXG4gICAgICAgICAgICAgICAgICAgIDogZ2V0Tm9kZShpdGVtLnR5cGUsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBpdGVtUmVmLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVGb3JtYXQucHVzaChpdGVtLm5hbWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxDb2xcclxuICAgICAgICAgICAgICAgIHNwYW49e2l0ZW0uc3BhbiB8fCAxMn1cclxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBpdGVtLmhpZGUgPyBcIm5vbmVcIiA6IFwiYmxvY2tcIiB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM9e2FsbG93Q2hhcnN9XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9e2l0ZW0ucHJvcHM/LnR5cGV9XHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3RbaXRlbS5uYW1lXSB8fCBbXX1cclxuICAgICAgICAgICAgICAgICAgICBvbkxpc3RDaGFuZ2U9eyhsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHNob3dSZW1vdmVJY29uOiBsYWJlbCAhPT0gXCLmn6XnnItcIixcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj17aXRlbVJlZn1cclxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5wcm9wcz8uY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wcz8uY2hpbGRyZW5cclxuICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWwgIT09IFwi5p+l55yLXCIgJiYgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICAgIDwvVXBsb2FkPlxyXG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvUm93PlxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBmb3JtcyA9IFtdLFxyXG4gICAgICBwcm9wcyA9IHt9LFxyXG4gICAgICBmb290ZXIgPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgZm9ybVR5cGUgPSBcInBhZ2VcIixcclxuICAgICAgdGl0bGUgPSBcIlwiLFxyXG4gICAgICBtb2RhbFByb3BzOiBkZWZhdWx0TW9kYWxQcm9wcyA9IHt9LFxyXG4gICAgICBkcmF3ZXJQcm9wczogZGVmYXVsdERyYXdlclByb3BzLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHNlbGZCdXR0b25zID0gW10gYXMgYW55O1xyXG4gICAgbGV0IHNlbGZQYW5lcyA9IFtdIGFzIGFueTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJmb3JtUGFuZVwiKSB7XHJcbiAgICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHlwZW9mIGNoaWxkcmVuID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBtb2RhbFByb3BzID0ge1xyXG4gICAgICB0aXRsZTogbGFiZWwgKyB0aXRsZSxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNhbmNlbDogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0TW9kYWxQcm9wcyxcclxuICAgIH0gYXMgYW55O1xyXG5cclxuICAgIGxldCBkcmF3ZXJQcm9wcyA9IHtcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzaG93Rm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGl0ZW0uc2hvdyAhPT0gZmFsc2UpIHtcclxuICAgICAgICBzaG93Rm9ybXMucHVzaChpdGVtKTtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cE5hbWUgJiYgZm9ybUdyb3Vwcy5pbmRleE9mKGl0ZW0uZ3JvdXBOYW1lKSA8IDApIHtcclxuICAgICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghaXRlbS5ncm91cE5hbWUpIHtcclxuICAgICAgICAgIG90aGVyR3J1cHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGZvcm1Hcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtR3JvdXBzLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwRm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgICAgc2hvd0Zvcm1zLm1hcCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybS5ncm91cE5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBncm91cEZvcm1zLnB1c2goZm9ybSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG90aGVyR3J1cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW1wibm9Hcm91cE5hbWVcIl0gPSBvdGhlckdydXBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBQYW5lV2l0aG91dFBhZ2VUeXBlID0gKFBhbmUsIHByb3BzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcGFnZVR5cGUsIC4uLmNsZWFuUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChQYW5lLnR5cGUsIGNsZWFuUHJvcHMpO1xyXG4gICAgfTtcclxuICAgIC8v6Ieq5a6a5LmJ5oyJ6ZKuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIiA/IG51bGwgOiB0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgLy8gbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgLy8gd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFnZVwiPlxyXG4gICAgICAgICAge2Zvcm1Hcm91cHMubGVuZ3RoID09IDAgPyAoXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZm9ybVR5cGUgIT09IFwicGFnZVwiID8gKFxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMobmV3Rm9ybXNPYmopLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrZXl9IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgICAge2tleSAhPSBcIm5vR3JvdXBOYW1lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tdGl0bGVcIj57a2V5fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJGb3JtKG5ld0Zvcm1zT2JqW2tleV0sIGxhYmVsKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICB7c2VsZlBhbmVzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgc2VsZlBhbmVzLm1hcCgoUGFuZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCIga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgIHtQYW5lV2l0aG91dFBhZ2VUeXBlKFBhbmUsIHsgLi4uUGFuZS5wcm9wcyB9KX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZm9vdGVyQ2xhc3NOYW1lLFxyXG4gICAgICAgICAgICAgICAgXCJuc2MtZm9ybS1wYWdlLWZvb3RlclwiLFxyXG4gICAgICAgICAgICAgICAgW3RoaXMuc3RhdGUud2lkdGggPyBcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLXdpZHRoXCIgOiBcIlwiXVxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FuY2VsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMub2tCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vblN1Ym1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGxvYWRpbmc9e3RoaXMuc3RhdGUubG9hZGluZ31cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDkv53lrZhcclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICB7c2VsZkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0blwifSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7Zm9ybVR5cGUgPT09IFwicGFnZVwiICYmIGZvb3RlciAhPT0gdHJ1ZSAmJiB0aGlzLnByb3BzLmZvb3Rlcn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Gb3JtPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvcm1QYWdlO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLFNBQWtCQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBQ3hDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLEVBQUVDLGFBQWEsUUFBUSxtQkFBbUI7QUFDN0QsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxxQkFBcUI7QUFDNUIsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBRTVCLE9BQU9DLFVBQVUsTUFBTSxhQUFhO0FBR3BDLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFzQjtBQThCekQsTUFBTUMsUUFBUSxTQUFTZixhQUFhLENBQXFCO0VBQUFnQixZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLCtCQUM3Q25CLEtBQUssQ0FBQ29CLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEsZ0JBQ3hCO01BQ05FLE9BQU8sRUFBRSxLQUFLO01BQ2RDLEtBQUssRUFBRSxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsUUFBUSxJQUFJLEVBQUU7TUFDaENDLFVBQVUsRUFBRSxJQUFJO01BQ2hCQyxLQUFLLEVBQUUsQ0FBQyxDQUFRO01BQ2hCQyxTQUFTLEVBQUUsQ0FBQyxDQUFRO01BQ3BCQyxRQUFRLEVBQUUsQ0FBQyxDQUFRO01BQ25CQyxLQUFLLEVBQUVyQixhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxLQUFLO01BQ3RE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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","getLocalStore","dayjs","lodash","Button","Upload","cls","NscRequest","convertStringToObj","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","props","editType","editorFlag","value","dictNames","fileList","width","editId","ev","data","JSON","parse","_this","eventType","payload","close","setState","componentDidMount","window","addEventListener","listenMessage","formType","requestObject","detailUrl","get","params","id","state","xssFilter","autoPrefix","then","res","code","_this$formRef$current","formRef","current","setFieldsValue","_objectSpread","defaultValue","_this$formRef$current2","convertDefaultValue","componentWillUnmount","removeEventListener","Utils","funcs","pageRef","show","orgValue","editorflag","length","undefined","callBack","_this$formRef$current3","convertValue","showForm","afterRender","_this$formRef$current4","hide","_this$formRef$current5","onHideForm","hideForm","_this$formRef$current6","setLoading","setEditType","type","setEditId","getFormValue","_this$formRef$current7","formValue","getFieldsValue","cloneDeep","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","rangerDate","dateFormat","e","newData","stringify","values","forEach","fileKey","value1","value2","setFormValue","_this$formRef$current8","newValue","doSubmit","formdata","_this$formRef$current9","submitUrl","submitParams","requestConfig","addUrl","editorUrl","addParams","editorParams","url","func","Function","converParams","console","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","msg","success","setTimeout","obj","fileId","fileName","status","push","_this$formRef$current10","valid","validateFields","returnData","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","refs","refList","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","split","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","style","display","Item","componentName","noStyle","formRender","ref","_item$props3","_item$props4","_item$props5","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","title","modalProps","defaultModalProps","drawerProps","defaultDrawerProps","selfButtons","selfPanes","child","_child$props","pageType","onOk","onCancel","okButtonProps","centered","footerButton","onClose","newFormsObj","formGroups","otherGrups","showForms","groupName","indexOf","groupForms","form","PaneWithoutPageType","Pane","cleanProps","_excluded2","showModel","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj, getLocalStore } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from \"../../base/upload\";\r\nimport cls from \"classnames\";\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nimport NscRequest from \"nsc-request\";\r\nimport omit from \"omit.js\";\r\nimport CompoundedSpace from \"antd/es/space\";\r\nimport { convertStringToObj } from \"../SettingUtil/utils\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string;\r\n editorUrl?: string;\r\n addParams?: any;\r\n editorParams?: any;\r\n detailUrl?: string;\r\n };\r\n requestConfig?: any;\r\n footerWidth?: boolean;\r\n editType?: \"新增\" | \"编辑\" | \"查看\";\r\n title?: string;\r\n editId?: string;\r\n modalProps?: any;\r\n drawerProps?: any;\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: this.props.editType || \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any,\r\n width: getLocalStore(\"nsc-home-menuCollsape\") || false,\r\n editId: this.props.editId || \"\",\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n rangerDate = {} as any;\r\n refList = {} as any;\r\n submitFlag = true;\r\n componentDidMount(): void {\r\n window.addEventListener(\"message\", this.listenMessage);\r\n const {\r\n formType = \"page\",\r\n requestObject = {},\r\n editType = \"新增\",\r\n } = this.props;\r\n if (formType == \"page\") {\r\n if (requestObject.detailUrl && editType !== \"新增\") {\r\n NscRequest.get(requestObject.detailUrl, {\r\n params: { id: this.state.editId },\r\n xssFilter: false,\r\n autoPrefix: true,\r\n }).then((res) => {\r\n if (res.code == 200) {\r\n this.formRef.current?.setFieldsValue({ ...res.data });\r\n }\r\n });\r\n } else if (editType == \"新增\") {\r\n if (this.props.defaultValue) {\r\n let defaultValue = this.convertDefaultValue();\r\n this.formRef.current?.setFieldsValue(defaultValue || {});\r\n }\r\n }\r\n }\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"message\", this.listenMessage);\r\n }\r\n listenMessage = (ev) => {\r\n const data = typeof ev.data === \"string\" ? JSON.parse(ev.data) : ev.data;\r\n let _this = this;\r\n if (data.eventType == \"menuCollsape\") {\r\n const { payload } = data;\r\n if (payload.close === true || payload.close === false) {\r\n _this.setState({ width: payload.close });\r\n }\r\n }\r\n };\r\n convertDefaultValue() {\r\n const { defaultValue } = this.props;\r\n return convertStringToObj(defaultValue, this.props.Utils || {}, {\r\n funcs: this.props.funcs,\r\n pageRef: this.props.pageRef,\r\n formRef: this.formRef,\r\n });\r\n }\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && (editorflag == \"detail\" || editorflag == \"search\")) {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n editId: orgValue.id,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n let defaultValue = this.props.defaultValue\r\n ? this.convertDefaultValue()\r\n : {};\r\n this.formRef.current?.showForm(defaultValue || {}, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n this.show(orgValue, editorflag, callBack);\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n setEditType(type) {\r\n this.setState({\r\n label: type,\r\n });\r\n }\r\n setEditId(id) {\r\n this.setState({\r\n editId: id,\r\n });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = lodash.cloneDeep({ ...formValue, ...dictNames });\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n });\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error(\"请等待所有文件上传完成!\");\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n if (this.rangerDate[key]) {\r\n try {\r\n data[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key]\r\n );\r\n data[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key]\r\n );\r\n delete data[key];\r\n } catch (e) {}\r\n }\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id || this.state.editId };\r\n }\r\n let newData = JSON.parse(JSON.stringify(data));\r\n return newData;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.forEach((fileKey) => {\r\n let olddata = values[fileKey];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[fileKey] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[fileKey] = [];\r\n }\r\n });\r\n this.setState({ fileList: fileList });\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n } else {\r\n if (this.rangerDate[key]) {\r\n let value1 = values[this.rangerDate[key][0]];\r\n let value2 = values[this.rangerDate[key][1]];\r\n if (value1 && value2) {\r\n values[key] = [\r\n dayjs(value1, this.dateFormat[key]),\r\n dayjs(value2, this.dateFormat[key]),\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return values;\r\n }\r\n setFormValue(value, type = \"查看\") {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const {\r\n submitUrl,\r\n submitParams = {},\r\n callBack,\r\n requestObject = {},\r\n requestConfig = {},\r\n } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject;\r\n let url = submitUrl;\r\n let params: any = {};\r\n if (!label || label == \"新增\") {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", addParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == \"编辑\") {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", editorParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code, msg } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n setTimeout(() => {\r\n this.hide(true);\r\n callBack && callBack();\r\n }, 500);\r\n\r\n return;\r\n }\r\n }\r\n );\r\n }\r\n getFileList(data, label = \"新增\") {\r\n this.submitFlag = true;\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == \"查看\") {\r\n obj.status = \"done\";\r\n }\r\n if (label !== \"查看\" && item.status !== \"done\") {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n }\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields()\r\n .then(() => {\r\n let data = this.getFormValue();\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n let returnData = lodash.cloneDeep(data);\r\n onSubmit && onSubmit(returnData, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => {});\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == \"function\") {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == \"string\") {\r\n const eventOption = {\r\n value,\r\n data,\r\n formRef: this.formRef,\r\n funcs: this.props.funcs || {},\r\n refs: this.refList,\r\n pageRef:this.props.pageRef\r\n } as any;\r\n const Utils = this.props.Utils || {};\r\n if (type == \"Select\") {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data;\r\n } else if (type == \"DatePicker\" || type == \"RangePicker\") {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function(\"eventOption\", \"Utils\", props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return (\r\n <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n if (item.type == \"RangePicker\" && item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = \"\";\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>();\r\n this.refList[item.name] = itemRef;\r\n if (item.type !== \"Upload\") {\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n noStyle={item.noStyle || false}\r\n >\r\n {item.formRender\r\n ? item.formRender(props)\r\n : getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name);\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state;\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list },\r\n });\r\n }}\r\n showUploadList={{\r\n showDownloadIcon: true,\r\n showRemoveIcon: label !== \"查看\",\r\n }}\r\n ref={itemRef}\r\n {...props}\r\n >\r\n {item.props?.children\r\n ? item.props?.children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n );\r\n }\r\n render() {\r\n const {\r\n forms = [],\r\n props = {},\r\n footer = true,\r\n children,\r\n formType = \"page\",\r\n title = \"\",\r\n modalProps: defaultModalProps = {},\r\n drawerProps: defaultDrawerProps,\r\n } = this.props;\r\n const { loading, label } = this.state;\r\n let selfButtons = [] as any;\r\n let selfPanes = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"formPane\") {\r\n typeof item == \"object\" && selfPanes.push(child);\r\n }\r\n });\r\n } else {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"formPane\") {\r\n typeof children == \"object\" && selfPanes.push(children);\r\n } else {\r\n typeof children == \"object\" && selfButtons.push(children);\r\n }\r\n }\r\n let modalProps = {\r\n title: label + title,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultModalProps,\r\n } as any;\r\n\r\n let drawerProps = {\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultDrawerProps,\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = [];\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any;\r\n let otherGrups = [] as any;\r\n let showForms = [] as any;\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.show !== false) {\r\n showForms.push(item);\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item);\r\n }\r\n }\r\n });\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any;\r\n showForms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form);\r\n }\r\n });\r\n newFormsObj[item] = groupForms;\r\n });\r\n if (otherGrups.length > 0) {\r\n newFormsObj[\"noGroupName\"] = otherGrups;\r\n }\r\n }\r\n const PaneWithoutPageType = (Pane, props) => {\r\n const { pageType, ...cleanProps } = props;\r\n return React.createElement(Pane.type, cleanProps);\r\n };\r\n //自定义按钮\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType == \"page\" ? null : this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n // labelCol={{ flex: \"100px\" }}\r\n // wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? (\r\n this.props.formType !== \"page\" ? (\r\n this.renderForm(showForms, label)\r\n ) : (\r\n <div className=\"nsc-form-pane\">\r\n {this.renderForm(showForms, label)}\r\n </div>\r\n )\r\n ) : (\r\n Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && (\r\n <div className=\"nsc-form-title\">{key}</div>\r\n )}\r\n <div className=\"nsc-form-content\">\r\n {this.renderForm(newFormsObj[key], label)}\r\n </div>\r\n </div>\r\n );\r\n })\r\n )}\r\n {selfPanes.length > 0 &&\r\n selfPanes.map((Pane, index) => {\r\n return (\r\n <div className=\"nsc-form-pane\" key={index}>\r\n {PaneWithoutPageType(Pane, { ...Pane.props })}\r\n </div>\r\n );\r\n })}\r\n {formType === \"page\" && footer == true && (\r\n <div\r\n className={cls(\r\n \"nsc-form-page-footer\",\r\n [this.state.width ? \"nsc-form-page-footer-width\" : \"\"],\r\n this.props.footerClassName\r\n )}\r\n >\r\n <Button\r\n {...this.props.cancelButtonProps}\r\n onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return;\r\n }\r\n this.setState({ loading: false });\r\n }}\r\n >\r\n 取消\r\n </Button>\r\n <Button\r\n type=\"primary\"\r\n {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit();\r\n }}\r\n loading={this.state.loading}\r\n className={\"nsc-form-page-footer-btn\"}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return (\r\n <div className={\"nsc-form-page-footer-btn\"} key={index}>\r\n {item}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {formType === \"page\" && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","getLocalStore","dayjs","lodash","Button","Upload","cls","NscRequest","convertStringToObj","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","props","editType","editorFlag","value","dictNames","fileList","width","editId","ev","data","JSON","parse","_this","eventType","payload","close","setState","componentDidMount","window","addEventListener","listenMessage","formType","requestObject","detailUrl","get","params","id","state","xssFilter","autoPrefix","then","res","code","_this$formRef$current","formRef","current","setFieldsValue","_objectSpread","defaultValue","_this$formRef$current2","convertDefaultValue","componentWillUnmount","removeEventListener","console","log","Utils","funcs","pageRef","refs","refList","show","orgValue","editorflag","length","undefined","callBack","_this$formRef$current3","convertValue","showForm","afterRender","_this$formRef$current4","hide","_this$formRef$current5","onHideForm","hideForm","_this$formRef$current6","setLoading","setEditType","type","setEditId","getFormValue","_this$formRef$current7","formValue","getFieldsValue","cloneDeep","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","rangerDate","dateFormat","e","newData","stringify","values","forEach","fileKey","value1","value2","setFormValue","_this$formRef$current8","newValue","doSubmit","formdata","_this$formRef$current9","submitUrl","submitParams","requestConfig","addUrl","editorUrl","addParams","editorParams","url","func","Function","converParams","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","msg","success","setTimeout","obj","fileId","fileName","status","push","_this$formRef$current10","valid","validateFields","returnData","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","split","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","style","display","Item","componentName","noStyle","formRender","ref","_item$props3","_item$props4","_item$props5","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","title","modalProps","defaultModalProps","drawerProps","defaultDrawerProps","selfButtons","selfPanes","child","_child$props","pageType","onOk","onCancel","okButtonProps","centered","footerButton","onClose","newFormsObj","formGroups","otherGrups","showForms","groupName","indexOf","groupForms","form","PaneWithoutPageType","Pane","cleanProps","_excluded2","showModel","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj, getLocalStore } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from \"../../base/upload\";\r\nimport cls from \"classnames\";\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nimport NscRequest from \"nsc-request\";\r\nimport omit from \"omit.js\";\r\nimport CompoundedSpace from \"antd/es/space\";\r\nimport { convertStringToObj } from \"../SettingUtil/utils\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string;\r\n editorUrl?: string;\r\n addParams?: any;\r\n editorParams?: any;\r\n detailUrl?: string;\r\n };\r\n requestConfig?: any;\r\n footerWidth?: boolean;\r\n editType?: \"新增\" | \"编辑\" | \"查看\";\r\n title?: string;\r\n editId?: string;\r\n modalProps?: any;\r\n drawerProps?: any;\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: this.props.editType || \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any,\r\n width: getLocalStore(\"nsc-home-menuCollsape\") || false,\r\n editId: this.props.editId || \"\",\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n rangerDate = {} as any;\r\n refList = {} as any;\r\n submitFlag = true;\r\n componentDidMount(): void {\r\n window.addEventListener(\"message\", this.listenMessage);\r\n const {\r\n formType = \"page\",\r\n requestObject = {},\r\n editType = \"新增\",\r\n } = this.props;\r\n if (formType == \"page\") {\r\n if (requestObject.detailUrl && editType !== \"新增\") {\r\n NscRequest.get(requestObject.detailUrl, {\r\n params: { id: this.state.editId },\r\n xssFilter: false,\r\n autoPrefix: true,\r\n }).then((res) => {\r\n if (res.code == 200) {\r\n this.formRef.current?.setFieldsValue({ ...res.data });\r\n }\r\n });\r\n } else if (editType == \"新增\") {\r\n if (this.props.defaultValue) {\r\n let defaultValue = this.convertDefaultValue();\r\n this.formRef.current?.setFieldsValue(defaultValue || {});\r\n }\r\n }\r\n }\r\n }\r\n componentWillUnmount() {\r\n window.removeEventListener(\"message\", this.listenMessage);\r\n }\r\n listenMessage = (ev) => {\r\n const data = typeof ev.data === \"string\" ? JSON.parse(ev.data) : ev.data;\r\n let _this = this;\r\n if (data.eventType == \"menuCollsape\") {\r\n const { payload } = data;\r\n if (payload.close === true || payload.close === false) {\r\n _this.setState({ width: payload.close });\r\n }\r\n }\r\n };\r\n convertDefaultValue() {\r\n const { defaultValue } = this.props;\r\n console.log('')\r\n return convertStringToObj(defaultValue, this.props.Utils || {}, {\r\n funcs: this.props.funcs,\r\n pageRef: this.props.pageRef,\r\n formRef: this.formRef,\r\n refs: this.refList,\r\n });\r\n }\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && (editorflag == \"detail\" || editorflag == \"search\")) {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n editId: orgValue.id,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n let defaultValue = this.props.defaultValue\r\n ? this.convertDefaultValue()\r\n : {};\r\n this.formRef.current?.showForm(defaultValue || {}, {\r\n afterRender: () => {\r\n callBack && callBack();\r\n },\r\n });\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n this.show(orgValue, editorflag, callBack);\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n setEditType(type) {\r\n this.setState({\r\n label: type,\r\n });\r\n }\r\n setEditId(id) {\r\n this.setState({\r\n editId: id,\r\n });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = lodash.cloneDeep({ ...formValue, ...dictNames });\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n });\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error(\"请等待所有文件上传完成!\");\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n if (this.rangerDate[key]) {\r\n try {\r\n data[this.rangerDate[key][0]] = dayjs(olddata[0]).format(\r\n this.dateFormat[key]\r\n );\r\n data[this.rangerDate[key][1]] = dayjs(olddata[1]).format(\r\n this.dateFormat[key]\r\n );\r\n delete data[key];\r\n } catch (e) {}\r\n }\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id || this.state.editId };\r\n }\r\n let newData = JSON.parse(JSON.stringify(data));\r\n return newData;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.forEach((fileKey) => {\r\n let olddata = values[fileKey];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[fileKey] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[fileKey] = [];\r\n }\r\n });\r\n this.setState({ fileList: fileList });\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n } else {\r\n if (this.rangerDate[key]) {\r\n let value1 = values[this.rangerDate[key][0]];\r\n let value2 = values[this.rangerDate[key][1]];\r\n if (value1 && value2) {\r\n values[key] = [\r\n dayjs(value1, this.dateFormat[key]),\r\n dayjs(value2, this.dateFormat[key]),\r\n ];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return values;\r\n }\r\n setFormValue(value, type = \"查看\") {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const {\r\n submitUrl,\r\n submitParams = {},\r\n callBack,\r\n requestObject = {},\r\n requestConfig = {},\r\n } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject;\r\n let url = submitUrl;\r\n let params: any = {};\r\n if (!label || label == \"新增\") {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", addParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == \"编辑\") {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == \"string\") {\r\n const Utils = this.props.Utils || {};\r\n let func = new Function(\"Utils\", editorParams);\r\n let converParams = func(Utils);\r\n params = converParams;\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code, msg } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n setTimeout(() => {\r\n this.hide(true);\r\n callBack && callBack();\r\n }, 500);\r\n\r\n return;\r\n }\r\n }\r\n );\r\n }\r\n getFileList(data, label = \"新增\") {\r\n this.submitFlag = true;\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == \"查看\") {\r\n obj.status = \"done\";\r\n }\r\n if (label !== \"查看\" && item.status !== \"done\") {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n }\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields()\r\n .then(() => {\r\n let data = this.getFormValue();\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n let returnData = lodash.cloneDeep(data);\r\n onSubmit && onSubmit(returnData, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => {});\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == \"function\") {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == \"string\") {\r\n const eventOption = {\r\n value,\r\n data,\r\n formRef: this.formRef,\r\n funcs: this.props.funcs || {},\r\n refs: this.refList,\r\n pageRef: this.props.pageRef,\r\n } as any;\r\n const Utils = this.props.Utils || {};\r\n if (type == \"Select\") {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data;\r\n } else if (type == \"DatePicker\" || type == \"RangePicker\") {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function(\"eventOption\", \"Utils\", props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return (\r\n <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n if (item.type == \"RangePicker\" && item.name.split(\",\").length > 1) {\r\n this.rangerDate[item.name] = item.name.split(\",\");\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = \"\";\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>();\r\n this.refList[item.name] = itemRef;\r\n if (item.type !== \"Upload\") {\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n noStyle={item.noStyle || false}\r\n >\r\n {item.formRender\r\n ? item.formRender(props)\r\n : getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name);\r\n return (\r\n <Col\r\n span={item.span || 12}\r\n key={index}\r\n style={{ display: item.hide ? \"none\" : \"block\" }}\r\n >\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state;\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list },\r\n });\r\n }}\r\n showUploadList={{\r\n showDownloadIcon: true,\r\n showRemoveIcon: label !== \"查看\",\r\n }}\r\n ref={itemRef}\r\n {...props}\r\n >\r\n {item.props?.children\r\n ? item.props?.children\r\n : label !== \"查看\" && <Button>上传文件</Button>}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n );\r\n }\r\n render() {\r\n const {\r\n forms = [],\r\n props = {},\r\n footer = true,\r\n children,\r\n formType = \"page\",\r\n title = \"\",\r\n modalProps: defaultModalProps = {},\r\n drawerProps: defaultDrawerProps,\r\n } = this.props;\r\n const { loading, label } = this.state;\r\n let selfButtons = [] as any;\r\n let selfPanes = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n if (child?.props?.pageType == \"formPane\") {\r\n typeof item == \"object\" && selfPanes.push(child);\r\n }\r\n });\r\n } else {\r\n typeof item == \"object\" && selfButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n const { props }: any = children;\r\n if (props?.pageType == \"formPane\") {\r\n typeof children == \"object\" && selfPanes.push(children);\r\n } else {\r\n typeof children == \"object\" && selfButtons.push(children);\r\n }\r\n }\r\n let modalProps = {\r\n title: label + title,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultModalProps,\r\n } as any;\r\n\r\n let drawerProps = {\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n footerButton: selfButtons,\r\n ...defaultDrawerProps,\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = [];\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any;\r\n let otherGrups = [] as any;\r\n let showForms = [] as any;\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.show !== false) {\r\n showForms.push(item);\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item);\r\n }\r\n }\r\n });\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any;\r\n showForms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form);\r\n }\r\n });\r\n newFormsObj[item] = groupForms;\r\n });\r\n if (otherGrups.length > 0) {\r\n newFormsObj[\"noGroupName\"] = otherGrups;\r\n }\r\n }\r\n const PaneWithoutPageType = (Pane, props) => {\r\n const { pageType, ...cleanProps } = props;\r\n return React.createElement(Pane.type, cleanProps);\r\n };\r\n //自定义按钮\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType == \"page\" ? null : this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n // labelCol={{ flex: \"100px\" }}\r\n // wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? (\r\n this.props.formType !== \"page\" ? (\r\n this.renderForm(showForms, label)\r\n ) : (\r\n <div className=\"nsc-form-pane\">\r\n {this.renderForm(showForms, label)}\r\n </div>\r\n )\r\n ) : (\r\n Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && (\r\n <div className=\"nsc-form-title\">{key}</div>\r\n )}\r\n <div className=\"nsc-form-content\">\r\n {this.renderForm(newFormsObj[key], label)}\r\n </div>\r\n </div>\r\n );\r\n })\r\n )}\r\n\r\n {selfPanes.length > 0 &&\r\n selfPanes.map((Pane, index) => {\r\n return (\r\n <div className=\"nsc-form-pane\" key={index}>\r\n {PaneWithoutPageType(Pane, { ...Pane.props })}\r\n </div>\r\n );\r\n })}\r\n {formType === \"page\" && footer == true && (\r\n <div\r\n className={cls(\r\n this.props.footerClassName,\r\n \"nsc-form-page-footer\",\r\n [this.state.width ? \"nsc-form-page-footer-width\" : \"\"]\r\n )}\r\n >\r\n <Button\r\n {...this.props.cancelButtonProps}\r\n onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return;\r\n }\r\n this.setState({ loading: false });\r\n }}\r\n >\r\n 取消\r\n </Button>\r\n <Button\r\n type=\"primary\"\r\n {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit();\r\n }}\r\n loading={this.state.loading}\r\n className={\"nsc-form-page-footer-btn\"}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return (\r\n <div className={\"nsc-form-page-footer-btn\"} key={index}>\r\n {item}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n {formType === \"page\" && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
@@ -262,7 +262,7 @@ export default class SettingForm extends React.Component {
262
262
  };
263
263
  if (this.props.formType == "page") {
264
264
  return /*#__PURE__*/React.createElement("div", {
265
- className: cls("nsc-framework-formpage", className)
265
+ className: cls("nsc-setting-formpage", className)
266
266
  }, pageLoading ? /*#__PURE__*/React.createElement("div", {
267
267
  style: {
268
268
  width: "100%",
@@ -276,4 +276,4 @@ export default class SettingForm extends React.Component {
276
276
  }
277
277
  }
278
278
  }
279
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTcGluIiwiUmVhY3QiLCJOc2NSZXF1ZXN0IiwiY2xzIiwiRm9ybVBhZ2UiLCJkZWZhdWx0Q29tRnVuY3MiLCJkZWZhdWx0VXRpbCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiZ2V0UGFnZURhdGEiLCJwYXJhbXMiLCJzZXR0aW5nU291cmNlIiwidXJsIiwiZ2V0IiwieHNzRmlsdGVyIiwiYXV0b1ByZWZpeCIsInNldEZpZWxkRGlzYWJsZWQiLCJkYXRhIiwia2V5IiwiZGlzYWJsZWQiLCJmb21zIiwibmV3Rm9ybXMiLCJtYXAiLCJpdGVtIiwib2JqIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJpbmRleE9mIiwicHJvcHMiLCJwdXNoIiwic2V0RmllbGRWaXNpYmxlIiwidmlzaWJsZSIsInNob3ciLCJzZXRGaWVsZFByb3BzRGF0YSIsInByb3BzRGF0YSIsImZvcm1zIiwiZGF0YUluZGV4IiwiZGVmYXVsdFN0YXRlVmFsdWUiLCJmb3JtVHlwZSIsInBhZ2VMb2FkaW5nIiwic2VsZkJ1dHRvbiIsIm90aGVyUHJvcHMiLCJidXR0b25Mb2FkaW5nIiwiZ2V0Rm9ybVNldHRpbmciLCJKU09OIiwicGFyc2UiLCJzZWxmRm9ybUJ1dHRvbiIsImZvcm1TZXR0aW5nIiwiU2V0dGluZ0Zvcm0iLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsInJlcyIsImNvbXBvbmVudERpZE1vdW50IiwiZ2V0RGF0YSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90IiwiZm9ybUNvZGUiLCJzZXRTdGF0ZSIsInB1Ymxpc2hlZCIsIm1lbnVDb2RlIiwiY29kZSIsImlzUHVibGlzaGVkIiwidGhlbiIsImZvcm1Qcm9wcyIsIl9tZXNzYWdlIiwiZXJyb3IiLCJzaG93Rm9ybSIsInZhbHVlIiwiZWRpdG9yZmxhZyIsImNhbGxCYWNrIiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50IiwicGFnZVJlZiIsImN1cnJlbnQiLCJoaWRlRm9ybSIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDIiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNsYXNzTmFtZSIsImZ1bmNzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic3RhdGUiLCJyZXF1ZXN0T2JqZWN0IiwiX3RoaXMiLCJkZWF1bHRGdW5jcyIsIm5ld0RhdGEiLCJzZXRCdXR0b25Mb2FkaW5nIiwibG9hZGluZyIsImNoaWxkcmVuIiwiY29kZUZvcm1CdXR0b25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGQiLCJyZW5kZXJGb3JtIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwiVXRpbHMiLCJyZWYiLCJlZGl0VHlwZSIsInR5cGUiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdGb3JtL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBCYXNlUGFnZSwgeyBOU0NCYXNlQmFnZVByb3BzIH0gZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi8uLi9iYXNlL3NwaW5cIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBGb3JtUGFnZSBmcm9tIFwiLi4vRm9ybVBhZ2VcIjtcclxuaW1wb3J0IHtcclxuICBkZWZhdWx0Q29tRnVuY3MsXHJcbiAgZGVmYXVsdFV0aWwsXHJcbiAgcmVuZGVyU2VsZlRvb2xCdXR0b24sXHJcbn0gZnJvbSBcIi4uL1NldHRpbmdVdGlsL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UGFnZURhdGEgPSAocGFyYW1zOiBhbnksIHNldHRpbmdTb3VyY2UpID0+IHtcclxuICBsZXQgdXJsID1cclxuICAgIHNldHRpbmdTb3VyY2UgPT0gXCJ0YWJsZVwiXHJcbiAgICAgID8gXCIvanF1aWNrLXNldHRpbmcvc2V0dGluZy90YWJsZS9pbmZvL1wiXHJcbiAgICAgIDogXCIvanF1aWNrLXNldHRpbmcvc2V0dGluZy9mb3JtL2luZm9cIjtcclxuICByZXR1cm4gTnNjUmVxdWVzdC5nZXQodXJsLCB7XHJcbiAgICBwYXJhbXMsXHJcbiAgICB4c3NGaWx0ZXI6IGZhbHNlLFxyXG4gICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICB9KTtcclxufTtcclxuXHJcbi8v6K6+572u6KGo5Y2V5a2X5q615Y+q6K+7XHJcbmNvbnN0IHNldEZpZWxkRGlzYWJsZWQgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gIGNvbnN0IGZvbXMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0Zvcm1zID0gW10gYXMgYW55O1xyXG4gIGZvbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5uYW1lID09IGtleSB8fCBrZXkuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcbi8v6K6+572u6KGo5Y2V5a2X5q616ZqQ6JePXHJcbmNvbnN0IHNldEZpZWxkVmlzaWJsZSA9IChkYXRhOiBBcnJheTxhbnk+LCBrZXksIHZpc2libGUpID0+IHtcclxuICBjb25zdCBmb21zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdGb3JtcyA9IFtdIGFzIGFueTtcclxuICBmb21zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0ubmFtZSA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKSB7XHJcbiAgICAgIG9iai5zaG93ID0gdmlzaWJsZTtcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcblxyXG5jb25zdCBzZXRGaWVsZFByb3BzRGF0YSA9IChkYXRhOiBBcnJheTxhbnk+LCBrZXksIHByb3BzRGF0YSkgPT4ge1xyXG4gIGNvbnN0IGZvcm1zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdGb3JtcyA9IFtdIGFzIGFueTtcclxuICBmb3Jtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kYXRhID0gcHJvcHNEYXRhO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIGZvcm1Db2RlOiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHB1Ymxpc2hlZD86IGJvb2xlYW47XHJcbiAgaW5zdGFuY2VSZWY/OiBhbnk7XHJcbiAgb25DYWxsQmFja3M/OiB7XHJcbiAgICB0cmVlU2VsZWN0Q2FsbEJhY2s/OiBhbnk7IC8v5qCR54K55Ye75p+l6K+i5ZCO5Zue6LCDXHJcbiAgICBvblF1ZXJ5Q2FsbEJhY2s/OiBhbnk7IC8v5p+l6K+i5Zue6LCD77yM5p+l6K+i5pWw5o2u5ZCO5Zue6LCDXHJcbiAgICBvblN1bWJpdENhbGxCYWNrPzogYW55OyAvL+S/neWtmOWbnuiwg++8jOS/neWtmOaVsOaNruaIkOWKn+WQjuWbnuiwg1xyXG4gICAgb25EZWxldGVDYWxsQmFjaz86IGFueTsgLy/liKDpmaTmjInpkq7lm57osIPvvIzliKDpmaTmlbDmja7lkI7miafooYxcclxuICAgIG9uRWRpdG9yQ2FsbEJhY2s/OiBhbnk7IC8v57yW6L6R5oyJ6ZKu5Zue6LCD77yM5omT5byA5by55qGG5ZCO5omn6KGMXHJcbiAgICBvbkFkZENhbGxCYWNrPzogYW55OyAvL+a3u+WKoOaMiemSruWbnuiwg++8jOaJk+W8gOW8ueahhuWQjuaJp+ihjFxyXG4gICAgb25TZWFyY2hDYWxsQmFjaz86IGFueTsgLy/liJfooajmn6Xor6LmjInpkq7lm57osIPvvIzmiZPlvIDlvLnmoYblkI7miafooYxcclxuICB9O1xyXG4gIGZvcm1Qcm9wcz86IGFueTtcclxuICBjaGlsZHJlbj86IGFueTtcclxuICBbcHJvcE5hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jb25zdCBkZWZhdWx0U3RhdGVWYWx1ZSA9IHtcclxuICBmb3JtVHlwZTogXCJtb2RhbFwiLFxyXG4gIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICBzZWxmQnV0dG9uOiBbXSBhcyBhbnksXHJcbiAgcHJvcHM6IHt9IGFzIGFueSxcclxuICBvdGhlclByb3BzOiB7fSBhcyBhbnksXHJcbiAgZm9ybXM6IFtdIGFzIGFueSxcclxuICBidXR0b25Mb2FkaW5nOiB7fSBhcyBhbnksXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0Rm9ybVNldHRpbmcgPSAoZGF0YSkgPT4ge1xyXG4gIGxldCBmb3JtcyA9IEpTT04ucGFyc2UoZGF0YS5mb3JtcyB8fCBcIltdXCIpIHx8IFtdO1xyXG4gIGxldCBzZWxmRm9ybUJ1dHRvbiA9IEpTT04ucGFyc2UoZGF0YS5zZWxmQnV0dG9uIHx8IFwiW11cIikgfHwgW107XHJcbiAgbGV0IG90aGVyUHJvcHMgPSBKU09OLnBhcnNlKGRhdGEub3RoZXJQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4gIGxldCBmb3JtVHlwZSA9IGRhdGEuZm9ybVR5cGU7XHJcbiAgbGV0IHByb3BzID0gSlNPTi5wYXJzZShkYXRhLnByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgbGV0IGZvcm1TZXR0aW5nID0ge1xyXG4gICAgZm9ybVR5cGU6IGZvcm1UeXBlLFxyXG4gICAgc2VsZkJ1dHRvbjogc2VsZkZvcm1CdXR0b24sXHJcbiAgICBwcm9wczogcHJvcHMsXHJcbiAgICBvdGhlclByb3BzOiBvdGhlclByb3BzLFxyXG4gICAgZm9ybXM6IGZvcm1zLFxyXG4gIH07XHJcbiAgcmV0dXJuIGZvcm1TZXR0aW5nO1xyXG59O1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5nRm9ybSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgLi4uZGVmYXVsdFN0YXRlVmFsdWUsXHJcbiAgfTtcclxuICBwYWdlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8SVByb3BzPixcclxuICAgIHByZXZTdGF0ZTogUmVhZG9ubHk8YW55PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAocHJldlByb3BzLmZvcm1Db2RlICE9IHRoaXMucHJvcHMuZm9ybUNvZGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0U3RhdGVWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXREYXRhID0gKHJlczogYW55KSA9PiB7fTtcclxuICAvLyDojrflj5bmlbDmja5cclxuICBnZXREYXRhKCkge1xyXG4gICAgLy8g5LuOcHJvcHPkuK3ojrflj5Z0YWJsZUNvZGXjgIFwdWJsaXNoZWTjgIFtZW51Q29kZVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHBhZ2VMb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1Db2RlLFxyXG4gICAgICBwdWJsaXNoZWQgPSB0cnVlLFxyXG4gICAgICBtZW51Q29kZSxcclxuICAgICAgc2V0dGluZ1NvdXJjZSA9IFwiZm9ybVwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAvLyDlpoLmnpx0YWJsZUNvZGXlrZjlnKhcclxuICAgIGlmIChmb3JtQ29kZSkge1xyXG4gICAgICAvLyDlrprkuYnlj4LmlbBcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgY29kZTogZm9ybUNvZGUgfSBhcyBhbnk7XHJcbiAgICAgIC8vIOWmguaenHB1Ymxpc2hlZOS4unRydWVcclxuICAgICAgaWYgKHB1Ymxpc2hlZCkge1xyXG4gICAgICAgIC8vIOiuvue9ruWPguaVsGlzUHVibGlzaGVk5Li6MVxyXG4gICAgICAgIHBhcmFtcy5pc1B1Ymxpc2hlZCA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8g6LCD55SoZ2V0UGFnZURhdGHmlrnms5Xojrflj5bmlbDmja5cclxuICAgICAgZ2V0UGFnZURhdGEoeyAuLi5wYXJhbXMgfSwgc2V0dGluZ1NvdXJjZSkudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICBpZiAoc2V0dGluZ1NvdXJjZSA9PSBcInRhYmxlXCIpIHtcclxuICAgICAgICAgICAgbGV0IGZvcm1Qcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEuZm9ybVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLi4uZm9ybVByb3BzLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1TZXR0aW5nOiBhbnkgPSBnZXRGb3JtU2V0dGluZyhyZXMuZGF0YSkgfHwge307XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLi4uZm9ybVNldHRpbmcsXHJcbiAgICAgICAgICAgICAgICBmb3JtVHlwZTogdGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBmb3JtU2V0dGluZy5mb3JtVHlwZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEgPT0gbnVsbCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuacquaJvuWIsOmFjee9ruS/oeaBr++8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBvblNlYXJjaCgpIHt9XHJcblxyXG4gIHNob3dGb3JtKHZhbHVlOiBhbnksIGVkaXRvcmZsYWcsIGNhbGxCYWNrKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIGVkaXRvcmZsYWcsIGNhbGxCYWNrKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBmdW5jcyA9IHt9LCAuLi5wYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHBhZ2VMb2FkaW5nLFxyXG4gICAgICBmb3JtVHlwZSxcclxuICAgICAgc2VsZkJ1dHRvbixcclxuICAgICAgcHJvcHMgPSB7fSxcclxuICAgICAgb3RoZXJQcm9wcyA9IHt9LFxyXG4gICAgICBmb3JtcyxcclxuICAgICAgYnV0dG9uTG9hZGluZyxcclxuICAgIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyByZXF1ZXN0T2JqZWN0ID0ge30gfSA9IG90aGVyUHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgZGVhdWx0RnVuY3MgPSB7XHJcbiAgICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHNldEZpZWxkRGlzYWJsZWQoZm9ybXMsIGtleSwgZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZm9ybXM6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldEZpZWxkVmlzaWJsZTogKGtleSwgZGlzYWJsZWQpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRWaXNpYmxlKGZvcm1zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGZvcm1zOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFByb3BzRGF0YTogKGtleSwgZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShmb3Jtcywga2V5LCBkYXRhKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGZvcm1zOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRCdXR0b25Mb2FkaW5nKGNvZGUsIGxvYWRpbmcpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBidXR0b25Mb2FkaW5nOiB7IC4uLmJ1dHRvbkxvYWRpbmcsIFtjb2RlXTogbG9hZGluZyB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICAuLi5kZWZhdWx0Q29tRnVuY3MsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBsZXQgY29kZUZvcm1CdXR0b25zID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvZGVGb3JtQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICBjb25zdCByZW5kZXJGb3JtID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxGb3JtUGFnZVxyXG4gICAgICAgICAgZm9ybVR5cGU9e2Zvcm1UeXBlfVxyXG4gICAgICAgICAgZm9ybXM9e2Zvcm1zfVxyXG4gICAgICAgICAgcmVxdWVzdE9iamVjdD17cmVxdWVzdE9iamVjdH1cclxuICAgICAgICAgIFV0aWxzPXtkZWZhdWx0VXRpbH1cclxuICAgICAgICAgIGZ1bmNzPXt7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9fVxyXG4gICAgICAgICAgcmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICBwYWdlUmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICBwcm9wcz17cHJvcHN9XHJcbiAgICAgICAgICBlZGl0VHlwZT17dGhpcy5wcm9wcy5lZGl0VHlwZX1cclxuICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7cmVuZGVyU2VsZlRvb2xCdXR0b24oe1xyXG4gICAgICAgICAgICBzZWxmQnV0dG9uLFxyXG4gICAgICAgICAgICBwYWdlUmVmOiB0aGlzLnBhZ2VSZWYsXHJcbiAgICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgICBsb2FkaW5nOiB0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmcsXHJcbiAgICAgICAgICAgIHR5cGU6IFwiZm9ybUJ1dHRvblwiLFxyXG4gICAgICAgICAgfSl9XHJcbiAgICAgICAgPC9Gb3JtUGFnZT5cclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIikge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoXCJuc2MtZnJhbWV3b3JrLWZvcm1wYWdlXCIsIGNsYXNzTmFtZSl9PlxyXG4gICAgICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9fT5cclxuICAgICAgICAgICAgICA8U3BpbiBzcGlubmluZz17cGFnZUxvYWRpbmd9PjwvU3Bpbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICByZW5kZXJGb3JtKClcclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gcmVuZGVyRm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFQSxPQUFPQSxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLE9BQU8sY0FBYztBQUNyQixPQUFPQyxLQUFL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
279
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTcGluIiwiUmVhY3QiLCJOc2NSZXF1ZXN0IiwiY2xzIiwiRm9ybVBhZ2UiLCJkZWZhdWx0Q29tRnVuY3MiLCJkZWZhdWx0VXRpbCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiZ2V0UGFnZURhdGEiLCJwYXJhbXMiLCJzZXR0aW5nU291cmNlIiwidXJsIiwiZ2V0IiwieHNzRmlsdGVyIiwiYXV0b1ByZWZpeCIsInNldEZpZWxkRGlzYWJsZWQiLCJkYXRhIiwia2V5IiwiZGlzYWJsZWQiLCJmb21zIiwibmV3Rm9ybXMiLCJtYXAiLCJpdGVtIiwib2JqIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJpbmRleE9mIiwicHJvcHMiLCJwdXNoIiwic2V0RmllbGRWaXNpYmxlIiwidmlzaWJsZSIsInNob3ciLCJzZXRGaWVsZFByb3BzRGF0YSIsInByb3BzRGF0YSIsImZvcm1zIiwiZGF0YUluZGV4IiwiZGVmYXVsdFN0YXRlVmFsdWUiLCJmb3JtVHlwZSIsInBhZ2VMb2FkaW5nIiwic2VsZkJ1dHRvbiIsIm90aGVyUHJvcHMiLCJidXR0b25Mb2FkaW5nIiwiZ2V0Rm9ybVNldHRpbmciLCJKU09OIiwicGFyc2UiLCJzZWxmRm9ybUJ1dHRvbiIsImZvcm1TZXR0aW5nIiwiU2V0dGluZ0Zvcm0iLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsInJlcyIsImNvbXBvbmVudERpZE1vdW50IiwiZ2V0RGF0YSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90IiwiZm9ybUNvZGUiLCJzZXRTdGF0ZSIsInB1Ymxpc2hlZCIsIm1lbnVDb2RlIiwiY29kZSIsImlzUHVibGlzaGVkIiwidGhlbiIsImZvcm1Qcm9wcyIsIl9tZXNzYWdlIiwiZXJyb3IiLCJzaG93Rm9ybSIsInZhbHVlIiwiZWRpdG9yZmxhZyIsImNhbGxCYWNrIiwiX3RoaXMkcGFnZVJlZiRjdXJyZW50IiwicGFnZVJlZiIsImN1cnJlbnQiLCJoaWRlRm9ybSIsIl90aGlzJHBhZ2VSZWYkY3VycmVudDIiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNsYXNzTmFtZSIsImZ1bmNzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic3RhdGUiLCJyZXF1ZXN0T2JqZWN0IiwiX3RoaXMiLCJkZWF1bHRGdW5jcyIsIm5ld0RhdGEiLCJzZXRCdXR0b25Mb2FkaW5nIiwibG9hZGluZyIsImNoaWxkcmVuIiwiY29kZUZvcm1CdXR0b25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGQiLCJyZW5kZXJGb3JtIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwiVXRpbHMiLCJyZWYiLCJlZGl0VHlwZSIsInR5cGUiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdGb3JtL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBCYXNlUGFnZSwgeyBOU0NCYXNlQmFnZVByb3BzIH0gZnJvbSBcIi4uL0Jhc2VQYWdlXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi8uLi9iYXNlL3NwaW5cIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBGb3JtUGFnZSBmcm9tIFwiLi4vRm9ybVBhZ2VcIjtcclxuaW1wb3J0IHtcclxuICBkZWZhdWx0Q29tRnVuY3MsXHJcbiAgZGVmYXVsdFV0aWwsXHJcbiAgcmVuZGVyU2VsZlRvb2xCdXR0b24sXHJcbn0gZnJvbSBcIi4uL1NldHRpbmdVdGlsL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UGFnZURhdGEgPSAocGFyYW1zOiBhbnksIHNldHRpbmdTb3VyY2UpID0+IHtcclxuICBsZXQgdXJsID1cclxuICAgIHNldHRpbmdTb3VyY2UgPT0gXCJ0YWJsZVwiXHJcbiAgICAgID8gXCIvanF1aWNrLXNldHRpbmcvc2V0dGluZy90YWJsZS9pbmZvL1wiXHJcbiAgICAgIDogXCIvanF1aWNrLXNldHRpbmcvc2V0dGluZy9mb3JtL2luZm9cIjtcclxuICByZXR1cm4gTnNjUmVxdWVzdC5nZXQodXJsLCB7XHJcbiAgICBwYXJhbXMsXHJcbiAgICB4c3NGaWx0ZXI6IGZhbHNlLFxyXG4gICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICB9KTtcclxufTtcclxuXHJcbi8v6K6+572u6KGo5Y2V5a2X5q615Y+q6K+7XHJcbmNvbnN0IHNldEZpZWxkRGlzYWJsZWQgPSAoZGF0YTogQXJyYXk8YW55Piwga2V5LCBkaXNhYmxlZCkgPT4ge1xyXG4gIGNvbnN0IGZvbXMgPSBbLi4uZGF0YV07XHJcbiAgbGV0IG5ld0Zvcm1zID0gW10gYXMgYW55O1xyXG4gIGZvbXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICBpZiAoaXRlbS5uYW1lID09IGtleSB8fCBrZXkuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcbi8v6K6+572u6KGo5Y2V5a2X5q616ZqQ6JePXHJcbmNvbnN0IHNldEZpZWxkVmlzaWJsZSA9IChkYXRhOiBBcnJheTxhbnk+LCBrZXksIHZpc2libGUpID0+IHtcclxuICBjb25zdCBmb21zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdGb3JtcyA9IFtdIGFzIGFueTtcclxuICBmb21zLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgbGV0IG9iaiA9IHsgLi4uaXRlbSB9O1xyXG4gICAgaWYgKGl0ZW0ubmFtZSA9PSBrZXkgfHwga2V5LmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKSB7XHJcbiAgICAgIG9iai5zaG93ID0gdmlzaWJsZTtcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcblxyXG5jb25zdCBzZXRGaWVsZFByb3BzRGF0YSA9IChkYXRhOiBBcnJheTxhbnk+LCBrZXksIHByb3BzRGF0YSkgPT4ge1xyXG4gIGNvbnN0IGZvcm1zID0gWy4uLmRhdGFdO1xyXG4gIGxldCBuZXdGb3JtcyA9IFtdIGFzIGFueTtcclxuICBmb3Jtcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgIGlmIChpdGVtLmRhdGFJbmRleCA9PSBrZXkpIHtcclxuICAgICAgbGV0IHByb3BzID0gb2JqLnByb3BzID8geyAuLi5vYmoucHJvcHMgfSA6IHt9O1xyXG4gICAgICBwcm9wcy5kYXRhID0gcHJvcHNEYXRhO1xyXG4gICAgICBvYmoucHJvcHMgPSBwcm9wcztcclxuICAgIH1cclxuICAgIG5ld0Zvcm1zLnB1c2gob2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gbmV3Rm9ybXM7XHJcbn07XHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIGZvcm1Db2RlOiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHB1Ymxpc2hlZD86IGJvb2xlYW47XHJcbiAgaW5zdGFuY2VSZWY/OiBhbnk7XHJcbiAgb25DYWxsQmFja3M/OiB7XHJcbiAgICB0cmVlU2VsZWN0Q2FsbEJhY2s/OiBhbnk7IC8v5qCR54K55Ye75p+l6K+i5ZCO5Zue6LCDXHJcbiAgICBvblF1ZXJ5Q2FsbEJhY2s/OiBhbnk7IC8v5p+l6K+i5Zue6LCD77yM5p+l6K+i5pWw5o2u5ZCO5Zue6LCDXHJcbiAgICBvblN1bWJpdENhbGxCYWNrPzogYW55OyAvL+S/neWtmOWbnuiwg++8jOS/neWtmOaVsOaNruaIkOWKn+WQjuWbnuiwg1xyXG4gICAgb25EZWxldGVDYWxsQmFjaz86IGFueTsgLy/liKDpmaTmjInpkq7lm57osIPvvIzliKDpmaTmlbDmja7lkI7miafooYxcclxuICAgIG9uRWRpdG9yQ2FsbEJhY2s/OiBhbnk7IC8v57yW6L6R5oyJ6ZKu5Zue6LCD77yM5omT5byA5by55qGG5ZCO5omn6KGMXHJcbiAgICBvbkFkZENhbGxCYWNrPzogYW55OyAvL+a3u+WKoOaMiemSruWbnuiwg++8jOaJk+W8gOW8ueahhuWQjuaJp+ihjFxyXG4gICAgb25TZWFyY2hDYWxsQmFjaz86IGFueTsgLy/liJfooajmn6Xor6LmjInpkq7lm57osIPvvIzmiZPlvIDlvLnmoYblkI7miafooYxcclxuICB9O1xyXG4gIGZvcm1Qcm9wcz86IGFueTtcclxuICBjaGlsZHJlbj86IGFueTtcclxuICBbcHJvcE5hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jb25zdCBkZWZhdWx0U3RhdGVWYWx1ZSA9IHtcclxuICBmb3JtVHlwZTogXCJtb2RhbFwiLFxyXG4gIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICBzZWxmQnV0dG9uOiBbXSBhcyBhbnksXHJcbiAgcHJvcHM6IHt9IGFzIGFueSxcclxuICBvdGhlclByb3BzOiB7fSBhcyBhbnksXHJcbiAgZm9ybXM6IFtdIGFzIGFueSxcclxuICBidXR0b25Mb2FkaW5nOiB7fSBhcyBhbnksXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0Rm9ybVNldHRpbmcgPSAoZGF0YSkgPT4ge1xyXG4gIGxldCBmb3JtcyA9IEpTT04ucGFyc2UoZGF0YS5mb3JtcyB8fCBcIltdXCIpIHx8IFtdO1xyXG4gIGxldCBzZWxmRm9ybUJ1dHRvbiA9IEpTT04ucGFyc2UoZGF0YS5zZWxmQnV0dG9uIHx8IFwiW11cIikgfHwgW107XHJcbiAgbGV0IG90aGVyUHJvcHMgPSBKU09OLnBhcnNlKGRhdGEub3RoZXJQcm9wcyB8fCBcInt9XCIpIHx8IHt9O1xyXG4gIGxldCBmb3JtVHlwZSA9IGRhdGEuZm9ybVR5cGU7XHJcbiAgbGV0IHByb3BzID0gSlNPTi5wYXJzZShkYXRhLnByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgbGV0IGZvcm1TZXR0aW5nID0ge1xyXG4gICAgZm9ybVR5cGU6IGZvcm1UeXBlLFxyXG4gICAgc2VsZkJ1dHRvbjogc2VsZkZvcm1CdXR0b24sXHJcbiAgICBwcm9wczogcHJvcHMsXHJcbiAgICBvdGhlclByb3BzOiBvdGhlclByb3BzLFxyXG4gICAgZm9ybXM6IGZvcm1zLFxyXG4gIH07XHJcbiAgcmV0dXJuIGZvcm1TZXR0aW5nO1xyXG59O1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5nRm9ybSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgLi4uZGVmYXVsdFN0YXRlVmFsdWUsXHJcbiAgfTtcclxuICBwYWdlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldERhdGEoKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShcclxuICAgIHByZXZQcm9wczogUmVhZG9ubHk8SVByb3BzPixcclxuICAgIHByZXZTdGF0ZTogUmVhZG9ubHk8YW55PixcclxuICAgIHNuYXBzaG90PzogYW55XHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAocHJldlByb3BzLmZvcm1Db2RlICE9IHRoaXMucHJvcHMuZm9ybUNvZGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi5kZWZhdWx0U3RhdGVWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXREYXRhID0gKHJlczogYW55KSA9PiB7fTtcclxuICAvLyDojrflj5bmlbDmja5cclxuICBnZXREYXRhKCkge1xyXG4gICAgLy8g5LuOcHJvcHPkuK3ojrflj5Z0YWJsZUNvZGXjgIFwdWJsaXNoZWTjgIFtZW51Q29kZVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHBhZ2VMb2FkaW5nOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1Db2RlLFxyXG4gICAgICBwdWJsaXNoZWQgPSB0cnVlLFxyXG4gICAgICBtZW51Q29kZSxcclxuICAgICAgc2V0dGluZ1NvdXJjZSA9IFwiZm9ybVwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAvLyDlpoLmnpx0YWJsZUNvZGXlrZjlnKhcclxuICAgIGlmIChmb3JtQ29kZSkge1xyXG4gICAgICAvLyDlrprkuYnlj4LmlbBcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgY29kZTogZm9ybUNvZGUgfSBhcyBhbnk7XHJcbiAgICAgIC8vIOWmguaenHB1Ymxpc2hlZOS4unRydWVcclxuICAgICAgaWYgKHB1Ymxpc2hlZCkge1xyXG4gICAgICAgIC8vIOiuvue9ruWPguaVsGlzUHVibGlzaGVk5Li6MVxyXG4gICAgICAgIHBhcmFtcy5pc1B1Ymxpc2hlZCA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8g6LCD55SoZ2V0UGFnZURhdGHmlrnms5Xojrflj5bmlbDmja5cclxuICAgICAgZ2V0UGFnZURhdGEoeyAuLi5wYXJhbXMgfSwgc2V0dGluZ1NvdXJjZSkudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICBpZiAoc2V0dGluZ1NvdXJjZSA9PSBcInRhYmxlXCIpIHtcclxuICAgICAgICAgICAgbGV0IGZvcm1Qcm9wcyA9IEpTT04ucGFyc2UocmVzLmRhdGEuZm9ybVByb3BzIHx8IFwie31cIikgfHwge307XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLi4uZm9ybVByb3BzLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1TZXR0aW5nOiBhbnkgPSBnZXRGb3JtU2V0dGluZyhyZXMuZGF0YSkgfHwge307XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLi4uZm9ybVNldHRpbmcsXHJcbiAgICAgICAgICAgICAgICBmb3JtVHlwZTogdGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBmb3JtU2V0dGluZy5mb3JtVHlwZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEgPT0gbnVsbCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuacquaJvuWIsOmFjee9ruS/oeaBr++8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHBhZ2VMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBwYWdlTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBvblNlYXJjaCgpIHt9XHJcblxyXG4gIHNob3dGb3JtKHZhbHVlOiBhbnksIGVkaXRvcmZsYWcsIGNhbGxCYWNrKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIGVkaXRvcmZsYWcsIGNhbGxCYWNrKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnBhZ2VSZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBmdW5jcyA9IHt9LCAuLi5wYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHBhZ2VMb2FkaW5nLFxyXG4gICAgICBmb3JtVHlwZSxcclxuICAgICAgc2VsZkJ1dHRvbixcclxuICAgICAgcHJvcHMgPSB7fSxcclxuICAgICAgb3RoZXJQcm9wcyA9IHt9LFxyXG4gICAgICBmb3JtcyxcclxuICAgICAgYnV0dG9uTG9hZGluZyxcclxuICAgIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyByZXF1ZXN0T2JqZWN0ID0ge30gfSA9IG90aGVyUHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgZGVhdWx0RnVuY3MgPSB7XHJcbiAgICAgIHNldEZpZWxkRGlzYWJsZWQ6IChrZXksIGRpc2FibGVkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0YSA9IHNldEZpZWxkRGlzYWJsZWQoZm9ybXMsIGtleSwgZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZm9ybXM6IG5ld0RhdGEsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldEZpZWxkVmlzaWJsZTogKGtleSwgZGlzYWJsZWQpID0+IHtcclxuICAgICAgICBjb25zdCBuZXdEYXRhID0gc2V0RmllbGRWaXNpYmxlKGZvcm1zLCBrZXksIGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGZvcm1zOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRGaWVsZFByb3BzRGF0YTogKGtleSwgZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0RhdGEgPSBzZXRGaWVsZFByb3BzRGF0YShmb3Jtcywga2V5LCBkYXRhKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGZvcm1zOiBuZXdEYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXRCdXR0b25Mb2FkaW5nKGNvZGUsIGxvYWRpbmcpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBidXR0b25Mb2FkaW5nOiB7IC4uLmJ1dHRvbkxvYWRpbmcsIFtjb2RlXTogbG9hZGluZyB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgICAuLi5kZWZhdWx0Q29tRnVuY3MsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBsZXQgY29kZUZvcm1CdXR0b25zID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGNvZGVGb3JtQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb2RlRm9ybUJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICBjb25zdCByZW5kZXJGb3JtID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxGb3JtUGFnZVxyXG4gICAgICAgICAgZm9ybVR5cGU9e2Zvcm1UeXBlfVxyXG4gICAgICAgICAgZm9ybXM9e2Zvcm1zfVxyXG4gICAgICAgICAgcmVxdWVzdE9iamVjdD17cmVxdWVzdE9iamVjdH1cclxuICAgICAgICAgIFV0aWxzPXtkZWZhdWx0VXRpbH1cclxuICAgICAgICAgIGZ1bmNzPXt7IC4uLmRlYXVsdEZ1bmNzLCAuLi5mdW5jcyB9fVxyXG4gICAgICAgICAgcmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICBwYWdlUmVmPXt0aGlzLnBhZ2VSZWZ9XHJcbiAgICAgICAgICBwcm9wcz17cHJvcHN9XHJcbiAgICAgICAgICBlZGl0VHlwZT17dGhpcy5wcm9wcy5lZGl0VHlwZX1cclxuICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7cmVuZGVyU2VsZlRvb2xCdXR0b24oe1xyXG4gICAgICAgICAgICBzZWxmQnV0dG9uLFxyXG4gICAgICAgICAgICBwYWdlUmVmOiB0aGlzLnBhZ2VSZWYsXHJcbiAgICAgICAgICAgIGZ1bmNzLFxyXG4gICAgICAgICAgICBsb2FkaW5nOiB0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmcsXHJcbiAgICAgICAgICAgIHR5cGU6IFwiZm9ybUJ1dHRvblwiLFxyXG4gICAgICAgICAgfSl9XHJcbiAgICAgICAgPC9Gb3JtUGFnZT5cclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIikge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoXCJuc2Mtc2V0dGluZy1mb3JtcGFnZVwiLCBjbGFzc05hbWUpfT5cclxuICAgICAgICAgIHtwYWdlTG9hZGluZyA/IChcclxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX0+XHJcbiAgICAgICAgICAgICAgPFNwaW4gc3Bpbm5pbmc9e3BhZ2VMb2FkaW5nfT48L1NwaW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgcmVuZGVyRm9ybSgpXHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHJlbmRlckZvcm0oKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUEsT0FBT0EsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxPQUFPLGNBQWM7QUFDckIsT0FBT0MsS0FBSyxN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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Spin","React","NscRequest","cls","FormPage","defaultComFuncs","defaultUtil","renderSelfToolButton","getPageData","params","settingSource","url","get","xssFilter","autoPrefix","setFieldDisabled","data","key","disabled","foms","newForms","map","item","obj","_objectSpread","name","indexOf","props","push","setFieldVisible","visible","show","setFieldPropsData","propsData","forms","dataIndex","defaultStateValue","formType","pageLoading","selfButton","otherProps","buttonLoading","getFormSetting","JSON","parse","selfFormButton","formSetting","SettingForm","Component","constructor","arguments","_defineProperty","createRef","res","componentDidMount","getData","componentDidUpdate","prevProps","prevState","snapshot","formCode","setState","published","menuCode","code","isPublished","then","formProps","_message","error","showForm","value","editorflag","callBack","_this$pageRef$current","pageRef","current","hideForm","_this$pageRef$current2","render","_this$props","className","funcs","_objectWithoutProperties","_excluded","state","requestObject","_this","deaultFuncs","newData","setButtonLoading","loading","children","codeFormButtons","Array","isArray","child","renderForm","createElement","_extends","Utils","ref","editType","type","style","width","height","spinning"],"sources":["../../../src/components/page/SettingForm/index.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\r\nimport BasePage, { NSCBaseBageProps } from \"../BasePage\";\r\nimport Spin from \"../../base/spin\";\r\nimport \"./index.less\";\r\nimport React from \"react\";\r\nimport NscRequest from \"nsc-request\";\r\nimport cls from \"classnames\";\r\nimport { message } from \"antd\";\r\nimport FormPage from \"../FormPage\";\r\nimport {\r\n defaultComFuncs,\r\n defaultUtil,\r\n renderSelfToolButton,\r\n} from \"../SettingUtil/utils\";\r\n\r\nexport const getPageData = (params: any, settingSource) => {\r\n let url =\r\n settingSource == \"table\"\r\n ? \"/jquick-setting/setting/table/info/\"\r\n : \"/jquick-setting/setting/form/info\";\r\n return NscRequest.get(url, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\n\r\n//设置表单字段只读\r\nconst setFieldDisabled = (data: Array<any>, key, disabled) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.name == key || key.indexOf(item.name) > -1) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.disabled = disabled;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n//设置表单字段隐藏\r\nconst setFieldVisible = (data: Array<any>, key, visible) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.name == key || key.indexOf(item.name) > -1) {\r\n obj.show = visible;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n\r\nconst setFieldPropsData = (data: Array<any>, key, propsData) => {\r\n const forms = [...data];\r\n let newForms = [] as any;\r\n forms.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.data = propsData;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\ninterface IProps {\r\n formCode: string;\r\n className?: any;\r\n menuCode?: string;\r\n funcs?: any;\r\n published?: boolean;\r\n instanceRef?: any;\r\n onCallBacks?: {\r\n treeSelectCallBack?: any; //树点击查询后回调\r\n onQueryCallBack?: any; //查询回调,查询数据后回调\r\n onSumbitCallBack?: any; //保存回调,保存数据成功后回调\r\n onDeleteCallBack?: any; //删除按钮回调,删除数据后执行\r\n onEditorCallBack?: any; //编辑按钮回调,打开弹框后执行\r\n onAddCallBack?: any; //添加按钮回调,打开弹框后执行\r\n onSearchCallBack?: any; //列表查询按钮回调,打开弹框后执行\r\n };\r\n formProps?: any;\r\n children?: any;\r\n [propName: string]: any;\r\n}\r\nconst defaultStateValue = {\r\n formType: \"modal\",\r\n pageLoading: false,\r\n selfButton: [] as any,\r\n props: {} as any,\r\n otherProps: {} as any,\r\n forms: [] as any,\r\n buttonLoading: {} as any,\r\n};\r\n\r\nexport const getFormSetting = (data) => {\r\n let forms = JSON.parse(data.forms || \"[]\") || [];\r\n let selfFormButton = JSON.parse(data.selfButton || \"[]\") || [];\r\n let otherProps = JSON.parse(data.otherProps || \"{}\") || {};\r\n let formType = data.formType;\r\n let props = JSON.parse(data.props || \"{}\") || {};\r\n let formSetting = {\r\n formType: formType,\r\n selfButton: selfFormButton,\r\n props: props,\r\n otherProps: otherProps,\r\n forms: forms,\r\n };\r\n return formSetting;\r\n};\r\nexport default class SettingForm extends React.Component<IProps, any> {\r\n state = {\r\n ...defaultStateValue,\r\n };\r\n pageRef = React.createRef<any>();\r\n\r\n componentDidMount(): void {\r\n this.getData();\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<IProps>,\r\n prevState: Readonly<any>,\r\n snapshot?: any\r\n ): void {\r\n if (prevProps.formCode != this.props.formCode) {\r\n this.setState(\r\n {\r\n ...defaultStateValue,\r\n },\r\n () => {\r\n this.getData();\r\n }\r\n );\r\n }\r\n }\r\n\r\n initData = (res: any) => {};\r\n // 获取数据\r\n getData() {\r\n // 从props中获取tableCode、published、menuCode\r\n this.setState({\r\n pageLoading: true,\r\n });\r\n const {\r\n formCode,\r\n published = true,\r\n menuCode,\r\n settingSource = \"form\",\r\n } = this.props;\r\n // 如果tableCode存在\r\n if (formCode) {\r\n // 定义参数\r\n let params = { code: formCode } as any;\r\n // 如果published为true\r\n if (published) {\r\n // 设置参数isPublished为1\r\n params.isPublished = 1;\r\n }\r\n // 调用getPageData方法获取数据\r\n getPageData({ ...params }, settingSource).then((res: any) => {\r\n if (res.code == 200 && res.data) {\r\n if (settingSource == \"table\") {\r\n let formProps = JSON.parse(res.data.formProps || \"{}\") || {};\r\n this.setState(\r\n {\r\n ...formProps,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n } else {\r\n const formSetting: any = getFormSetting(res.data) || {};\r\n this.setState(\r\n {\r\n ...formSetting,\r\n formType: this.props.formType || formSetting.formType,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n }\r\n } else if (res.code == 200 && res.data == null) {\r\n message.error(\"未找到配置信息!\");\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n }\r\n // onSearch() {}\r\n\r\n showForm(value: any, editorflag, callBack) {\r\n this.pageRef.current?.showForm(value, editorflag, callBack);\r\n }\r\n hideForm() {\r\n this.pageRef.current?.hideForm();\r\n }\r\n\r\n render() {\r\n const { className, funcs = {}, ...params } = this.props;\r\n const {\r\n pageLoading,\r\n formType,\r\n selfButton,\r\n props = {},\r\n otherProps = {},\r\n forms,\r\n buttonLoading,\r\n } = this.state;\r\n const { requestObject = {} } = otherProps;\r\n let _this = this;\r\n const deaultFuncs = {\r\n setFieldDisabled: (key, disabled) => {\r\n const newData = setFieldDisabled(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldVisible: (key, disabled) => {\r\n const newData = setFieldVisible(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldPropsData: (key, data) => {\r\n const newData = setFieldPropsData(forms, key, data);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setButtonLoading(code, loading) {\r\n _this.setState({\r\n buttonLoading: { ...buttonLoading, [code]: loading },\r\n });\r\n },\r\n ...defaultComFuncs,\r\n };\r\n const { children } = this.props;\r\n\r\n let codeFormButtons = [];\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n codeFormButtons.push(child);\r\n });\r\n } else {\r\n codeFormButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n codeFormButtons.push(children);\r\n }\r\n const renderForm = () => {\r\n return (\r\n <FormPage\r\n formType={formType}\r\n forms={forms}\r\n requestObject={requestObject}\r\n Utils={defaultUtil}\r\n funcs={{ ...deaultFuncs, ...funcs }}\r\n ref={this.pageRef}\r\n pageRef={this.pageRef}\r\n props={props}\r\n editType={this.props.editType}\r\n {...otherProps}\r\n {...params}\r\n >\r\n {renderSelfToolButton({\r\n selfButton,\r\n pageRef: this.pageRef,\r\n funcs,\r\n loading: this.state.buttonLoading,\r\n type: \"formButton\",\r\n })}\r\n </FormPage>\r\n );\r\n };\r\n if (this.props.formType == \"page\") {\r\n return (\r\n <div className={cls(\"nsc-framework-formpage\", className)}>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n renderForm()\r\n )}\r\n </div>\r\n );\r\n } else {\r\n return renderForm();\r\n }\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Spin","React","NscRequest","cls","FormPage","defaultComFuncs","defaultUtil","renderSelfToolButton","getPageData","params","settingSource","url","get","xssFilter","autoPrefix","setFieldDisabled","data","key","disabled","foms","newForms","map","item","obj","_objectSpread","name","indexOf","props","push","setFieldVisible","visible","show","setFieldPropsData","propsData","forms","dataIndex","defaultStateValue","formType","pageLoading","selfButton","otherProps","buttonLoading","getFormSetting","JSON","parse","selfFormButton","formSetting","SettingForm","Component","constructor","arguments","_defineProperty","createRef","res","componentDidMount","getData","componentDidUpdate","prevProps","prevState","snapshot","formCode","setState","published","menuCode","code","isPublished","then","formProps","_message","error","showForm","value","editorflag","callBack","_this$pageRef$current","pageRef","current","hideForm","_this$pageRef$current2","render","_this$props","className","funcs","_objectWithoutProperties","_excluded","state","requestObject","_this","deaultFuncs","newData","setButtonLoading","loading","children","codeFormButtons","Array","isArray","child","renderForm","createElement","_extends","Utils","ref","editType","type","style","width","height","spinning"],"sources":["../../../src/components/page/SettingForm/index.tsx"],"sourcesContent":["import { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\r\nimport BasePage, { NSCBaseBageProps } from \"../BasePage\";\r\nimport Spin from \"../../base/spin\";\r\nimport \"./index.less\";\r\nimport React from \"react\";\r\nimport NscRequest from \"nsc-request\";\r\nimport cls from \"classnames\";\r\nimport { message } from \"antd\";\r\nimport FormPage from \"../FormPage\";\r\nimport {\r\n defaultComFuncs,\r\n defaultUtil,\r\n renderSelfToolButton,\r\n} from \"../SettingUtil/utils\";\r\n\r\nexport const getPageData = (params: any, settingSource) => {\r\n let url =\r\n settingSource == \"table\"\r\n ? \"/jquick-setting/setting/table/info/\"\r\n : \"/jquick-setting/setting/form/info\";\r\n return NscRequest.get(url, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\n\r\n//设置表单字段只读\r\nconst setFieldDisabled = (data: Array<any>, key, disabled) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.name == key || key.indexOf(item.name) > -1) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.disabled = disabled;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n//设置表单字段隐藏\r\nconst setFieldVisible = (data: Array<any>, key, visible) => {\r\n const foms = [...data];\r\n let newForms = [] as any;\r\n foms.map((item) => {\r\n let obj = { ...item };\r\n if (item.name == key || key.indexOf(item.name) > -1) {\r\n obj.show = visible;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\n\r\nconst setFieldPropsData = (data: Array<any>, key, propsData) => {\r\n const forms = [...data];\r\n let newForms = [] as any;\r\n forms.map((item) => {\r\n let obj = { ...item };\r\n if (item.dataIndex == key) {\r\n let props = obj.props ? { ...obj.props } : {};\r\n props.data = propsData;\r\n obj.props = props;\r\n }\r\n newForms.push(obj);\r\n });\r\n return newForms;\r\n};\r\ninterface IProps {\r\n formCode: string;\r\n className?: any;\r\n menuCode?: string;\r\n funcs?: any;\r\n published?: boolean;\r\n instanceRef?: any;\r\n onCallBacks?: {\r\n treeSelectCallBack?: any; //树点击查询后回调\r\n onQueryCallBack?: any; //查询回调,查询数据后回调\r\n onSumbitCallBack?: any; //保存回调,保存数据成功后回调\r\n onDeleteCallBack?: any; //删除按钮回调,删除数据后执行\r\n onEditorCallBack?: any; //编辑按钮回调,打开弹框后执行\r\n onAddCallBack?: any; //添加按钮回调,打开弹框后执行\r\n onSearchCallBack?: any; //列表查询按钮回调,打开弹框后执行\r\n };\r\n formProps?: any;\r\n children?: any;\r\n [propName: string]: any;\r\n}\r\nconst defaultStateValue = {\r\n formType: \"modal\",\r\n pageLoading: false,\r\n selfButton: [] as any,\r\n props: {} as any,\r\n otherProps: {} as any,\r\n forms: [] as any,\r\n buttonLoading: {} as any,\r\n};\r\n\r\nexport const getFormSetting = (data) => {\r\n let forms = JSON.parse(data.forms || \"[]\") || [];\r\n let selfFormButton = JSON.parse(data.selfButton || \"[]\") || [];\r\n let otherProps = JSON.parse(data.otherProps || \"{}\") || {};\r\n let formType = data.formType;\r\n let props = JSON.parse(data.props || \"{}\") || {};\r\n let formSetting = {\r\n formType: formType,\r\n selfButton: selfFormButton,\r\n props: props,\r\n otherProps: otherProps,\r\n forms: forms,\r\n };\r\n return formSetting;\r\n};\r\nexport default class SettingForm extends React.Component<IProps, any> {\r\n state = {\r\n ...defaultStateValue,\r\n };\r\n pageRef = React.createRef<any>();\r\n\r\n componentDidMount(): void {\r\n this.getData();\r\n }\r\n\r\n componentDidUpdate(\r\n prevProps: Readonly<IProps>,\r\n prevState: Readonly<any>,\r\n snapshot?: any\r\n ): void {\r\n if (prevProps.formCode != this.props.formCode) {\r\n this.setState(\r\n {\r\n ...defaultStateValue,\r\n },\r\n () => {\r\n this.getData();\r\n }\r\n );\r\n }\r\n }\r\n\r\n initData = (res: any) => {};\r\n // 获取数据\r\n getData() {\r\n // 从props中获取tableCode、published、menuCode\r\n this.setState({\r\n pageLoading: true,\r\n });\r\n const {\r\n formCode,\r\n published = true,\r\n menuCode,\r\n settingSource = \"form\",\r\n } = this.props;\r\n // 如果tableCode存在\r\n if (formCode) {\r\n // 定义参数\r\n let params = { code: formCode } as any;\r\n // 如果published为true\r\n if (published) {\r\n // 设置参数isPublished为1\r\n params.isPublished = 1;\r\n }\r\n // 调用getPageData方法获取数据\r\n getPageData({ ...params }, settingSource).then((res: any) => {\r\n if (res.code == 200 && res.data) {\r\n if (settingSource == \"table\") {\r\n let formProps = JSON.parse(res.data.formProps || \"{}\") || {};\r\n this.setState(\r\n {\r\n ...formProps,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n } else {\r\n const formSetting: any = getFormSetting(res.data) || {};\r\n this.setState(\r\n {\r\n ...formSetting,\r\n formType: this.props.formType || formSetting.formType,\r\n },\r\n () => {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n );\r\n }\r\n } else if (res.code == 200 && res.data == null) {\r\n message.error(\"未找到配置信息!\");\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n });\r\n } else {\r\n this.setState({\r\n pageLoading: false,\r\n });\r\n }\r\n }\r\n // onSearch() {}\r\n\r\n showForm(value: any, editorflag, callBack) {\r\n this.pageRef.current?.showForm(value, editorflag, callBack);\r\n }\r\n hideForm() {\r\n this.pageRef.current?.hideForm();\r\n }\r\n\r\n render() {\r\n const { className, funcs = {}, ...params } = this.props;\r\n const {\r\n pageLoading,\r\n formType,\r\n selfButton,\r\n props = {},\r\n otherProps = {},\r\n forms,\r\n buttonLoading,\r\n } = this.state;\r\n const { requestObject = {} } = otherProps;\r\n let _this = this;\r\n const deaultFuncs = {\r\n setFieldDisabled: (key, disabled) => {\r\n const newData = setFieldDisabled(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldVisible: (key, disabled) => {\r\n const newData = setFieldVisible(forms, key, disabled);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setFieldPropsData: (key, data) => {\r\n const newData = setFieldPropsData(forms, key, data);\r\n this.setState({\r\n forms: newData,\r\n });\r\n },\r\n setButtonLoading(code, loading) {\r\n _this.setState({\r\n buttonLoading: { ...buttonLoading, [code]: loading },\r\n });\r\n },\r\n ...defaultComFuncs,\r\n };\r\n const { children } = this.props;\r\n\r\n let codeFormButtons = [];\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n if (Array.isArray(item)) {\r\n item.map((child) => {\r\n codeFormButtons.push(child);\r\n });\r\n } else {\r\n codeFormButtons.push(item);\r\n }\r\n });\r\n } else if (children) {\r\n codeFormButtons.push(children);\r\n }\r\n const renderForm = () => {\r\n return (\r\n <FormPage\r\n formType={formType}\r\n forms={forms}\r\n requestObject={requestObject}\r\n Utils={defaultUtil}\r\n funcs={{ ...deaultFuncs, ...funcs }}\r\n ref={this.pageRef}\r\n pageRef={this.pageRef}\r\n props={props}\r\n editType={this.props.editType}\r\n {...otherProps}\r\n {...params}\r\n >\r\n {renderSelfToolButton({\r\n selfButton,\r\n pageRef: this.pageRef,\r\n funcs,\r\n loading: this.state.buttonLoading,\r\n type: \"formButton\",\r\n })}\r\n </FormPage>\r\n );\r\n };\r\n if (this.props.formType == \"page\") {\r\n return (\r\n <div className={cls(\"nsc-setting-formpage\", className)}>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n renderForm()\r\n )}\r\n </div>\r\n );\r\n } else {\r\n return renderForm();\r\n }\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- .nsc-framework-formpage {
2
- width: 100%;
3
- height: 100%;
4
- .ant-spin {
5
- top: 50%;
6
- left: 50%;
7
- }
8
- .ant-spin-spinning {
9
- top: 50%;
10
- left: 50%;
11
- }
1
+ .nsc-setting-formpage {
2
+ width: 100%;
3
+ height: auto;
4
+ padding-bottom: 40px;
5
+ .ant-spin {
6
+ top: 50%;
7
+ left: 50%;
12
8
  }
13
-
9
+ .ant-spin-spinning {
10
+ top: 50%;
11
+ left: 50%;
12
+ }
13
+ }
@@ -53,7 +53,7 @@ const Index = _ref => {
53
53
  }
54
54
  }));
55
55
  return /*#__PURE__*/React.createElement("div", {
56
- className: "nsc-framework-tabpage"
56
+ className: "nsc-setting-tabpage"
57
57
  }, pageLoading ? /*#__PURE__*/React.createElement("div", {
58
58
  style: {
59
59
  width: "100%",
@@ -81,4 +81,4 @@ export default /*#__PURE__*/forwardRef((props, ref) => {
81
81
  instanceRef: ref
82
82
  }));
83
83
  });
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZvcndhcmRSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlU3RhdGUiLCJUYWJzIiwiU2V0dGluZ1RhYmxlIiwiTnNjUmVxdWVzdCIsIlNwaW4iLCJnZXRQYWdlRGF0YSIsInBhcmFtcyIsImdldCIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJJbmRleCIsIl9yZWYiLCJ0YWJDb2RlIiwicHVibGlzaGVkIiwiaW5zdGFuY2VSZWYiLCJ0YWJzIiwic2V0VGFicyIsInJlZkxpc3QiLCJwYWdlTG9hZGluZyIsInNldFBhZ2VMb2FkaW5nIiwiY29kZSIsImlzUHVibGlzaGVkIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJkYXRhIiwidGFiUHJvcHMiLCJKU09OIiwicGFyc2UiLCJfbWVzc2FnZSIsImVycm9yIiwiZ2V0UmVmcyIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0YWJsZVJlZiIsImNyZWF0ZVJlZiIsIlRhYlBhbmUiLCJrZXkiLCJ0YWIiLCJ0aXRsZSIsInRhYmxlQ29kZSIsIm1lbnVDb2RlIiwicmVmIiwidGFiUGFyYW1zIiwicHJvcHMiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvU2V0dGluZ1RhYi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgJy4vaW5kZXgubGVzcydcclxuaW1wb3J0IFRhYnMgZnJvbSAnLi4vLi4vYmFzZS90YWJzJ1xyXG5pbXBvcnQgU2V0dGluZ1RhYmxlIGZyb20gJy4uL1NldHRpbmdUYWJsZSdcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSAnbnNjLXJlcXVlc3QnXHJcbmltcG9ydCBTcGluIGZyb20gJy4uLy4uL2Jhc2Uvc3BpbidcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xyXG5pbnRlcmZhY2UgUGFyYW1zIHtcclxuICB0YWJDb2RlOiBzdHJpbmc7XHJcbiAgcHVibGlzaGVkPzogYm9vbGVhbjtcclxuICBpbnN0YW5jZVJlZj86IGFueVxyXG59XHJcbmNvbnN0IGdldFBhZ2VEYXRhID0gKHBhcmFtczogYW55KSA9PiB7XHJcbiAgcmV0dXJuIE5zY1JlcXVlc3QuZ2V0KGAvanF1aWNrLXNldHRpbmcvc2V0dGluZy90YWIvaW5mby9gLCB7XHJcbiAgICBwYXJhbXMsXHJcbiAgICB4c3NGaWx0ZXI6IGZhbHNlLFxyXG4gICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICB9KTtcclxufTtcclxuY29uc3QgSW5kZXggPSAoeyB0YWJDb2RlLCBwdWJsaXNoZWQgPSB0cnVlLCBpbnN0YW5jZVJlZiB9OiBQYXJhbXMpID0+IHtcclxuICBjb25zdCBbdGFicywgc2V0VGFic10gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG4gIGNvbnN0IHJlZkxpc3QgPSB7fSBhcyBhbnlcclxuICBjb25zdCBbcGFnZUxvYWRpbmcsIHNldFBhZ2VMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRQYWdlTG9hZGluZyh0cnVlKVxyXG4gICAgaWYgKHRhYkNvZGUpIHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgY29kZTogdGFiQ29kZSB9IGFzIGFueVxyXG4gICAgICBpZiAocHVibGlzaGVkKSB7XHJcbiAgICAgICAgcGFyYW1zLmlzUHVibGlzaGVkID0gMVxyXG4gICAgICB9XHJcbiAgICAgIGdldFBhZ2VEYXRhKHsgLi4ucGFyYW1zIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKVxyXG4gICAgICAgIGlmIChyZXMuY29kZSA9PT0gMjAwICYmIHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICBsZXQgdGFiUHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnRhYlByb3BzIHx8ICdbXScpIHx8IFtdO1xyXG4gICAgICAgICAgc2V0VGFicyh0YWJQcm9wcyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sIFt0YWJDb2RlXSlcclxuICB1c2VJbXBlcmF0aXZlSGFuZGxlKGluc3RhbmNlUmVmLCAoKSA9PiAoe1xyXG4gICAgZ2V0UmVmczogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gcmVmTGlzdDtcclxuICAgIH0sXHJcbiAgfSkpO1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT0nbnNjLWZyYW1ld29yay10YWJwYWdlJz5cclxuICAgICAge3BhZ2VMb2FkaW5nID8gKFxyXG4gICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiMTAwJVwiIH19PlxyXG4gICAgICAgICAgPFNwaW4gc3Bpbm5pbmc9e3BhZ2VMb2FkaW5nfT48L1NwaW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICkgOiAoXHJcbiAgICAgICAgPFRhYnM+XHJcbiAgICAgICAgICB7dGFicy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgICAgICAgICAgIHJlZkxpc3RbaXRlbS5jb2RlXSA9IHRhYmxlUmVmO1xyXG4gICAgICAgICAgICByZXR1cm4gPFRhYnMuVGFiUGFuZSBrZXk9e2luZGV4fSB0YWI9e2l0ZW0udGl0bGV9PlxyXG4gICAgICAgICAgICAgIHtpdGVtLmNvZGUgJiYgPFNldHRpbmdUYWJsZSB0YWJsZUNvZGU9e2l0ZW0uY29kZX0gbWVudUNvZGU9e2l0ZW0ubWVudUNvZGV9IHJlZj17dGFibGVSZWZ9IHRhYlBhcmFtcz17aXRlbS5wYXJhbXN9IHB1Ymxpc2hlZD17cHVibGlzaGVkfSAvPn1cclxuICAgICAgICAgICAgPC9UYWJzLlRhYlBhbmU+O1xyXG4gICAgICAgICAgfSl9XHJcbiAgICAgICAgPC9UYWJzPil9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZm9yd2FyZFJlZjxhbnksIFBhcmFtcz4oXHJcbiAgKHByb3BzLCByZWYpID0+IHtcclxuICAgIHJldHVybiA8SW5kZXggey4uLnByb3BzfSBpbnN0YW5jZVJlZj17cmVmfSAvPjtcclxuICB9LFxyXG4pOyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU9BLEtBQUssSUFBSUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLG1CQUFtQixFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNuRixPQUFPLGNBQWM7QUFDckIsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxPQUFPQyxZQUFZLE1BQU0saUJBQWlCO0FBQzFDLE9BQU9DLFVBQVUsTUFBTSxhQUFhO0FBQ3BDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFPbEMsTUFBTUMsV0FBVyxHQUFJQyxNQUFXLElBQUs7RUFDbkMsT0FBT0gsVUFBVSxDQUFDSSxHQUFHLHNDQUFzQztJQUN6REQsTUFBTTtJQUNORSxTQUFTLEVBQUUsS0FBSztJQUNoQkMsVUFBVSxFQUFFO0VBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUNELE1BQU1DLEtBQUssR0FBR0MsSUFBQSxJQUF3RDtFQUFBLElBQXZEO0lBQUVDLE9BQU87SUFBRUMsU0FBUyxHQUFHLElBQUk7SUFBRUM7RUFBb0IsQ0FBQyxHQUFBSCxJQUFBO0VBQy9ELE1BQU0sQ0FBQ0ksSUFBSSxFQUFFQyxPQUFPLENBQUMsR0FBR2hCLFFBQVEsQ0FBQyxFQUFTLENBQUM7RUFDM0MsTUFBTWlCLE9BQU8sR0FBRyxDQUFDLENBQVE7RUFDekIsTUFBTSxDQUFDQyxXQUFXLEVBQUVDLGNBQWMsQ0FBQyxHQUFHbkIsUUFBUSxDQUFDLElBQUksQ0FBQztFQUNwREYsU0FBUyxDQUFDLE1BQU07SUFDZHFCLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDcEIsSUFBSVAsT0FBTyxFQUFFO01BQ1gsSUFBSU4sTUFBTSxHQUFHO1FBQUVjLElBQUksRUFBRVI7TUFBUSxDQUFRO01BQ3JDLElBQUlDLFNBQVMsRUFBRTtRQUNiUCxNQUFNLENBQUNlLFdBQVcsR0FBRyxDQUFDO01BQ3hCO01BQ0FoQixXQUFXLENBQUFpQixhQUFBLEtBQU1oQixNQUFNLENBQUUsQ0FBQyxDQUFDaUIsSUFBSSxDQUFFQyxHQUFHLElBQUs7UUFDdkNMLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSUssR0FBRyxDQUFDSixJQUFJLEtBQUssR0FBRyxJQUFJSSxHQUFHLENBQUNDLElBQUksRUFBRTtVQUNoQyxJQUFJQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDSixHQUFHLENBQUNDLElBQUksQ0FBQ0MsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7VUFDMURWLE9BQU8sQ0FBQ1UsUUFBUSxDQUFDO1FBQ25CLENBQUMsTUFBTTtVQUNMRyxRQUFBLENBQVFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDM0I7TUFDRixDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUFDbEIsT0FBTyxDQUFDLENBQUM7RUFDYmIsbUJBQW1CLENBQUNlLFdBQVcsRUFBRSxPQUFPO0lBQ3RDaUIsT0FBTyxFQUFFQSxDQUFBLEtBQU07TUFDYixPQUFPZCxPQUFPO0lBQ2hCO0VBQ0YsQ0FBQyxDQUFDLENBQUM7RUFDSCxvQkFDRXJCLEtBQUEsQ0FBQW9DLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQXVCLEdBQ25DZixXQUFXLGdCQUNWdEIsS0FBQSxDQUFBb0MsYUFBQTtJQUFLRSxLQUFLLEVBQUU7TUFBRUMsS0FBSyxFQUFFLE1BQU07TUFBRUMsTUFBTSxFQUFFO0lBQU87RUFBRSxnQkFDNUN4QyxLQUFBLENBQUFvQyxhQUFBLENBQUM1QixJQUFJO0lBQUNpQyxRQUFRLEVBQUVuQjtFQUFZLENBQU8sQ0FDaEMsQ0FBQyxnQkFFTnRCLEtBQUEsQ0FBQW9DLGFBQUEsQ0FBQy9CLElBQUksUUFDRmMsSUFBSSxDQUFDdUIsR0FBRyxDQUFDLENBQUNDLElBQVMsRUFBRUMsS0FBYSxLQUFLO0lBQ3RDLE1BQU1DLFFBQVEsZ0JBQUc3QyxLQUFLLENBQUM4QyxTQUFTLENBQU0sQ0FBQztJQUN2Q3pCLE9BQU8sQ0FBQ3NCLElBQUksQ0FBQ25CLElBQUksQ0FBQyxHQUFHcUIsUUFBUTtJQUM3QixvQkFBTzdDLEtBQUEsQ0FBQW9DLGFBQUEsQ0FBQy9CLElBQUksQ0FBQzBDLE9BQU87TUFBQ0MsR0FBRyxFQUFFSixLQUFNO01BQUNLLEdBQUcsRUFBRU4sSUFBSSxDQUFDTztJQUFNLEdBQzlDUCxJQUFJLENBQUNuQixJQUFJLGlCQUFJeEIsS0FBQSxDQUFBb0MsYUFBQSxDQUFDOUIsWUFBWTtNQUFDNkMsU0FBUyxFQUFFUixJQUFJLENBQUNuQixJQUFLO01BQUM0QixRQUFRLEVBQUVULElBQUksQ0FBQ1MsUUFBUztNQUFDQyxHQUFHLEVBQUVSLFFBQVM7TUFBQ1MsU0FBUyxFQUFFWCxJQUFJLENBQUNqQyxNQUFPO01BQUNPLFNBQVMsRUFBRUE7SUFBVSxDQUFFLENBQzdILENBQUM7RUFDakIsQ0FBQyxDQUNHLENBQ0wsQ0FBQztBQUVWLENBQUM7QUFFRCw0QkFBZWhCLFVBQVUsQ0FDdkIsQ0FBQ3NELEtBQUssRUFBRUYsR0FBRyxLQUFLO0VBQ2Qsb0JBQU9yRCxLQUFBLENBQUFvQyxhQUFBLENBQUN0QixLQUFLLEVBQUEwQyxRQUFBLEtBQUtELEtBQUs7SUFBRXJDLFdBQVcsRUFBRW1DO0VBQUksRUFBRSxDQUFDO0FBQy9DLENBQ0YsQ0FBQyJ9
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZvcndhcmRSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwidXNlU3RhdGUiLCJUYWJzIiwiU2V0dGluZ1RhYmxlIiwiTnNjUmVxdWVzdCIsIlNwaW4iLCJnZXRQYWdlRGF0YSIsInBhcmFtcyIsImdldCIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJJbmRleCIsIl9yZWYiLCJ0YWJDb2RlIiwicHVibGlzaGVkIiwiaW5zdGFuY2VSZWYiLCJ0YWJzIiwic2V0VGFicyIsInJlZkxpc3QiLCJwYWdlTG9hZGluZyIsInNldFBhZ2VMb2FkaW5nIiwiY29kZSIsImlzUHVibGlzaGVkIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJkYXRhIiwidGFiUHJvcHMiLCJKU09OIiwicGFyc2UiLCJfbWVzc2FnZSIsImVycm9yIiwiZ2V0UmVmcyIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0Iiwic3Bpbm5pbmciLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0YWJsZVJlZiIsImNyZWF0ZVJlZiIsIlRhYlBhbmUiLCJrZXkiLCJ0YWIiLCJ0aXRsZSIsInRhYmxlQ29kZSIsIm1lbnVDb2RlIiwicmVmIiwidGFiUGFyYW1zIiwicHJvcHMiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvU2V0dGluZ1RhYi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCBSZWFjdCwgeyBmb3J3YXJkUmVmLCB1c2VFZmZlY3QsIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgJy4vaW5kZXgubGVzcydcclxuaW1wb3J0IFRhYnMgZnJvbSAnLi4vLi4vYmFzZS90YWJzJ1xyXG5pbXBvcnQgU2V0dGluZ1RhYmxlIGZyb20gJy4uL1NldHRpbmdUYWJsZSdcclxuaW1wb3J0IE5zY1JlcXVlc3QgZnJvbSAnbnNjLXJlcXVlc3QnXHJcbmltcG9ydCBTcGluIGZyb20gJy4uLy4uL2Jhc2Uvc3BpbidcclxuaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xyXG5pbnRlcmZhY2UgUGFyYW1zIHtcclxuICB0YWJDb2RlOiBzdHJpbmc7XHJcbiAgcHVibGlzaGVkPzogYm9vbGVhbjtcclxuICBpbnN0YW5jZVJlZj86IGFueVxyXG59XHJcbmNvbnN0IGdldFBhZ2VEYXRhID0gKHBhcmFtczogYW55KSA9PiB7XHJcbiAgcmV0dXJuIE5zY1JlcXVlc3QuZ2V0KGAvanF1aWNrLXNldHRpbmcvc2V0dGluZy90YWIvaW5mby9gLCB7XHJcbiAgICBwYXJhbXMsXHJcbiAgICB4c3NGaWx0ZXI6IGZhbHNlLFxyXG4gICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICB9KTtcclxufTtcclxuY29uc3QgSW5kZXggPSAoeyB0YWJDb2RlLCBwdWJsaXNoZWQgPSB0cnVlLCBpbnN0YW5jZVJlZiB9OiBQYXJhbXMpID0+IHtcclxuICBjb25zdCBbdGFicywgc2V0VGFic10gPSB1c2VTdGF0ZShbXSBhcyBhbnkpO1xyXG4gIGNvbnN0IHJlZkxpc3QgPSB7fSBhcyBhbnlcclxuICBjb25zdCBbcGFnZUxvYWRpbmcsIHNldFBhZ2VMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRQYWdlTG9hZGluZyh0cnVlKVxyXG4gICAgaWYgKHRhYkNvZGUpIHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHsgY29kZTogdGFiQ29kZSB9IGFzIGFueVxyXG4gICAgICBpZiAocHVibGlzaGVkKSB7XHJcbiAgICAgICAgcGFyYW1zLmlzUHVibGlzaGVkID0gMVxyXG4gICAgICB9XHJcbiAgICAgIGdldFBhZ2VEYXRhKHsgLi4ucGFyYW1zIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgIHNldFBhZ2VMb2FkaW5nKGZhbHNlKVxyXG4gICAgICAgIGlmIChyZXMuY29kZSA9PT0gMjAwICYmIHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICBsZXQgdGFiUHJvcHMgPSBKU09OLnBhcnNlKHJlcy5kYXRhLnRhYlByb3BzIHx8ICdbXScpIHx8IFtdO1xyXG4gICAgICAgICAgc2V0VGFicyh0YWJQcm9wcyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLmnKrmib7liLDphY3nva7kv6Hmga/vvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sIFt0YWJDb2RlXSlcclxuICB1c2VJbXBlcmF0aXZlSGFuZGxlKGluc3RhbmNlUmVmLCAoKSA9PiAoe1xyXG4gICAgZ2V0UmVmczogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gcmVmTGlzdDtcclxuICAgIH0sXHJcbiAgfSkpO1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT0nbnNjLXNldHRpbmctdGFicGFnZSc+XHJcbiAgICAgIHtwYWdlTG9hZGluZyA/IChcclxuICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgaGVpZ2h0OiBcIjEwMCVcIiB9fT5cclxuICAgICAgICAgIDxTcGluIHNwaW5uaW5nPXtwYWdlTG9hZGluZ30+PC9TcGluPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIDxUYWJzPlxyXG4gICAgICAgICAge3RhYnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdGFibGVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gICAgICAgICAgICByZWZMaXN0W2l0ZW0uY29kZV0gPSB0YWJsZVJlZjtcclxuICAgICAgICAgICAgcmV0dXJuIDxUYWJzLlRhYlBhbmUga2V5PXtpbmRleH0gdGFiPXtpdGVtLnRpdGxlfT5cclxuICAgICAgICAgICAgICB7aXRlbS5jb2RlICYmIDxTZXR0aW5nVGFibGUgdGFibGVDb2RlPXtpdGVtLmNvZGV9IG1lbnVDb2RlPXtpdGVtLm1lbnVDb2RlfSByZWY9e3RhYmxlUmVmfSB0YWJQYXJhbXM9e2l0ZW0ucGFyYW1zfSBwdWJsaXNoZWQ9e3B1Ymxpc2hlZH0gLz59XHJcbiAgICAgICAgICAgIDwvVGFicy5UYWJQYW5lPjtcclxuICAgICAgICAgIH0pfVxyXG4gICAgICAgIDwvVGFicz4pfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZvcndhcmRSZWY8YW55LCBQYXJhbXM+KFxyXG4gIChwcm9wcywgcmVmKSA9PiB7XHJcbiAgICByZXR1cm4gPEluZGV4IHsuLi5wcm9wc30gaW5zdGFuY2VSZWY9e3JlZn0gLz47XHJcbiAgfSxcclxuKTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxPQUFPQSxLQUFLLElBQUlDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxtQkFBbUIsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDbkYsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsT0FBT0MsWUFBWSxNQUFNLGlCQUFpQjtBQUMxQyxPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUNwQyxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBT2xDLE1BQU1DLFdBQVcsR0FBSUMsTUFBVyxJQUFLO0VBQ25DLE9BQU9ILFVBQVUsQ0FBQ0ksR0FBRyxzQ0FBc0M7SUFDekRELE1BQU07SUFDTkUsU0FBUyxFQUFFLEtBQUs7SUFDaEJDLFVBQVUsRUFBRTtFQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7QUFDRCxNQUFNQyxLQUFLLEdBQUdDLElBQUEsSUFBd0Q7RUFBQSxJQUF2RDtJQUFFQyxPQUFPO0lBQUVDLFNBQVMsR0FBRyxJQUFJO0lBQUVDO0VBQW9CLENBQUMsR0FBQUgsSUFBQTtFQUMvRCxNQUFNLENBQUNJLElBQUksRUFBRUMsT0FBTyxDQUFDLEdBQUdoQixRQUFRLENBQUMsRUFBUyxDQUFDO0VBQzNDLE1BQU1pQixPQUFPLEdBQUcsQ0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","forwardRef","useEffect","useImperativeHandle","useState","Tabs","SettingTable","NscRequest","Spin","getPageData","params","get","xssFilter","autoPrefix","Index","_ref","tabCode","published","instanceRef","tabs","setTabs","refList","pageLoading","setPageLoading","code","isPublished","_objectSpread","then","res","data","tabProps","JSON","parse","_message","error","getRefs","createElement","className","style","width","height","spinning","map","item","index","tableRef","createRef","TabPane","key","tab","title","tableCode","menuCode","ref","tabParams","props","_extends"],"sources":["../../../src/components/page/SettingTab/index.tsx"],"sourcesContent":["\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\r\nimport './index.less'\r\nimport Tabs from '../../base/tabs'\r\nimport SettingTable from '../SettingTable'\r\nimport NscRequest from 'nsc-request'\r\nimport Spin from '../../base/spin'\r\nimport { message } from 'antd';\r\ninterface Params {\r\n tabCode: string;\r\n published?: boolean;\r\n instanceRef?: any\r\n}\r\nconst getPageData = (params: any) => {\r\n return NscRequest.get(`/jquick-setting/setting/tab/info/`, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\nconst Index = ({ tabCode, published = true, instanceRef }: Params) => {\r\n const [tabs, setTabs] = useState([] as any);\r\n const refList = {} as any\r\n const [pageLoading, setPageLoading] = useState(true);\r\n useEffect(() => {\r\n setPageLoading(true)\r\n if (tabCode) {\r\n let params = { code: tabCode } as any\r\n if (published) {\r\n params.isPublished = 1\r\n }\r\n getPageData({ ...params }).then((res) => {\r\n setPageLoading(false)\r\n if (res.code === 200 && res.data) {\r\n let tabProps = JSON.parse(res.data.tabProps || '[]') || [];\r\n setTabs(tabProps);\r\n } else {\r\n message.error(\"未找到配置信息!\");\r\n }\r\n })\r\n }\r\n }, [tabCode])\r\n useImperativeHandle(instanceRef, () => ({\r\n getRefs: () => {\r\n return refList;\r\n },\r\n }));\r\n return (\r\n <div className='nsc-framework-tabpage'>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n <Tabs>\r\n {tabs.map((item: any, index: number) => {\r\n const tableRef = React.createRef<any>();\r\n refList[item.code] = tableRef;\r\n return <Tabs.TabPane key={index} tab={item.title}>\r\n {item.code && <SettingTable tableCode={item.code} menuCode={item.menuCode} ref={tableRef} tabParams={item.params} published={published} />}\r\n </Tabs.TabPane>;\r\n })}\r\n </Tabs>)}\r\n </div>\r\n );\r\n};\r\n\r\nexport default forwardRef<any, Params>(\r\n (props, ref) => {\r\n return <Index {...props} instanceRef={ref} />;\r\n },\r\n);"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","forwardRef","useEffect","useImperativeHandle","useState","Tabs","SettingTable","NscRequest","Spin","getPageData","params","get","xssFilter","autoPrefix","Index","_ref","tabCode","published","instanceRef","tabs","setTabs","refList","pageLoading","setPageLoading","code","isPublished","_objectSpread","then","res","data","tabProps","JSON","parse","_message","error","getRefs","createElement","className","style","width","height","spinning","map","item","index","tableRef","createRef","TabPane","key","tab","title","tableCode","menuCode","ref","tabParams","props","_extends"],"sources":["../../../src/components/page/SettingTab/index.tsx"],"sourcesContent":["\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\r\nimport './index.less'\r\nimport Tabs from '../../base/tabs'\r\nimport SettingTable from '../SettingTable'\r\nimport NscRequest from 'nsc-request'\r\nimport Spin from '../../base/spin'\r\nimport { message } from 'antd';\r\ninterface Params {\r\n tabCode: string;\r\n published?: boolean;\r\n instanceRef?: any\r\n}\r\nconst getPageData = (params: any) => {\r\n return NscRequest.get(`/jquick-setting/setting/tab/info/`, {\r\n params,\r\n xssFilter: false,\r\n autoPrefix: true,\r\n });\r\n};\r\nconst Index = ({ tabCode, published = true, instanceRef }: Params) => {\r\n const [tabs, setTabs] = useState([] as any);\r\n const refList = {} as any\r\n const [pageLoading, setPageLoading] = useState(true);\r\n useEffect(() => {\r\n setPageLoading(true)\r\n if (tabCode) {\r\n let params = { code: tabCode } as any\r\n if (published) {\r\n params.isPublished = 1\r\n }\r\n getPageData({ ...params }).then((res) => {\r\n setPageLoading(false)\r\n if (res.code === 200 && res.data) {\r\n let tabProps = JSON.parse(res.data.tabProps || '[]') || [];\r\n setTabs(tabProps);\r\n } else {\r\n message.error(\"未找到配置信息!\");\r\n }\r\n })\r\n }\r\n }, [tabCode])\r\n useImperativeHandle(instanceRef, () => ({\r\n getRefs: () => {\r\n return refList;\r\n },\r\n }));\r\n return (\r\n <div className='nsc-setting-tabpage'>\r\n {pageLoading ? (\r\n <div style={{ width: \"100%\", height: \"100%\" }}>\r\n <Spin spinning={pageLoading}></Spin>\r\n </div>\r\n ) : (\r\n <Tabs>\r\n {tabs.map((item: any, index: number) => {\r\n const tableRef = React.createRef<any>();\r\n refList[item.code] = tableRef;\r\n return <Tabs.TabPane key={index} tab={item.title}>\r\n {item.code && <SettingTable tableCode={item.code} menuCode={item.menuCode} ref={tableRef} tabParams={item.params} published={published} />}\r\n </Tabs.TabPane>;\r\n })}\r\n </Tabs>)}\r\n </div>\r\n );\r\n};\r\n\r\nexport default forwardRef<any, Params>(\r\n (props, ref) => {\r\n return <Index {...props} instanceRef={ref} />;\r\n },\r\n);"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- .nsc-framework-tabpage {
1
+ .nsc-setting-tabpage {
2
2
  width: 100%;
3
3
  height: 100%;
4
4
  background: #fff;
@@ -186,8 +186,9 @@ export const defaultComFuncs = {
186
186
  title: "表单页面"
187
187
  }, params), {}, {
188
188
  serviceName: "setting-web",
189
- servicePath: "/setting"
190
- }), "addTab");
189
+ servicePath: "/setting",
190
+ openType: 4
191
+ }));
191
192
  }
192
193
  };
193
194
  export const ModalForm = /*#__PURE__*/React.forwardRef((props, ref) => {
@@ -224,4 +225,4 @@ export const ModalForm = /*#__PURE__*/React.forwardRef((props, ref) => {
224
225
  ref: modalRef
225
226
  }, others)));
226
227
  });
227
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiTnNjQ29tIiwiTnNjRmlsZSIsIk5zY1JlcXVlc3QiLCJOc2NVdGlscyIsImRheWpzIiwiQnV0dG9uIiwiZ2V0TG9jYWxTdG9yZSIsInF1ZXJ5U3RyaW5nIiwiTW9kYWwiLCJTZXR0aW5nRm9ybSIsImRlZmF1bHRVdGlsIiwiY3JlYXRlRWxlbWVudCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiX3JlZiIsInNlbGZCdXR0b24iLCJwYWdlUmVmIiwiZnVuY3MiLCJsb2FkaW5nIiwidHlwZSIsImxlbmd0aCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInBhZ2VUeXBlIiwia2V5Iiwib25DbGljayIsImV2ZW50T3B0aW9uIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY29kZSIsIm5hbWUiLCJyZW5kZXJTZWxmQ29sdW1uQnV0dG9uIiwiX3JlZjIiLCJzZWxmQ29sdW1uQnV0dG9uIiwicmVjb3JkIiwicmVjb3JkU2hvdyIsImp1bXBQYWdlIiwicGFyYW1zIiwicGF0aG5hbWUiLCJxdWVyeSIsImlkIiwidGl0bGUiLCJzZXJ2aWNlTmFtZSIsInNlcnZpY2VQYXRoIiwib3BlblR5cGUiLCJuZXdRdWVyeSIsIl9vYmplY3RTcHJlYWQiLCJ1cmxQYXJhbXMiLCJzdHJpbmdpZnkiLCJwYXRoIiwiY29uY2F0Iiwid2luZG93IiwiX19QT1dFUkVEX0JZX1FJQU5LVU5fXyIsImRhdGEiLCJwYXJlbnQiLCJwb3N0TWVzc2FnZSIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJsb2NhdGlvbiIsIm9yaWdpbiIsImhpc3RvcnkiLCJwdXNoU3RhdGUiLCJnbyIsImdldFByb2plY3QiLCJwcm9qZWN0IiwiY29udmVydFN0cmluZ1RvT2JqIiwiVXRpbHMiLCJjb252ZXJQYXJhbXMiLCJNb2RhbEluZGV4IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwibW9kYWxSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwic2hvdyIsImN1cnJlbnQiLCJoaWRlIiwiTW9kYWxNYW5hZ2VyIiwicmVnaXN0ZXIiLCJzaG93TW9kYWwiLCJjb25zb2xlIiwiZXJyb3IiLCJoaWRlTW9kYWwiLCJkZWZhdWx0Q29tRnVuY3MiLCJnZXRDdXJyZW50UHJvamVjdCIsIm9wZW5Gb3JtUGFnZSIsImZvcm1Db2RlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiRGF0ZSIsImdldFRpbWUiLCJNb2RhbEZvcm0iLCJzZXRQYXJhbXMiLCJfbW9kYWxSZWYkY3VycmVudCIsIm1vZGFsUHJvcHMiLCJzaG93Rm9ybSIsIl9tb2RhbFJlZiRjdXJyZW50MiIsIm90aGVycyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIl9leHRlbmRzIiwiZm9ybVR5cGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdVdGlsL3V0aWxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBOc2NDb20gZnJvbSBcIi4vY29tXCI7XHJcbmltcG9ydCBOc2NGaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0ICogYXMgTnNjVXRpbHMgZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSBcInF1ZXJ5LXN0cmluZ1wiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuXHJcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XHJcbmltcG9ydCBGb3JtUGFnZSBmcm9tIFwiLi4vRm9ybVBhZ2VcIjtcclxuaW1wb3J0IFNldHRpbmdGb3JtIGZyb20gXCIuLi9TZXR0aW5nRm9ybVwiO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdFV0aWwgPSB7XHJcbiAgTnNjQ29tLFxyXG4gIE5zY0ZpbGUsXHJcbiAgTnNjUmVxdWVzdCxcclxuICBOc2NVdGlscyxcclxuICBkYXlqcyxcclxuICBjcmVhdGVFbGVtZW50OiBSZWFjdC5jcmVhdGVFbGVtZW50LFxyXG59IGFzIGFueTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmVG9vbEJ1dHRvbiA9ICh7XHJcbiAgc2VsZkJ1dHRvbixcclxuICBwYWdlUmVmLFxyXG4gIGZ1bmNzLFxyXG4gIGxvYWRpbmcsXHJcbiAgdHlwZSA9IFwidG9vbEJ1dHRvblwiLFxyXG59KSA9PiB7XHJcbiAgaWYgKHNlbGZCdXR0b24ubGVuZ3RoID09IDApIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gc2VsZkJ1dHRvbi5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHBhZ2VUeXBlPXt0eXBlfVxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0geyBwYWdlUmVmOiBwYWdlUmVmLCBmdW5jczogZnVuY3MgfTtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzLGV2ZW50T3B0aW9uXCIsIGl0ZW0ub25DbGljayk7XHJcbiAgICAgICAgICAgIGZ1bmMoZGVmYXVsdFV0aWwsIGV2ZW50T3B0aW9uKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBjb2RlPXtpdGVtLmNvZGV9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nW2l0ZW0uY29kZV0gPT09IHRydWUgPyB0cnVlIDogZmFsc2V9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2l0ZW0ubmFtZX1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmQ29sdW1uQnV0dG9uID0gKHtcclxuICBzZWxmQ29sdW1uQnV0dG9uLFxyXG4gIHBhZ2VSZWYsXHJcbiAgZnVuY3MsXHJcbn0pID0+IHtcclxuICBpZiAoc2VsZkNvbHVtbkJ1dHRvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBzZWxmQ29sdW1uQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJjb2x1bW5CdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgICAgIHBhZ2VSZWY6IHBhZ2VSZWYsXHJcbiAgICAgICAgICAgICAgcmVjb3JkOiByZWNvcmQsXHJcbiAgICAgICAgICAgICAgZnVuY3M6IGZ1bmNzLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhkZWZhdWx0VXRpbCwgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICAgIHJlY29yZFNob3c9e2l0ZW0ucmVjb3JkU2hvd31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuaW50ZXJmYWNlIElQYXJhbXMge1xyXG4gIHBhdGhuYW1lPzogc3RyaW5nO1xyXG4gIHF1ZXJ5PzogYW55O1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VQYXRoPzogc3RyaW5nO1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIG9wZW5UeXBlPzogbnVtYmVyO1xyXG59XHJcblxyXG5jb25zdCBqdW1wUGFnZSA9IChwYXJhbXM6IElQYXJhbXMsIHR5cGU/OiBcImFkZFRhYlwiIHwgXCJqdW1wTWVudVwiKSA9PiB7XHJcbiAgY29uc3Qge1xyXG4gICAgcGF0aG5hbWUsXHJcbiAgICBxdWVyeSA9IHt9LFxyXG4gICAgaWQsXHJcbiAgICB0aXRsZSxcclxuICAgIHNlcnZpY2VOYW1lLFxyXG4gICAgc2VydmljZVBhdGgsXHJcbiAgICBvcGVuVHlwZSxcclxuICB9ID0gcGFyYW1zO1xyXG4gIGNvbnN0IG5ld1F1ZXJ5ID0geyAuLi5xdWVyeSB9IGFzIGFueTtcclxuICBjb25zdCB1cmxQYXJhbXMgPSBxdWVyeVN0cmluZy5zdHJpbmdpZnkobmV3UXVlcnkpO1xyXG4gIGNvbnN0IHBhdGggPSB1cmxQYXJhbXMgPyBgJHtwYXRobmFtZX0/JHt1cmxQYXJhbXN9YCA6IHBhdGhuYW1lO1xyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIGlmICh3aW5kb3cuX19QT1dFUkVEX0JZX1FJQU5LVU5fXykge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwi5paw5qCH562+XCIsXHJcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSwgLy/phY3nva7nmoTlvq7lupTnlKjlkI3np7BcclxuICAgICAgc2VydmljZVBhdGg6IHNlcnZpY2VQYXRoLCAvL+mFjee9rueahOW+ruW6lOeUqOWFpeWPo+WcsOWdgFxyXG4gICAgICBwYXRoOiBwYXRoLCAvL+aWsOagh+etvueahHVybCzmsqHphY3nva5zZXJ2aWNlTmFtZSBwYXRo5Li65a6M5pW06Lev5b6EXHJcbiAgICAgIGlkOiBpZCwgLy/oh6rlrprkuYnllK/kuIDlgLxcclxuICAgICAgb3BlblR5cGU6IG9wZW5UeXBlID8gb3BlblR5cGUgOiA0LCAvL+aJk+W8gOaWueW8jyA05L2N5b6u5YmN56uvLCAz5Li6aWZyYW1lICzpu5jorqQgM1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoXHJcbiAgICAgIHtcclxuICAgICAgICBldmVudFR5cGU6IHR5cGUgPyB0eXBlIDogXCJhZGRUYWJcIixcclxuICAgICAgICBzZXJ2aWNlTmFtZTogc2VydmljZU5hbWUgPyBzZXJ2aWNlTmFtZSA6IFwic2V0dGluZy13ZWJcIixcclxuICAgICAgICBwYXlsb2FkOiB0eXBlID8gcGFyYW1zIDogZGF0YSxcclxuICAgICAgfSxcclxuICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG4gICAgKTtcclxuICB9IGVsc2Uge1xyXG4gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCBcIlwiLCBwYXRoKTtcclxuICAgIHdpbmRvdy5oaXN0b3J5LmdvKCk7XHJcbiAgfVxyXG59O1xyXG5jb25zdCBnZXRQcm9qZWN0ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHByb2plY3QgPSBnZXRMb2NhbFN0b3JlKHsgbmFtZTogXCJuc2MtaG9tZS1wcm9qZWN0XCIgfSkgfHwge307XHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydFN0cmluZ1RvT2JqID0gKGRhdGEsIFV0aWxzLCBldmVudE9wdGlvbikgPT4ge1xyXG4gIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09IFwic3RyaW5nXCIpIHtcclxuICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb24sVXRpbHNcIiwgZGF0YSk7XHJcbiAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhldmVudE9wdGlvbiwgVXRpbHMpO1xyXG4gICAgZGF0YSA9IGNvbnZlclBhcmFtcztcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGEgfHwge307XHJcbiAgfVxyXG4gIHJldHVybiBkYXRhO1xyXG59O1xyXG4vLyBjb25zdCBtb2RhbFJlZjogYW55ID0gdXNlUmVmKG51bGwpO1xyXG5jb25zdCBNb2RhbEluZGV4ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gIC8vIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgbW9kYWxSZWY6IGFueSA9IHVzZVJlZihudWxsKTtcclxuICAvLyDkvb/nlKh1c2VJbXBlcmF0aXZlSGFuZGxl5ZCR54i257uE5Lu25pq06Zyy5pa55rOVXHJcbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XHJcbiAgICBzaG93OiAoKSA9PiB7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQuc2hvdygpO1xyXG4gICAgfSxcclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgbW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9LFxyXG4gIH0pKTtcclxuXHJcbiAgcmV0dXJuIDxNb2RhbD48L01vZGFsPjtcclxufSk7XHJcbmV4cG9ydCBjb25zdCBNb2RhbE1hbmFnZXIgPSB7XHJcbiAgbW9kYWxSZWY6IG51bGwsXHJcbiAgcmVnaXN0ZXI6IGZ1bmN0aW9uIChyZWYpIHtcclxuICAgIHRoaXMubW9kYWxSZWYgPSByZWY7XHJcbiAgfSxcclxuICBzaG93TW9kYWw6IGZ1bmN0aW9uIChwcm9wcykge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5zaG93KHByb3BzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJNb2RhbOW8leeUqOacquazqOWGjFwiKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGhpZGVNb2RhbDogZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29tRnVuY3MgPSB7XHJcbiAgaGlzdG9yeTogKHBhcmFtcywgdHlwZSkgPT4ge1xyXG4gICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKTtcclxuICB9LFxyXG4gIGdldEN1cnJlbnRQcm9qZWN0OiAoKSA9PiB7XHJcbiAgICByZXR1cm4gZ2V0UHJvamVjdCgpO1xyXG4gIH0sXHJcbiAgb3BlbkZvcm1QYWdlOiAocGFyYW1zLCBmb3JtQ29kZSwgdHlwZSA9IFwiYWRkXCIpID0+IHtcclxuICAgIGp1bXBQYWdlKFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aG5hbWU6IGAvZm9ybXBhZ2UvJHt0eXBlfS9mb3JtLyR7Zm9ybUNvZGV9YCxcclxuICAgICAgICBpZDogbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICAgICAgdGl0bGU6IFwi6KGo5Y2V6aG16Z2iXCIsXHJcbiAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgIHNlcnZpY2VOYW1lOiBcInNldHRpbmctd2ViXCIsXHJcbiAgICAgICAgc2VydmljZVBhdGg6IFwiL3NldHRpbmdcIixcclxuICAgICAgfSxcclxuICAgICAgXCJhZGRUYWJcIlxyXG4gICAgKTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE1vZGFsRm9ybSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcclxuICBjb25zdCBtb2RhbFJlZjogYW55ID0gdXNlUmVmKG51bGwpO1xyXG4gIC8vIGNvbnN0IFtmb3JtQ29kZSwgc2V0Rm9ybUNvZGVdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgLy8gY29uc3QgW2VkaXRJZFR5cGUsIHNldEVkaXRUeXBlXSA9IHVzZVN0YXRlKFwiXCIpO1xyXG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZSh7fSBhcyBhbnkpO1xyXG4gIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xyXG4gICAgc2hvdzogKHByb3BzKSA9PiB7XHJcbiAgICAgIC8vIGNvbnN0IHtmb3JtQ29kZSxlZH1cclxuICAgICAgc2V0UGFyYW1zKHsgLi4ucHJvcHMsIG1vZGFsUHJvcHM6IHsgdGl0bGU6IHByb3BzLnRpdGxlIH0gfSk7XHJcbiAgICAgIC8vIHNldEVkaXRUeXBlKHByb3BzLmVkaXRJZFR5cGUpO1xyXG4gICAgICBtb2RhbFJlZi5jdXJyZW50Py5zaG93Rm9ybSgpO1xyXG4gICAgfSxcclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgc2V0UGFyYW1zKHt9KTtcclxuICAgICAgLy8gc2V0RWRpdFR5cGUoXCJcIik7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQ/LnNob3dGb3JtKCk7XHJcbiAgICB9LFxyXG4gIH0pKTtcclxuICBjb25zdCB7IGZvcm1Db2RlLCAuLi5vdGhlcnMgfSA9IHBhcmFtcztcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiA+XHJcbiAgICAgIDxTZXR0aW5nRm9ybVxyXG4gICAgICAgIGZvcm1Db2RlPXtwYXJhbXMuZm9ybUNvZGV9XHJcbiAgICAgICAgZm9ybVR5cGU9XCJtb2RhbFwiXHJcbiAgICAgICAgcmVmPXttb2RhbFJlZn1cclxuICAgICAgICB7Li4ub3RoZXJzfVxyXG4gICAgICA+PC9TZXR0aW5nRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0pO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVuUGFybXMge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZm9ybUNvZGU6IHN0cmluZztcclxuICBlZGl0VHlwZT86IHN0cmluZztcclxuICBlZGl0SWQ/OiBzdHJpbmc7XHJcbiAgZm9vdGVyPzogYm9vbGVhbjtcclxuICB3aWR0aD86IG51bWJlcjtcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBeUJDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEUsT0FBTyxLQUFLQyxNQUFNLE1BQU0sT0FBTztBQUMvQixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUM5QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUNwQyxPQUFPLEtBQUtDLFFBQVEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxTQUFTQyxhQUFhLFFBQVEsbUJBQW1CO0FBQ2pELE9BQU9DLFdBQVcsTUFBTSxjQUFjO0FBQ3RDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFJcEMsT0FBT0MsV0FBVyxNQUFNLGdCQUFnQjtBQUN4QyxPQUFPLE1BQU1DLFdBQVcsR0FBRztFQUN6QlYsTUFBTTtFQUNOQyxPQUFPO0VBQ1BDLFVBQVU7RUFDVkMsUUFBUTtFQUNSQyxLQUFLO0VBQ0xPLGFBQWEsRUFBRWQsS0FBSyxDQUFDYztBQUN2QixDQUFRO0FBRVIsT0FBTyxNQUFNQyxvQkFBb0IsR0FBR0MsSUFBQSxJQU05QjtFQUFBLElBTitCO0lBQ25DQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsS0FBSztJQUNMQyxPQUFPO0lBQ1BDLElBQUksR0FBRztFQUNULENBQUMsR0FBQUwsSUFBQTtFQUNDLElBQUlDLFVBQVUsQ0FBQ0ssTUFBTSxJQUFJLENBQUMsRUFBRTtJQUMxQixPQUFP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
228
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiTnNjQ29tIiwiTnNjRmlsZSIsIk5zY1JlcXVlc3QiLCJOc2NVdGlscyIsImRheWpzIiwiQnV0dG9uIiwiZ2V0TG9jYWxTdG9yZSIsInF1ZXJ5U3RyaW5nIiwiTW9kYWwiLCJTZXR0aW5nRm9ybSIsImRlZmF1bHRVdGlsIiwiY3JlYXRlRWxlbWVudCIsInJlbmRlclNlbGZUb29sQnV0dG9uIiwiX3JlZiIsInNlbGZCdXR0b24iLCJwYWdlUmVmIiwiZnVuY3MiLCJsb2FkaW5nIiwidHlwZSIsImxlbmd0aCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInBhZ2VUeXBlIiwia2V5Iiwib25DbGljayIsImV2ZW50T3B0aW9uIiwiZnVuYyIsIkZ1bmN0aW9uIiwiY29kZSIsIm5hbWUiLCJyZW5kZXJTZWxmQ29sdW1uQnV0dG9uIiwiX3JlZjIiLCJzZWxmQ29sdW1uQnV0dG9uIiwicmVjb3JkIiwicmVjb3JkU2hvdyIsImp1bXBQYWdlIiwicGFyYW1zIiwicGF0aG5hbWUiLCJxdWVyeSIsImlkIiwidGl0bGUiLCJzZXJ2aWNlTmFtZSIsInNlcnZpY2VQYXRoIiwib3BlblR5cGUiLCJuZXdRdWVyeSIsIl9vYmplY3RTcHJlYWQiLCJ1cmxQYXJhbXMiLCJzdHJpbmdpZnkiLCJwYXRoIiwiY29uY2F0Iiwid2luZG93IiwiX19QT1dFUkVEX0JZX1FJQU5LVU5fXyIsImRhdGEiLCJwYXJlbnQiLCJwb3N0TWVzc2FnZSIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJsb2NhdGlvbiIsIm9yaWdpbiIsImhpc3RvcnkiLCJwdXNoU3RhdGUiLCJnbyIsImdldFByb2plY3QiLCJwcm9qZWN0IiwiY29udmVydFN0cmluZ1RvT2JqIiwiVXRpbHMiLCJjb252ZXJQYXJhbXMiLCJNb2RhbEluZGV4IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwibW9kYWxSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwic2hvdyIsImN1cnJlbnQiLCJoaWRlIiwiTW9kYWxNYW5hZ2VyIiwicmVnaXN0ZXIiLCJzaG93TW9kYWwiLCJjb25zb2xlIiwiZXJyb3IiLCJoaWRlTW9kYWwiLCJkZWZhdWx0Q29tRnVuY3MiLCJnZXRDdXJyZW50UHJvamVjdCIsIm9wZW5Gb3JtUGFnZSIsImZvcm1Db2RlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiRGF0ZSIsImdldFRpbWUiLCJNb2RhbEZvcm0iLCJzZXRQYXJhbXMiLCJfbW9kYWxSZWYkY3VycmVudCIsIm1vZGFsUHJvcHMiLCJzaG93Rm9ybSIsIl9tb2RhbFJlZiRjdXJyZW50MiIsIm90aGVycyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIl9leHRlbmRzIiwiZm9ybVR5cGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL1NldHRpbmdVdGlsL3V0aWxzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgKiBhcyBOc2NDb20gZnJvbSBcIi4vY29tXCI7XHJcbmltcG9ydCBOc2NGaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0ICogYXMgTnNjVXRpbHMgZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSBcInF1ZXJ5LXN0cmluZ1wiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuXHJcbmltcG9ydCBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XHJcbmltcG9ydCBGb3JtUGFnZSBmcm9tIFwiLi4vRm9ybVBhZ2VcIjtcclxuaW1wb3J0IFNldHRpbmdGb3JtIGZyb20gXCIuLi9TZXR0aW5nRm9ybVwiO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdFV0aWwgPSB7XHJcbiAgTnNjQ29tLFxyXG4gIE5zY0ZpbGUsXHJcbiAgTnNjUmVxdWVzdCxcclxuICBOc2NVdGlscyxcclxuICBkYXlqcyxcclxuICBjcmVhdGVFbGVtZW50OiBSZWFjdC5jcmVhdGVFbGVtZW50LFxyXG59IGFzIGFueTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmVG9vbEJ1dHRvbiA9ICh7XHJcbiAgc2VsZkJ1dHRvbixcclxuICBwYWdlUmVmLFxyXG4gIGZ1bmNzLFxyXG4gIGxvYWRpbmcsXHJcbiAgdHlwZSA9IFwidG9vbEJ1dHRvblwiLFxyXG59KSA9PiB7XHJcbiAgaWYgKHNlbGZCdXR0b24ubGVuZ3RoID09IDApIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gc2VsZkJ1dHRvbi5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHBhZ2VUeXBlPXt0eXBlfVxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0geyBwYWdlUmVmOiBwYWdlUmVmLCBmdW5jczogZnVuY3MgfTtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzLGV2ZW50T3B0aW9uXCIsIGl0ZW0ub25DbGljayk7XHJcbiAgICAgICAgICAgIGZ1bmMoZGVmYXVsdFV0aWwsIGV2ZW50T3B0aW9uKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBjb2RlPXtpdGVtLmNvZGV9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nW2l0ZW0uY29kZV0gPT09IHRydWUgPyB0cnVlIDogZmFsc2V9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2l0ZW0ubmFtZX1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCByZW5kZXJTZWxmQ29sdW1uQnV0dG9uID0gKHtcclxuICBzZWxmQ29sdW1uQnV0dG9uLFxyXG4gIHBhZ2VSZWYsXHJcbiAgZnVuY3MsXHJcbn0pID0+IHtcclxuICBpZiAoc2VsZkNvbHVtbkJ1dHRvbi5sZW5ndGggPT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBzZWxmQ29sdW1uQnV0dG9uLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgcGFnZVR5cGU9XCJjb2x1bW5CdXR0b25cIlxyXG4gICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgIHR5cGU9e2l0ZW0udHlwZX1cclxuICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgICAgIHBhZ2VSZWY6IHBhZ2VSZWYsXHJcbiAgICAgICAgICAgICAgcmVjb3JkOiByZWNvcmQsXHJcbiAgICAgICAgICAgICAgZnVuY3M6IGZ1bmNzLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHMsZXZlbnRPcHRpb25cIiwgaXRlbS5vbkNsaWNrKTtcclxuICAgICAgICAgICAgZnVuYyhkZWZhdWx0VXRpbCwgZXZlbnRPcHRpb24pO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGNvZGU9e2l0ZW0uY29kZX1cclxuICAgICAgICAgIHJlY29yZFNob3c9e2l0ZW0ucmVjb3JkU2hvd31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7aXRlbS5uYW1lfVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuaW50ZXJmYWNlIElQYXJhbXMge1xyXG4gIHBhdGhuYW1lPzogc3RyaW5nO1xyXG4gIHF1ZXJ5PzogYW55O1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHNlcnZpY2VQYXRoPzogc3RyaW5nO1xyXG4gIG1lbnVDb2RlPzogc3RyaW5nO1xyXG4gIG9wZW5UeXBlPzogbnVtYmVyO1xyXG59XHJcblxyXG5jb25zdCBqdW1wUGFnZSA9IChwYXJhbXM6IElQYXJhbXMsIHR5cGU/OiBcImFkZFRhYlwiIHwgXCJqdW1wTWVudVwiKSA9PiB7XHJcbiAgY29uc3Qge1xyXG4gICAgcGF0aG5hbWUsXHJcbiAgICBxdWVyeSA9IHt9LFxyXG4gICAgaWQsXHJcbiAgICB0aXRsZSxcclxuICAgIHNlcnZpY2VOYW1lLFxyXG4gICAgc2VydmljZVBhdGgsXHJcbiAgICBvcGVuVHlwZSxcclxuICB9ID0gcGFyYW1zO1xyXG4gIGNvbnN0IG5ld1F1ZXJ5ID0geyAuLi5xdWVyeSB9IGFzIGFueTtcclxuICBjb25zdCB1cmxQYXJhbXMgPSBxdWVyeVN0cmluZy5zdHJpbmdpZnkobmV3UXVlcnkpO1xyXG4gIGNvbnN0IHBhdGggPSB1cmxQYXJhbXMgPyBgJHtwYXRobmFtZX0/JHt1cmxQYXJhbXN9YCA6IHBhdGhuYW1lO1xyXG4gIC8vQHRzLWlnbm9yZVxyXG4gIGlmICh3aW5kb3cuX19QT1dFUkVEX0JZX1FJQU5LVU5fXykge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgdGl0bGU6IHRpdGxlIHx8IFwi5paw5qCH562+XCIsXHJcbiAgICAgIHNlcnZpY2VOYW1lOiBzZXJ2aWNlTmFtZSwgLy/phY3nva7nmoTlvq7lupTnlKjlkI3np7BcclxuICAgICAgc2VydmljZVBhdGg6IHNlcnZpY2VQYXRoLCAvL+mFjee9rueahOW+ruW6lOeUqOWFpeWPo+WcsOWdgFxyXG4gICAgICBwYXRoOiBwYXRoLCAvL+aWsOagh+etvueahHVybCzmsqHphY3nva5zZXJ2aWNlTmFtZSBwYXRo5Li65a6M5pW06Lev5b6EXHJcbiAgICAgIGlkOiBpZCwgLy/oh6rlrprkuYnllK/kuIDlgLxcclxuICAgICAgb3BlblR5cGU6IG9wZW5UeXBlID8gb3BlblR5cGUgOiA0LCAvL+aJk+W8gOaWueW8jyA05L2N5b6u5YmN56uvLCAz5Li6aWZyYW1lICzpu5jorqQgM1xyXG4gICAgfTtcclxuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoXHJcbiAgICAgIHtcclxuICAgICAgICBldmVudFR5cGU6IHR5cGUgPyB0eXBlIDogXCJhZGRUYWJcIixcclxuICAgICAgICBzZXJ2aWNlTmFtZTogc2VydmljZU5hbWUgPyBzZXJ2aWNlTmFtZSA6IFwic2V0dGluZy13ZWJcIixcclxuICAgICAgICBwYXlsb2FkOiB0eXBlID8gcGFyYW1zIDogZGF0YSxcclxuICAgICAgfSxcclxuICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG4gICAgKTtcclxuICB9IGVsc2Uge1xyXG4gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCBcIlwiLCBwYXRoKTtcclxuICAgIHdpbmRvdy5oaXN0b3J5LmdvKCk7XHJcbiAgfVxyXG59O1xyXG5jb25zdCBnZXRQcm9qZWN0ID0gKCkgPT4ge1xyXG4gIGNvbnN0IHByb2plY3QgPSBnZXRMb2NhbFN0b3JlKHsgbmFtZTogXCJuc2MtaG9tZS1wcm9qZWN0XCIgfSkgfHwge307XHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydFN0cmluZ1RvT2JqID0gKGRhdGEsIFV0aWxzLCBldmVudE9wdGlvbikgPT4ge1xyXG4gIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09IFwic3RyaW5nXCIpIHtcclxuICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb24sVXRpbHNcIiwgZGF0YSk7XHJcbiAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhldmVudE9wdGlvbiwgVXRpbHMpO1xyXG4gICAgZGF0YSA9IGNvbnZlclBhcmFtcztcclxuICB9IGVsc2Uge1xyXG4gICAgZGF0YSA9IGRhdGEgfHwge307XHJcbiAgfVxyXG4gIHJldHVybiBkYXRhO1xyXG59O1xyXG4vLyBjb25zdCBtb2RhbFJlZjogYW55ID0gdXNlUmVmKG51bGwpO1xyXG5jb25zdCBNb2RhbEluZGV4ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gIC8vIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgbW9kYWxSZWY6IGFueSA9IHVzZVJlZihudWxsKTtcclxuICAvLyDkvb/nlKh1c2VJbXBlcmF0aXZlSGFuZGxl5ZCR54i257uE5Lu25pq06Zyy5pa55rOVXHJcbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XHJcbiAgICBzaG93OiAoKSA9PiB7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQuc2hvdygpO1xyXG4gICAgfSxcclxuICAgIGhpZGU6ICgpID0+IHtcclxuICAgICAgbW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9LFxyXG4gIH0pKTtcclxuXHJcbiAgcmV0dXJuIDxNb2RhbD48L01vZGFsPjtcclxufSk7XHJcbmV4cG9ydCBjb25zdCBNb2RhbE1hbmFnZXIgPSB7XHJcbiAgbW9kYWxSZWY6IG51bGwsXHJcbiAgcmVnaXN0ZXI6IGZ1bmN0aW9uIChyZWYpIHtcclxuICAgIHRoaXMubW9kYWxSZWYgPSByZWY7XHJcbiAgfSxcclxuICBzaG93TW9kYWw6IGZ1bmN0aW9uIChwcm9wcykge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5zaG93KHByb3BzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJNb2RhbOW8leeUqOacquazqOWGjFwiKTtcclxuICAgIH1cclxuICB9LFxyXG4gIGhpZGVNb2RhbDogZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxSZWYgJiYgdGhpcy5tb2RhbFJlZi5jdXJyZW50KSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudC5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29tRnVuY3MgPSB7XHJcbiAgaGlzdG9yeTogKHBhcmFtcywgdHlwZSkgPT4ge1xyXG4gICAganVtcFBhZ2UocGFyYW1zLCB0eXBlKTtcclxuICB9LFxyXG4gIGdldEN1cnJlbnRQcm9qZWN0OiAoKSA9PiB7XHJcbiAgICByZXR1cm4gZ2V0UHJvamVjdCgpO1xyXG4gIH0sXHJcbiAgb3BlbkZvcm1QYWdlOiAocGFyYW1zLCBmb3JtQ29kZSwgdHlwZSA9IFwiYWRkXCIpID0+IHtcclxuICAgIGp1bXBQYWdlKHtcclxuICAgICAgcGF0aG5hbWU6IGAvZm9ybXBhZ2UvJHt0eXBlfS9mb3JtLyR7Zm9ybUNvZGV9YCxcclxuICAgICAgaWQ6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxyXG4gICAgICB0aXRsZTogXCLooajljZXpobXpnaJcIixcclxuICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICBzZXJ2aWNlTmFtZTogXCJzZXR0aW5nLXdlYlwiLFxyXG4gICAgICBzZXJ2aWNlUGF0aDogXCIvc2V0dGluZ1wiLFxyXG4gICAgICBvcGVuVHlwZTogNCxcclxuICAgIH0pO1xyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgTW9kYWxGb3JtID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xyXG4gIGNvbnN0IG1vZGFsUmVmOiBhbnkgPSB1c2VSZWYobnVsbCk7XHJcbiAgLy8gY29uc3QgW2Zvcm1Db2RlLCBzZXRGb3JtQ29kZV0gPSB1c2VTdGF0ZShcIlwiKTtcclxuICAvLyBjb25zdCBbZWRpdElkVHlwZSwgc2V0RWRpdFR5cGVdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgY29uc3QgW3BhcmFtcywgc2V0UGFyYW1zXSA9IHVzZVN0YXRlKHt9IGFzIGFueSk7XHJcbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XHJcbiAgICBzaG93OiAocHJvcHMpID0+IHtcclxuICAgICAgLy8gY29uc3Qge2Zvcm1Db2RlLGVkfVxyXG4gICAgICBzZXRQYXJhbXMoeyAuLi5wcm9wcywgbW9kYWxQcm9wczogeyB0aXRsZTogcHJvcHMudGl0bGUgfSB9KTtcclxuICAgICAgLy8gc2V0RWRpdFR5cGUocHJvcHMuZWRpdElkVHlwZSk7XHJcbiAgICAgIG1vZGFsUmVmLmN1cnJlbnQ/LnNob3dGb3JtKCk7XHJcbiAgICB9LFxyXG4gICAgaGlkZTogKCkgPT4ge1xyXG4gICAgICBzZXRQYXJhbXMoe30pO1xyXG4gICAgICAvLyBzZXRFZGl0VHlwZShcIlwiKTtcclxuICAgICAgbW9kYWxSZWYuY3VycmVudD8uc2hvd0Zvcm0oKTtcclxuICAgIH0sXHJcbiAgfSkpO1xyXG4gIGNvbnN0IHsgZm9ybUNvZGUsIC4uLm90aGVycyB9ID0gcGFyYW1zO1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2PlxyXG4gICAgICA8U2V0dGluZ0Zvcm1cclxuICAgICAgICBmb3JtQ29kZT17cGFyYW1zLmZvcm1Db2RlfVxyXG4gICAgICAgIGZvcm1UeXBlPVwibW9kYWxcIlxyXG4gICAgICAgIHJlZj17bW9kYWxSZWZ9XHJcbiAgICAgICAgey4uLm90aGVyc31cclxuICAgICAgPjwvU2V0dGluZ0Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59KTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3BlblBhcm1zIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGZvcm1Db2RlOiBzdHJpbmc7XHJcbiAgZWRpdFR5cGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIGZvb3Rlcj86IGJvb2xlYW47XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQXlCQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3BFLE9BQU8sS0FBS0MsTUFBTSxNQUFNLE9BQU87QUFDL0IsT0FBT0MsT0FBTyxNQUFNLFVBQVU7QUFDOUIsT0FBT0MsVUFBVSxNQUFNLGFBQWE7QUFDcEMsT0FBTyxLQUFLQyxRQUFRLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBU0MsYUFBYSxRQUFRLG1CQUFtQjtBQUNqRCxPQUFPQyxXQUFXLE1BQU0sY0FBYztBQUN0QyxPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBSXBDLE9BQU9DLFdBQVcsTUFBTSxnQkFBZ0I7QUFDeEMsT0FBTyxNQUFNQyxXQUFXLEdBQUc7RUFDekJWLE1BQU07RUFDTkMsT0FBTztFQUNQQyxVQUFVO0VBQ1ZDLFFBQVE7RUFDUkMsS0FBSztFQUNMTyxhQUFhLEVBQUVkLEtBQUssQ0FBQ2M7QUFDdkIsQ0FBUTtBQUVSLE9BQU8sTUFBTUMsb0JBQW9CLEdBQUdDLElBQUEsSUFNOUI7RUFBQSxJQU4rQjtJQUNuQ0MsVUFBVTtJQUNWQyxPQUFPO0lBQ1BDLEtBQUs7SUFDTEMsT0FBTztJQUNQQyxJQUFJLEdBQUc7RUFDVCxDQUFDLEdBQUFMLElBQUE7RUFDQyxJQUFJQyxVQUFVLENBQUNLLE1BQU0sSUFBSSxDQUFDLEVBQUU7SUFDMUIsT0FBTyxJQUFJO0VBQ2IsQ0FBQyxNQUFNO0lBQ0wsT0FBT0ws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
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["React","useRef","useState","NscCom","NscFile","NscRequest","NscUtils","dayjs","Button","getLocalStore","queryString","Modal","SettingForm","defaultUtil","createElement","renderSelfToolButton","_ref","selfButton","pageRef","funcs","loading","type","length","map","item","index","pageType","key","onClick","eventOption","func","Function","code","name","renderSelfColumnButton","_ref2","selfColumnButton","record","recordShow","jumpPage","params","pathname","query","id","title","serviceName","servicePath","openType","newQuery","_objectSpread","urlParams","stringify","path","concat","window","__POWERED_BY_QIANKUN__","data","parent","postMessage","eventType","payload","location","origin","history","pushState","go","getProject","project","convertStringToObj","Utils","converParams","ModalIndex","forwardRef","props","ref","modalRef","useImperativeHandle","show","current","hide","ModalManager","register","showModal","console","error","hideModal","defaultComFuncs","getCurrentProject","openFormPage","formCode","arguments","undefined","Date","getTime","ModalForm","setParams","_modalRef$current","modalProps","showForm","_modalRef$current2","others","_objectWithoutProperties","_excluded","_extends","formType"],"sources":["../../../src/components/page/SettingUtil/utils.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState } from \"react\";\r\nimport * as NscCom from \"./com\";\r\nimport NscFile from \"nsc-file\";\r\nimport NscRequest from \"nsc-request\";\r\nimport * as NscUtils from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport Button from \"../../base/button\";\r\nimport { getLocalStore } from \"@bj-nsc/functions\";\r\nimport queryString from \"query-string\";\r\nimport Modal from \"../../base/modal\";\r\n\r\nimport ReactDOM from \"react-dom\";\r\nimport FormPage from \"../FormPage\";\r\nimport SettingForm from \"../SettingForm\";\r\nexport const defaultUtil = {\r\n NscCom,\r\n NscFile,\r\n NscRequest,\r\n NscUtils,\r\n dayjs,\r\n createElement: React.createElement,\r\n} as any;\r\n\r\nexport const renderSelfToolButton = ({\r\n selfButton,\r\n pageRef,\r\n funcs,\r\n loading,\r\n type = \"toolButton\",\r\n}) => {\r\n if (selfButton.length == 0) {\r\n return null;\r\n } else {\r\n return selfButton.map((item: any, index: number) => {\r\n return (\r\n <Button\r\n pageType={type}\r\n key={index}\r\n type={item.type}\r\n onClick={() => {\r\n let eventOption = { pageRef: pageRef, funcs: funcs };\r\n const func = new Function(\"Utils,eventOption\", item.onClick);\r\n func(defaultUtil, eventOption);\r\n }}\r\n code={item.code}\r\n loading={loading[item.code] === true ? true : false}\r\n >\r\n {item.name}\r\n </Button>\r\n );\r\n });\r\n }\r\n};\r\n\r\nexport const renderSelfColumnButton = ({\r\n selfColumnButton,\r\n pageRef,\r\n funcs,\r\n}) => {\r\n if (selfColumnButton.length == 0) {\r\n return null;\r\n } else {\r\n return selfColumnButton.map((item: any, index: number) => {\r\n return (\r\n <Button\r\n pageType=\"columnButton\"\r\n key={index}\r\n type={item.type}\r\n onClick={(record) => {\r\n let eventOption = {\r\n pageRef: pageRef,\r\n record: record,\r\n funcs: funcs,\r\n };\r\n const func = new Function(\"Utils,eventOption\", item.onClick);\r\n func(defaultUtil, eventOption);\r\n }}\r\n code={item.code}\r\n recordShow={item.recordShow}\r\n >\r\n {item.name}\r\n </Button>\r\n );\r\n });\r\n }\r\n};\r\n\r\ninterface IParams {\r\n pathname?: string;\r\n query?: any;\r\n id?: string;\r\n serviceName?: string;\r\n title?: string;\r\n servicePath?: string;\r\n menuCode?: string;\r\n openType?: number;\r\n}\r\n\r\nconst jumpPage = (params: IParams, type?: \"addTab\" | \"jumpMenu\") => {\r\n const {\r\n pathname,\r\n query = {},\r\n id,\r\n title,\r\n serviceName,\r\n servicePath,\r\n openType,\r\n } = params;\r\n const newQuery = { ...query } as any;\r\n const urlParams = queryString.stringify(newQuery);\r\n const path = urlParams ? `${pathname}?${urlParams}` : pathname;\r\n //@ts-ignore\r\n if (window.__POWERED_BY_QIANKUN__) {\r\n const data = {\r\n title: title || \"新标签\",\r\n serviceName: serviceName, //配置的微应用名称\r\n servicePath: servicePath, //配置的微应用入口地址\r\n path: path, //新标签的url,没配置serviceName path为完整路径\r\n id: id, //自定义唯一值\r\n openType: openType ? openType : 4, //打开方式 4位微前端, 3为iframe ,默认 3\r\n };\r\n window.parent.postMessage(\r\n {\r\n eventType: type ? type : \"addTab\",\r\n serviceName: serviceName ? serviceName : \"setting-web\",\r\n payload: type ? params : data,\r\n },\r\n window.location.origin\r\n );\r\n } else {\r\n window.history.pushState({}, \"\", path);\r\n window.history.go();\r\n }\r\n};\r\nconst getProject = () => {\r\n const project = getLocalStore({ name: \"nsc-home-project\" }) || {};\r\n return project;\r\n};\r\n\r\nexport const convertStringToObj = (data, Utils, eventOption) => {\r\n if (data && typeof data == \"string\") {\r\n let func = new Function(\"eventOption,Utils\", data);\r\n let converParams = func(eventOption, Utils);\r\n data = converParams;\r\n } else {\r\n data = data || {};\r\n }\r\n return data;\r\n};\r\n// const modalRef: any = useRef(null);\r\nconst ModalIndex = React.forwardRef((props, ref) => {\r\n // const [isVisible, setIsVisible] = React.useState(false);\r\n const modalRef: any = useRef(null);\r\n // 使用useImperativeHandle向父组件暴露方法\r\n React.useImperativeHandle(ref, () => ({\r\n show: () => {\r\n modalRef.current.show();\r\n },\r\n hide: () => {\r\n modalRef.current.hide();\r\n },\r\n }));\r\n\r\n return <Modal></Modal>;\r\n});\r\nexport const ModalManager = {\r\n modalRef: null,\r\n register: function (ref) {\r\n this.modalRef = ref;\r\n },\r\n showModal: function (props) {\r\n if (this.modalRef && this.modalRef.current) {\r\n this.modalRef.current.show(props);\r\n } else {\r\n console.error(\"Modal引用未注册\");\r\n }\r\n },\r\n hideModal: function () {\r\n if (this.modalRef && this.modalRef.current) {\r\n this.modalRef.current.hide();\r\n }\r\n },\r\n};\r\n\r\nexport const defaultComFuncs = {\r\n history: (params, type) => {\r\n jumpPage(params, type);\r\n },\r\n getCurrentProject: () => {\r\n return getProject();\r\n },\r\n openFormPage: (params, formCode, type = \"add\") => {\r\n jumpPage(\r\n {\r\n pathname: `/formpage/${type}/form/${formCode}`,\r\n id: new Date().getTime(),\r\n title: \"表单页面\",\r\n ...params,\r\n serviceName: \"setting-web\",\r\n servicePath: \"/setting\",\r\n },\r\n \"addTab\"\r\n );\r\n },\r\n};\r\n\r\nexport const ModalForm = React.forwardRef((props, ref) => {\r\n const modalRef: any = useRef(null);\r\n // const [formCode, setFormCode] = useState(\"\");\r\n // const [editIdType, setEditType] = useState(\"\");\r\n const [params, setParams] = useState({} as any);\r\n React.useImperativeHandle(ref, () => ({\r\n show: (props) => {\r\n // const {formCode,ed}\r\n setParams({ ...props, modalProps: { title: props.title } });\r\n // setEditType(props.editIdType);\r\n modalRef.current?.showForm();\r\n },\r\n hide: () => {\r\n setParams({});\r\n // setEditType(\"\");\r\n modalRef.current?.showForm();\r\n },\r\n }));\r\n const { formCode, ...others } = params;\r\n return (\r\n <div >\r\n <SettingForm\r\n formCode={params.formCode}\r\n formType=\"modal\"\r\n ref={modalRef}\r\n {...others}\r\n ></SettingForm>\r\n </div>\r\n );\r\n});\r\n\r\nexport interface OpenParms {\r\n title: string;\r\n formCode: string;\r\n editType?: string;\r\n editId?: string;\r\n footer?: boolean;\r\n width?: number;\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["React","useRef","useState","NscCom","NscFile","NscRequest","NscUtils","dayjs","Button","getLocalStore","queryString","Modal","SettingForm","defaultUtil","createElement","renderSelfToolButton","_ref","selfButton","pageRef","funcs","loading","type","length","map","item","index","pageType","key","onClick","eventOption","func","Function","code","name","renderSelfColumnButton","_ref2","selfColumnButton","record","recordShow","jumpPage","params","pathname","query","id","title","serviceName","servicePath","openType","newQuery","_objectSpread","urlParams","stringify","path","concat","window","__POWERED_BY_QIANKUN__","data","parent","postMessage","eventType","payload","location","origin","history","pushState","go","getProject","project","convertStringToObj","Utils","converParams","ModalIndex","forwardRef","props","ref","modalRef","useImperativeHandle","show","current","hide","ModalManager","register","showModal","console","error","hideModal","defaultComFuncs","getCurrentProject","openFormPage","formCode","arguments","undefined","Date","getTime","ModalForm","setParams","_modalRef$current","modalProps","showForm","_modalRef$current2","others","_objectWithoutProperties","_excluded","_extends","formType"],"sources":["../../../src/components/page/SettingUtil/utils.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState } from \"react\";\r\nimport * as NscCom from \"./com\";\r\nimport NscFile from \"nsc-file\";\r\nimport NscRequest from \"nsc-request\";\r\nimport * as NscUtils from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport Button from \"../../base/button\";\r\nimport { getLocalStore } from \"@bj-nsc/functions\";\r\nimport queryString from \"query-string\";\r\nimport Modal from \"../../base/modal\";\r\n\r\nimport ReactDOM from \"react-dom\";\r\nimport FormPage from \"../FormPage\";\r\nimport SettingForm from \"../SettingForm\";\r\nexport const defaultUtil = {\r\n NscCom,\r\n NscFile,\r\n NscRequest,\r\n NscUtils,\r\n dayjs,\r\n createElement: React.createElement,\r\n} as any;\r\n\r\nexport const renderSelfToolButton = ({\r\n selfButton,\r\n pageRef,\r\n funcs,\r\n loading,\r\n type = \"toolButton\",\r\n}) => {\r\n if (selfButton.length == 0) {\r\n return null;\r\n } else {\r\n return selfButton.map((item: any, index: number) => {\r\n return (\r\n <Button\r\n pageType={type}\r\n key={index}\r\n type={item.type}\r\n onClick={() => {\r\n let eventOption = { pageRef: pageRef, funcs: funcs };\r\n const func = new Function(\"Utils,eventOption\", item.onClick);\r\n func(defaultUtil, eventOption);\r\n }}\r\n code={item.code}\r\n loading={loading[item.code] === true ? true : false}\r\n >\r\n {item.name}\r\n </Button>\r\n );\r\n });\r\n }\r\n};\r\n\r\nexport const renderSelfColumnButton = ({\r\n selfColumnButton,\r\n pageRef,\r\n funcs,\r\n}) => {\r\n if (selfColumnButton.length == 0) {\r\n return null;\r\n } else {\r\n return selfColumnButton.map((item: any, index: number) => {\r\n return (\r\n <Button\r\n pageType=\"columnButton\"\r\n key={index}\r\n type={item.type}\r\n onClick={(record) => {\r\n let eventOption = {\r\n pageRef: pageRef,\r\n record: record,\r\n funcs: funcs,\r\n };\r\n const func = new Function(\"Utils,eventOption\", item.onClick);\r\n func(defaultUtil, eventOption);\r\n }}\r\n code={item.code}\r\n recordShow={item.recordShow}\r\n >\r\n {item.name}\r\n </Button>\r\n );\r\n });\r\n }\r\n};\r\n\r\ninterface IParams {\r\n pathname?: string;\r\n query?: any;\r\n id?: string;\r\n serviceName?: string;\r\n title?: string;\r\n servicePath?: string;\r\n menuCode?: string;\r\n openType?: number;\r\n}\r\n\r\nconst jumpPage = (params: IParams, type?: \"addTab\" | \"jumpMenu\") => {\r\n const {\r\n pathname,\r\n query = {},\r\n id,\r\n title,\r\n serviceName,\r\n servicePath,\r\n openType,\r\n } = params;\r\n const newQuery = { ...query } as any;\r\n const urlParams = queryString.stringify(newQuery);\r\n const path = urlParams ? `${pathname}?${urlParams}` : pathname;\r\n //@ts-ignore\r\n if (window.__POWERED_BY_QIANKUN__) {\r\n const data = {\r\n title: title || \"新标签\",\r\n serviceName: serviceName, //配置的微应用名称\r\n servicePath: servicePath, //配置的微应用入口地址\r\n path: path, //新标签的url,没配置serviceName path为完整路径\r\n id: id, //自定义唯一值\r\n openType: openType ? openType : 4, //打开方式 4位微前端, 3为iframe ,默认 3\r\n };\r\n window.parent.postMessage(\r\n {\r\n eventType: type ? type : \"addTab\",\r\n serviceName: serviceName ? serviceName : \"setting-web\",\r\n payload: type ? params : data,\r\n },\r\n window.location.origin\r\n );\r\n } else {\r\n window.history.pushState({}, \"\", path);\r\n window.history.go();\r\n }\r\n};\r\nconst getProject = () => {\r\n const project = getLocalStore({ name: \"nsc-home-project\" }) || {};\r\n return project;\r\n};\r\n\r\nexport const convertStringToObj = (data, Utils, eventOption) => {\r\n if (data && typeof data == \"string\") {\r\n let func = new Function(\"eventOption,Utils\", data);\r\n let converParams = func(eventOption, Utils);\r\n data = converParams;\r\n } else {\r\n data = data || {};\r\n }\r\n return data;\r\n};\r\n// const modalRef: any = useRef(null);\r\nconst ModalIndex = React.forwardRef((props, ref) => {\r\n // const [isVisible, setIsVisible] = React.useState(false);\r\n const modalRef: any = useRef(null);\r\n // 使用useImperativeHandle向父组件暴露方法\r\n React.useImperativeHandle(ref, () => ({\r\n show: () => {\r\n modalRef.current.show();\r\n },\r\n hide: () => {\r\n modalRef.current.hide();\r\n },\r\n }));\r\n\r\n return <Modal></Modal>;\r\n});\r\nexport const ModalManager = {\r\n modalRef: null,\r\n register: function (ref) {\r\n this.modalRef = ref;\r\n },\r\n showModal: function (props) {\r\n if (this.modalRef && this.modalRef.current) {\r\n this.modalRef.current.show(props);\r\n } else {\r\n console.error(\"Modal引用未注册\");\r\n }\r\n },\r\n hideModal: function () {\r\n if (this.modalRef && this.modalRef.current) {\r\n this.modalRef.current.hide();\r\n }\r\n },\r\n};\r\n\r\nexport const defaultComFuncs = {\r\n history: (params, type) => {\r\n jumpPage(params, type);\r\n },\r\n getCurrentProject: () => {\r\n return getProject();\r\n },\r\n openFormPage: (params, formCode, type = \"add\") => {\r\n jumpPage({\r\n pathname: `/formpage/${type}/form/${formCode}`,\r\n id: new Date().getTime(),\r\n title: \"表单页面\",\r\n ...params,\r\n serviceName: \"setting-web\",\r\n servicePath: \"/setting\",\r\n openType: 4,\r\n });\r\n },\r\n};\r\n\r\nexport const ModalForm = React.forwardRef((props, ref) => {\r\n const modalRef: any = useRef(null);\r\n // const [formCode, setFormCode] = useState(\"\");\r\n // const [editIdType, setEditType] = useState(\"\");\r\n const [params, setParams] = useState({} as any);\r\n React.useImperativeHandle(ref, () => ({\r\n show: (props) => {\r\n // const {formCode,ed}\r\n setParams({ ...props, modalProps: { title: props.title } });\r\n // setEditType(props.editIdType);\r\n modalRef.current?.showForm();\r\n },\r\n hide: () => {\r\n setParams({});\r\n // setEditType(\"\");\r\n modalRef.current?.showForm();\r\n },\r\n }));\r\n const { formCode, ...others } = params;\r\n return (\r\n <div>\r\n <SettingForm\r\n formCode={params.formCode}\r\n formType=\"modal\"\r\n ref={modalRef}\r\n {...others}\r\n ></SettingForm>\r\n </div>\r\n );\r\n});\r\n\r\nexport interface OpenParms {\r\n title: string;\r\n formCode: string;\r\n editType?: string;\r\n editId?: string;\r\n footer?: boolean;\r\n width?: number;\r\n}\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": "4.3.3",
3
+ "version": "4.3.4",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {